source: trunk/patches/pam_pbssimpleauth.patch @ 28

Last change on this file since 28 was 28, checked in by bas, 15 years ago

Added:

  • pam_pbssimpleauth.patch that replaces syslog by pam_syslog
File size: 3.8 KB
  • src/pam/pam_pbssimpleauth.c

     
    7373  char jobdirpath[PATH_MAX+1];
    7474  int debug=0;
    7575
    76   openlog(MODNAME,LOG_PID,LOG_USER);
    7776  strcpy(jobdirpath,PBS_SERVER_HOME "/mom_priv/jobs");
    7877
    7978  /* step through arguments */
     
    8483    else if (!strcmp(*argv,"jobdir"))
    8584      strncpy(jobdirpath,*argv,PATH_MAX);
    8685    else
    87       syslog(LOG_ERR,"unknown option: %s",*argv);
     86      pam_syslog(pamh, LOG_ERR, "unknown option: %s", *argv);
    8887    }
    8988
    90   if (debug) syslog(LOG_INFO,"opening %s",jobdirpath);
     89  if (debug)
     90        pam_syslog(pamh, LOG_INFO, "opening %s", jobdirpath);
    9191
    9292  if ((jobdir = opendir(jobdirpath)) == NULL)
    9393    {
    94     if (debug) syslog(LOG_INFO,"failed to open jobs dir: %s",strerror(errno));
    95     closelog();
     94    if (debug)
     95        pam_syslog(pamh, LOG_INFO, "failed to open jobs dir: %s", strerror(errno));
     96
    9697    return PAM_IGNORE;
    9798    }
    9899
     
    102103#if defined(PAM_CONV_AGAIN) && defined(PAM_INCOMPLETE)
    103104  if (retval == PAM_CONV_AGAIN)
    104105    {
     106    /* HvB
    105107    closelog();
     108    */
    106109    return PAM_INCOMPLETE;
    107110    }
    108111#endif
    109112
    110113  if ((retval != PAM_SUCCESS) || !username)
    111114    {
    112     syslog(LOG_ERR,"failed to retrieve username");
    113     closelog();
     115    pam_syslog(pamh, LOG_ERR, "failed to retrieve username");
    114116    return PAM_SERVICE_ERR;
    115117    }
    116118
     
    118120
    119121  /* no early returns from this point on because we need to free ubuf */
    120122
    121   if (debug) syslog(LOG_INFO,"username %s, %s",username,user_pwd ? "known" : "unknown");
     123  if (debug)
     124        pam_syslog(pamh, LOG_INFO, "username %s, %s", username, user_pwd ? "known" : "unknown");
    122125
    123126  if (!user_pwd)
    124127    {
     
    126129    }
    127130  else if (user_pwd->pw_uid == 0)
    128131    {
    129     if (debug) syslog(LOG_INFO,"allowing uid 0");
     132    if (debug)
     133        pam_syslog(pamh, LOG_INFO, "allowing uid 0");
     134
    130135    retval = PAM_SUCCESS;
    131136    }
    132137  else
     
    139144        continue;
    140145
    141146      snprintf(jobpath,PATH_MAX-1,"%s/%s",jobdirpath,jdent->d_name);
    142       if (debug) syslog(LOG_INFO,"opening %s",jobpath);
     147      if (debug)
     148        pam_syslog(pamh, LOG_INFO, "opening %s", jobpath);
    143149
    144150      fp = open(jobpath, O_RDONLY, 0);
    145151      if (fp < 0)
    146152        {
    147         syslog(LOG_ERR,"error opening job file");               
     153        pam_syslog(pamh, LOG_ERR, "error opening job file");
    148154        continue;
    149155        }
    150156
     
    152158      if (amt != sizeof(xjob.ji_qs))
    153159        {
    154160        close(fp);
    155         syslog(LOG_ERR,"short read of job file");               
     161        pam_syslog(pamh, LOG_ERR, "short read of job file");
    156162        continue;
    157163        }
    158164
     
    160166        {
    161167        /* odd, this really should be JOB_UNION_TYPE_MOM */
    162168        close(fp);
    163         syslog(LOG_ERR,"job file corrupt");               
     169        pam_syslog(pamh, LOG_ERR, "job file corrupt");
     170
    164171        continue;
    165172        }
    166173
    167       if (debug) syslog(LOG_INFO,"state=%d, substate=%d",xjob.ji_qs.ji_state,xjob.ji_qs.ji_substate);
     174      if (debug)
     175        pam_syslog(pamh, LOG_INFO, "state=%d, substate=%d", xjob.ji_qs.ji_state,xjob.ji_qs.ji_substate);
    168176
    169177      if ((xjob.ji_qs.ji_un.ji_momt.ji_exuid == user_pwd->pw_uid) &&
    170178          ((xjob.ji_qs.ji_substate == JOB_SUBSTATE_PRERUN) ||
     
    173181        {
    174182        /* success! */
    175183        close(fp);
    176         if (debug) syslog(LOG_INFO,"allowed by %s",jdent->d_name);
     184        if (debug)
     185                pam_syslog(pamh, LOG_INFO, "allowed by %s", jdent->d_name);
     186
    177187        retval = PAM_SUCCESS;
    178188        break;
    179189        }
     
    188198  if (ubuf)
    189199    free(ubuf);
    190200   
    191   if (debug) syslog(LOG_INFO,"returning %s",retval==PAM_SUCCESS ? "success" : "failed");
     201  if (debug)
     202        pam_syslog(pamh, LOG_INFO, "returning %s", retval==PAM_SUCCESS ? "success" : "failed");
    192203
    193   closelog();
    194 
    195204  return retval;
    196205}
    197206
Note: See TracBrowser for help on using the repository browser.