@@ -18,9 +18,9 @@ Subject: [PATCH] Modify user map profile
18
18
debian/changelog | 11 +
19
19
debian/control | 11 +-
20
20
debian/libnss-tacplus.symbols | 1 -
21
- nss_tacplus.c | 1018 +++++++++++++++------------------
21
+ nss_tacplus.c | 1015 +++++++++++++++------------------
22
22
tacplus_nss.conf | 91 ++-
23
- 8 files changed, 527 insertions(+), 613 deletions(-)
23
+ 8 files changed, 525 insertions(+), 612 deletions(-)
24
24
25
25
diff --git a/Makefile.am b/Makefile.am
26
26
index 293951e..b33c455 100644
@@ -1083,7 +1083,7 @@ index 79e62b9..ecfa0b0 100644
1083
1083
tac_add_attrib(attr, "service", tac_service);
1084
1084
if(tac_protocol[0])
1085
1085
tac_add_attrib(attr, "protocol", tac_protocol);
1086
- @@ -598,34 +659,9 @@ lookup_tacacs_user(struct pwbuf *pb)
1086
+ @@ -598,52 +659,25 @@ lookup_tacacs_user(struct pwbuf *pb)
1087
1087
{
1088
1088
struct areply arep;
1089
1089
int ret = 1, done = 0;
@@ -1119,11 +1119,17 @@ index 79e62b9..ecfa0b0 100644
1119
1119
for(srvr=0; srvr < tac_srv_no && !done; srvr++) {
1120
1120
arep.msg = NULL;
1121
1121
arep.attr = NULL;
1122
- @@ -636,14 +672,13 @@ lookup_tacacs_user(struct pwbuf *pb)
1123
- syslog(LOG_WARNING, "%s: failed to connect TACACS+ server %s,"
1124
- " ret=%d: %m", nssname, tac_srv[srvr].addr ?
1125
- tac_ntop(tac_srv[srvr].addr->ai_addr) : "unknown", tac_fd);
1122
+ arep.status = TAC_PLUS_AUTHOR_STATUS_ERROR; /* if author_send fails */
1123
+ tac_fd = connect_tacacs(&attr, srvr);
1124
+ if (tac_fd < 0) {
1125
+ - if(debug)
1126
+ - syslog(LOG_WARNING, "%s: failed to connect TACACS+ server %s,"
1127
+ - " ret=%d: %m", nssname, tac_srv[srvr].addr ?
1128
+ - tac_ntop(tac_srv[srvr].addr->ai_addr) : "unknown", tac_fd);
1126
1129
- tac_free_attrib(&attr);
1130
+ + syslog(LOG_ERR, "%s: failed to connect TACACS+ server %s,"
1131
+ + " ret=%d: %m", nssname, tac_srv[srvr].addr ?
1132
+ + tac_ntop(tac_srv[srvr].addr->ai_addr) : "unknown", tac_fd);
1127
1133
continue;
1128
1134
}
1129
1135
- ret = tac_author_send(tac_fd, pb->name, "", tac_rhost, attr);
@@ -1137,7 +1143,7 @@ index 79e62b9..ecfa0b0 100644
1137
1143
tac_ntop(tac_srv[srvr].addr->ai_addr) : "unknown", ret,
1138
1144
pb->name);
1139
1145
}
1140
- @@ -668,14 +703 ,11 @@ lookup_tacacs_user(struct pwbuf *pb)
1146
+ @@ -668,14 +702 ,11 @@ lookup_tacacs_user(struct pwbuf *pb)
1141
1147
if(arep.status == AUTHOR_STATUS_PASS_ADD ||
1142
1148
arep.status == AUTHOR_STATUS_PASS_REPL) {
1143
1149
ret = got_tacacs_user(arep.attr, pb);
@@ -1154,7 +1160,7 @@ index 79e62b9..ecfa0b0 100644
1154
1160
done = 1; /* break out of loop after arep cleanup */
1155
1161
}
1156
1162
else {
1157
- @@ -685,6 +717 ,10 @@ lookup_tacacs_user(struct pwbuf *pb)
1163
+ @@ -685,6 +716 ,10 @@ lookup_tacacs_user(struct pwbuf *pb)
1158
1164
" invalid (%d)", nssname,
1159
1165
tac_ntop(tac_srv[srvr].addr->ai_addr), pb->name,
1160
1166
arep.status);
@@ -1165,7 +1171,7 @@ index 79e62b9..ecfa0b0 100644
1165
1171
}
1166
1172
if(arep.msg)
1167
1173
free(arep.msg);
1168
- @@ -692,30 +728 ,12 @@ lookup_tacacs_user(struct pwbuf *pb)
1174
+ @@ -692,30 +727 ,12 @@ lookup_tacacs_user(struct pwbuf *pb)
1169
1175
tac_free_attrib(&arep.attr);
1170
1176
}
1171
1177
@@ -1198,7 +1204,7 @@ index 79e62b9..ecfa0b0 100644
1198
1204
*
1199
1205
* We try the lookup to the tacacs server first. If we can't make a
1200
1206
* connection to the server for some reason, we also try looking up
1201
- @@ -730,20 +748 ,25 @@ enum nss_status _nss_tacplus_getpwnam_r(const char *name, struct passwd *pw,
1207
+ @@ -730,20 +747 ,25 @@ enum nss_status _nss_tacplus_getpwnam_r(const char *name, struct passwd *pw,
1202
1208
int result;
1203
1209
struct pwbuf pbuf;
1204
1210
@@ -1233,7 +1239,7 @@ index 79e62b9..ecfa0b0 100644
1233
1239
/* marshal the args for the lower level functions */
1234
1240
pbuf.name = (char *)name;
1235
1241
pbuf.pw = pw;
1236
- @@ -751,126 +774 ,13 @@ enum nss_status _nss_tacplus_getpwnam_r(const char *name, struct passwd *pw,
1242
+ @@ -751,126 +773 ,13 @@ enum nss_status _nss_tacplus_getpwnam_r(const char *name, struct passwd *pw,
1237
1243
pbuf.buflen = buflen;
1238
1244
pbuf.errnop = errnop;
1239
1245
@@ -1468,4 +1474,3 @@ index bb4eb1e..7cb756f 100644
1468
1474
+ # many_to_one=y
1469
1475
- -
1470
1476
2.7.4
1471
-
0 commit comments