diff options
author | Lukas Slebodnik <lslebodn@redhat.com> | 2016-02-26 16:06:50 +0100 |
---|---|---|
committer | Lukas Slebodnik <lslebodn@redhat.com> | 2016-03-11 11:46:11 +0100 |
commit | a452d199bc125e8d53033d7c00383b4a275ab85e (patch) | |
tree | 66406fb10614de07970505406cc6c3d37757d86d /src/sss_client | |
parent | c6bda70d6131b5e8cd760ad690fae001d1765547 (diff) | |
download | sssd-a452d199bc125e8d53033d7c00383b4a275ab85e.tar.gz sssd-a452d199bc125e8d53033d7c00383b4a275ab85e.tar.xz sssd-a452d199bc125e8d53033d7c00383b4a275ab85e.zip |
CLIENT: Reduce code duplication
Patch for #2626 will be simpler with this small refactoring
Reviewed-by: Jakub Hrozek <jhrozek@redhat.com>
Diffstat (limited to 'src/sss_client')
-rw-r--r-- | src/sss_client/common.c | 58 |
1 files changed, 27 insertions, 31 deletions
diff --git a/src/sss_client/common.c b/src/sss_client/common.c index 0d9106a04..827f0c2ac 100644 --- a/src/sss_client/common.c +++ b/src/sss_client/common.c @@ -829,6 +829,7 @@ int sss_pam_make_request(enum sss_cli_command cmd, enum sss_status status; char *envval; struct stat stat_buf; + const char *socket_name; sss_pam_lock(); @@ -841,7 +842,8 @@ int sss_pam_make_request(enum sss_cli_command cmd, /* only root shall use the privileged pipe */ if (getuid() == 0 && getgid() == 0) { - statret = stat(SSS_PAM_PRIV_SOCKET_NAME, &stat_buf); + socket_name = SSS_PAM_PRIV_SOCKET_NAME; + statret = stat(socket_name, &stat_buf); if (statret != 0) { ret = PAM_SERVICE_ERR; goto out; @@ -854,10 +856,9 @@ int sss_pam_make_request(enum sss_cli_command cmd, ret = PAM_SERVICE_ERR; goto out; } - - status = sss_cli_check_socket(errnop, SSS_PAM_PRIV_SOCKET_NAME); } else { - statret = stat(SSS_PAM_SOCKET_NAME, &stat_buf); + socket_name = SSS_PAM_SOCKET_NAME; + statret = stat(socket_name, &stat_buf); if (statret != 0) { ret = PAM_SERVICE_ERR; goto out; @@ -870,9 +871,9 @@ int sss_pam_make_request(enum sss_cli_command cmd, ret = PAM_SERVICE_ERR; goto out; } - - status = sss_cli_check_socket(errnop, SSS_PAM_SOCKET_NAME); } + + status = sss_cli_check_socket(errnop, socket_name); if (status != SSS_STATUS_SUCCESS) { ret = PAM_SERVICE_ERR; goto out; @@ -910,14 +911,16 @@ void sss_pam_close_fd(void) sss_pam_unlock(); } -int sss_sudo_make_request(enum sss_cli_command cmd, - struct sss_cli_req_data *rd, - uint8_t **repbuf, size_t *replen, - int *errnop) +static enum sss_status +sss_cli_make_request_with_checks(enum sss_cli_command cmd, + struct sss_cli_req_data *rd, + uint8_t **repbuf, size_t *replen, + int *errnop, + const char *socket_name) { enum sss_status ret = SSS_STATUS_UNAVAIL; - ret = sss_cli_check_socket(errnop, SSS_SUDO_SOCKET_NAME); + ret = sss_cli_check_socket(errnop, socket_name); if (ret != SSS_STATUS_SUCCESS) { return SSS_STATUS_UNAVAIL; } @@ -927,21 +930,22 @@ int sss_sudo_make_request(enum sss_cli_command cmd, return ret; } +int sss_sudo_make_request(enum sss_cli_command cmd, + struct sss_cli_req_data *rd, + uint8_t **repbuf, size_t *replen, + int *errnop) +{ + return sss_cli_make_request_with_checks(cmd, rd, repbuf, replen, errnop, + SSS_SUDO_SOCKET_NAME); +} + int sss_autofs_make_request(enum sss_cli_command cmd, struct sss_cli_req_data *rd, uint8_t **repbuf, size_t *replen, int *errnop) { - enum sss_status ret = SSS_STATUS_UNAVAIL; - - ret = sss_cli_check_socket(errnop, SSS_AUTOFS_SOCKET_NAME); - if (ret != SSS_STATUS_SUCCESS) { - return SSS_STATUS_UNAVAIL; - } - - ret = sss_cli_make_request_nochecks(cmd, rd, repbuf, replen, errnop); - - return ret; + return sss_cli_make_request_with_checks(cmd, rd, repbuf, replen, errnop, + SSS_AUTOFS_SOCKET_NAME); } int sss_ssh_make_request(enum sss_cli_command cmd, @@ -949,16 +953,8 @@ int sss_ssh_make_request(enum sss_cli_command cmd, uint8_t **repbuf, size_t *replen, int *errnop) { - enum sss_status ret = SSS_STATUS_UNAVAIL; - - ret = sss_cli_check_socket(errnop, SSS_SSH_SOCKET_NAME); - if (ret != SSS_STATUS_SUCCESS) { - return SSS_STATUS_UNAVAIL; - } - - ret = sss_cli_make_request_nochecks(cmd, rd, repbuf, replen, errnop); - - return ret; + return sss_cli_make_request_with_checks(cmd, rd, repbuf, replen, errnop, + SSS_SSH_SOCKET_NAME); } |