Browse Source

Added +[GCDWebServer maxPendingConnections]

Pierre-Olivier Latour 11 years ago
parent
commit
489c8c6236
2 changed files with 7 additions and 3 deletions
  1. 2 1
      GCDWebServer/Core/GCDWebServer.h
  2. 5 2
      GCDWebServer/Core/GCDWebServer.m

+ 2 - 1
GCDWebServer/Core/GCDWebServer.h

@@ -56,7 +56,8 @@ typedef GCDWebServerResponse* (^GCDWebServerProcessBlock)(GCDWebServerRequest* r
 @end
 
 @interface GCDWebServer (Subclassing)
-+ (Class)connectionClass;
++ (NSUInteger)maxPendingConnections;  // Default is 16
++ (Class)connectionClass;  // Default is GCDWebServerConnection
 + (NSString*)serverName;  // Default is class name
 + (BOOL)shouldAutomaticallyMapHEADToGET;  // Default is YES which means HEAD requests are mapped to GET requests with the response body being discarded
 @end

+ 5 - 2
GCDWebServer/Core/GCDWebServer.m

@@ -40,7 +40,6 @@
 #else
 #define kDefaultPort 8080
 #endif
-#define kMaxPendingConnections 16
 
 @interface GCDWebServer () {
 @private
@@ -200,7 +199,7 @@ static void _NetServiceClientCallBack(CFNetServiceRef service, CFStreamError* er
     addr4.sin_port = htons(port);
     addr4.sin_addr.s_addr = htonl(INADDR_ANY);
     if (bind(listeningSocket, (void*)&addr4, sizeof(addr4)) == 0) {
-      if (listen(listeningSocket, kMaxPendingConnections) == 0) {
+      if (listen(listeningSocket, (int)[[self class] maxPendingConnections]) == 0) {
         _source = dispatch_source_create(DISPATCH_SOURCE_TYPE_READ, listeningSocket, 0, kGCDWebServerGCDQueue);
         dispatch_source_set_cancel_handler(_source, ^{
           
@@ -318,6 +317,10 @@ static void _NetServiceClientCallBack(CFNetServiceRef service, CFStreamError* er
 
 @implementation GCDWebServer (Subclassing)
 
++ (NSUInteger)maxPendingConnections {
+  return 16;
+}
+
 + (Class)connectionClass {
   return [GCDWebServerConnection class];
 }