manoj 99/10/20 12:07:51
Modified: src/modules/mpm/dexter acceptlock.c dexter.c scoreboard.c Log: Fix dexter after adding a status code to ap_log_error broke it. Revision Changes Path 1.14 +19 -14 apache-2.0/src/modules/mpm/dexter/acceptlock.c Index: acceptlock.c =================================================================== RCS file: /home/cvs/apache-2.0/src/modules/mpm/dexter/acceptlock.c,v retrieving revision 1.13 retrieving revision 1.14 diff -u -d -u -r1.13 -r1.14 --- acceptlock.c 1999/10/14 14:36:39 1.13 +++ acceptlock.c 1999/10/20 19:07:48 1.14 @@ -123,7 +123,7 @@ void intra_mutex_on(int locknum) { if ((errno = pthread_mutex_lock(&intra_mutex[locknum])) != 0) { - ap_log_error(APLOG_MARK, APLOG_EMERG, + ap_log_error(APLOG_MARK, APLOG_EMERG, errno, (const server_rec *) ap_get_server_conf(), "Error getting intraprocess lock. Exiting!"); } @@ -132,7 +132,7 @@ void intra_mutex_off(int locknum) { if (pthread_mutex_unlock(&intra_mutex[locknum]) != 0) { - ap_log_error(APLOG_MARK, APLOG_EMERG, + ap_log_error(APLOG_MARK, APLOG_EMERG, errno, (const server_rec *) ap_get_server_conf(), "Error releasing intraprocess lock. Exiting!"); } @@ -531,7 +531,8 @@ } if (ret < 0) { - ap_log_error(APLOG_MARK, APLOG_EMERG, (const server_rec*) ap_get_server_conf(), + ap_log_error(APLOG_MARK, APLOG_EMERG, errno, + (const server_rec*) ap_get_server_conf(), "fcntl: F_SETLKW: Error getting accept lock, exiting! " "Perhaps you need to use the LockFile directive to place " "your lock file on a local disk!"); @@ -548,10 +549,11 @@ /* nop */ } if (ret < 0) { - ap_log_error(APLOG_MARK, APLOG_EMERG, (const server_rec*) ap_get_server_conf(), - "fcntl: F_SETLKW: Error freeing accept lock, exiting! " - "Perhaps you need to use the LockFile directive to place " - "your lock file on a local disk!"); + ap_log_error(APLOG_MARK, APLOG_EMERG, errno, + (const server_rec*) ap_get_server_conf(), + "fcntl: F_SETLKW: Error freeing accept lock, exiting! " + "Perhaps you need to use the LockFile directive to place " + "your lock file on a local disk!"); ap_clean_child_exit(APEXIT_CHILDFATAL); } } @@ -587,7 +589,7 @@ ap_open(&tempfile, lock_fname, APR_WRITE, APR_UREAD | APR_UWRITE, p); ap_get_os_file(&lock_fd[i], tempfile); if (lock_fd[i] == -1) { - ap_log_error(APLOG_MARK, APLOG_EMERG, + ap_log_error(APLOG_MARK, APLOG_EMERG, errno, (const server_rec *)ap_get_server_conf(), "Child cannot open lock file: %s", lock_fname); ap_clean_child_exit(APEXIT_CHILDINIT); @@ -614,7 +616,7 @@ ap_open(&tempfile, lock_fname, APR_CREATE | APR_WRITE | APR_EXCL, APR_UREAD | APR_UWRITE, p); ap_get_os_file(&lock_fd[i], tempfile); if (lock_fd[i] == -1) { - ap_log_error(APLOG_MARK, APLOG_EMERG, + ap_log_error(APLOG_MARK, APLOG_EMERG, errno, (const server_rec *) ap_get_server_conf(), "Parent cannot open lock file: %s", lock_fname); exit(APEXIT_INIT); @@ -631,7 +633,7 @@ continue; if (ret < 0) { - ap_log_error(APLOG_MARK, APLOG_EMERG, + ap_log_error(APLOG_MARK, APLOG_EMERG, errno, (const server_rec *) ap_get_server_conf(), "flock: LOCK_EX: Error getting accept lock. Exiting!"); ap_clean_child_exit(APEXIT_CHILDFATAL); @@ -641,7 +643,7 @@ void accept_mutex_off(int locknum) { if (flock(lock_fd[locknum], LOCK_UN) < 0) { - ap_log_error(APLOG_MARK, APLOG_EMERG, + ap_log_error(APLOG_MARK, APLOG_EMERG, errno, (const server_rec *) ap_get_server_conf(), "flock: LOCK_UN: Error freeing accept lock. Exiting!"); ap_clean_child_exit(APEXIT_CHILDFATAL); @@ -675,7 +677,8 @@ int rc = DosOpenMutexSem(NULL, &lock_sem[locknum]); if (rc != 0) { - ap_log_error(APLOG_MARK, APLOG_NOERRNO|APLOG_EMERG, ap_get_server_conf(), + ap_log_error(APLOG_MARK, APLOG_NOERRNO|APLOG_EMERG, errno, + ap_get_server_conf(), "Child cannot open lock semaphore, rc=%d", rc); ap_clean_child_exit(APEXIT_CHILDINIT); } @@ -711,7 +714,8 @@ int rc = DosRequestMutexSem(lock_sem[locknum], SEM_INDEFINITE_WAIT); if (rc != 0) { - ap_log_error(APLOG_MARK, APLOG_NOERRNO|APLOG_EMERG, ap_get_server_conf(), + ap_log_error(APLOG_MARK, APLOG_NOERRNO|APLOG_EMERG, errno, + ap_get_server_conf(), "OS2SEM: Error %d getting accept lock. Exiting!", rc); ap_clean_child_exit(APEXIT_CHILDFATAL); } @@ -722,7 +726,8 @@ int rc = DosReleaseMutexSem(lock_sem[locknum]); if (rc != 0) { - ap_log_error(APLOG_MARK, APLOG_NOERRNO|APLOG_EMERG, ap_get_server_conf(), + ap_log_error(APLOG_MARK, APLOG_NOERRNO|APLOG_EMERG, errno, + ap_get_server_conf(), "OS2SEM: Error %d freeing accept lock. Exiting!", rc); ap_clean_child_exit(APEXIT_CHILDFATAL); } 1.45 +54 -46 apache-2.0/src/modules/mpm/dexter/dexter.c Index: dexter.c =================================================================== RCS file: /home/cvs/apache-2.0/src/modules/mpm/dexter/dexter.c,v retrieving revision 1.44 retrieving revision 1.45 diff -u -d -u -r1.44 -r1.45 --- dexter.c 1999/10/13 20:14:51 1.44 +++ dexter.c 1999/10/20 19:07:49 1.45 @@ -353,7 +353,7 @@ case 6: /* 344ms */ case 7: /* 1.4sec */ /* ok, now it's being annoying */ - ap_log_error(APLOG_MARK, APLOG_NOERRNO|APLOG_WARNING, + ap_log_error(APLOG_MARK, APLOG_NOERRNO|APLOG_WARNING, errno, server_conf, "child process %d still did not exit, sending a SIGTERM", pid); @@ -361,7 +361,8 @@ 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); @@ -372,7 +373,8 @@ * 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; @@ -544,46 +546,46 @@ sa.sa_flags = SA_RESETHAND; #endif 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)"); #ifdef SIGBUS 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)"); #endif #ifdef SIGABORT if (sigaction(SIGABORT, &sa, NULL) < 0) - ap_log_error(APLOG_MARK, APLOG_WARNING, server_conf, "sigaction(SIGABORT)"); + ap_log_error(APLOG_MARK, APLOG_WARNING, errno, server_conf, "sigaction(SIGABORT)"); #endif #ifdef SIGABRT 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)"); #endif #ifdef SIGILL 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)"); #endif 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)"); #ifdef SIGINT 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)"); #endif #ifdef SIGXCPU sa.sa_handler = SIG_DFL; if (sigaction(SIGXCPU, &sa, NULL) < 0) - ap_log_error(APLOG_MARK, APLOG_WARNING, server_conf, "sigaction(SIGXCPU)"); + ap_log_error(APLOG_MARK, APLOG_WARNING, errno, server_conf, "sigaction(SIGXCPU)"); #endif #ifdef SIGXFSZ sa.sa_handler = SIG_DFL; if (sigaction(SIGXFSZ, &sa, NULL) < 0) - ap_log_error(APLOG_MARK, APLOG_WARNING, server_conf, "sigaction(SIGXFSZ)"); + ap_log_error(APLOG_MARK, APLOG_WARNING, errno, server_conf, "sigaction(SIGXFSZ)"); #endif #ifdef SIGPIPE 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)"); #endif /* we want to ignore HUPs and WINCH while we're busy processing one */ @@ -591,9 +593,9 @@ 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)"); #else if (!one_process) { signal(SIGSEGV, sig_coredump); @@ -638,7 +640,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); @@ -655,7 +657,7 @@ #ifdef SYS_SIGLIST #ifdef WCOREDUMP if (WCOREDUMP(status)) { - ap_log_error(APLOG_MARK, APLOG_NOERRNO|APLOG_NOTICE, + ap_log_error(APLOG_MARK, APLOG_NOERRNO|APLOG_NOTICE, errno, server_conf, "child pid %d exit signal %s (%d), " "possible coredump in %s", @@ -665,7 +667,7 @@ } else { #endif - ap_log_error(APLOG_MARK, APLOG_NOERRNO|APLOG_NOTICE, + ap_log_error(APLOG_MARK, APLOG_NOERRNO|APLOG_NOTICE, errno, server_conf, "child pid %d exit signal %s (%d)", pid, SYS_SIGLIST[WTERMSIG(status)], WTERMSIG(status)); @@ -673,7 +675,7 @@ } #endif #else - ap_log_error(APLOG_MARK, APLOG_NOERRNO|APLOG_NOTICE, + ap_log_error(APLOG_MARK, APLOG_NOERRNO|APLOG_NOTICE, errno, server_conf, "child pid %d exit signal %d", pid, WTERMSIG(status)); @@ -716,7 +718,7 @@ if (setsockopt(s, IPPROTO_TCP, TCP_NODELAY, (char *) &just_say_no, sizeof(int)) < 0) { - ap_log_error(APLOG_MARK, APLOG_WARNING, server_conf, + ap_log_error(APLOG_MARK, APLOG_WARNING, errno, server_conf, "setsockopt: (TCP_NODELAY)"); } } @@ -745,7 +747,7 @@ ap_iol *iol; if (getsockname(csd, &sa_server, &len) < 0) { - ap_log_error(APLOG_MARK, APLOG_ERR, server_conf, "getsockname"); + ap_log_error(APLOG_MARK, APLOG_ERR, errno, server_conf, "getsockname"); close(csd); return; } @@ -755,13 +757,13 @@ iol = unix_attach_socket(csd); if (iol == NULL) { if (errno == EBADF) { - ap_log_error(APLOG_MARK, APLOG_NOERRNO|APLOG_WARNING, NULL, + ap_log_error(APLOG_MARK, APLOG_NOERRNO|APLOG_WARNING, errno, NULL, "filedescriptor (%u) larger than FD_SETSIZE (%u) " "found, you probably need to rebuild Apache with a " "larger FD_SETSIZE", csd, FD_SETSIZE); } else { - ap_log_error(APLOG_MARK, APLOG_WARNING, NULL, + ap_log_error(APLOG_MARK, APLOG_WARNING, errno, NULL, "error attaching to socket"); } close(csd); @@ -790,7 +792,7 @@ if (worker_thread_count < max_threads) { if (pthread_create(&thread, &worker_thread_attr, worker_thread, &worker_thread_free_ids[worker_thread_count])) { - ap_log_error(APLOG_MARK, APLOG_ALERT, server_conf, + ap_log_error(APLOG_MARK, APLOG_ALERT, errno, server_conf, "pthread_create: unable to create worker thread"); /* In case system resources are maxxed out, we don't want Apache running away with the CPU trying to fork over and @@ -808,7 +810,7 @@ static int reported = 0; if (!reported) { - ap_log_error(APLOG_MARK, APLOG_NOERRNO|APLOG_ERR, server_conf, + ap_log_error(APLOG_MARK, APLOG_NOERRNO|APLOG_ERR, errno, server_conf, "server reached MaxThreadsPerChild setting, consider raising the" " MaxThreadsPerChild or NumServers settings"); reported = 1; @@ -896,7 +898,7 @@ /* poll() will only return errors in catastrophic * circumstances. Let's try exiting gracefully, for now. */ - ap_log_error(APLOG_MARK, APLOG_ERR, (const server_rec *) + ap_log_error(APLOG_MARK, APLOG_ERR, errno, (const server_rec *) ap_get_server_conf(), "poll: (listen)"); workers_may_exit = 1; } @@ -1001,7 +1003,8 @@ sigfillset(&sig_mask); if (pthread_sigmask(SIG_SETMASK, &sig_mask, NULL) != 0) { - ap_log_error(APLOG_MARK, APLOG_ALERT, server_conf, "pthread_sigmask"); + ap_log_error(APLOG_MARK, APLOG_ALERT, errno, server_conf, + "pthread_sigmask"); } requests_this_child = max_requests_per_child; @@ -1054,7 +1057,7 @@ just_die(signal_received); break; default: - ap_log_error(APLOG_MARK, APLOG_ALERT, server_conf, + ap_log_error(APLOG_MARK, APLOG_ALERT, errno, server_conf, "received impossible signal: %d", signal_received); just_die(SIGTERM); } @@ -1076,7 +1079,8 @@ } if ((pid = fork()) == -1) { - ap_log_error(APLOG_MARK, APLOG_ERR, s, "fork: Unable to fork new process"); + ap_log_error(APLOG_MARK, APLOG_ERR, errno, s, + "fork: Unable to fork new process"); /* In case system resources are maxxed out, we don't want Apache running away with the CPU trying to fork over and over and over again. */ @@ -1094,8 +1098,8 @@ int status = bindprocessor(BINDPROCESS, (int)getpid(), PROCESSOR_CLASS_ANY); if (status != OK) - ap_log_error(APLOG_MARK, APLOG_NOERRNO|APLOG_WARNING, server_conf, - "processor unbind failed %d", status); + ap_log_error(APLOG_MARK, APLOG_NOERRNO|APLOG_WARNING, errno, + server_conf, "processor unbind failed %d", status); #endif RAISE_SIGSTOP(MAKE_CHILD); @@ -1242,7 +1246,8 @@ * child table. Somehow we don't know about this * child. */ - ap_log_error(APLOG_MARK, APLOG_NOERRNO|APLOG_WARNING, server_conf, + ap_log_error(APLOG_MARK, APLOG_NOERRNO|APLOG_WARNING, errno, + server_conf, "long lost child came home! (pid %d)", pid); } /* Don't perform idle maintenance when a child dies, @@ -1286,7 +1291,7 @@ pconf = _pconf; server_conf = s; if (pipe(pipe_of_death) == -1) { - ap_log_error(APLOG_MARK, APLOG_ERR, + ap_log_error(APLOG_MARK, APLOG_ERR, errno, (const server_rec*) server_conf, "pipe: (pipe_of_death)"); exit(1); @@ -1294,7 +1299,7 @@ ap_register_cleanup(pconf, &pipe_of_death[0], cleanup_fd, cleanup_fd); ap_register_cleanup(pconf, &pipe_of_death[1], cleanup_fd, cleanup_fd); if (fcntl(pipe_of_death[0], F_SETFD, O_NONBLOCK) == -1) { - ap_log_error(APLOG_MARK, APLOG_ERR, + ap_log_error(APLOG_MARK, APLOG_ERR, errno, (const server_rec*) server_conf, "fcntl: O_NONBLOCKing (pipe_of_death)"); exit(1); @@ -1302,7 +1307,7 @@ server_conf = s; if ((num_listenfds = setup_listeners(server_conf)) < 1) { /* XXX: hey, what's the right way for the mpm to indicate a fatal error? */ - ap_log_error(APLOG_MARK, APLOG_NOERRNO|APLOG_ALERT, s, + ap_log_error(APLOG_MARK, APLOG_NOERRNO|APLOG_ALERT, errno, s, "no listening sockets available, shutting down"); return 1; } @@ -1339,10 +1344,10 @@ hold_off_on_exponential_spawning = 10; } - ap_log_error(APLOG_MARK, APLOG_NOERRNO|APLOG_NOTICE, server_conf, + ap_log_error(APLOG_MARK, APLOG_NOERRNO|APLOG_NOTICE, errno, server_conf, "%s configured -- resuming normal operations", ap_get_server_version()); - ap_log_error(APLOG_MARK, APLOG_NOERRNO|APLOG_INFO, server_conf, + ap_log_error(APLOG_MARK, APLOG_NOERRNO|APLOG_INFO, errno, server_conf, "Server built: %s", ap_get_server_built()); restart_pending = shutdown_pending = 0; @@ -1353,7 +1358,8 @@ * Kill child processes, tell them to call child_exit, etc... */ if (ap_killpg(getpgrp(), SIGTERM) < 0) { - ap_log_error(APLOG_MARK, APLOG_WARNING, server_conf, "killpg SIGTERM"); + ap_log_error(APLOG_MARK, APLOG_WARNING, errno, server_conf, + "killpg SIGTERM"); } reclaim_child_processes(1); /* Start with SIGTERM */ @@ -1362,14 +1368,14 @@ const char *pidfile = NULL; pidfile = ap_server_root_relative (pconf, ap_pid_fname); if ( pidfile != NULL && unlink(pidfile) == 0) - ap_log_error(APLOG_MARK, APLOG_NOERRNO|APLOG_INFO, + ap_log_error(APLOG_MARK, APLOG_NOERRNO|APLOG_INFO, errno, server_conf, "removed PID file %s (pid=%ld)", pidfile, (long)getpid()); } - ap_log_error(APLOG_MARK, APLOG_NOERRNO|APLOG_NOTICE, server_conf, - "caught SIGTERM, shutting down"); + ap_log_error(APLOG_MARK, APLOG_NOERRNO|APLOG_NOTICE, errno, + server_conf, "caught SIGTERM, shutting down"); return 1; } @@ -1385,7 +1391,7 @@ if (is_graceful) { char char_of_death = '!'; - ap_log_error(APLOG_MARK, APLOG_NOERRNO|APLOG_NOTICE, server_conf, + ap_log_error(APLOG_MARK, APLOG_NOERRNO|APLOG_NOTICE, errno, server_conf, "SIGWINCH received. Doing graceful restart"); /* This is mostly for debugging... so that we know what is still @@ -1401,7 +1407,8 @@ for (i = 0; i < num_daemons;) { if (write(pipe_of_death[1], &char_of_death, 1) == -1) { if (errno == EINTR) continue; - ap_log_error(APLOG_MARK, APLOG_WARNING, server_conf, "write pipe_of_death"); + ap_log_error(APLOG_MARK, APLOG_WARNING, errno, server_conf, + "write pipe_of_death"); } i++; } @@ -1412,11 +1419,12 @@ * pthreads are stealing signals from us left and right. */ if (ap_killpg(getpgrp(), SIGTERM) < 0) { - ap_log_error(APLOG_MARK, APLOG_WARNING, server_conf, "killpg SIGTERM"); + ap_log_error(APLOG_MARK, APLOG_WARNING, errno, server_conf, + "killpg SIGTERM"); } reclaim_child_processes(1); /* Start with SIGTERM */ - ap_log_error(APLOG_MARK, APLOG_NOERRNO|APLOG_NOTICE, server_conf, - "SIGHUP received. Attempting to restart"); + ap_log_error(APLOG_MARK, APLOG_NOERRNO|APLOG_NOTICE, errno, + server_conf, "SIGHUP received. Attempting to restart"); } return 0; } 1.8 +11 -9 apache-2.0/src/modules/mpm/dexter/scoreboard.c Index: scoreboard.c =================================================================== RCS file: /home/cvs/apache-2.0/src/modules/mpm/dexter/scoreboard.c,v retrieving revision 1.7 retrieving revision 1.8 diff -u -d -u -r1.7 -r1.8 --- scoreboard.c 1999/10/18 22:41:04 1.7 +++ scoreboard.c 1999/10/20 19:07:49 1.8 @@ -343,18 +343,19 @@ if ((shmid = shmget(shmkey, SCOREBOARD_SIZE, IPC_CREAT | SHM_R | SHM_W)) == -1) { #ifdef LINUX if (errno == ENOSYS) { - ap_log_error(APLOG_MARK, APLOG_NOERRNO|APLOG_EMERG, server_conf, + ap_log_error(APLOG_MARK, APLOG_NOERRNO|APLOG_EMERG, errno, + server_conf, "Your kernel was built without CONFIG_SYSVIPC\n" "%s: Please consult the Apache FAQ for details", ap_server_argv0); } #endif - ap_log_error(APLOG_MARK, APLOG_EMERG, server_conf, + ap_log_error(APLOG_MARK, APLOG_EMERG, errno, server_conf, "could not call shmget"); exit(APEXIT_INIT); } - ap_log_error(APLOG_MARK, APLOG_NOERRNO|APLOG_INFO, server_conf, + ap_log_error(APLOG_MARK, APLOG_NOERRNO|APLOG_INFO, errno, server_conf, "created shared memory segment #%d", shmid); #ifdef MOVEBREAK @@ -368,28 +369,29 @@ * attach the segment and then move break back down. Ugly */ if ((obrk = sbrk(MOVEBREAK)) == (char *) -1) { - ap_log_error(APLOG_MARK, APLOG_ERR, server_conf, + ap_log_error(APLOG_MARK, APLOG_ERR, errno, server_conf, "sbrk() could not move break"); } #endif #define BADSHMAT ((scoreboard *)(-1)) if ((ap_scoreboard_image = (scoreboard *) shmat(shmid, 0, 0)) == BADSHMAT) { - ap_log_error(APLOG_MARK, APLOG_EMERG, server_conf, "shmat error"); + ap_log_error(APLOG_MARK, APLOG_EMERG, errno, server_conf, + "shmat error"); /* * We exit below, after we try to remove the segment */ } else { /* only worry about permissions if we attached the segment */ if (shmctl(shmid, IPC_STAT, &shmbuf) != 0) { - ap_log_error(APLOG_MARK, APLOG_ERR, server_conf, + ap_log_error(APLOG_MARK, APLOG_ERR, errno, server_conf, "shmctl() could not stat segment #%d", shmid); } else { shmbuf.shm_perm.uid = unixd_config.user_id; shmbuf.shm_perm.gid = unixd_config.group_id; if (shmctl(shmid, IPC_SET, &shmbuf) != 0) { - ap_log_error(APLOG_MARK, APLOG_ERR, server_conf, + ap_log_error(APLOG_MARK, APLOG_ERR, errno, server_conf, "shmctl() could not set segment #%d", shmid); } } @@ -399,7 +401,7 @@ * (small) tables. */ if (shmctl(shmid, IPC_RMID, NULL) != 0) { - ap_log_error(APLOG_MARK, APLOG_WARNING, server_conf, + ap_log_error(APLOG_MARK, APLOG_WARNING, errno, server_conf, "shmctl: IPC_RMID: could not remove shared memory segment #%d", shmid); } @@ -410,7 +412,7 @@ if (obrk == (char *) -1) return; /* nothing else to do */ if (sbrk(-(MOVEBREAK)) == (char *) -1) { - ap_log_error(APLOG_MARK, APLOG_ERR, server_conf, + ap_log_error(APLOG_MARK, APLOG_ERR, errno, server_conf, "sbrk() could not move break back"); } #endif