diff options
author | Darren Tucker <dtucker@dtucker.net> | 2018-03-03 16:21:20 +1100 |
---|---|---|
committer | Darren Tucker <dtucker@dtucker.net> | 2018-03-03 16:21:20 +1100 |
commit | 13ef4cf53f24753fe920832b990b25c9c9cd0530 (patch) | |
tree | d6059082a947e01ea47c539aef74c238e88297fd /auth-pam.c | |
parent | 33561e68e0b27366cb769295a077aabc6a49d2a1 (diff) |
Update PAM password change to new opts API.
Diffstat (limited to 'auth-pam.c')
-rw-r--r-- | auth-pam.c | 21 |
1 files changed, 15 insertions, 6 deletions
@@ -287,18 +287,27 @@ sshpam_chauthtok_ruid(pam_handle_t *pamh, int flags) void sshpam_password_change_required(int reqd) { + extern struct sshauthopt *auth_opts; + static int saved_port, saved_agent, saved_x11; + debug3("%s %d", __func__, reqd); if (sshpam_authctxt == NULL) fatal("%s: PAM authctxt not initialized", __func__); sshpam_authctxt->force_pwchange = reqd; if (reqd) { - no_port_forwarding_flag |= 2; - no_agent_forwarding_flag |= 2; - no_x11_forwarding_flag |= 2; + saved_port = auth_opts->permit_port_forwarding_flag; + saved_agent = auth_opts->permit_agent_forwarding_flag; + saved_x11 = auth_opts->permit_x11_forwarding_flag; + auth_opts->permit_port_forwarding_flag = 0; + auth_opts->permit_agent_forwarding_flag = 0; + auth_opts->permit_x11_forwarding_flag = 0; } else { - no_port_forwarding_flag &= ~2; - no_agent_forwarding_flag &= ~2; - no_x11_forwarding_flag &= ~2; + if (saved_port) + auth_opts->permit_port_forwarding_flag = saved_port; + if (saved_agent) + auth_opts->permit_agent_forwarding_flag = saved_agent; + if (saved_x11) + auth_opts->permit_x11_forwarding_flag = saved_x11; } } |