Example #1
0
        private static void HandleRequest(Dictionary <string, ContentProviderDelegate> routeHandlers, SslStream stream)
        {
            byte[] request = new byte[1024];
            stream.Read(request);
            GeminiUri uri = new GeminiUri(Encoding.UTF8.GetString(request).TrimEnd('\u0000').TrimEnd('\r', '\n'));

            if (routeHandlers.ContainsKey(uri.Path))
            {
                DeliverContent(stream, routeHandlers[uri.Path]);
            }
            else
            {
                stream.Write(GeminiProtocols.GetHeader(StatusCode.NOT_FOUND), 0,
                             GeminiProtocols.GetHeader(StatusCode.NOT_FOUND).Length);
                Console.WriteLine("no route for " + uri.Path + " was found.");
            }
        }
Example #2
0
 public RouteContent(StatusCode status, string meta, string bodyContent)
 {
     HasBody = true;
     Header  = GeminiProtocols.GetHeader(status, meta);
     Body    = Encoding.UTF8.GetBytes(bodyContent);
 }
Example #3
0
 public RouteContent(StatusCode status, string meta = "")
 {
     HasBody = false;
     Header  = GeminiProtocols.GetHeader(status, meta);
 }