From: hno <> Date: Sat, 29 Nov 2003 15:37:29 +0000 (+0000) Subject: Bug #690: gopher: server returned nothing: gopherHTMLHeader() is called twice X-Git-Tag: SQUID_3_0_PRE4~1151 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=d7443679182a851d63fc2d3b8c5ded4840059efa;p=thirdparty%2Fsquid.git Bug #690: gopher: server returned nothing: gopherHTMLHeader() is called twice --- diff --git a/src/gopher.cc b/src/gopher.cc index 3620fb5fdf..5a2c73504e 100644 --- a/src/gopher.cc +++ b/src/gopher.cc @@ -1,6 +1,6 @@ /* - * $Id: gopher.cc,v 1.184 2003/08/10 11:00:43 robertc Exp $ + * $Id: gopher.cc,v 1.185 2003/11/29 08:37:29 hno Exp $ * * DEBUG: section 10 Gopher * AUTHOR: Harvest Derived @@ -85,9 +85,9 @@ typedef struct gopher_ds HTML_CSO_PAGE } conversion; int HTML_header_added; + int HTML_pre; char type_id; char request[MAX_URL]; - int data_in; int cso_recno; int len; char *buf; /* pts to a 4k page */ @@ -308,10 +308,10 @@ gopherEndHTML(GopherStateData * gopherState) { StoreEntry *e = gopherState->entry; - if (!gopherState->data_in) { + if (!gopherState->HTML_header_added) { gopherHTMLHeader(e, "Server Return Nothing", NULL); storeAppendPrintf(e, "

The Gopher query resulted in a blank response

"); - } else { + } else if (gopherState->HTML_pre) { storeAppendPrintf(e, "\n"); } @@ -353,7 +353,7 @@ gopherToHTML(GopherStateData * gopherState, char *inbuf, int len) gopherHTMLFooter(entry); /* now let start sending stuff to client */ storeBufferFlush(entry); - gopherState->data_in = 1; + gopherState->HTML_header_added = 1; return; } @@ -368,7 +368,7 @@ gopherToHTML(GopherStateData * gopherState, char *inbuf, int len) gopherHTMLFooter(entry); /* now let start sending stuff to client */ storeBufferFlush(entry); - gopherState->data_in = 1; + gopherState->HTML_header_added = 1; return; } @@ -385,6 +385,8 @@ gopherToHTML(GopherStateData * gopherState, char *inbuf, int len) outbuf.append ("
");
 
         gopherState->HTML_header_added = 1;
+
+        gopherState->HTML_pre = 1;
     }
 
     while ((pos != NULL) && (pos < inbuf + len)) {
@@ -595,7 +597,6 @@ gopherToHTML(GopherStateData * gopherState, char *inbuf, int len)
 
                         safe_free(escaped_selector);
                         outbuf.append(tmpbuf);
-                        gopherState->data_in = 1;
                     } else {
                         memset(line, '\0', TEMP_BUF_SIZE);
                         continue;
@@ -636,7 +637,6 @@ gopherToHTML(GopherStateData * gopherState, char *inbuf, int len)
                     }
 
                     outbuf.append(tmpbuf);
-                    gopherState->data_in = 1;
                     break;
                 } else {
                     int code;
@@ -667,7 +667,6 @@ gopherToHTML(GopherStateData * gopherState, char *inbuf, int len)
                             /* Print the message the server returns */
                             snprintf(tmpbuf, TEMP_BUF_SIZE, "

%s

\n
", html_quote(result));
                             outbuf.append(tmpbuf);
-                            gopherState->data_in = 1;
                             break;
                         }