+1 here too, but please also decorate with API_EXPORT() fooness and add to the appropriate entries to ApacheCore.def/ApacheCoreNW.def files.
At 07:21 AM 4/6/2002, you wrote: >+1 in concept. > >Please add the exports to httpd.exp and bump the MMN Minor. > >Bill > >----- Original Message ----- >From: "Graham Leggett" <[EMAIL PROTECTED]> >To: "Apache Developers List" <[EMAIL PROTECTED]> >Sent: Saturday, April 06, 2002 8:01 AM >Subject: [Patch] Namespace protect and export getline and get_chunk_size > > > > Hi all, > > > > In preparation for a bugfix to proxy and its broken chunking in v1.3, I > > need to make getline() and get_chunk_size() available to proxy. > > > > This patch namespace protects and exports these two functions. Will > > commit later today if there are no objections... > > > > Regards, > > Graham > > -- > > ----------------------------------------- > > [EMAIL PROTECTED] "There's a moon > > over Bourbon Street > > tonight..." > > >-------------------------------------------------------------------------------- > > > > --- > /home/minfrin/src/apache/pristine/apache-1.3/src/main/http_protocol.c Tue > Mar 26 >00:39:36 2002 > > +++ src/main/http_protocol.c Sat Apr 6 14:57:49 2002 > > @@ -857,13 +857,13 @@ > > * then the actual input line exceeded the buffer length, > > * and it would be a good idea for the caller to puke 400 or 414. > > */ > > -static int getline(char *s, int n, BUFF *in, int fold) > > +API_EXPORT(int) ap_getline(char *s, int n, BUFF *in, int fold) > > { > > char *pos, next; > > int retval; > > int total = 0; > > #ifdef CHARSET_EBCDIC > > - /* When getline() is called, the HTTP protocol is in a state > > + /* When ap_getline() is called, the HTTP protocol is in a state > > * where we MUST be reading "plain text" protocol stuff, > > * (Request line, MIME headers, Chunk sizes) regardless of > > * the MIME type and conversion setting of the document itself. > > @@ -978,7 +978,7 @@ > > > > static int read_request_line(request_rec *r) > > { > > - char l[DEFAULT_LIMIT_REQUEST_LINE + 2]; /* getline's two extra for > \n\0 */ > > + char l[DEFAULT_LIMIT_REQUEST_LINE + 2]; /* ap_getline's two extra > for \n\0 */ > > const char *ll = l; > > const char *uri; > > conn_rec *conn = r->connection; > > @@ -1000,7 +1000,7 @@ > > * have to block during a read. > > */ > > ap_bsetflag(conn->client, B_SAFEREAD, 1); > > - while ((len = getline(l, sizeof(l), conn->client, 0)) <= 0) { > > + while ((len = ap_getline(l, sizeof(l), conn->client, 0)) <= 0) { > > if ((len < 0) || ap_bgetflag(conn->client, B_EOF)) { > > ap_bsetflag(conn->client, B_SAFEREAD, 0); > > /* this is a hack to make sure that request time is set, > > @@ -1031,7 +1031,7 @@ > > > > ap_parse_uri(r, uri); > > > > - /* getline returns (size of max buffer - 1) if it fills up the > > + /* ap_getline returns (size of max buffer - 1) if it fills up the > > * buffer before finding the end-of-line. This is only going to > > * happen if it exceeds the configured limit for a request-line. > > */ > > @@ -1056,7 +1056,7 @@ > > > > static void get_mime_headers(request_rec *r) > > { > > - char field[DEFAULT_LIMIT_REQUEST_FIELDSIZE + 2]; /* getline's two > extra */ > > + char field[DEFAULT_LIMIT_REQUEST_FIELDSIZE + 2]; /* ap_getline's > two extra */ > > conn_rec *c = r->connection; > > char *value; > > char *copy; > > @@ -1071,7 +1071,7 @@ > > * Read header lines until we get the empty separator line, a read > error, > > * the connection closes (EOF), reach the server limit, or we timeout. > > */ > > - while ((len = getline(field, sizeof(field), c->client, 1)) > 0) { > > + while ((len = ap_getline(field, sizeof(field), c->client, 1)) > 0) { > > > > if (r->server->limit_req_fields && > > (++fields_read > r->server->limit_req_fields)) { > > @@ -1081,7 +1081,7 @@ > > "this server's limit.<P>\n"); > > return; > > } > > - /* getline returns (size of max buffer - 1) if it fills up the > > + /* ap_getline returns (size of max buffer - 1) if it fills up the > > * buffer before finding the end-of-line. This is only going to > > * happen if it exceeds the configured limit for a field size. > > */ > > @@ -2018,7 +2018,7 @@ > > return 1; > > } > > > > -static long get_chunk_size(char *b) > > +API_EXPORT(long) ap_get_chunk_size(char *b) > > { > > long chunksize = 0; > > > > @@ -2100,14 +2100,14 @@ > > > > if (r->remaining == 0) { /* Start of new chunk */ > > > > - chunk_start = getline(buffer, bufsiz, r->connection->client, 0); > > + chunk_start = ap_getline(buffer, bufsiz, > r->connection->client, 0); > > if ((chunk_start <= 0) || (chunk_start >= (bufsiz - 1)) > > || !ap_isxdigit(*buffer)) { > > r->connection->keepalive = -1; > > return -1; > > } > > > > - len_to_read = get_chunk_size(buffer); > > + len_to_read = ap_get_chunk_size(buffer); > > > > if (len_to_read == 0) { /* Last chunk indicated, get footers */ > > if (r->read_body == REQUEST_CHUNKED_DECHUNK) { > > @@ -2141,7 +2141,7 @@ > > len_read = chunk_start; > > > > while ((bufsiz > 1) && ((len_read = > > - getline(buffer, bufsiz, r->connection->client, 1)) > > 0)) { > > + ap_getline(buffer, bufsiz, r->connection->client, > 1)) > 0)) { > > > > if (len_read != (bufsiz - 1)) { > > buffer[len_read++] = CR; /* Restore footer line > end */ > >