return from transfer when all headers have been received and nobody is set,
authorDaniel Stenberg <daniel@haxx.se>
Thu, 8 Mar 2001 10:32:27 +0000 (10:32 +0000)
committerDaniel Stenberg <daniel@haxx.se>
Thu, 8 Mar 2001 10:32:27 +0000 (10:32 +0000)
as is the case when doing HEAD requests

lib/transfer.c

index 80cdc0968b111a725d2102289db9c0477605e1ed..3816e7fb69d7726a1833fd760d8d3c8572b07d10 100644 (file)
@@ -338,6 +338,18 @@ _Transfer(struct connectdata *c_conn)
                   return urg;
 
                 data->header_size += p - data->headerbuff;
+
+
+                /*
+                 * end-of-headers.
+                 *
+                 * If we requested a "no body" and this isn't a "close"
+                 * connection, this is a good time to get out and return
+                 * home.
+                 */
+                if(!conn->bits.close && data->bits.no_body)
+                  return CURLE_OK;
+
                 break;         /* exit header line loop */
               }
               
@@ -473,11 +485,6 @@ _Transfer(struct connectdata *c_conn)
              is non-headers. */
           if (str && !header && ((signed int)nread > 0)) {
             
-            /*
-             * If we requested a HTTP header, this might be a good time to get
-             * out and return home.
-             */
-
             if(0 == bodywrites) {
               /* These checks are only made the first time we are about to
                  write a piece of the body */
@@ -539,7 +546,7 @@ _Transfer(struct connectdata *c_conn)
 
             if(conn->bits.chunk) {
               /*
-               * Bless me father for I have sinned. Here come a chunked
+               * Bless me father for I have sinned. Here comes a chunked
                * transfer flying and we need to decode this properly.  While
                * the name says read, this function both reads and writes away
                * the data. The returned 'nread' holds the number of actual
@@ -553,7 +560,7 @@ _Transfer(struct connectdata *c_conn)
                 /* we're done reading chunks! */
                 keepon &= ~KEEP_READ; /* read no more */
 
-                /* There are now (~res) bytes at the end of the str buffer
+                /* There are now possibly bytes at the end of the str buffer
                    that weren't written to the client, but we don't care
                    about them right now. */
               }