X-Git-Url: http://git.ozlabs.org/?p=ppp.git;a=blobdiff_plain;f=pppd%2Fplugins%2Fradius%2Fradiusclient%2Flib%2Fbuildreq.c;h=b7ca07ecd2946a59e29ee2b04dc69a034648c405;hp=507a25c63fce0d869dcfa54ad6e07bea3744af38;hb=c062322f9e8757b85a3c2281a3190d8af14bcd9b;hpb=d95598c16f6a3feb4846db669601856bad15bb74 diff --git a/pppd/plugins/radius/radiusclient/lib/buildreq.c b/pppd/plugins/radius/radiusclient/lib/buildreq.c index 507a25c..b7ca07e 100644 --- a/pppd/plugins/radius/radiusclient/lib/buildreq.c +++ b/pppd/plugins/radius/radiusclient/lib/buildreq.c @@ -1,5 +1,5 @@ /* - * $Id: buildreq.c,v 1.1 2002/01/22 16:03:02 dfs Exp $ + * $Id: buildreq.c,v 1.2 2002/03/01 14:39:19 dfs Exp $ * * Copyright (C) 1995,1997 Lars Fenneberg * @@ -121,12 +121,37 @@ unsigned char rc_get_seqnbr(void) int rc_auth(UINT4 client_port, VALUE_PAIR *send, VALUE_PAIR **received, char *msg) +{ + SERVER *authserver = rc_conf_srv("authserver"); + + if (!authserver) { + return (ERROR_RC); + } + return rc_auth_using_server(authserver, client_port, send, received, msg); +} + +/* + * Function: rc_auth_using_server + * + * Purpose: Builds an authentication request for port id client_port + * with the value_pairs send and submits it to a server. You + * explicitly supply a server list. + * + * Returns: received value_pairs in received, messages from the server in msg + * and 0 on success, negative on failure as return value + * + */ + +int rc_auth_using_server(SERVER *authserver, + UINT4 client_port, + VALUE_PAIR *send, + VALUE_PAIR **received, + char *msg) { SEND_DATA data; UINT4 client_id; int result; int i; - SERVER *authserver = rc_conf_srv("authserver"); int timeout = rc_conf_int("radius_timeout"); int retries = rc_conf_int("radius_retries"); @@ -215,16 +240,18 @@ int rc_auth_proxy(VALUE_PAIR *send, VALUE_PAIR **received, char *msg) /* - * Function: rc_acct + * Function: rc_acct_using_server * * Purpose: Builds an accounting request for port id client_port - * with the value_pairs send + * with the value_pairs send. You explicitly supply server list. * * Remarks: NAS-IP-Address, NAS-Port and Acct-Delay-Time get filled * in by this function, the rest has to be supplied. */ -int rc_acct(UINT4 client_port, VALUE_PAIR *send) +int rc_acct_using_server(SERVER *acctserver, + UINT4 client_port, + VALUE_PAIR *send) { SEND_DATA data; VALUE_PAIR *adt_vp; @@ -233,7 +260,6 @@ int rc_acct(UINT4 client_port, VALUE_PAIR *send) time_t start_time, dtime; char msg[4096]; int i; - SERVER *acctserver = rc_conf_srv("acctserver"); int timeout = rc_conf_int("radius_timeout"); int retries = rc_conf_int("radius_retries"); @@ -288,6 +314,24 @@ int rc_acct(UINT4 client_port, VALUE_PAIR *send) return result; } +/* + * Function: rc_acct + * + * Purpose: Builds an accounting request for port id client_port + * with the value_pairs send + * + * Remarks: NAS-IP-Address, NAS-Port and Acct-Delay-Time get filled + * in by this function, the rest has to be supplied. + */ + +int rc_acct(UINT4 client_port, VALUE_PAIR *send) +{ + SERVER *acctserver = rc_conf_srv("acctserver"); + if (!acctserver) return (ERROR_RC); + + return rc_acct_using_server(acctserver, client_port, send); +} + /* * Function: rc_acct_proxy *