Hello all httpd-2.0.36, QNX 6.1 RTOS
I have made a modification to apache to get it to run on qnx. It kept hanging. I traced it down and made some changes to get it to run. I wanted to proof these changes with the apache community and get some feedback as to the longterm consequences/ side effects of these changes. I am attaching a diff of the changes that I made. I also noticed that SSL doesn't seem to work unless the -X flag is passed to httpd, any ideas. Thanks /Davide --- httpd-2.0.36/srclib/apr/locks/unix/proc_mutex.c Mon Apr 8 23:56:56 2002 +++ ../httpd-2.0.36/srclib/apr/locks/unix/proc_mutex.c Wed May 8 16:04:51 2002 @@ -318,7 +318,9 @@ if (munmap((caddr_t)mutex->pthread_interproc, sizeof(pthread_mutex_t))){ return errno; } - } + if(shm_unlink("/datapoints")) // DB + return errno; + } return APR_SUCCESS; } @@ -329,11 +331,15 @@ int fd; pthread_mutexattr_t mattr; - fd = open("/dev/zero", O_RDWR); - if (fd < 0) { - return errno; - } + fd=shm_open("/datapoints",O_RDWR|O_CREAT,0777); //DB + if (fd < 0) + return errno; + if(ftruncate(fd,sizeof(pthread_mutex_t))==-1) //DB + return errno; + + + new_mutex->pthread_interproc = (pthread_mutex_t *)mmap( (caddr_t) 0, sizeof(pthread_mutex_t), @@ -363,10 +369,11 @@ PTHREAD_MUTEX_ROBUST_NP))) { #ifdef PTHREAD_SETS_ERRNO rv = errno; -#endif +#endif // DB proc_mutex_proc_pthread_cleanup(new_mutex); return rv; } +#endif if ((rv = pthread_mutexattr_setprotocol(&mattr, PTHREAD_PRIO_INHERIT))) { #ifdef PTHREAD_SETS_ERRNO rv = errno; @@ -374,9 +381,15 @@ proc_mutex_proc_pthread_cleanup(new_mutex); return rv; } + if ((rv = pthread_mutex_destroy(new_mutex->pthread_interproc))) { // DB +#ifdef PTHREAD_SETS_ERRNO + rv = errno; #endif + proc_mutex_proc_pthread_cleanup(new_mutex); + return rv; + } - if ((rv = pthread_mutex_init(new_mutex->pthread_interproc, &mattr))) { + if ((rv = pthread_mutex_init(new_mutex->pthread_interproc, &mattr))) { #ifdef PTHREAD_SETS_ERRNO rv = errno; #endif __________________________________________________ Do You Yahoo!? LAUNCH - Your Yahoo! Music Experience http://launch.yahoo.com