]> git.sur5r.net Git - openldap/commitdiff
Add tty to authz params
authorHoward Chu <hyc@openldap.org>
Wed, 3 Jun 2009 01:46:37 +0000 (01:46 +0000)
committerHoward Chu <hyc@openldap.org>
Wed, 3 Jun 2009 01:46:37 +0000 (01:46 +0000)
contrib/slapd-modules/nssov/nss-ldapd/nss/pam.c
contrib/slapd-modules/nssov/pam.c

index 77d00a134f32e69bdf74cc162722dd860bb16651..3e724b26f4e8899950675c74b0dd765bc5520f0b 100644 (file)
@@ -359,14 +359,15 @@ static enum nss_status pam_read_authz(
 
 static enum nss_status pam_do_authz(
        pld_ctx *ctx, const char *svc, const char *ruser, const char *rhost,
-       int *errnop)
+       const char *tty, int *errnop)
 {
        NSS_BYGEN(NSLCD_ACTION_PAM_AUTHZ,
                WRITE_STRING(fp,ctx->user);
                WRITE_STRING(fp,ctx->dn);
                WRITE_STRING(fp,svc);
                WRITE_STRING(fp,ruser);
-               WRITE_STRING(fp,rhost),
+               WRITE_STRING(fp,rhost);
+               WRITE_STRING(fp,tty),
                pam_read_authz(fp,ctx,errnop));
 }
 
@@ -374,7 +375,7 @@ int pam_sm_acct_mgmt(
        pam_handle_t *pamh, int flags, int argc, const char **argv)
 {
        int rc, err;
-       const char *username, *svc, *ruser, *rhost;
+       const char *username, *svc, *ruser, *rhost, *tty;
        int no_warn = 0, ignore_flags = 0;
        int i;
        struct pam_conv *appconv;
@@ -427,6 +428,11 @@ int pam_sm_acct_mgmt(
        rc = pam_get_item (pamh, PAM_RHOST, (CONST_ARG void **) &rhost);
        if (rc != PAM_SUCCESS)
                return rc;
+
+       rc = pam_get_item (pamh, PAM_TTY, (CONST_ARG void **) &tty);
+       if (rc != PAM_SUCCESS)
+               return rc;
+
        ctx2.dn = ctx->dn;
        ctx2.user = ctx->user;
        rc = pam_do_authz(&ctx2, svc, ruser, rhost, &err);
index a87d6c444aaa304b76ca55941b0f532cfae51709..2009f310c1f34eac8a6f995f35395565bfbe820b 100644 (file)
@@ -255,7 +255,7 @@ static struct berval uidmsg =
 
 int pam_authz(nssov_info *ni,TFILE *fp,Operation *op)
 {
-       struct berval dn, uid, svc, ruser, rhost;
+       struct berval dn, uid, svc, ruser, rhost, tty;
        struct berval authzmsg = BER_BVNULL;
        int32_t tmpint32;
        char dnc[1024];
@@ -263,6 +263,7 @@ int pam_authz(nssov_info *ni,TFILE *fp,Operation *op)
        char svcc[256];
        char ruserc[32];
        char rhostc[256];
+       char ttyc[256];
        int rc = NSLCD_PAM_SUCCESS;
        Entry *e = NULL;
        Attribute *a;
@@ -284,6 +285,9 @@ int pam_authz(nssov_info *ni,TFILE *fp,Operation *op)
        READ_STRING_BUF2(fp,svcc,sizeof(rhostc));
        rhost.bv_val = rhostc;
        rhost.bv_len = tmpint32;
+       READ_STRING_BUF2(fp,svcc,sizeof(ttyc));
+       tty.bv_val = ttyc;
+       tty.bv_len = tmpint32;
 
        Debug(LDAP_DEBUG_TRACE,"nssov_pam_authz(%s)\n",dn.bv_val,0,0);