From 079f433db08e7ec73587bbc078ebe078343e3e92 Mon Sep 17 00:00:00 2001 From: Alexey Tikhonov Date: Thu, 16 Nov 2023 20:46:43 +0100 Subject: [PATCH] CLIENT: reduce code duplication MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Reviewed-by: Justin Stephenson Reviewed-by: Pavel Březina Reviewed-by: Sumit Bose --- src/sss_client/common.c | 24 ++++++------------------ 1 file changed, 6 insertions(+), 18 deletions(-) diff --git a/src/sss_client/common.c b/src/sss_client/common.c index 57175f683e8..03823884160 100644 --- a/src/sss_client/common.c +++ b/src/sss_client/common.c @@ -919,6 +919,9 @@ int sss_pac_check_and_open(void) return EOK; } +/* Non-locking version is exported (non-static) because + * it is used by 'krb5_child' (that is single threaded so + * it is safe to use non-locking version there) */ int sss_pac_make_request(enum sss_cli_command cmd, struct sss_cli_req_data *rd, uint8_t **repbuf, size_t *replen, @@ -926,7 +929,6 @@ int sss_pac_make_request(enum sss_cli_command cmd, { enum sss_status ret; char *envval; - int timeout = SSS_CLI_SOCKET_TIMEOUT; /* avoid looping in the nss daemon */ envval = getenv("_SSS_LOOPS"); @@ -934,24 +936,10 @@ int sss_pac_make_request(enum sss_cli_command cmd, return NSS_STATUS_NOTFOUND; } - ret = sss_cli_check_socket(errnop, SSS_PAC_SOCKET_NAME, timeout); - if (ret != SSS_STATUS_SUCCESS) { - return NSS_STATUS_UNAVAIL; - } - - ret = sss_cli_make_request_nochecks(cmd, rd, timeout, repbuf, replen, - errnop); - if (ret == SSS_STATUS_UNAVAIL && *errnop == EPIPE) { - /* try reopen socket */ - ret = sss_cli_check_socket(errnop, SSS_PAC_SOCKET_NAME, timeout); - if (ret != SSS_STATUS_SUCCESS) { - return NSS_STATUS_UNAVAIL; - } + ret = sss_cli_make_request_with_checks(cmd, rd, SSS_CLI_SOCKET_TIMEOUT, + repbuf, replen, errnop, + SSS_PAC_SOCKET_NAME); - /* and make request one more time */ - ret = sss_cli_make_request_nochecks(cmd, rd, timeout, repbuf, replen, - errnop); - } switch (ret) { case SSS_STATUS_TRYAGAIN: return NSS_STATUS_TRYAGAIN;