Index: config-scripts/cups-pam.m4 =================================================================== --- config-scripts/cups-pam.m4 (revision 7144) +++ config-scripts/cups-pam.m4 (working copy) @@ -30,6 +30,7 @@ AC_CHECK_LIB(dl,dlopen) AC_CHECK_LIB(pam,pam_start) + AC_CHECK_LIB(pam,pam_set_item,AC_DEFINE(HAVE_PAM_SET_ITEM)) AC_CHECK_HEADER(security/pam_appl.h) if test x$ac_cv_header_security_pam_appl_h != xyes; then AC_CHECK_HEADER(pam/pam_appl.h, Index: CHANGES.txt =================================================================== --- CHANGES.txt (revision 7145) +++ CHANGES.txt (working copy) @@ -3,6 +3,8 @@ CHANGES IN CUPS V1.4b1 + - The scheduler now sets the PAM RHOST value on systems + that support it (STR #2637) - The scheduler now sandboxes child processes when possible. - The Cancel-Job operation now supports a purge-job Index: config.h.in =================================================================== --- config.h.in (revision 7145) +++ config.h.in (working copy) @@ -131,6 +131,7 @@ #endif /* !HAVE_LIBPAM */ #undef HAVE_PAM_PAM_APPL_H +#undef HAVE_PAM_SET_ITEM /* Index: scheduler/auth.c =================================================================== --- scheduler/auth.c (revision 7144) +++ scheduler/auth.c (working copy) @@ -657,6 +657,14 @@ return; } +# if defined(HAVE_PAM_SET_ITEM) && defined(PAM_RHOST) + pamerr = pam_set_item(pamh, PAM_RHOST, con->http.hostname); + if (pamerr != PAM_SUCCESS) + cupsdLogMessage(CUPSD_LOG_WARN, + "cupsdAuthorize: pam_set_item() returned %d " + "(%s)!\n", pamerr, pam_strerror(pamh, pamerr)); +# endif /* HAVE_PAM_SET_ITEM && PAM_RHOST */ + pamerr = pam_authenticate(pamh, PAM_SILENT); if (pamerr != PAM_SUCCESS) {