Skip to content

Commit

Permalink
[TACACS] Improve nss-tacplus TACACS connect timeout (#17460)
Browse files Browse the repository at this point in the history
Improve nss-tacplus TACACS connect timeout

#### Why I did it
TACACS login usually config multiple server, when a high priority server not reachable or high lantency, remote user login will slowly, also run SUDO command will slowly.
To improve this issue, enable read timeout in nss-tacplus.

### How I did it
Enable read timeout in nss-tacplus.

#### How to verify it
Pass all UT.

### Description for the changelog
Improve nss-tacplus TACACS connect timeout.
  • Loading branch information
liuh-80 authored and mssonicbld committed Aug 27, 2024
1 parent dc87112 commit 0928744
Showing 1 changed file with 10 additions and 4 deletions.
14 changes: 10 additions & 4 deletions src/tacacs/nss/patch/0001-Modify-user-map-profile.patch
Original file line number Diff line number Diff line change
Expand Up @@ -180,7 +180,7 @@ index 79e62b9..ecfa0b0 100644

/*
* pwbuf is used to reduce number of arguments passed around; the strings in
@@ -63,255 +59,239 @@ struct pwbuf {
@@ -63,255 +59,245 @@ struct pwbuf {
typedef struct {
struct addrinfo *addr;
char *key;
Expand Down Expand Up @@ -445,9 +445,15 @@ index 79e62b9..ecfa0b0 100644
+ tac_srv[tac_srv_no].key = strdup(token + 7);
+ }
+ else if(!strncmp(token, "timeout=", 8)) {
+ tac_srv[tac_srv_no].timeout = (int)strtoul(token + 8, NULL, 0);
+ if(tac_srv[tac_srv_no].timeout < 0)
+ tac_srv[tac_srv_no].timeout = 0;
+ int timeout = (int)strtoul(token + 8, NULL, 0);
+ if(timeout < 0) {
+ tac_srv[tac_srv_no].timeout = 0;
+ tac_readtimeout_enable = 0;
+ }
+ else {
+ tac_srv[tac_srv_no].timeout = timeout;
+ tac_readtimeout_enable = 1;
+ }
+ /* Limit timeout to make sure upper application not wait
+ * for a long time*/
+ if(tac_srv[tac_srv_no].timeout > 5)
Expand Down

0 comments on commit 0928744

Please sign in to comment.