You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@httpd.apache.org by tr...@apache.org on 2002/05/09 12:53:28 UTC

cvs commit: httpd-2.0/modules/ssl ssl_util.c

trawick     02/05/09 03:53:28

  Modified:    .        CHANGES
               modules/ssl ssl_util.c
  Log:
  Fix a mod_ssl build problem on OS/390.
  
  This is admittedly rather ugly code to come up with a unique 4-byte
  identifier for the thread.  Since our threads are pthreads and a pthread
  maps 1:1 to a TCB, the address of the TCB is sufficient.   Yes, every
  TCB sees a different piece of real storage mapped to the first page,
  so the code does make sense.
  
  Revision  Changes    Path
  1.766     +2 -0      httpd-2.0/CHANGES
  
  Index: CHANGES
  ===================================================================
  RCS file: /home/cvs/httpd-2.0/CHANGES,v
  retrieving revision 1.765
  retrieving revision 1.766
  diff -u -r1.765 -r1.766
  --- CHANGES	8 May 2002 02:17:03 -0000	1.765
  +++ CHANGES	9 May 2002 10:53:27 -0000	1.766
  @@ -1,5 +1,7 @@
   Changes with Apache 2.0.37
   
  +  *) Fix a mod_ssl build problem on OS/390.  [Jeff Trawick]
  +
     *) Fixed If-Modified-Since on Win32, which would give false positives
        because of the sub-second resolution of file timestamps on that
        platform.  [Cliff Woolley]
  
  
  
  1.32      +13 -0     httpd-2.0/modules/ssl/ssl_util.c
  
  Index: ssl_util.c
  ===================================================================
  RCS file: /home/cvs/httpd-2.0/modules/ssl/ssl_util.c,v
  retrieving revision 1.31
  retrieving revision 1.32
  diff -u -r1.31 -r1.32
  --- ssl_util.c	28 Mar 2002 17:11:12 -0000	1.31
  +++ ssl_util.c	9 May 2002 10:53:28 -0000	1.32
  @@ -419,7 +419,20 @@
   
   static unsigned long ssl_util_thr_id(void)
   {
  +    /* OpenSSL needs this to return an unsigned long.  On OS/390, the pthread 
  +     * id is a structure twice that big.  Use the TCB pointer instead as a 
  +     * unique unsigned long.
  +     */
  +#ifdef __MVS__
  +    struct PSA {
  +        char unmapped[540];
  +        unsigned long PSATOLD;
  +    } *psaptr = 0;
  +
  +    return psaptr->PSATOLD;
  +#else
       return (unsigned long) apr_os_thread_current();
  +#endif
   }
   
   static apr_status_t ssl_util_thread_cleanup(void *data)