Author: rfm
Date: Sat Aug 29 22:55:28 2015
New Revision: 38949

URL: http://svn.gna.org/viewcvs/gnustep?rev=38949&view=rev
Log:
make logging of raw I/O consistent with base library

Modified:
    libs/webserver/trunk/WebServerConnection.m

Modified: libs/webserver/trunk/WebServerConnection.m
URL: 
http://svn.gna.org/viewcvs/gnustep/libs/webserver/trunk/WebServerConnection.m?rev=38949&r1=38948&r2=38949&view=diff
==============================================================================
--- libs/webserver/trunk/WebServerConnection.m  (original)
+++ libs/webserver/trunk/WebServerConnection.m  Sat Aug 29 22:55:28 2015
@@ -101,10 +101,53 @@
         }
     }
   buf[pos] = '\0';
-  d = [[[NSData alloc] initWithBytesNoCopy: buf
-                                    length: size
-                              freeWhenDone: YES] autorelease];
   return (char*)buf;
+}
+
+static void
+debugRead(WebServer *server, WebServerConnection *c, NSData *data)
+{
+  unsigned     len = (unsigned)[data length];
+  const char   *ptr = (const char*)[data bytes];
+  int           pos;
+
+  for (pos = 0; pos < len; pos++)
+    {
+      if (0 == ptr[pos])
+        {
+          char  *esc = rawEscape(data);
+
+          [server _log: @"Read for %@ of %u bytes (escaped) - '%s'\n%@",
+            c, len, esc, data]; 
+          free(esc);
+          return;
+        }
+    }
+  [server _log: @"Read for %@ of %d bytes - '%*.*s'\n%@",
+    c, len, len, len, ptr, data]; 
+}
+
+static void
+debugWrite(WebServer *server, WebServerConnection *c, NSData *data)
+{
+  unsigned     len = (unsigned)[data length];
+  const char   *ptr = (const char*)[data bytes];
+  int           pos;
+
+  for (pos = 0; pos < len; pos++)
+    {
+      if (0 == ptr[pos])
+        {
+          char  *esc = rawEscape(data);
+
+          [server _log: @"Read for %@ of %u bytes (escaped) - '%s'\n%@",
+            c, len, esc, data]; 
+          free(esc);
+          return;
+        }
+    }
+  [server _log: @"Write for %@ of %d bytes - '%*.*s'\n%@",
+    c, len, len, len, ptr, data]; 
 }
 
 @implementation        WebServerRequest
@@ -1716,8 +1759,7 @@
 
   if (YES == conf->logRawIO && NO == quiet)
     {
-      [server _log: @"%@ Data read %u bytes ... '%s' %@",
-        self, (unsigned)[d length], rawEscape(d), d];
+      debugRead(server, self, d);
     }
   [self _didData: d];
 }
@@ -1854,8 +1896,7 @@
 {
   if (YES == conf->logRawIO && NO == quiet)
     {
-      [server _log: @"%@ Data write %u bytes ... '%s' %@",
-        self, (unsigned)[d length], rawEscape(d), d];
+      debugWrite(server, self, d);
    }
   [handle writeInBackgroundAndNotify: d];
 }


_______________________________________________
Gnustep-cvs mailing list
[email protected]
https://mail.gna.org/listinfo/gnustep-cvs

Reply via email to