Merge upstream git://git.code.sf.net/p/modwaklog/code
authorClinton Ebadi <clinton@unknownlamer.org>
Wed, 5 Mar 2014 06:39:50 +0000 (01:39 -0500)
committerClinton Ebadi <clinton@unknownlamer.org>
Wed, 5 Mar 2014 06:39:50 +0000 (01:39 -0500)
Makefile.am
mod_waklog.c

index 932b17b..f02c706 100644 (file)
@@ -3,8 +3,7 @@ all: mod_waklog.so
 APXS = @APXS@
 INCLUDES = -I@KRB5_INC@ -I@AFS_INC@ -I@APACHE_INC@ -I@APR_INC@
 LIB = -L@AFS_LIBS@ -L@KRB5_LIBS@ -L@APACHE_LIBS@ -lkrb5 -lk5crypto  \
-       -lprot -lauth -lresolv -lubik -lrxkad -lsys -lrx -llwp -ldes \
-       -lcom_err -lafsutil
+       -lafsauthent -lafsrpc -lkopenafs
 
 APXSCC = `${APXS} -q CC` \
          @WAKLOG_DEBUG@ \
index bf1becf..6574655 100644 (file)
@@ -10,6 +10,8 @@
 
 #ifdef sun
 #include <synch.h>
+#include <stropts.h>
+#include <sys/ioccom.h>
 #elif linux
 #define use_pthreads
 #include <features.h>
@@ -31,9 +33,6 @@
 /********************* APACHE1 ******************************************************************************/
 #ifndef APACHE2
 #include "ap_config.h"
-#if defined(sun)
-#include <sys/ioccom.h>
-#endif /* sun */
 #include <http_conf_globals.h>
 #define MK_POOL pool
 #define MK_TABLE_GET ap_table_get
@@ -46,6 +45,7 @@ module waklog_module;
 
 /********************* APACHE2 ******************************************************************************/
 #else
+#include "http_connection.h"
 #include <apr_strings.h>
 #include <apr_base64.h>
 #define ap_pcalloc apr_pcalloc
@@ -71,7 +71,7 @@ const char *userdata_key = "waklog_init";
 /**************************************************************************************************/
 
 #include <krb5.h>
-#include <stropts.h>
+#include <kopenafs.h>
 
 #include <afs/param.h>
 
@@ -164,18 +164,6 @@ int renewcount = 0;
 
 #define getModConfig(P, X) P = (waklog_config *) ap_get_module_config( (X)->module_config, &waklog_module );
 
-#include <krb5.h>
-
-#if defined(sun)
-#include <sys/ioccom.h>
-#endif /* sun */
-#include <stropts.h>
-#include <afs/venus.h>
-#include <afs/auth.h>
-#include <afs/dirpath.h>
-#include <afs/ptuser.h>
-#include <rx/rxkad.h>
-
 
 static void
 log_error (const char *file, int line, int level, int status,
@@ -311,7 +299,7 @@ set_auth ( server_rec *s, request_rec *r, int self, char *principal, char *keyta
 #ifdef APACHE2       
        if ( ! ( r && r->connection && r->user )) {
          log_error(APLOG_MARK, APLOG_ERR, 0, s, "mod_waklog: self authentication selected, but no data available");
-         log_error(APLOG_MARK, APLOG_ERR, 0, s, "mod_waklog: r->user=%s", (r->user==NULL ? "null" : r->user==NULL));
+         log_error(APLOG_MARK, APLOG_ERR, 0, s, "mod_waklog: r->user=%s", (r->user==NULL ? "null" : r->user));
          return -1;
        }
        
@@ -346,7 +334,7 @@ set_auth ( server_rec *s, request_rec *r, int self, char *principal, char *keyta
   }
 #endif
   
-  log_error(APLOG_MARK, APLOG_DEBUG, 0, s, "mod_waklog: set_auth: k5user=%s", k5user ? k5user : "NULL");
+  log_error(APLOG_MARK, APLOG_DEBUG, 0, s, "mod_waklog: set_auth: k5user=%s", k5user);
   mytime = time(0);
   
   /* see if we should just go ahead and ignore this call, since we already should be set to these
@@ -417,7 +405,7 @@ set_auth ( server_rec *s, request_rec *r, int self, char *principal, char *keyta
   }
 
   /* if 'usecached' isn't set, we've got to get our tokens from somewhere... */
-  if (( ! usecached ) && ( k5user )) {
+  if ( ! usecached ) {
 
     /* clear out the creds structure */
     memset((void *) &v5creds, 0, sizeof(v5creds));
@@ -1116,7 +1104,7 @@ waklog_child_init (server_rec * s, MK_POOL * p)
   }
   
   if ( pag_for_children ) {
-    setpag ();
+    k_setpag ();
   }
 
   getModConfig (cfg, s);
@@ -1186,7 +1174,15 @@ token_cleanup (void *data)
   return 0;
 }
 
+/* This function doesn't return anything but is passed to ap_bspawn_child on
+ * Apache 1 which expects it to return a pid as an int. For want of better
+ * understanding, err on the side of not changing Apache 1 code while fixing
+ * the compile warning on Apache 2. */
+#ifdef APACHE2
+static void
+#else
 static int
+#endif
 waklog_child_routine (void *data, child_info * pinfo)
 {
   int i;
@@ -1327,7 +1323,10 @@ waklog_init_handler (apr_pool_t * p, apr_pool_t * plog,
           struct sharedspace_s bob;
           log_error(APLOG_MARK, APLOG_ERR, 0, s, "mod_waklog: sizing our cache file %d to %d", fd, sizeof(struct sharedspace_s) );
           memset( &bob, 0, sizeof(struct sharedspace_s));
-          write(fd, &bob, sizeof(struct sharedspace_s));
+          if ( write(fd, &bob, sizeof(struct sharedspace_s)) != sizeof(struct sharedspace_s) ) {
+            log_error(APLOG_MARK, APLOG_ERR, 0, s, "mod_waklog: failed to write to our cache file %s (%d)", cache_file, errno );
+            exit(errno);
+          }
           log_error(APLOG_MARK, APLOG_ERR, 0, s, "mod_waklog: done sizing our cache file to %d", sizeof(struct sharedspace_s) );
         }
 
@@ -1354,7 +1353,7 @@ waklog_init_handler (apr_pool_t * p, apr_pool_t * plog,
 #define locktype rwlock_t
 #endif
 
-      if ( sharedlock = ( locktype * ) mmap ( NULL, sizeof(locktype), PROT_READ|PROT_WRITE, MAP_SHARED|MAP_ANON, -1, 0 ) ) {
+      if ( ( sharedlock = ( locktype * ) mmap ( NULL, sizeof(locktype), PROT_READ|PROT_WRITE, MAP_SHARED|MAP_ANON, -1, 0 ) ) != NULL ) {
 #ifndef use_pthreads
         rwlock_init(sharedlock, USYNC_PROCESS, NULL );
 #else