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."); } }
public RouteContent(StatusCode status, string meta, string bodyContent) { HasBody = true; Header = GeminiProtocols.GetHeader(status, meta); Body = Encoding.UTF8.GetBytes(bodyContent); }
public RouteContent(StatusCode status, string meta = "") { HasBody = false; Header = GeminiProtocols.GetHeader(status, meta); }