Changeset 74
- Timestamp:
- 08/10/06 13:33:04 (2 years ago)
- Files:
-
- 1 modified
-
trunk/c2s/authreg_pam.c (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
trunk/c2s/authreg_pam.c
r2 r74 64 64 struct pam_conv conv; 65 65 pam_handle_t *pam; 66 int ret; 66 int ret, user_len, realm_len; 67 char *user_realm = 0; 67 68 68 69 conv.conv = _ar_pam_conversation; 69 70 conv.appdata_ptr = password; 70 71 71 ret = pam_start("jabberd", username, &conv, &pam); 72 if (realm) { 73 realm_len = strlen(realm); 74 if (realm_len > 0) { 75 user_len = strlen(username); 76 user_realm = malloc(user_len + realm_len + 2); 77 strcpy(user_realm, username); 78 *(user_realm + user_len) = '@'; 79 strcpy(user_realm + user_len + 1, realm); 80 } 81 } 82 if (user_realm) { 83 ret = pam_start("jabberd", user_realm, &conv, &pam); 84 } else { 85 ret = pam_start("jabberd", username, &conv, &pam); 86 } 87 if (user_realm) free(user_realm); 72 88 if(ret != PAM_SUCCESS) { 73 89 log_write(ar->c2s->log, LOG_ERR, "pam: couldn't initialise PAM: %s", pam_strerror(NULL, ret));
