cvs commit: apache-2.0/src/modules/standard mod_cgi.c
bjh 99/10/25 05:45:39 Modified:src/modules/standard mod_cgi.c Log: Make args to CGIs work. Revision ChangesPath 1.15 +6 -6 apache-2.0/src/modules/standard/mod_cgi.c Index: mod_cgi.c === RCS file: /home/cvs/apache-2.0/src/modules/standard/mod_cgi.c,v retrieving revision 1.14 retrieving revision 1.15 diff -u -r1.14 -r1.15 --- mod_cgi.c 1999/10/20 18:28:04 1.14 +++ mod_cgi.c 1999/10/25 12:45:39 1.15 @@ -373,7 +373,7 @@ ap_unblock_alarms(); return (rc); } -static ap_status_t build_argv_list(char *argv[], request_rec *r, ap_context_t *p) +static ap_status_t build_argv_list(char ***argv, request_rec *r, ap_context_t *p) { int numwords, x, idx; char *w; @@ -392,14 +392,14 @@ if (numwords APACHE_ARG_MAX) { numwords = APACHE_ARG_MAX; /* Truncate args to prevent overrun */ } -argv = (char **) ap_palloc(p, (numwords + 1) * sizeof(char *)); +*argv = (char **) ap_palloc(p, (numwords + 1) * sizeof(char *)); for (x = 1, idx = 0; x = numwords; x++) { w = ap_getword_nulls(p, args, '+'); ap_unescape_url(w); -argv[idx++] = ap_escape_shell_cmd(p, w); +(*argv)[idx++] = ap_escape_shell_cmd(p, w); } -argv[idx] = NULL; +(*argv)[idx] = NULL; } return APR_SUCCESS; @@ -444,7 +444,7 @@ int retval, nph, dbpos = 0; char *argv0, *dbuf = NULL; char *command; -char *argv = NULL; +char **argv = NULL; BUFF *script_out = NULL, *script_in = NULL, *script_err = NULL; char argsbuffer[HUGE_STRING_LEN]; @@ -527,7 +527,7 @@ return HTTP_INTERNAL_SERVER_ERROR; } /* run the script in its own process */ -else if (run_cgi_child(script_out, script_in, script_err, command, argv, r, p) != APR_SUCCESS) { +else if (run_cgi_child(script_out, script_in, script_err, command, argv, r, p) != APR_SUCCESS) { ap_log_rerror(APLOG_MARK, APLOG_ERR, errno, r, couldn't spawn child process: %s, r-filename); return HTTP_INTERNAL_SERVER_ERROR;
cvs commit: apache-2.0/src/lib/apr/network_io/beos Makefile.in
dreid 99/10/25 06:21:16 Modified:src/lib/apr/network_io/beos Makefile.in Log: Well having added the file guess I should really include it! Revision ChangesPath 1.4 +2 -1 apache-2.0/src/lib/apr/network_io/beos/Makefile.in Index: Makefile.in === RCS file: /home/cvs/apache-2.0/src/lib/apr/network_io/beos/Makefile.in,v retrieving revision 1.3 retrieving revision 1.4 diff -u -r1.3 -r1.4 --- Makefile.in 1999/10/02 23:11:36 1.3 +++ Makefile.in 1999/10/25 13:21:12 1.4 @@ -18,7 +18,8 @@ sendrecv.o \ sockets.o \ sockopt.o \ - inet_aton.o + inet_aton.o \ + sockaddr.o .c.o: $(CC) $(CFLAGS) -c $(INCLUDES) $
cvs commit: apache-site/mirrors index.html mirrors.check mirrors.list
pier99/10/25 12:03:40 Modified:mirrors index.html mirrors.check mirrors.list Log: Added new Italian mirror site: http://www.navigando.net/mirror/apache WebMaser: Cristiano Caruso [EMAIL PROTECTED] Revision ChangesPath 1.75 +2 -0 apache-site/mirrors/index.html Index: index.html === RCS file: /home/cvs/apache-site/mirrors/index.html,v retrieving revision 1.74 retrieving revision 1.75 diff -u -r1.74 -r1.75 --- index.html1999/10/20 05:18:24 1.74 +++ index.html1999/10/25 19:03:38 1.75 @@ -193,6 +193,8 @@ !-- [EMAIL PROTECTED] -- A HREF=http://mathema.it/pub/apache/;it/A - !-- [EMAIL PROTECTED] -- +A HREF=http://www.navigando.net/mirror/apache;it/A - +!-- [EMAIL PROTECTED] -- A HREF=http://SunSITE.sut.ac.jp/pub/apache/;jp/A - !-- [EMAIL PROTECTED] -- A HREF=http://japache.infoscience.co.jp/apache/;jp/A - 1.4 +1 -1 apache-site/mirrors/mirrors.check Index: mirrors.check === RCS file: /home/cvs/apache-site/mirrors/mirrors.check,v retrieving revision 1.3 retrieving revision 1.4 diff -u -r1.3 -r1.4 --- mirrors.check 1999/10/20 05:21:51 1.3 +++ mirrors.check 1999/10/25 19:03:39 1.4 @@ -1 +1 @@ -1999-10-19 +1999-10-25 1.88 +1 -0 apache-site/mirrors/mirrors.list Index: mirrors.list === RCS file: /home/cvs/apache-site/mirrors/mirrors.list,v retrieving revision 1.87 retrieving revision 1.88 diff -u -r1.87 -r1.88 --- mirrors.list 1999/10/20 05:18:25 1.87 +++ mirrors.list 1999/10/25 19:03:39 1.88 @@ -203,6 +203,7 @@ http it http://apache.systemy.it/ http it http://apache.unich.it/ [EMAIL PROTECTED] http it http://mathema.it/pub/apache/ [EMAIL PROTECTED] +http it http://www.navigando.net/mirror/apache [EMAIL PROTECTED] http jp http://SunSITE.sut.ac.jp/pub/apache/[EMAIL PROTECTED] http jp http://japache.infoscience.co.jp/apache/[EMAIL PROTECTED] http jp http://mirror.nucba.ac.jp/mirror/apachewww/ [EMAIL PROTECTED]
cvs commit: apache-2.0/src/os/unix iol_socket.c
manoj 99/10/25 14:00:33 Modified:src/os/unix iol_socket.c Log: We didn't zero out nbytes in one case of error; fix that. Revision ChangesPath 1.7 +1 -0 apache-2.0/src/os/unix/iol_socket.c Index: iol_socket.c === RCS file: /home/cvs/apache-2.0/src/os/unix/iol_socket.c,v retrieving revision 1.6 retrieving revision 1.7 diff -u -d -u -r1.6 -r1.7 --- iol_socket.c 1999/10/20 19:38:27 1.6 +++ iol_socket.c 1999/10/25 21:00:27 1.7 @@ -157,6 +157,7 @@ *nbytes = rv; \ return APR_SUCCESS; \ } \ +*nbytes = 0; \ return errno; \ \ } \
cvs commit: apache-2.0/src/os/unix iol_socket.c
manoj 99/10/25 14:01:09 Modified:src/os/unix iol_socket.c Log: Fix a misspelling in a comment Revision ChangesPath 1.8 +1 -1 apache-2.0/src/os/unix/iol_socket.c Index: iol_socket.c === RCS file: /home/cvs/apache-2.0/src/os/unix/iol_socket.c,v retrieving revision 1.7 retrieving revision 1.8 diff -u -d -u -r1.7 -r1.8 --- iol_socket.c 1999/10/25 21:00:27 1.7 +++ iol_socket.c 1999/10/25 21:01:08 1.8 @@ -167,7 +167,7 @@ iol_socket *iol = (iol_socket *)viol; \ int rv; \ \ -/* Present to zero until some bytes are actually written */ \ +/* Preset to zero until some bytes are actually written */ \ *nbytes = 0; \ if (!(iol-flags FD_NONBLOCKING_SET)) { \ if (iol-timeout 0) { \
cvs commit: apache-2.0/src/main buff.c
manoj 99/10/25 14:12:42 Modified:src/main buff.c Log: The first layer of buff changes to abandon errno. Now .*_with_errors and doerror are errno independant, but export the old errno-using interface. Revision ChangesPath 1.12 +54 -49apache-2.0/src/main/buff.c Index: buff.c === RCS file: /home/cvs/apache-2.0/src/main/buff.c,v retrieving revision 1.11 retrieving revision 1.12 diff -u -d -u -r1.11 -r1.12 --- buff.c1999/10/24 19:23:57 1.11 +++ buff.c1999/10/25 21:12:34 1.12 @@ -136,13 +136,11 @@ static void doerror(BUFF *fb, int direction) { -int errsave = errno; /* Save errno to prevent overwriting it below */ - +/* TODO: doerror should look at fb-saved_errno instead of errno */ +errno = fb-saved_errno; fb-flags |= (direction == B_RD ? B_RDERR : B_WRERR); if (fb-error != NULL) (*fb-error) (fb, direction, fb-error_data); - -errno = errsave; } /* Buffering routines */ @@ -316,24 +314,22 @@ /* a wrapper around iol_read which checks for errors and EOFs */ -static int read_with_errors(BUFF *fb, void *buf, int nbyte) +static ap_status_t read_with_errors(BUFF *fb, void *buf, ap_size_t nbyte, +ap_ssize_t *bytes_read) { -int rv; -ap_ssize_t bytes_read; +ap_status_t rv; -rv = iol_read(fb-iol, buf, nbyte, bytes_read); -if (rv == APR_SUCCESS bytes_read == 0) { +rv = iol_read(fb-iol, buf, nbyte, bytes_read); +if (rv == APR_SUCCESS *bytes_read == 0) { fb-flags |= B_EOF; } else if (rv != APR_SUCCESS) { -errno = rv; fb-saved_errno = rv; if (rv != APR_EAGAIN) { doerror(fb, B_RD); } -return -1; } -return bytes_read; +return rv; } @@ -345,6 +341,7 @@ API_EXPORT(int) ap_bread(BUFF *fb, void *buf, int nbyte) { int i, nrd; +ap_status_t rv; if (fb-flags B_RDERR) { errno = fb-saved_errno; @@ -363,7 +360,12 @@ fb-inptr += i; return i; } - return read_with_errors(fb, buf, nbyte); + rv = read_with_errors(fb, buf, nbyte, i); +if (rv == APR_SUCCESS) { +return i; +} +errno = rv; +return -1; } nrd = fb-incnt; @@ -387,16 +389,18 @@ /* do a single read */ if (nbyte = fb-bufsiz) { /* read directly into caller's buffer */ - i = read_with_errors(fb, buf, nbyte); - if (i == -1) { + rv = read_with_errors(fb, buf, nbyte, i); + if (rv != APR_SUCCESS) { +errno = rv; return nrd ? nrd : -1; } } else { /* read into hold buffer, then memcpy */ fb-inptr = fb-inbase; - i = read_with_errors(fb, fb-inptr, fb-bufsiz); - if (i == -1) { + rv = read_with_errors(fb, fb-inptr, fb-bufsiz, i); + if (rv != APR_SUCCESS) { +errno = rv; return nrd ? nrd : -1; } fb-incnt = i; @@ -431,6 +435,7 @@ API_EXPORT(int) ap_bgets(char *buff, int n, BUFF *fb) { int i, ch, ct; +ap_status_t rv; /* Can't do bgets on an unbuffered stream */ if (!(fb-flags B_RD)) { @@ -451,8 +456,9 @@ fb-incnt = 0; if (fb-flags B_EOF) break; - i = read_with_errors(fb, fb-inptr, fb-bufsiz); - if (i == -1) { + rv = read_with_errors(fb, fb-inptr, fb-bufsiz, i); + if (rv != APR_SUCCESS) { +errno = rv; buff[ct] = '\0'; return ct ? ct : -1; } @@ -540,51 +546,51 @@ /* A wrapper for writev which deals with error conditions and * bytes_sent. */ -static int writev_with_errors(BUFF *fb, const struct iovec *vec, int nvec) +static ap_status_t writev_with_errors(BUFF *fb, const struct iovec *vec, + int nvec, ap_ssize_t *bytes_written) { -int rv; -ap_ssize_t bytes_written; +ap_status_t rv; -rv = iol_writev(fb-iol, vec, nvec, bytes_written); +rv = iol_writev(fb-iol, vec, nvec, bytes_written); if (rv != APR_SUCCESS) { -errno = rv; fb-saved_errno = rv; if (rv != APR_EAGAIN) { doerror(fb, B_WR); } - return -1; } -fb-bytes_sent += bytes_written; -return bytes_written; +fb-bytes_sent += *bytes_written; +return rv; } static int writev_it_all(BUFF *fb, struct iovec *vec, int nvec) { int i; -int rv; +ap_status_t rv; +ap_ssize_t bytes_written; int total; i = 0; total = 0; while (i nvec) { - rv = writev_with_errors(fb, vec + i, nvec - i); - if (rv
cvs commit: apache-2.0/src/main buff.c
manoj 99/10/25 15:04:08 Modified:src/main buff.c Log: large_write now doesn't use errno internally, but exports an errnoish interface. Revision ChangesPath 1.13 +34 -24apache-2.0/src/main/buff.c Index: buff.c === RCS file: /home/cvs/apache-2.0/src/main/buff.c,v retrieving revision 1.12 retrieving revision 1.13 diff -u -d -u -r1.12 -r1.13 --- buff.c1999/10/25 21:12:34 1.12 +++ buff.c1999/10/25 22:04:05 1.13 @@ -563,39 +563,44 @@ } -static int writev_it_all(BUFF *fb, struct iovec *vec, int nvec) +static ap_status_t writev_it_all(BUFF *fb, struct iovec *vec, int nvec, + ap_ssize_t *bytes_written) { int i; ap_status_t rv; -ap_ssize_t bytes_written; -int total; +ap_ssize_t n; i = 0; -total = 0; +*bytes_written = 0; while (i nvec) { - rv = writev_with_errors(fb, vec + i, nvec - i, bytes_written); + rv = writev_with_errors(fb, vec + i, nvec - i, n); if (rv != APR_SUCCESS) { -errno = rv; - return total ? total : -1; +/* XXX - When we decide which way to go here, the ifdef will do away. the macro + * is undefined by default */ +#ifdef MIDWAY_ERROR_RETURNS_ERROR_BLAH_BLAH_BLAH +return rv; +#else +return *bytes_written ? APR_SUCCESS : rv; +#endif } - total += bytes_written; + *bytes_written += n; if (fb-flags B_NONBLOCK) { - return total; + return APR_SUCCESS; } /* recalculate to deal with partial writes */ - while (bytes_written 0) { -if (bytes_written vec[i].iov_len) { -vec[i].iov_base = (char *) vec[i].iov_base + bytes_written; -vec[i].iov_len -= bytes_written; + while (n 0) { +if (n vec[i].iov_len) { +vec[i].iov_base = (char *) vec[i].iov_base + n; +vec[i].iov_len -= n; break; } else { -bytes_written -= vec[i].iov_len; +n -= vec[i].iov_len; ++i; } } } -return total; +return APR_SUCCESS; } @@ -609,7 +614,8 @@ { struct iovec vec[2]; int nvec; -int rv; +ap_status_t rv; +ap_ssize_t bytes_written; ap_assert(nbyte 0); if (fb-outcnt) { @@ -624,19 +630,23 @@ vec[0].iov_len = nbyte; nvec = 1; } -rv = writev_it_all(fb, vec, nvec); -if (rv = 0) { - return rv; +rv = writev_it_all(fb, vec, nvec, bytes_written); +if (bytes_written == 0) { /* error or eof */ +if (rv == APR_SUCCESS) { + return 0; +} +errno = rv; +return -1; } -if (rv fb-outcnt) { +if (bytes_written fb-outcnt) { /* shift bytes forward in buffer */ - memmove(fb-outbase, fb-outbase + rv, fb-outcnt - rv); - fb-outcnt -= rv; + fb-outcnt -= bytes_written; + memmove(fb-outbase, fb-outbase + bytes_written, fb-outcnt); return 0; } -rv -= fb-outcnt; +bytes_written -= fb-outcnt; fb-outcnt = 0; -return rv; +return bytes_written; }