From 840275f50291f7557742128e7146c462bd906a45 Mon Sep 17 00:00:00 2001 From: aland Date: Mon, 10 Dec 2007 16:07:30 +0000 Subject: [PATCH] Now that we have request->client, we don't need client_find() as much --- src/main/auth.c | 13 ++++++++++--- src/main/xlat.c | 2 +- src/modules/rlm_radutmp/rlm_radutmp.c | 15 ++------------- src/modules/rlm_unix/rlm_unix.c | 4 +--- 4 files changed, 14 insertions(+), 20 deletions(-) diff --git a/src/main/auth.c b/src/main/auth.c index 626d186..a6ced2b 100644 --- a/src/main/auth.c +++ b/src/main/auth.c @@ -47,7 +47,7 @@ char *auth_name(char *buf, size_t buflen, REQUEST *request, int do_cli) port = pair->vp_integer; snprintf(buf, buflen, "from client %.128s port %u%s%.128s%s", - client_name_old(&request->packet->src_ipaddr), port, + request->client->shortname, port, (do_cli ? " cli " : ""), (do_cli ? (char *)cli->vp_strvalue : ""), (request->packet->src_port == 0) ? " via TLS tunnel" : ""); @@ -201,6 +201,8 @@ static int rad_check_password(REQUEST *request) } if (password_pair) { + DICT_ATTR *da; + DEBUG("!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"); DEBUG("!!! Replacing User-Password in config items with Cleartext-Password. !!!"); DEBUG("!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"); @@ -208,8 +210,13 @@ static int rad_check_password(REQUEST *request) DEBUG("!!! clear text password is in Cleartext-Password, and not in User-Password. !!!"); DEBUG("!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"); password_pair->attribute = PW_CLEARTEXT_PASSWORD; - strlcpy(password_pair->name, "Cleartext-Password", - sizeof(password_pair->name)); + da = dict_attrbyvalue(PW_CLEARTEXT_PASSWORD); + if (!da) { + radlog(L_ERR, "FATAL: You broke the dictionaries. Please use the default dictionaries!"); + _exit(1); + } + + password_pair->name = da->name; } /* diff --git a/src/main/xlat.c b/src/main/xlat.c index d0c83a9..284d15e 100644 --- a/src/main/xlat.c +++ b/src/main/xlat.c @@ -1077,7 +1077,7 @@ int radius_xlat(char *out, int outlen, const char *fmt, p++; break; case 'C': /* ClientName */ - strlcpy(q,client_name_old(&request->packet->src_ipaddr),freespace); + strlcpy(q,request->client->shortname,freespace); q += strlen(q); p++; break; diff --git a/src/modules/rlm_radutmp/rlm_radutmp.c b/src/modules/rlm_radutmp/rlm_radutmp.c index 207dc61..a2f497a 100644 --- a/src/modules/rlm_radutmp/rlm_radutmp.c +++ b/src/modules/rlm_radutmp/rlm_radutmp.c @@ -320,22 +320,11 @@ static int radutmp_accounting(void *instance, REQUEST *request) if (nas_address == 0) { nas_address = request->packet->src_ipaddr.ipaddr.ip4addr.s_addr; ut.nas_address = nas_address; - nas = client_name_old(&request->packet->src_ipaddr); /* MUST be a valid client */ + nas = request->client->shortname; } else if (request->packet->src_ipaddr.ipaddr.ip4addr.s_addr == nas_address) { /* might be a client, might not be. */ - RADCLIENT *cl; + nas = request->client->shortname; - /* - * Hack like 'client_name()', but with sane - * fall-back. - */ - cl = client_find_old(&request->packet->src_ipaddr); - if (!cl) rad_assert(0 == 1); /* WTF? */ - if (cl->shortname && cl->shortname[0]) { - nas = cl->shortname; - } else { - nas = cl->longname; - } } else { /* * The NAS isn't a client, it's behind diff --git a/src/modules/rlm_unix/rlm_unix.c b/src/modules/rlm_unix/rlm_unix.c index b1987b9..6e42833 100644 --- a/src/modules/rlm_unix/rlm_unix.c +++ b/src/modules/rlm_unix/rlm_unix.c @@ -514,11 +514,9 @@ static int unix_accounting(void *instance, REQUEST *request) * originator's IP address. */ if (nas_address == 0) { - RADCLIENT *cl; nas_address = request->packet->src_ipaddr.ipaddr.ip4addr.s_addr; - if ((cl = client_find_old(&request->packet->src_ipaddr)) != NULL) - s = cl->shortname; + s = request->client->shortname; } if (!s || s[0] == 0) s = uue(&(nas_address)); -- 2.1.4