140 |
return rad_decode_pdu(host, udp_port, buffer, length); |
return rad_decode_pdu(host, udp_port, buffer, length); |
141 |
} |
} |
142 |
|
|
143 |
static VALUE_PAIR * |
VALUE_PAIR * |
144 |
_encode_pairlist(VALUE_PAIR *p, u_char *vector, u_char *secret) |
rad_clt_encrypt_pairlist(VALUE_PAIR *plist, u_char *vector, u_char *secret) |
145 |
{ |
{ |
146 |
VALUE_PAIR *ret = avl_dup(p); |
VALUE_PAIR *p; |
147 |
|
|
148 |
for (p = ret; p; p = p->next) { |
for (p = plist; p; p = p->next) { |
149 |
if (p->prop & AP_ENCRYPT_RFC2138) { |
if (p->prop & AP_ENCRYPT_RFC2138) { |
150 |
char *pass = p->avp_strvalue; |
char *pass = p->avp_strvalue; |
151 |
encrypt_password(p, pass, vector, secret); |
encrypt_password(p, pass, vector, secret); |
156 |
efree(pass); |
efree(pass); |
157 |
} |
} |
158 |
} |
} |
159 |
return ret; |
return plist; |
160 |
} |
} |
|
|
|
161 |
|
|
162 |
RADIUS_REQ * |
RADIUS_REQ * |
163 |
rad_clt_send0(RADIUS_SERVER_QUEUE *config, int port_type, int code, |
rad_clt_send0(RADIUS_SERVER_QUEUE *config, int port_type, int code, |
239 |
id = *authid; |
id = *authid; |
240 |
else |
else |
241 |
id = rad_clt_message_id(server); |
id = rad_clt_message_id(server); |
242 |
pair = _encode_pairlist(pairlist, vector, server->secret); |
pair = rad_clt_encrypt_pairlist(avl_dup(pairlist), |
243 |
|
vector, server->secret); |
244 |
size = rad_create_pdu(&pdu, code, |
size = rad_create_pdu(&pdu, code, |
245 |
id, |
id, |
246 |
vector, |
vector, |