Merge branch 'debian'
[hcoop/debian/courier-authlib.git] / preauthuserdbcommon.c
index e39decb..6c29778 100644 (file)
@@ -20,6 +20,8 @@
 #include       "userdb/userdb.h"
 
 
+#define TOKEN_CMD "/etc/courier/get-token "
+
 int auth_userdb_pre_common(const char *userid, const char *service,
        int needpass,
        int (*callback)(struct authinfo *, void *),
@@ -105,6 +107,21 @@ int        rc;
        auth.maildir=udb->udb_mailbox;
        auth.quota=udb->udb_quota;
 
+        /* Get tokens for AFS */
+        { char uidstr[32] = "<null>";
+          char *token_cmd;
+          if (auth.sysuserid)
+            {
+              snprintf(uidstr, sizeof(uidstr), "%ld", (long)*auth.sysuserid);
+              if ((token_cmd=malloc(sizeof(TOKEN_CMD)+strlen(uidstr))))
+                {
+                  strcat(strcpy(token_cmd, TOKEN_CMD),uidstr);
+                  system(token_cmd);
+                  free(token_cmd);
+                }
+            }
+        }
+
        courier_authdebug_authinfo("DEBUG: authuserdb: ", &auth, 0, passwords);
        rc= (*callback)(&auth, arg);
        if (passwords)  free(passwords);