intrc_aaa(rc_handle*,uint32_t,VALUE_PAIR*,VALUE_PAIR**,char*,int,rc_standard_codes);intrc_aaa_ctx(rc_handle*,RC_AAA_CTX**,uint32_t,VALUE_PAIR*,VALUE_PAIR**,char*,int,rc_standard_codes);voidrc_aaa_ctx_free(RC_AAA_CTX*);constchar*rc_aaa_ctx_get_secret(RC_AAA_CTX*);constvoid*rc_aaa_ctx_get_vector(RC_AAA_CTX*);intrc_aaa_ctx_server(rc_handle*,RC_AAA_CTX**,SERVER*,rc_type,uint32_t,VALUE_PAIR*,VALUE_PAIR**,char*,int,rc_standard_codes);intrc_acct(rc_handle*,uint32_t,VALUE_PAIR*);intrc_acct_proxy(rc_handle*,VALUE_PAIR*);intrc_add_config(rc_handle*,charconst*,charconst*,charconst*,int);intrc_apply_config(rc_handle*);intrc_auth(rc_handle*,uint32_t,VALUE_PAIR*,VALUE_PAIR**,char*);intrc_auth_proxy(rc_handle*,VALUE_PAIR*,VALUE_PAIR**,char*);VALUE_PAIR*rc_avpair_add(rc_handleconst*,VALUE_PAIR**,int,voidconst*,int,int);intrc_avpair_assign(VALUE_PAIR*,voidconst*,int);VALUE_PAIR*rc_avpair_copy(VALUE_PAIR*);voidrc_avpair_free(VALUE_PAIR*);VALUE_PAIR*rc_avpair_gen(rc_handleconst*,VALUE_PAIR*,unsignedcharconst*,int,int);VALUE_PAIR*rc_avpair_get(VALUE_PAIR*,int,int);voidrc_avpair_get_attr(VALUE_PAIR*,unsigned*,unsigned*);intrc_avpair_get_in6(VALUE_PAIR*,structin6_addr*,unsigned*);intrc_avpair_get_raw(VALUE_PAIR*,char**,unsigned*);intrc_avpair_get_uint32(VALUE_PAIR*,uint32_t*);voidrc_avpair_insert(VALUE_PAIR**,VALUE_PAIR*,VALUE_PAIR*);char*rc_avpair_log(rc_handleconst*,VALUE_PAIR*,char*,size_t);VALUE_PAIR*rc_avpair_new(rc_handleconst*,int,voidconst*,int,int);VALUE_PAIR*rc_avpair_next(VALUE_PAIR*);intrc_avpair_parse(rc_handleconst*,charconst*,VALUE_PAIR**);voidrc_avpair_remove(VALUE_PAIR**,int,int);intrc_avpair_tostr(rc_handleconst*,VALUE_PAIR*,char*,int,char*,int);voidrc_buildreq(rc_handleconst*,SEND_DATA*,int,char*,unsignedshort,char*,int,int);intrc_check(rc_handle*,char*,char*,unsignedshort,char*);intrc_check_tls(rc_handle*);intrc_conf_int(rc_handleconst*,charconst*);SERVER*rc_conf_srv(rc_handleconst*,charconst*);char*rc_conf_str(rc_handleconst*,charconst*);voidrc_config_free(rc_handle*);rc_handle*rc_config_init(rc_handle*);voidrc_destroy(rc_handle*);DICT_ATTR*rc_dict_findattr(rc_handleconst*,charconst*);DICT_VALUE*rc_dict_findval(rc_handleconst*,charconst*);DICT_VENDOR*rc_dict_findvend(rc_handleconst*,charconst*);voidrc_dict_free(rc_handle*);DICT_ATTR*rc_dict_getattr(rc_handleconst*,int);DICT_VALUE*rc_dict_getval(rc_handleconst*,uint32_t,charconst*);DICT_VENDOR*rc_dict_getvend(rc_handleconst*,int);intrc_find_server_addr(rc_handleconst*,charconst*,structaddrinfo**,char*,rc_type);rc_socket_typerc_get_socket_type(rc_handle*);intrc_get_srcaddr(structsockaddr*,conststructsockaddr*);unsignedshortrc_getport(int);char*rc_mksid(void);rc_handle*rc_new(void);voidrc_openlog(charconst*);intrc_own_hostname(char*,int);rc_handle*rc_read_config(charconst*);intrc_read_dictionary(rc_handle*,charconst*);intrc_read_dictionary_from_buffer(rc_handle*,charconst*,size_t);intrc_send_server(rc_handle*,SEND_DATA*,char*,rc_type);voidrc_setdebug(int);intrc_test_config(rc_handle*,charconst*);intrc_tls_fd(rc_handle*);
this structure directly. Use the rc_avpair_get_ functions.
structrc_value_pair{charname;//attributenameifknown.unsignedattribute;//attributenumericvalueoftyperc_attr_id.rc_attr_typetype;//attributetype.uint32_tlvalue;//attributevalueiftypeisPW_TYPE_INTEGER,PW_TYPE_DATEorPW_TYPE_IPADDR.charstrvalue;//containsattributevalueinothercases.structrc_value_pair*next;charpad;//unusedpad};structsend_data{uint8_tcode;//RADIUSpacketcode.uint8_tseq_nbr;//Packetsequencenumber.char*server;//Name/addrressofRADIUSserver.intsvc_port;//RADIUSprotocoldestinationport.char*secret;//SharedsecretofRADIUSserver.inttimeout;//Sessiontimeoutinseconds.intretries;VALUE_PAIR*send_pairs;//Morea/vpairstosend.VALUE_PAIR*receive_pairs;//Wheretoplacereceiveda/vpairs.};
this structure directly, it is included for backwards compatibility only. Several of its fields have been
deprecated.
structserver{intmax;char*name;uint16_tport;char*secret;doubledeadtime_ends;//unused};