Author: baggins                      Date: Thu May 10 16:36:04 2007 GMT
Module: pam                           Tag: HEAD
---- Log message:
- removed freebsd bits
- use pam_syslog

---- Files affected:
pam/modules/pam_quota:
   pam_quota.c (1.1 -> 1.2) 

---- Diffs:

================================================================
Index: pam/modules/pam_quota/pam_quota.c
diff -u pam/modules/pam_quota/pam_quota.c:1.1 
pam/modules/pam_quota/pam_quota.c:1.2
--- pam/modules/pam_quota/pam_quota.c:1.1       Thu May 10 18:28:09 2007
+++ pam/modules/pam_quota/pam_quota.c   Thu May 10 18:35:59 2007
@@ -4,7 +4,7 @@
  * A simple pam module to automagically set a quota to non-root users.
  *
  * Mon Feb  2 01:31:36 CET 2004, Andrea Leofreddi, <[EMAIL PROTECTED]>
- *    first version. Runs on FreeBSD 5.2-RELEASE and Debian GNU/Linux 2.6.
+ *    first version.
  */
 
 #include <stdio.h>
@@ -19,18 +19,10 @@
 #include <sys/types.h>
 #include <pwd.h>
 
-#if defined(__FreeBSD__)
-#include <ufs/ufs/quota.h>
-#include <sys/param.h>
-#include <sys/mount.h>
-#include <sys/types.h>
-#include <security/pam_appl.h>
-#elif defined(__linux__)
 #include <mntent.h>
 #include <sys/quota.h>
 #include <sys/vfs.h>
 #include <sys/stat.h>
-#endif
 
 #define  PAM_SM_SESSION
 #include <security/pam_modules.h>
@@ -42,23 +34,7 @@
        struct dqblk q; /* quota data */
 };
 
-/* logs pam_quota activities */
-static void _pam_log(int prio, const char *fmt, ...) {
-               va_list ap;
-
-               va_start(ap, fmt);
-
-               vfprintf(stderr, fmt, ap);
-               openlog("pam_quota", LOG_PID, LOG_AUTHPRIV);
-               vsyslog(prio, fmt, ap);
-
-               va_end(ap);
-
-               closelog();
-}
-
-static char *fs_from_home(const char *home) {
-#if defined(__linux__)
+static char *fs_from_home(pam_handle_t *pamh, const char *home) {
        struct stat homestat, devstat;
        struct mntent *mnt;
        char *fs = 0;
@@ -66,13 +42,13 @@
 
        /* open mtab */
        if(!(f = setmntent("/etc/mtab", "r"))) {
-               _pam_log(LOG_ERR, "unable to open mtab\n");
+               pam_syslog(pamh, LOG_ERR, "unable to open mtab\n");
                return 0;
        }
 
        /* do a stat on user home directory */
        if(stat(home, &homestat) < 0) {
-               _pam_log(LOG_ERR, "unable to stat user home directory\n");
+               pam_syslog(pamh, LOG_ERR, "unable to stat user home 
directory\n");
                return 0;
        }
 
@@ -90,17 +66,6 @@
        endmntent(f);
 
        return fs;
-#elif defined(__FreeBSD__)
-       struct statfs homestat;
-
-       /* do a statfs on home */
-       if(statfs(home, &homestat) < 0) {
-               _pam_log(LOG_ERR, "unable to stat user home directory\n");
-               return 0;
-       }
-
-       return strdup(homestat.f_mntonname);
-#endif
 }
 
 PAM_EXTERN int pam_sm_open_session(pam_handle_t *pamh, int flags, int argc, 
const char **argv) {
@@ -116,7 +81,7 @@
        /* parse line arguments */
        for(i = 0; i < argc; ++i) {
                if(!(argument = strdup(argv[i]))) {
-                       _pam_log(LOG_ERR, "insufficient memory");
+                       pam_syslog(pamh, LOG_ERR, "insufficient memory");
                        return PAM_SESSION_ERR;
                }
 
@@ -132,25 +97,25 @@
 
 #define CHECK_AND_SET(x)               !strcmp(argument, #x) && (m = 1) && 
(conf.q.dqb_##x = atoi(value)) < 0
                        if(CHECK_AND_SET(bhardlimit)) {
-                               _pam_log(LOG_ERR, "bhardlimit argument must be 
greater or equal 0");
+                               pam_syslog(pamh, LOG_ERR, "bhardlimit argument 
must be greater or equal 0");
                                err = 1;
                        } else if(CHECK_AND_SET(bsoftlimit)) {
-                               _pam_log(LOG_ERR, "bsoftlimit argument must be 
greater or equal 0");
+                               pam_syslog(pamh, LOG_ERR, "bsoftlimit argument 
must be greater or equal 0");
                                err = 1;
                        } else if(CHECK_AND_SET(ihardlimit)) {
-                               _pam_log(LOG_ERR, "ihardlimit argument must be 
greater or equal 0");
+                               pam_syslog(pamh, LOG_ERR, "ihardlimit argument 
must be greater or equal 0");
                                err = 1;
                        } else if(CHECK_AND_SET(isoftlimit)) {
-                               _pam_log(LOG_ERR, "isoftlimit argument must be 
greater or equal 0");
+                               pam_syslog(pamh, LOG_ERR, "isoftlimit argument 
must be greater or equal 0");
                                err = 1;
                        } else if(CHECK_AND_SET(itime)) {
-                               _pam_log(LOG_ERR, "itime argument must be 
greater or equal 0");
+                               pam_syslog(pamh, LOG_ERR, "itime argument must 
be greater or equal 0");
                                err = 1;
                        } else if(CHECK_AND_SET(btime)) {
-                               _pam_log(LOG_ERR, "btime argument must be 
greater or equal 0");
+                               pam_syslog(pamh, LOG_ERR, "btime argument must 
be greater or equal 0");
                                err = 1;
                        } else if(!m) {
-                               _pam_log(LOG_ERR, "invalid argument: %s\n", 
argument);
+                               pam_syslog(pamh, LOG_ERR, "invalid argument: 
%s\n", argument);
                                err = 1;
                        }
                } else {
@@ -158,7 +123,7 @@
                        if(!strcmp(argument, "debug"))
                                conf.flags ^= PAM_QUOTE_DEBUG;
                        else {
-                               _pam_log(LOG_ERR, "invalid argument: %s\n", 
argument);
+                               pam_syslog(pamh, LOG_ERR, "invalid argument: 
%s\n", argument);
                                err = 1;
                        }
                }
@@ -171,27 +136,23 @@
        
        /* get username */
        if(pam_get_item(pamh, PAM_USER, (const void **)&username) != 
PAM_SUCCESS) {
-               _pam_log(LOG_ERR, "unknown user\n");
+               pam_syslog(pamh, LOG_ERR, "unknown user\n");
                return PAM_USER_UNKNOWN;
        }
 
        /* get user's home directory */
        if(!(pwd = getpwnam(username))) {
-               _pam_log(LOG_ERR, "unable to get user home directory\n");
+               pam_syslog(pamh, LOG_ERR, "unable to get user home 
directory\n");
                return PAM_USER_UNKNOWN;
        }
 
        /* get home filesystem name */
-       if(!(fs = fs_from_home(pwd->pw_dir)))
+       if(!(fs = fs_from_home(pamh, pwd->pw_dir)))
                return PAM_SESSION_ERR;
 
        /* apply quota */
-#if defined(__FreeBSD__)
-       if(pwd->pw_uid && quotactl(fs, QCMD(Q_SETQUOTA, USRQUOTA), pwd->pw_uid, 
&conf.q) < 0) {
-#elif defined(__linux__)
        if(pwd->pw_uid && quotactl(QCMD(Q_SETQUOTA, USRQUOTA), fs, pwd->pw_uid, 
(caddr_t)&conf.q) < 0) {
-#endif
-               _pam_log(LOG_ERR, "unable to set quota\n");
+               pam_syslog(pamh, LOG_ERR, "unable to set quota\n");
                return PAM_SESSION_ERR;
        }
 
@@ -207,22 +168,22 @@
 /* other not supported groups */
 
 PAM_EXTERN int pam_sm_authenticate(pam_handle_t *pamh, int flags, int argc, 
const char **argv) {
-       _pam_log(LOG_ERR, "authentication management group is not supported by 
this module");
+       pam_syslog(pamh, LOG_ERR, "authentication management group is not 
supported by this module");
        return PAM_SERVICE_ERR;
 }
 
 PAM_EXTERN int pam_sm_setcred(pam_handle_t *pamh, int flags, int argc, const 
char **argv) {
-       _pam_log(LOG_ERR, "authentication management group is not supported by 
this module");
+       pam_syslog(pamh, LOG_ERR, "authentication management group is not 
supported by this module");
        return PAM_SERVICE_ERR;
 }
 
 PAM_EXTERN int pam_sm_acct_mgmt(pam_handle_t *pamh, int flags, int argc, const 
char **argv) {
-       _pam_log(LOG_ERR, "account management group is not supported by this 
module");
+       pam_syslog(pamh, LOG_ERR, "account management group is not supported by 
this module");
        return PAM_SERVICE_ERR;
 }
 
 PAM_EXTERN int pam_sm_chauthtok(pam_handle_t *pamh, int flags, int argc, const 
char **argv) {
-       _pam_log(LOG_ERR, "password management group is not unsupported by this 
module");
+       pam_syslog(pamh, LOG_ERR, "password management group is not unsupported 
by this module");
        return PAM_SERVICE_ERR;
 }
 
================================================================

---- CVS-web:
    http://cvs.pld-linux.org/pam/modules/pam_quota/pam_quota.c?r1=1.1&r2=1.2&f=u

_______________________________________________
pld-cvs-commit mailing list
[email protected]
http://lists.pld-linux.org/mailman/listinfo/pld-cvs-commit

Reply via email to