|
Lines 374-379
aix_restoreauthdb(void)
Link Here
|
| 374 |
|
374 |
|
| 375 |
# endif /* WITH_AIXAUTHENTICATE */ |
375 |
# endif /* WITH_AIXAUTHENTICATE */ |
| 376 |
|
376 |
|
|
|
377 |
/* |
| 378 |
* aix_krb5_get_principal_name: returns the user's kerberos client principal name if |
| 379 |
* configured, otherwise NULL. Caller must free returned string. |
| 380 |
*/ |
| 381 |
char * |
| 382 |
aix_krb5_get_principal_name(char *pw_name) |
| 383 |
{ |
| 384 |
char *authname = NULL, *authdomain = NULL, *client = NULL; |
| 385 |
|
| 386 |
setuserdb(S_READ); |
| 387 |
if (getuserattr(pw_name, S_AUTHDOMAIN, &authdomain, SEC_CHAR) != 0) |
| 388 |
debug("AIX getuserattr S_AUTHDOMAIN: %s", strerror(errno)); |
| 389 |
if (getuserattr(pw_name, S_AUTHNAME, &authname, SEC_CHAR) != 0) |
| 390 |
debug("AIX getuserattr S_AUTHNAME: %s", strerror(errno)); |
| 391 |
|
| 392 |
if (authdomain != NULL) { |
| 393 |
if (xasprintf(&client, "%s@%s", authname ? authname : pw_name, |
| 394 |
authdomain) != -1){ |
| 395 |
char *newclient = xstrdup(client); |
| 396 |
enduserdb(); |
| 397 |
return newclient; |
| 398 |
} |
| 399 |
} else if (authname != NULL){ |
| 400 |
enduserdb(); |
| 401 |
return xstrdup(authname); |
| 402 |
} |
| 403 |
enduserdb(); |
| 404 |
return NULL; |
| 405 |
} |
| 406 |
|
| 377 |
# if defined(AIX_GETNAMEINFO_HACK) && !defined(BROKEN_ADDRINFO) |
407 |
# if defined(AIX_GETNAMEINFO_HACK) && !defined(BROKEN_ADDRINFO) |
| 378 |
# undef getnameinfo |
408 |
# undef getnameinfo |
| 379 |
/* |
409 |
/* |