Merge pull request #77 from Spmoolman/master

Added check to see if the request is empty
This commit is contained in:
Ben Merrills 2016-11-10 18:36:56 +00:00 committed by GitHub
commit 714482d903

View file

@ -61,28 +61,41 @@ namespace AsterNET.FastAGI
var reader = new AGIReader(socket); var reader = new AGIReader(socket);
var writer = new AGIWriter(socket); var writer = new AGIWriter(socket);
AGIRequest request = reader.ReadRequest(); AGIRequest request = reader.ReadRequest();
var channel = new AGIChannel(writer, reader, _SC511_CAUSES_EXCEPTION, _SCHANGUP_CAUSES_EXCEPTION);
AGIScript script = mappingStrategy.DetermineScript(request);
Thread.SetData(_channel, channel);
if (script != null) //Added check for when the request is empty
//eg. telnet to the service
if (request.Request.Count > 0)
{ {
#if LOGGER var channel = new AGIChannel(writer, reader, _SC511_CAUSES_EXCEPTION, _SCHANGUP_CAUSES_EXCEPTION);
logger.Info("Begin AGIScript " + script.GetType().FullName + " on " + Thread.CurrentThread.Name); AGIScript script = mappingStrategy.DetermineScript(request);
#endif Thread.SetData(_channel, channel);
script.Service(request, channel);
#if LOGGER if (script != null)
logger.Info("End AGIScript " + script.GetType().FullName + " on " + Thread.CurrentThread.Name); {
#endif #if LOGGER
logger.Info("Begin AGIScript " + script.GetType().FullName + " on " + Thread.CurrentThread.Name);
#endif
script.Service(request, channel);
#if LOGGER
logger.Info("End AGIScript " + script.GetType().FullName + " on " + Thread.CurrentThread.Name);
#endif
}
else
{
var error = "No script configured for URL '" + request.RequestURL + "' (script '" + request.Script +
"')";
channel.SendCommand(new VerboseCommand(error, 1));
#if LOGGER
logger.Error(error);
#endif
}
} }
else else
{ {
var error = "No script configured for URL '" + request.RequestURL + "' (script '" + request.Script + var error = "A connection was made with no requests";
"')"; #if LOGGER
channel.SendCommand(new VerboseCommand(error, 1)); logger.Error(error);
#if LOGGER #endif
logger.Error(error);
#endif
} }
} }
catch (AGIHangupException) catch (AGIHangupException)
@ -93,19 +106,19 @@ namespace AsterNET.FastAGI
} }
catch (AGIException ex) catch (AGIException ex)
{ {
#if LOGGER #if LOGGER
logger.Error("AGIException while handling request", ex); logger.Error("AGIException while handling request", ex);
#else #else
throw ex; throw ex;
#endif #endif
} }
catch (Exception ex) catch (Exception ex)
{ {
#if LOGGER #if LOGGER
logger.Error("Unexpected Exception while handling request", ex); logger.Error("Unexpected Exception while handling request", ex);
#else #else
throw ex; throw ex;
#endif #endif
} }
Thread.SetData(_channel, null); Thread.SetData(_channel, null);
@ -113,14 +126,14 @@ namespace AsterNET.FastAGI
{ {
socket.Close(); socket.Close();
} }
#if LOGGER #if LOGGER
catch (IOException ex) catch (IOException ex)
{ {
logger.Error("Error on close socket", ex); logger.Error("Error on close socket", ex);
} }
#else #else
catch { } catch { }
#endif #endif
} }
} }
} }