Author: gd
Date: 2006-01-18 16:07:04 +0000 (Wed, 18 Jan 2006)
New Revision: 13003

WebSVN: 
http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=13003

Log:
Allow to delete the credential cache without calling
pam_sm_close_session directly but calling pam_sm_setcred with the
PAM_DELETE_CRED.

Guenther

Modified:
   trunk/source/nsswitch/pam_winbind.c


Changeset:
Modified: trunk/source/nsswitch/pam_winbind.c
===================================================================
--- trunk/source/nsswitch/pam_winbind.c 2006-01-18 16:05:27 UTC (rev 13002)
+++ trunk/source/nsswitch/pam_winbind.c 2006-01-18 16:07:04 UTC (rev 13003)
@@ -3,7 +3,7 @@
    Copyright Andrew Tridgell <[EMAIL PROTECTED]> 2000
    Copyright Tim Potter <[EMAIL PROTECTED]> 2000
    Copyright Andrew Bartlett <[EMAIL PROTECTED]> 2002
-   Copyright Guenther Deschner <[EMAIL PROTECTED]> 2005
+   Copyright Guenther Deschner <[EMAIL PROTECTED]> 2005-2006
 
    largely based on pam_userdb by Cristian Gafton <[EMAIL PROTECTED]> 
    also contains large slabs of code from pam_unix by Elliot Lee <[EMAIL 
PROTECTED]>
@@ -849,6 +849,18 @@
 int pam_sm_setcred(pam_handle_t *pamh, int flags,
                   int argc, const char **argv)
 {
+       /* parse arguments */
+       int ctrl = _pam_parse(argc, argv);
+       if (ctrl == -1) {
+               return PAM_SYSTEM_ERR;
+       }
+
+       _pam_log_debug(ctrl, LOG_DEBUG,"pam_winbind: pam_sm_setcred");
+
+       if (flags & PAM_DELETE_CRED) {
+               return pam_sm_close_session(pamh, flags, argc, argv);
+       }
+
        return PAM_SUCCESS;
 }
 
@@ -1236,7 +1248,7 @@
  * Copyright (c) Andrew Tridgell  <[EMAIL PROTECTED]>   2000
  * Copyright (c) Tim Potter       <[EMAIL PROTECTED]>     2000
  * Copyright (c) Andrew Bartlettt <[EMAIL PROTECTED]> 2002
- * Copyright (c) Guenther Deschner <[EMAIL PROTECTED]>      2005
+ * Copyright (c) Guenther Deschner <[EMAIL PROTECTED]>      2005-2006
  * Copyright (c) Jan R�korajski 1999.
  * Copyright (c) Andrew G. Morgan 1996-8.
  * Copyright (c) Alex O. Yuriev, 1996.

Reply via email to