cvs commit: apache-2.0/src/lib/apr/threadproc/beos threadproc.h
dreid 99/10/22 15:30:45 Modified:src/lib/apr/include apr_portable.h src/lib/apr/threadproc/beos threadproc.h Log: The rest of the changes for BeOS the process change I made tonight. This will break some things but I'll fix them in the coming days. Revision ChangesPath 1.11 +1 -1 apache-2.0/src/lib/apr/include/apr_portable.h Index: apr_portable.h === RCS file: /home/cvs/apache-2.0/src/lib/apr/include/apr_portable.h,v retrieving revision 1.10 retrieving revision 1.11 diff -u -r1.10 -r1.11 --- apr_portable.h1999/10/21 16:43:10 1.10 +++ apr_portable.h1999/10/22 22:30:41 1.11 @@ -132,7 +132,7 @@ typedef int ap_os_sock_t; typedef struct os_lock_t ap_os_lock_t; typedef thread_id ap_os_thread_t; -typedef pid_t ap_os_proc_t; +typedef thread_id ap_os_proc_t; typedef int ap_os_threadkey_t; typedef struct timevalap_os_time_t; 1.4 +1 -0 apache-2.0/src/lib/apr/threadproc/beos/threadproc.h Index: threadproc.h === RCS file: /home/cvs/apache-2.0/src/lib/apr/threadproc/beos/threadproc.h,v retrieving revision 1.3 retrieving revision 1.4 diff -u -r1.3 -r1.4 --- threadproc.h 1999/09/10 14:00:47 1.3 +++ threadproc.h 1999/10/22 22:30:44 1.4 @@ -118,6 +118,7 @@ struct proc_t { ap_context_t *cntxt; pid_t pid; +thread_id tid; struct procattr_t *attr; };
cvs commit: apache-2.0/src/main buff.c
manoj 99/10/22 15:08:18 Modified:src/include buff.h src/main buff.c Log: Change ap_bgetopt and ap_bsetopt to use APR-style return codes instead of errno. There's no effect on other Apache code since nothing actually checks return values on these functions. Revision ChangesPath 1.4 +2 -2 apache-2.0/src/include/buff.h Index: buff.h === RCS file: /home/cvs/apache-2.0/src/include/buff.h,v retrieving revision 1.3 retrieving revision 1.4 diff -u -d -u -r1.3 -r1.4 --- buff.h1999/08/31 05:32:17 1.3 +++ buff.h1999/10/22 22:08:11 1.4 @@ -169,8 +169,8 @@ /* XXX - unused right now - mvsk */ API_EXPORT(BUFF *) ap_bopenf(ap_context_t *a, const char *name, int flg, int mode); -API_EXPORT(int) ap_bsetopt(BUFF *fb, int optname, const void *optval); -API_EXPORT(int) ap_bgetopt(BUFF *fb, int optname, void *optval); +API_EXPORT(ap_status_t) ap_bsetopt(BUFF *fb, int optname, const void *optval); +API_EXPORT(ap_status_t) ap_bgetopt(BUFF *fb, int optname, void *optval); API_EXPORT(int) ap_bsetflag(BUFF *fb, int flag, int value); API_EXPORT(int) ap_bclose(BUFF *fb); 1.10 +6 -21 apache-2.0/src/main/buff.c Index: buff.c === RCS file: /home/cvs/apache-2.0/src/main/buff.c,v retrieving revision 1.9 retrieving revision 1.10 diff -u -d -u -r1.9 -r1.10 --- buff.c1999/10/21 19:00:18 1.9 +++ buff.c1999/10/22 22:08:15 1.10 @@ -201,8 +201,6 @@ API_EXPORT(int) ap_bsetopt(BUFF *fb, int optname, const void *optval) { -int rv; - switch (optname) { case BO_BYTECT: fb->bytes_sent = *(const long int *) optval - (long int) fb->outcnt; @@ -214,21 +212,14 @@ fb->flags |= B_NONBLOCK; /* XXX: should remove B_WR now... */ } - rv = iol_setopt(fb->iol, AP_IOL_TIMEOUT, optval); -if (rv == APR_SUCCESS) { -return 0; -} -errno = rv; -return -1; + return iol_setopt(fb->iol, AP_IOL_TIMEOUT, optval); } -errno = EINVAL; -return -1; +return APR_EINVAL; } -API_EXPORT(int) ap_bgetopt(BUFF *fb, int optname, void *optval) +API_EXPORT(ap_status_t) ap_bgetopt(BUFF *fb, int optname, void *optval) { long int bs; -int rv; switch (optname) { case BO_BYTECT: @@ -236,18 +227,12 @@ if (bs < 0L) bs = 0L; *(long int *) optval = bs; - return 0; + return APR_SUCCESS; case BO_TIMEOUT: - rv = iol_getopt(fb->iol, AP_IOL_TIMEOUT, optval); -if (rv == APR_SUCCESS) { -return 0; -} -errno = rv; -return -1; + return iol_getopt(fb->iol, AP_IOL_TIMEOUT, optval); } -errno = EINVAL; -return -1; +return APR_EINVAL; } static void start_chunk(BUFF *fb)
cvs commit: apache-2.0/src/lib/apr/threadproc/beos apr_proc_stub.c proc.c
dreid 99/10/22 15:06:17 Modified:src/lib/apr/threadproc/beos apr_proc_stub.c proc.c Log: Fiz a small problem with the thread_id not being returned by correctly by ap_get_os_proc. Revision ChangesPath 1.3 +2 -2 apache-2.0/src/lib/apr/threadproc/beos/apr_proc_stub.c Index: apr_proc_stub.c === RCS file: /home/cvs/apache-2.0/src/lib/apr/threadproc/beos/apr_proc_stub.c,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- apr_proc_stub.c 1999/10/10 17:25:31 1.2 +++ apr_proc_stub.c 1999/10/22 22:06:16 1.3 @@ -32,7 +32,7 @@ size_t readbuf = 100; readbuffer = (char*)malloc(sizeof(char) * readbuf); - *newargs = (char*)malloc(sizeof(char) * (argc - 1)); + newargs = (char**)malloc(sizeof(char*) * (argc - 1)); buffer = (void*)malloc(sizeof(struct pipefd)); /* this will block until we get the data */ @@ -64,7 +64,7 @@ if (directory != NULL) chdir(directory); - execve (progname, newargs, pfd->envp); + execve (progname, newargs, NULL); return (-1); } 1.8 +3 -4 apache-2.0/src/lib/apr/threadproc/beos/proc.c Index: proc.c === RCS file: /home/cvs/apache-2.0/src/lib/apr/threadproc/beos/proc.c,v retrieving revision 1.7 retrieving revision 1.8 diff -u -r1.7 -r1.8 --- proc.c1999/10/13 21:35:39 1.7 +++ proc.c1999/10/22 22:06:16 1.8 @@ -224,8 +224,7 @@ } resume_thread(newproc); send_data(newproc, 0, (void*)sp, sizeof(struct send_pipe)); - -(*new)->pid = newproc; +(*new)->tid = newproc; /* before we go charging on we need the new process to get to a * certain point. When it gets there it'll let us know and we @@ -328,7 +327,7 @@ if (proc == NULL) { return APR_ENOPROC; } -theproc = &(proc->pid); +*theproc = proc->tid; return APR_SUCCESS; } @@ -342,7 +341,7 @@ (*proc) = (struct proc_t *)ap_palloc(cont, sizeof(struct proc_t)); (*proc)->cntxt = cont; } -(*proc)->pid = *theproc; +(*proc)->tid = *theproc; return APR_SUCCESS; }
cvs commit: apache-site/info apache_books.html
martin 99/10/22 14:09:17 Modified:info apache_books.html Log: Minor fix Revision ChangesPath 1.16 +2 -2 apache-site/info/apache_books.html Index: apache_books.html === RCS file: /export/home/cvs/apache-site/info/apache_books.html,v retrieving revision 1.15 retrieving revision 1.16 diff -u -r1.15 -r1.16 --- apache_books.html 1999/10/22 21:05:13 1.15 +++ apache_books.html 1999/10/22 21:09:08 1.16 @@ -91,11 +91,11 @@ http://www.dpunkt.de/webserver_betreiben/"; - >Webserver betreiben + >Webserver betreiben -- HTTP und Apache Author: Jacob Schröder, Martin Müller -Published by: dpunkt Verlag heidelberg, Germany +Published by: dpunkt Verlag, Heidelberg, Germany ISBN: 3-932588-00-2
cvs commit: apache-site/info apache_books.html
martin 99/10/22 14:05:15 Modified:info apache_books.html Log: Oops! I didn't mean to *replace* this entry, I wanted to COPY it. Revert lost book. Revision ChangesPath 1.15 +15 -0 apache-site/info/apache_books.html Index: apache_books.html === RCS file: /home/cvs/apache-site/info/apache_books.html,v retrieving revision 1.14 retrieving revision 1.15 diff -u -r1.14 -r1.15 --- apache_books.html 1999/10/22 16:07:35 1.14 +++ apache_books.html 1999/10/22 21:05:13 1.15 @@ -29,6 +29,21 @@ + http://www.idgbooks.com/cgi/fill_out_template.pl?idgbook:0-7645-3306-1:book-idg"; + >Apache Server Administrators Handbook + + Author: Mohammed J. Kabir + +Published by: IDG Books Worldwide + +ISBN: 0-7645-3306-1 + +Language: English + + + + + http://www.coriolis.com/bookstore/bookdetail.cfm?id=1576104680"; >Apache Server Commentary
cvs commit: apache-site/info apache_books.html
martin 99/10/22 09:07:35 Modified:info apache_books.html Log: Added german book "Webserver betreiben" (even about current 1.3.9!) Revision ChangesPath 1.14 +15 -15apache-site/info/apache_books.html Index: apache_books.html === RCS file: /home/cvs/apache-site/info/apache_books.html,v retrieving revision 1.13 retrieving revision 1.14 diff -u -r1.13 -r1.14 --- apache_books.html 1999/06/07 23:09:45 1.13 +++ apache_books.html 1999/10/22 16:07:35 1.14 @@ -29,21 +29,6 @@ - http://www.idgbooks.com/cgi/fill_out_template.pl?idgbook:0-7645-3306-1:book-idg"; - >Apache Server Administrators Handbook - - Author: Mohammed J. Kabir - -Published by: IDG Books Worldwide - -ISBN: 0-7645-3306-1 - -Language: English - - - - - http://www.coriolis.com/bookstore/bookdetail.cfm?id=1576104680"; >Apache Server Commentary @@ -85,6 +70,21 @@ Language: English Note: Includes CD-ROM + + + + + + http://www.dpunkt.de/webserver_betreiben/"; + >Webserver betreiben + + Author: Jacob Schröder, Martin Müller + +Published by: dpunkt Verlag heidelberg, Germany + +ISBN: 3-932588-00-2 + +Language: German
cvs commit: apache-2.0/src/modules/standard mod_auth_anon.c mod_auth_db.c mod_auth_dbm.c mod_auth_digest.c mod_cern_meta.c mod_digest.c mod_expires.c mod_include.c mod_info.c mod_mime_magic.c mod_rewrite.c
martin 99/10/22 09:01:32 Modified:src/modules/standard mod_auth_anon.c mod_auth_db.c mod_auth_dbm.c mod_auth_digest.c mod_cern_meta.c mod_digest.c mod_expires.c mod_include.c mod_info.c mod_mime_magic.c mod_rewrite.c Log: I am not claiming that the modules work now, but at least the parameter lists are prepared for the updated ap_log_rerror() format. BTW: What is APLOG_NOERROR for now that we have an explicit error code? This is still WIP! Revision ChangesPath 1.6 +2 -2 apache-2.0/src/modules/standard/mod_auth_anon.c Index: mod_auth_anon.c === RCS file: /home/cvs/apache-2.0/src/modules/standard/mod_auth_anon.c,v retrieving revision 1.5 retrieving revision 1.6 diff -u -r1.5 -r1.6 --- mod_auth_anon.c 1999/10/11 22:39:47 1.5 +++ mod_auth_anon.c 1999/10/22 16:01:24 1.6 @@ -251,7 +251,7 @@ || ((strpbrk("@", sent_pw) != NULL) && (strpbrk(".", sent_pw) != NULL { if (sec->auth_anon_logemail && ap_is_initial_req(r)) { - ap_log_rerror(APLOG_MARK, APLOG_NOERRNO|APLOG_INFO, r, + ap_log_rerror(APLOG_MARK, APLOG_NOERRNO|APLOG_INFO, APR_SUCCESS, r, "Anonymous: Passwd <%s> Accepted", sent_pw ? sent_pw : "\'none\'"); } @@ -259,7 +259,7 @@ } else { if (sec->auth_anon_authoritative) { - ap_log_rerror(APLOG_MARK, APLOG_NOERRNO|APLOG_ERR, r, + ap_log_rerror(APLOG_MARK, APLOG_NOERRNO|APLOG_ERR, APR_SUCCESS, r, "Anonymous: Authoritative, Passwd <%s> not accepted", sent_pw ? sent_pw : "\'none\'"); return AUTH_REQUIRED; 1.5 +5 -5 apache-2.0/src/modules/standard/mod_auth_db.c Index: mod_auth_db.c === RCS file: /home/cvs/apache-2.0/src/modules/standard/mod_auth_db.c,v retrieving revision 1.4 retrieving revision 1.5 diff -u -r1.4 -r1.5 --- mod_auth_db.c 1999/10/11 22:39:48 1.4 +++ mod_auth_db.c 1999/10/22 16:01:24 1.5 @@ -166,7 +166,7 @@ #else if (!(f = dbopen(auth_dbpwfile, O_RDONLY, 0664, DB_HASH, NULL))) { #endif - ap_log_rerror(APLOG_MARK, APLOG_ERR, r, + ap_log_rerror(APLOG_MARK, APLOG_ERR, errno, r, "could not open db auth file: %s", auth_dbpwfile); return NULL; } @@ -237,7 +237,7 @@ if (!(real_pw = get_db_pw(r, r->user, sec->auth_dbpwfile))) { if (!(sec->auth_dbauthoritative)) return DECLINED; - ap_log_rerror(APLOG_MARK, APLOG_NOERRNO|APLOG_ERR, r, + ap_log_rerror(APLOG_MARK, APLOG_NOERRNO|APLOG_ERR, 0, r, "DB user %s not found: %s", r->user, r->filename); ap_note_basic_auth_failure(r); return AUTH_REQUIRED; @@ -249,7 +249,7 @@ } invalid_pw = ap_validate_password(sent_pw, real_pw); if (invalid_pw != NULL) { - ap_log_rerror(APLOG_MARK, APLOG_NOERRNO|APLOG_ERR, r, + ap_log_rerror(APLOG_MARK, APLOG_NOERRNO|APLOG_ERR, 0, r, "DB user %s: authentication failure for \"%s\": %s", r->user, r->uri, invalid_pw); ap_note_basic_auth_failure(r); @@ -295,7 +295,7 @@ if (!(groups = get_db_grp(r, user, sec->auth_dbgrpfile))) { if (!(sec->auth_dbauthoritative)) return DECLINED; - ap_log_rerror(APLOG_MARK, APLOG_NOERRNO|APLOG_ERR, r, + ap_log_rerror(APLOG_MARK, APLOG_NOERRNO|APLOG_ERR, 0, r, "user %s not in DB group file %s: %s", user, sec->auth_dbgrpfile, r->filename); ap_note_basic_auth_failure(r); @@ -311,7 +311,7 @@ return OK; } } - ap_log_rerror(APLOG_MARK, APLOG_NOERRNO|APLOG_ERR, r, + ap_log_rerror(APLOG_MARK, APLOG_NOERRNO|APLOG_ERR, 0, r, "user %s not in right group: %s", user, r->filename); ap_note_basic_auth_failure(r); return AUTH_REQUIRED; 1.5 +5 -5 apache-2.0/src/modules/standard/mod_auth_dbm.c Index: mod_auth_dbm.c === RCS file: /home/cvs/apache-2.0/src/modules/standard/mod_auth_dbm.c,v retrieving revision 1.4 retrieving revision 1.5 diff -u -r1.4 -r1.5 --- mod_auth_dbm.c1999/10/11 22:39:48 1.4 +++ mod_auth_dbm.c1999/10/22 16:01:24 1.5 @@ -159,7 +159,7 @@ if (!(f = dbm_open(auth_dbmpwfile, O_RDONLY, 0664))) { - ap_log_rerror(APLOG_MARK, APLOG_ERR, r, + ap_log_rerror(APLOG_MARK, APLOG_ERR, errno, r, "could not open dbm auth fil
cvs commit: apache-site index.html
martin 99/10/22 08:54:32 Modified:.index.html Log: Finish removal of the Systems'99 link because the fair has just finished. Revision ChangesPath 1.6 +0 -5 apache-site/index.html Index: index.html === RCS file: /home/cvs/apache-site/index.html,v retrieving revision 1.5 retrieving revision 1.6 diff -u -r1.5 -r1.6 --- index.html1999/10/18 23:13:52 1.5 +++ index.html1999/10/22 15:54:31 1.6 @@ -67,11 +67,6 @@ - -See - us at Systems 99 in Munich, Germany - Apache HTTP Server Y2K Readiness Statement
cvs commit: apache-2.0/src/modules/standard mod_speling.c
martin 99/10/22 08:50:14 Modified:src/modules/standard mod_speling.c Log: **WARNING** DO NOT USE YET - interim state This module now compiles, but it appears to loop. I'm currently on the Systems'99 trade fair and will continue work on the module after returning home. Pool types have been adapted to ap_context_t; ap_popendir() has been replaced by the new ap_opendir() APR function. Revision ChangesPath 1.5 +41 -23apache-2.0/src/modules/standard/mod_speling.c Index: mod_speling.c === RCS file: /home/cvs/apache-2.0/src/modules/standard/mod_speling.c,v retrieving revision 1.4 retrieving revision 1.5 diff -u -r1.4 -r1.5 --- mod_speling.c 1999/09/23 19:29:13 1.4 +++ mod_speling.c 1999/10/22 15:50:12 1.5 @@ -60,6 +60,8 @@ #include "http_core.h" #include "http_config.h" #include "http_log.h" +#include "apr_file_io.h" +#include "../../lib/apr/misc/unix/misc.h" /* mod_speling.c - by Alexei Kosut <[EMAIL PROTECTED]> June, 1996 * @@ -229,9 +231,8 @@ spconfig *cfg; char *good, *bad, *postgood, *url; int filoc, dotloc, urlen, pglen; -DIR *dirp; -struct DIR_TYPE *dir_entry; ap_array_header_t *candidates = NULL; +ap_dir_t *dir; cfg = ap_get_module_config(r->per_dir_config, &speling_module); if (!cfg->enabled) { @@ -289,8 +290,8 @@ url = ap_pstrndup(r->pool, r->uri, (urlen - pglen)); /* Now open the directory and do ourselves a check... */ -dirp = ap_popendir(r->pool, good); -if (dirp == NULL) { /* Oops, not a directory... */ +if (ap_opendir(&dir, good, r->pool) != APR_SUCCESS) { +/* Oops, not a directory... */ return DECLINED; } @@ -301,40 +302,51 @@ dotloc = strlen(bad); } -while ((dir_entry = readdir(dirp)) != NULL) { +while (ap_readdir(dir) == APR_SUCCESS) { sp_reason q; + char *fname; +ap_status_t ok; +ok = ap_get_dir_filename(&fname, dir); + +/*@@*/ +ap_log_rerror(APLOG_MARK, APLOG_NOERRNO | APLOG_INFO, APR_SUCCESS, + r, __FILE__": Check_Speling `%s' in `%s'", r->filename, good, ok==APR_SUCCESS ? fname : "ERROR"); +/*@@*/ /* * If we end up with a "fixed" URL which is identical to the * requested one, we must have found a broken symlink or some such. * Do _not_ try to redirect this, it causes a loop! */ -if (strcmp(bad, dir_entry->d_name) == 0) { -ap_pclosedir(r->pool, dirp); +if (strcmp(bad, fname) == 0) { +ap_closedir(dir); return OK; } + /* * miscapitalization errors are checked first (like, e.g., lower case * file, upper case request) */ -else if (strcasecmp(bad, dir_entry->d_name) == 0) { +else if (strcasecmp(bad, fname) == 0) { misspelled_file *sp_new; sp_new = (misspelled_file *) ap_push_array(candidates); -sp_new->name = ap_pstrdup(r->pool, dir_entry->d_name); +sp_new->name = ap_pstrdup(r->pool, fname); sp_new->quality = SP_MISCAPITALIZED; } + /* * simple typing errors are checked next (like, e.g., * missing/extra/transposed char) */ -else if ((q = spdist(bad, dir_entry->d_name)) != SP_VERYDIFFERENT) { +else if ((q = spdist(bad, fname)) != SP_VERYDIFFERENT) { misspelled_file *sp_new; sp_new = (misspelled_file *) ap_push_array(candidates); -sp_new->name = ap_pstrdup(r->pool, dir_entry->d_name); +sp_new->name = ap_pstrdup(r->pool, fname); sp_new->quality = q; } + /* * The spdist() should have found the majority of the misspelled * requests. It is of questionable use to continue looking for @@ -367,24 +379,25 @@ * (e.g. foo.gif and foo.html) This code will pick the first one * it finds. Better than a Not Found, though. */ -int entloc = ap_ind(dir_entry->d_name, '.'); +int entloc = ap_ind(fname, '.'); if (entloc == -1) { -entloc = strlen(dir_entry->d_name); +entloc = strlen(fname); } if ((dotloc == entloc) -&& !strncasecmp(bad, dir_entry->d_name, dotloc)) { +&& !strncasecmp(bad, fname, dotloc)) { misspelled_file *sp_new; sp_new = (misspelled_file *) ap_push_array(candidates); -sp_new->name = ap_pstrdup(r->pool, dir_entry->d_name); +sp_new->name = ap_pstr
cvs commit: apache-2.0/src/modules/mpm/mpmt_beos mpmt_beos.c
dreid 99/10/22 04:28:34 Modified:src/modules/mpm/mpmt_beos mpmt_beos.c Log: Bring the BeOS mpm up to date with the error logging changes. Revision ChangesPath 1.4 +42 -37apache-2.0/src/modules/mpm/mpmt_beos/mpmt_beos.c Index: mpmt_beos.c === RCS file: /home/cvs/apache-2.0/src/modules/mpm/mpmt_beos/mpmt_beos.c,v retrieving revision 1.3 retrieving revision 1.4 diff -u -r1.3 -r1.4 --- mpmt_beos.c 1999/10/13 22:37:19 1.3 +++ mpmt_beos.c 1999/10/22 11:28:33 1.4 @@ -344,14 +344,14 @@ case 7: /* 1.4sec */ /* ok, now it's being annoying */ ap_log_error(APLOG_MARK, APLOG_NOERRNO|APLOG_WARNING, - server_conf, + errno, server_conf, "child process %d still did not exit, sending a SIGTERM", pid); kill(pid, SIGTERM); break; case 8: /* 6 sec */ /* die child scum */ - ap_log_error(APLOG_MARK, APLOG_NOERRNO|APLOG_ERR, server_conf, + ap_log_error(APLOG_MARK, APLOG_NOERRNO|APLOG_ERR, errno, server_conf, "child process %d still did not exit, sending a SIGKILL", pid); kill(pid, SIGKILL); @@ -362,7 +362,7 @@ * exited, we will likely fail to bind to the port * after the restart. */ - ap_log_error(APLOG_MARK, APLOG_NOERRNO|APLOG_ERR, server_conf, + ap_log_error(APLOG_MARK, APLOG_NOERRNO|APLOG_ERR, errno, server_conf, "could not make child process %d exit, " "attempting to continue anyway", pid); break; @@ -526,33 +526,33 @@ sa.sa_handler = sig_coredump; if (sigaction(SIGSEGV, &sa, NULL) < 0) - ap_log_error(APLOG_MARK, APLOG_WARNING, server_conf, "sigaction(SIGSEGV)"); + ap_log_error(APLOG_MARK, APLOG_WARNING, errno, server_conf, "sigaction(SIGSEGV)"); if (sigaction(SIGBUS, &sa, NULL) < 0) - ap_log_error(APLOG_MARK, APLOG_WARNING, server_conf, "sigaction(SIGBUS)"); + ap_log_error(APLOG_MARK, APLOG_WARNING, errno, server_conf, "sigaction(SIGBUS)"); if (sigaction(SIGABRT, &sa, NULL) < 0) - ap_log_error(APLOG_MARK, APLOG_WARNING, server_conf, "sigaction(SIGABRT)"); + ap_log_error(APLOG_MARK, APLOG_WARNING, errno, server_conf, "sigaction(SIGABRT)"); if (sigaction(SIGILL, &sa, NULL) < 0) - ap_log_error(APLOG_MARK, APLOG_WARNING, server_conf, "sigaction(SIGILL)"); + ap_log_error(APLOG_MARK, APLOG_WARNING, errno, server_conf, "sigaction(SIGILL)"); sa.sa_flags = 0; } sa.sa_handler = sig_term; if (sigaction(SIGTERM, &sa, NULL) < 0) - ap_log_error(APLOG_MARK, APLOG_WARNING, server_conf, "sigaction(SIGTERM)"); + ap_log_error(APLOG_MARK, APLOG_WARNING, errno, server_conf, "sigaction(SIGTERM)"); if (sigaction(SIGINT, &sa, NULL) < 0) -ap_log_error(APLOG_MARK, APLOG_WARNING, server_conf, "sigaction(SIGINT)"); +ap_log_error(APLOG_MARK, APLOG_WARNING, errno, server_conf, "sigaction(SIGINT)"); sa.sa_handler = SIG_IGN; if (sigaction(SIGPIPE, &sa, NULL) < 0) - ap_log_error(APLOG_MARK, APLOG_WARNING, server_conf, "sigaction(SIGPIPE)"); + ap_log_error(APLOG_MARK, APLOG_WARNING, errno, server_conf, "sigaction(SIGPIPE)"); /* we want to ignore HUPs and WINCH while we're busy processing one */ sigaddset(&sa.sa_mask, SIGHUP); sigaddset(&sa.sa_mask, SIGWINCH); sa.sa_handler = restart; if (sigaction(SIGHUP, &sa, NULL) < 0) - ap_log_error(APLOG_MARK, APLOG_WARNING, server_conf, "sigaction(SIGHUP)"); + ap_log_error(APLOG_MARK, APLOG_WARNING, errno, server_conf, "sigaction(SIGHUP)"); if (sigaction(SIGWINCH, &sa, NULL) < 0) - ap_log_error(APLOG_MARK, APLOG_WARNING, server_conf, "sigaction(SIGWINCH)"); + ap_log_error(APLOG_MARK, APLOG_WARNING, errno, server_conf, "sigaction(SIGWINCH)"); } static void process_child_status(int pid, ap_wait_t status) @@ -562,7 +562,7 @@ */ if ((WIFEXITED(status)) && WEXITSTATUS(status) == APEXIT_CHILDFATAL) { - ap_log_error(APLOG_MARK, APLOG_ALERT|APLOG_NOERRNO, server_conf, + ap_log_error(APLOG_MARK, APLOG_ALERT|APLOG_NOERRNO, errno, server_conf, "Child %d returned a Fatal error... \n" "Apache is exiting!", pid); @@ -580,7 +580,7 @@ #ifdef WCOREDUMP if (WCOREDUMP(status)) { ap_log_error(APLOG_MARK, APLOG_NOERRNO|APLOG_NOTICE, - server_conf,
cvs commit: apache-2.0/src/lib/apr/network_io/beos networkio.h
dreid 99/10/22 04:26:55 Modified:src/lib/apr/network_io/beos networkio.h Log: Correct a small typo that Roy pointed out. Revision ChangesPath 1.5 +1 -1 apache-2.0/src/lib/apr/network_io/beos/networkio.h Index: networkio.h === RCS file: /home/cvs/apache-2.0/src/lib/apr/network_io/beos/networkio.h,v retrieving revision 1.4 retrieving revision 1.5 diff -u -r1.4 -r1.5 --- networkio.h 1999/10/22 09:27:57 1.4 +++ networkio.h 1999/10/22 11:26:54 1.5 @@ -63,7 +63,7 @@ * * It will be included in the next release, but until then... */ #if __POWER_PC__ -#define iasascii(c) (((c) & ~0x7f)==0) +#define isascii(c) (((c) & ~0x7f)==0) #endif #include "apr_general.h"
cvs commit: apache-2.0/src/os/beos beosd.c iol_socket.c
dreid 99/10/22 04:25:42 Modified:src/os/beos beosd.c iol_socket.c Log: This brings BeOS back up to date with the recent changes. Revision ChangesPath 1.4 +4 -4 apache-2.0/src/os/beos/beosd.c Index: beosd.c === RCS file: /home/cvs/apache-2.0/src/os/beos/beosd.c,v retrieving revision 1.3 retrieving revision 1.4 diff -u -r1.3 -r1.4 --- beosd.c 1999/09/07 22:30:59 1.3 +++ beosd.c 1999/10/22 11:25:41 1.4 @@ -131,7 +131,7 @@ uid_t uid = atoi(&beosd_config.user_name[1]); if ((ent = getpwuid(uid)) == NULL) { - ap_log_error(APLOG_MARK, APLOG_ALERT, NULL, + ap_log_error(APLOG_MARK, APLOG_ALERT, errno, NULL, "getpwuid: couldn't determine user name from uid %u, " "you probably need to modify the User directive", (unsigned)uid); @@ -144,7 +144,7 @@ name = beosd_config.user_name; if (setgid(beosd_config.group_id) == -1) { - ap_log_error(APLOG_MARK, APLOG_ALERT, NULL, + ap_log_error(APLOG_MARK, APLOG_ALERT, errno, NULL, "setgid: unable to set group id to Group %u", (unsigned)beosd_config.group_id); return -1; @@ -153,7 +153,7 @@ /* Reset `groups' attributes. */ if (initgroups(name, beosd_config.group_id) == -1) { - ap_log_error(APLOG_MARK, APLOG_ALERT, NULL, + ap_log_error(APLOG_MARK, APLOG_ALERT, errno, NULL, "initgroups: unable to set groups for User %s " "and Group %u", name, (unsigned)beosd_config.group_id); return -1; @@ -172,7 +172,7 @@ /* Only try to switch if we're running as root */ if (!geteuid() && ( setuid(beosd_config.user_id) == -1)) { - ap_log_error(APLOG_MARK, APLOG_ALERT, NULL, + ap_log_error(APLOG_MARK, APLOG_ALERT, errno, NULL, "setuid: unable to change uid"); return -1; } 1.2 +55 -36apache-2.0/src/os/beos/iol_socket.c Index: iol_socket.c === RCS file: /home/cvs/apache-2.0/src/os/beos/iol_socket.c,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- iol_socket.c 1999/07/12 22:51:14 1.1 +++ iol_socket.c 1999/10/22 11:25:42 1.2 @@ -58,6 +58,7 @@ #include "httpd.h" #include "ap_iol.h" +#include "iol_socket.h" #include #include @@ -72,7 +73,8 @@ int timeout; } iol_socket; -static int beos_setopt(ap_iol *viol, ap_iol_option opt, const void *value) +static ap_status_t beos_setopt(ap_iol *viol, ap_iol_option opt, + const void *value) { iol_socket *iol = (iol_socket *)viol; @@ -81,13 +83,12 @@ iol->timeout = *(const int *)value; break; default: - errno = EINVAL; - return -1; + return APR_EINVAL; } -return 0; +return APR_SUCCESS; } -static int beos_getopt(ap_iol *viol, ap_iol_option opt, void *value) +static ap_status_t beos_getopt(ap_iol *viol, ap_iol_option opt, void *value) { iol_socket *iol = (iol_socket *)viol; @@ -96,16 +97,20 @@ *(int *)value = iol->timeout; break; default: - errno = EINVAL; - return -1; + return APR_EINVAL; } -return 0; +return APR_SUCCESS; } -static int set_nonblock(int fd) +static ap_status_t set_nonblock(int fd) { int on = 1; -return setsockopt(fd, SOL_SOCKET, SO_NONBLOCK, &on, sizeof(on)); +int rv; +rv = setsockopt(fd, SOL_SOCKET, SO_NONBLOCK, &on, sizeof(int)); + +if (rv == 0) +return APR_SUCCESS; +return errno; } /* the timeout code is a separate routine because it requires @@ -115,7 +120,7 @@ /* this macro expands into the four basic i/o methods */ #define method(name, args, syscall, selread, selwrite) \ -static int beos_##name##_timeout args \ +static ap_status_t beos_##name##_timeout args \ { \ iol_socket *iol = (iol_socket *)viol; \ fd_set fdset; \ @@ -130,27 +135,38 @@ rv = select(iol->fd + 1, selread, selwrite, NULL, iol->timeout < 0 ? NULL : &tv); \ } while (rv == -1 && errno == EINTR); \ if (!FD_ISSET(iol->fd, &fdset)) { \ - errno = ETIMEDOUT; \ - return -1; \ + return APR_ETIMEDOUT; \ } \ do { \ rv = syscall(iol->fd, arg1, arg2, 0); \ } while (rv == -1 && errno == EINTR); \ - return rv; \ +if (rv >= 0) { \ +*nbytes = rv; \ +return APR_SUCCESS; \ +} \ + return errno; \ + \
cvs commit: apache-site/systems99 index.html systems-hall-a3.gif systems-logo.jpg systems99.gif
martin 99/10/22 02:59:38 Removed: systems99 index.html systems-hall-a3.gif systems-logo.jpg systems99.gif Log: Last day of Systems'99 -- prepare deletion of Systems'99 directory
cvs commit: apache-site/contributors index.html
martin 99/10/22 02:56:09 Modified:contributors index.html Log: Fix my company name (it's Fujitsu-Siemens Computers now) Revision ChangesPath 1.78 +2 -2 apache-site/contributors/index.html Index: index.html === RCS file: /home/cvs/apache-site/contributors/index.html,v retrieving revision 1.77 retrieving revision 1.78 diff -u -r1.77 -r1.78 --- index.html1999/10/11 04:20:33 1.77 +++ index.html1999/10/22 09:56:06 1.78 @@ -386,8 +386,8 @@ Name: Martin Kraemer -Email: Martin.Kraemer@mch.sni.de -Organization: Siemens AG +Email: Martin.Kraemer@mchp.siemens.de +Organization: http://www.fujitsu-siemens.com/";>Fujitsu-Siemens Computers Occupation: Software Development Engineer Location: Munich, Germany Comments: I like portable code that's easily understood.
cvs commit: apache-2.0/src/lib/apr/network_io/beos networkio.h
dreid 99/10/22 02:28:01 Modified:src/lib/apr/network_io/beos networkio.h Log: This small addition is needed to allow APR to build on PowerPC. Submitted by: Matt Zahorik Reviewed by: David Reid Revision ChangesPath 1.4 +8 -0 apache-2.0/src/lib/apr/network_io/beos/networkio.h Index: networkio.h === RCS file: /home/cvs/apache-2.0/src/lib/apr/network_io/beos/networkio.h,v retrieving revision 1.3 retrieving revision 1.4 diff -u -r1.3 -r1.4 --- networkio.h 1999/10/08 21:27:37 1.3 +++ networkio.h 1999/10/22 09:27:57 1.4 @@ -58,6 +58,14 @@ #include #include + +/* The definition of isascii was missed from the PowerPC ctype.h + * + * It will be included in the next release, but until then... */ +#if __POWER_PC__ +#define iasascii(c) (((c) & ~0x7f)==0) +#endif + #include "apr_general.h" #include /* for the ntohs definition */
cvs commit: apache-1.3/src/main buff.c
stoddard99/10/21 22:10:09 Modified:src/main buff.c Log: Apache for Windows can get caught in a tight loop whild handling CGI requests. Here's how: sendwithtimeout() sets errno to EINTR on a timeout and returns SOCKET_ERROR (-1) to the caller. The caller reissues sendwithtimeout, which then succeeds. errno is left set to EINTR. Eventually, another read is attempted on one of the CGI pipes (ap_bgets in mod_cgi, or ap_send_fb_length) which goes down into ap_read. ap_read issues a Win32 ReadFile to read from the pipe. If this read fails, it returns -1 to the caller. If errno is still set to EINTR, the caller will retry the read and so the loop begins. The solution is quite simple. buff.c relies heavily on errno. Anytime Win32 calls are used in code that uses errno, we need to always, ALWAYS explicitly set errno when a Win32 system call fails (via either errno = GetLastError() or errno = WSAGetLastError()). Since Win32 does not use EINTR, this problem should not occur. PR: 3599 3971 4245 4430 4758 5171 Submitted by: Thanks to [EMAIL PROTECTED] who discovered the loopig section of code. Revision ChangesPath 1.90 +19 -15apache-1.3/src/main/buff.c Index: buff.c === RCS file: /home/cvs/apache-1.3/src/main/buff.c,v retrieving revision 1.89 retrieving revision 1.90 diff -u -r1.89 -r1.90 --- buff.c1999/10/21 20:44:32 1.89 +++ buff.c1999/10/22 05:10:06 1.90 @@ -172,12 +172,12 @@ retry=1; #ifdef NETWARE -ap_log_error(APLOG_MARK,APLOG_DEBUG,NULL, - "select claimed we could write, but in fact we couldn't."); - ThreadSwitchWithDelay(); +ap_log_error(APLOG_MARK,APLOG_DEBUG,NULL, + "select claimed we could write, but in fact we couldn't."); +ThreadSwitchWithDelay(); #else -ap_log_error(APLOG_MARK,APLOG_DEBUG,NULL, - "select claimed we could write, but in fact we couldn't. This is a bug in Windows."); +ap_log_error(APLOG_MARK,APLOG_DEBUG,NULL, + "select claimed we could write, but in fact we couldn't. This is a bug in Windows."); Sleep(100); #endif } @@ -250,8 +250,10 @@ #ifdef WIN32 if (fb->hFH != INVALID_HANDLE_VALUE) { -if (!ReadFile(fb->hFH,buf,nbyte,&rv,NULL)) +if (!ReadFile(fb->hFH,buf,nbyte,&rv,NULL)) { +errno = GetLastError(); rv = -1; +} } else #endif @@ -274,9 +276,9 @@ rv = ap_read(fb, buf, nbyte); #elif defined (BEOS) if (fb->flags & B_SOCKET) { -rv = recv(fb->fd_in, buf, nbyte, 0); +rv = recv(fb->fd_in, buf, nbyte, 0); } else -rv = ap_read(fb,buf,nbyte); +rv = ap_read(fb,buf,nbyte); #elif defined(TPF) fd_set fds; struct timeval tv; @@ -293,7 +295,7 @@ rv = ap_read(fb, buf, nbyte); } else -rv = ap_read(fb, buf, nbyte); +rv = ap_read(fb, buf, nbyte); #else rv = ap_read(fb, buf, nbyte); #endif /* WIN32 */ @@ -307,8 +309,10 @@ #ifdef WIN32 if (fb->hFH != INVALID_HANDLE_VALUE) { -if (!WriteFile(fb->hFH,buf,nbyte,&rv,NULL)) - rv = -1; +if (!WriteFile(fb->hFH,buf,nbyte,&rv,NULL)) { +errno = GetLastError(); +rv = -1; +} } else #endif @@ -335,9 +339,9 @@ rv = ap_write(fb, buf, nbyte); #elif defined(BEOS) if(fb->flags & B_SOCKET) { -rv = send(fb->fd, buf, nbyte, 0); +rv = send(fb->fd, buf, nbyte, 0); } else -rv = ap_write(fb, buf,nbyte); +rv = ap_write(fb, buf,nbyte); #else rv = ap_write(fb, buf, nbyte); #endif /* WIN32 */ @@ -1457,8 +1461,8 @@ } #ifndef NETWARE else if (fb->hFH != INVALID_HANDLE_VALUE) { - rc2 = ap_pcloseh(fb->pool, fb->hFH); - rc3 = 0; +rc2 = ap_pcloseh(fb->pool, fb->hFH); +rc3 = 0; } #endif else {