18ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project/* 28ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project * $Id: radiusclient.h,v 1.1 2004/11/14 07:26:26 paulus Exp $ 38ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project * 48ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project * Copyright (C) 1995,1996,1997,1998 Lars Fenneberg 58ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project * 68ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project * Copyright 1992 Livingston Enterprises, Inc. 78ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project * 88ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project * Copyright 1992,1993, 1994,1995 The Regents of the University of Michigan 98ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project * and Merit Network, Inc. All Rights Reserved 108ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project * 118ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project * See the file COPYRIGHT for the respective terms and conditions. 128ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project * If the file is missing contact me at lf@elemental.net 138ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project * and I'll send you a copy. 148ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project * 158ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project */ 168ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project 178ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#ifndef RADIUSCLIENT_H 188ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#define RADIUSCLIENT_H 198ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project 208ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#include <sys/types.h> 218ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#include <stdio.h> 228ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#include <time.h> 238ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#include "pppd.h" 248ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project 258ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#ifndef _UINT4_T 268ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project/* This works for all machines that Linux runs on... */ 278ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Projecttypedef unsigned int UINT4; 288ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Projecttypedef int INT4; 298ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#endif 308ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project 318ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#define AUTH_VECTOR_LEN 16 328ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#define AUTH_PASS_LEN (3 * 16) /* multiple of 16 */ 338ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#define AUTH_ID_LEN 64 348ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#define AUTH_STRING_LEN 128 /* maximum of 253 */ 358ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project 368ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#define BUFFER_LEN 8192 378ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project 388ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#define NAME_LENGTH 32 398ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#define GETSTR_LENGTH 128 /* must be bigger than AUTH_PASS_LEN */ 408ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project 418ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project/* codes for radius_buildreq, radius_getport, etc. */ 428ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#define AUTH 0 438ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#define ACCT 1 448ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project 458ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project/* defines for config.c */ 468ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project 478ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#define SERVER_MAX 8 488ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project 498ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#define AUTH_LOCAL_FST (1<<0) 508ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#define AUTH_RADIUS_FST (1<<1) 518ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#define AUTH_LOCAL_SND (1<<2) 528ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#define AUTH_RADIUS_SND (1<<3) 538ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project 548ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Projecttypedef struct server { 558ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project int max; 568ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project char *name[SERVER_MAX]; 578ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project unsigned short port[SERVER_MAX]; 588ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project} SERVER; 598ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project 608ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Projecttypedef struct pw_auth_hdr 618ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project{ 628ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project u_char code; 638ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project u_char id; 648ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project u_short length; 658ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project u_char vector[AUTH_VECTOR_LEN]; 668ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project u_char data[2]; 678ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project} AUTH_HDR; 688ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project 698ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#define AUTH_HDR_LEN 20 708ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#define MAX_SECRET_LENGTH (3 * 16) /* MUST be multiple of 16 */ 718ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#define CHAP_VALUE_LENGTH 16 728ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project 738ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#define PW_AUTH_UDP_PORT 1812 748ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#define PW_ACCT_UDP_PORT 1813 758ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project 768ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#define PW_TYPE_STRING 0 778ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#define PW_TYPE_INTEGER 1 788ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#define PW_TYPE_IPADDR 2 798ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#define PW_TYPE_DATE 3 808ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project 818ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project/* standard RADIUS codes */ 828ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project 838ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#define PW_ACCESS_REQUEST 1 848ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#define PW_ACCESS_ACCEPT 2 858ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#define PW_ACCESS_REJECT 3 868ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#define PW_ACCOUNTING_REQUEST 4 878ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#define PW_ACCOUNTING_RESPONSE 5 888ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#define PW_ACCOUNTING_STATUS 6 898ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#define PW_PASSWORD_REQUEST 7 908ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#define PW_PASSWORD_ACK 8 918ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#define PW_PASSWORD_REJECT 9 928ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#define PW_ACCOUNTING_MESSAGE 10 938ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#define PW_ACCESS_CHALLENGE 11 948ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#define PW_STATUS_SERVER 12 958ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#define PW_STATUS_CLIENT 13 968ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project 978ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project 988ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project/* standard RADIUS attribute-value pairs */ 998ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project 1008ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#define PW_USER_NAME 1 /* string */ 1018ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#define PW_USER_PASSWORD 2 /* string */ 1028ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#define PW_CHAP_PASSWORD 3 /* string */ 1038ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#define PW_NAS_IP_ADDRESS 4 /* ipaddr */ 1048ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#define PW_NAS_PORT 5 /* integer */ 1058ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#define PW_SERVICE_TYPE 6 /* integer */ 1068ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#define PW_FRAMED_PROTOCOL 7 /* integer */ 1078ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#define PW_FRAMED_IP_ADDRESS 8 /* ipaddr */ 1088ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#define PW_FRAMED_IP_NETMASK 9 /* ipaddr */ 1098ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#define PW_FRAMED_ROUTING 10 /* integer */ 1108ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#define PW_FILTER_ID 11 /* string */ 1118ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#define PW_FRAMED_MTU 12 /* integer */ 1128ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#define PW_FRAMED_COMPRESSION 13 /* integer */ 1138ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#define PW_LOGIN_IP_HOST 14 /* ipaddr */ 1148ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#define PW_LOGIN_SERVICE 15 /* integer */ 1158ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#define PW_LOGIN_PORT 16 /* integer */ 1168ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#define PW_OLD_PASSWORD 17 /* string */ /* deprecated */ 1178ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#define PW_REPLY_MESSAGE 18 /* string */ 1188ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#define PW_LOGIN_CALLBACK_NUMBER 19 /* string */ 1198ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#define PW_FRAMED_CALLBACK_ID 20 /* string */ 1208ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#define PW_EXPIRATION 21 /* date */ /* deprecated */ 1218ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#define PW_FRAMED_ROUTE 22 /* string */ 1228ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#define PW_FRAMED_IPX_NETWORK 23 /* integer */ 1238ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#define PW_STATE 24 /* string */ 1248ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#define PW_CLASS 25 /* string */ 1258ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#define PW_VENDOR_SPECIFIC 26 /* string */ 1268ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#define PW_SESSION_TIMEOUT 27 /* integer */ 1278ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#define PW_IDLE_TIMEOUT 28 /* integer */ 1288ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#define PW_TERMINATION_ACTION 29 /* integer */ 1298ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#define PW_CALLED_STATION_ID 30 /* string */ 1308ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#define PW_CALLING_STATION_ID 31 /* string */ 1318ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#define PW_NAS_IDENTIFIER 32 /* string */ 1328ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#define PW_PROXY_STATE 33 /* string */ 1338ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#define PW_LOGIN_LAT_SERVICE 34 /* string */ 1348ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#define PW_LOGIN_LAT_NODE 35 /* string */ 1358ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#define PW_LOGIN_LAT_GROUP 36 /* string */ 1368ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#define PW_FRAMED_APPLETALK_LINK 37 /* integer */ 1378ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#define PW_FRAMED_APPLETALK_NETWORK 38 /* integer */ 1388ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#define PW_FRAMED_APPLETALK_ZONE 39 /* string */ 1398ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#define PW_CHAP_CHALLENGE 60 /* string */ 1408ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#define PW_NAS_PORT_TYPE 61 /* integer */ 1418ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#define PW_PORT_LIMIT 62 /* integer */ 1428ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#define PW_LOGIN_LAT_PORT 63 /* string */ 1438ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project 1448ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project/* Vendor RADIUS attribute-value pairs */ 1458ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#define PW_MS_CHAP_CHALLENGE 11 /* string */ 1468ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#define PW_MS_CHAP_RESPONSE 1 /* string */ 1478ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#define PW_MS_CHAP2_RESPONSE 25 /* string */ 1488ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#define PW_MS_CHAP2_SUCCESS 26 /* string */ 1498ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#define PW_MS_MPPE_ENCRYPTION_POLICY 7 /* string */ 1508ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#define PW_MS_MPPE_ENCRYPTION_TYPE 8 /* string */ 1518ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#define PW_MS_MPPE_ENCRYPTION_TYPES PW_MS_MPPE_ENCRYPTION_TYPE 1528ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#define PW_MS_CHAP_MPPE_KEYS 12 /* string */ 1538ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#define PW_MS_MPPE_SEND_KEY 16 /* string */ 1548ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#define PW_MS_MPPE_RECV_KEY 17 /* string */ 1551286c078a4b93695b3812e8c7fe7918c28ea18b4Adam Langley#define PW_MS_PRIMARY_DNS_SERVER 28 /* ipaddr */ 1561286c078a4b93695b3812e8c7fe7918c28ea18b4Adam Langley#define PW_MS_SECONDARY_DNS_SERVER 29 /* ipaddr */ 1571286c078a4b93695b3812e8c7fe7918c28ea18b4Adam Langley#define PW_MS_PRIMARY_NBNS_SERVER 30 /* ipaddr */ 1581286c078a4b93695b3812e8c7fe7918c28ea18b4Adam Langley#define PW_MS_SECONDARY_NBNS_SERVER 31 /* ipaddr */ 1598ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project 1608ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project/* Accounting */ 1618ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project 1628ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#define PW_ACCT_STATUS_TYPE 40 /* integer */ 1638ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#define PW_ACCT_DELAY_TIME 41 /* integer */ 1648ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#define PW_ACCT_INPUT_OCTETS 42 /* integer */ 1658ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#define PW_ACCT_OUTPUT_OCTETS 43 /* integer */ 1668ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#define PW_ACCT_SESSION_ID 44 /* string */ 1678ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#define PW_ACCT_AUTHENTIC 45 /* integer */ 1688ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#define PW_ACCT_SESSION_TIME 46 /* integer */ 1698ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#define PW_ACCT_INPUT_PACKETS 47 /* integer */ 1708ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#define PW_ACCT_OUTPUT_PACKETS 48 /* integer */ 1718ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#define PW_ACCT_TERMINATE_CAUSE 49 /* integer */ 1728ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#define PW_ACCT_MULTI_SESSION_ID 50 /* string */ 1738ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#define PW_ACCT_LINK_COUNT 51 /* integer */ 1748ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project 1758ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project/* From RFC 2869 */ 1768ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#define PW_ACCT_INTERIM_INTERVAL 85 /* integer */ 1778ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project 1788ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project/* Merit Experimental Extensions */ 1798ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project 1808ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#define PW_USER_ID 222 /* string */ 1818ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#define PW_USER_REALM 223 /* string */ 1828ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project 1838ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project 1848ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project/* Session limits */ 1858ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#define PW_SESSION_OCTETS_LIMIT 227 /* integer */ 1868ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#define PW_OCTETS_DIRECTION 228 /* integer */ 1878ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project 1888ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project/* Integer Translations */ 1898ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project 1908ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project/* SERVICE TYPES */ 1918ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project 1928ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#define PW_LOGIN 1 1938ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#define PW_FRAMED 2 1948ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#define PW_CALLBACK_LOGIN 3 1958ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#define PW_CALLBACK_FRAMED 4 1968ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#define PW_OUTBOUND 5 1978ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#define PW_ADMINISTRATIVE 6 1988ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#define PW_NAS_PROMPT 7 1998ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#define PW_AUTHENTICATE_ONLY 8 2008ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#define PW_CALLBACK_NAS_PROMPT 9 2018ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project 2028ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project/* FRAMED PROTOCOLS */ 2038ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project 2048ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#define PW_PPP 1 2058ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#define PW_SLIP 2 2068ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#define PW_ARA 3 2078ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#define PW_GANDALF 4 2088ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#define PW_XYLOGICS 5 2098ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project 2108ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project/* FRAMED ROUTING VALUES */ 2118ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project 2128ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#define PW_NONE 0 2138ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#define PW_BROADCAST 1 2148ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#define PW_LISTEN 2 2158ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#define PW_BROADCAST_LISTEN 3 2168ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project 2178ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project/* FRAMED COMPRESSION TYPES */ 2188ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project 2198ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#define PW_VAN_JACOBSON_TCP_IP 1 2208ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#define PW_IPX_HEADER_COMPRESSION 2 2218ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project 2228ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project/* LOGIN SERVICES */ 2238ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project 2248ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#define PW_TELNET 0 2258ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#define PW_RLOGIN 1 2268ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#define PW_TCP_CLEAR 2 2278ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#define PW_PORTMASTER 3 2288ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#define PW_LAT 4 2298ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#define PW_X25_PAD 5 2308ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#define PW_X25_T3POS 6 2318ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project 2328ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project/* TERMINATION ACTIONS */ 2338ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project 2348ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#define PW_DEFAULT 0 2358ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#define PW_RADIUS_REQUEST 1 2368ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project 2378ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project/* PROHIBIT PROTOCOL */ 2388ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project 2398ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#define PW_DUMB 0 /* 1 and 2 are defined in FRAMED PROTOCOLS */ 2408ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#define PW_AUTH_ONLY 3 2418ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#define PW_ALL 255 2428ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project 2438ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project/* ACCOUNTING STATUS TYPES */ 2448ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project 2458ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#define PW_STATUS_START 1 2468ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#define PW_STATUS_STOP 2 2478ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#define PW_STATUS_ALIVE 3 2488ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#define PW_STATUS_MODEM_START 4 2498ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#define PW_STATUS_MODEM_STOP 5 2508ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#define PW_STATUS_CANCEL 6 2518ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#define PW_ACCOUNTING_ON 7 2528ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#define PW_ACCOUNTING_OFF 8 2538ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project 2548ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project/* ACCOUNTING TERMINATION CAUSES */ 2558ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project 2568ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#define PW_USER_REQUEST 1 2578ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#define PW_LOST_CARRIER 2 2588ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#define PW_LOST_SERVICE 3 2598ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#define PW_ACCT_IDLE_TIMEOUT 4 2608ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#define PW_ACCT_SESSION_TIMEOUT 5 2618ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#define PW_ADMIN_RESET 6 2628ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#define PW_ADMIN_REBOOT 7 2638ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#define PW_PORT_ERROR 8 2648ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#define PW_NAS_ERROR 9 2658ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#define PW_NAS_REQUEST 10 2668ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#define PW_NAS_REBOOT 11 2678ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#define PW_PORT_UNNEEDED 12 2688ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#define PW_PORT_PREEMPTED 13 2698ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#define PW_PORT_SUSPENDED 14 2708ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#define PW_SERVICE_UNAVAILABLE 15 2718ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#define PW_CALLBACK 16 2728ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#define PW_USER_ERROR 17 2738ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#define PW_HOST_REQUEST 18 2748ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project 2758ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project/* NAS PORT TYPES */ 2768ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project 2778ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#define PW_ASYNC 0 2788ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#define PW_SYNC 1 2798ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#define PW_ISDN_SYNC 2 2808ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#define PW_ISDN_SYNC_V120 3 2818ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#define PW_ISDN_SYNC_V110 4 2828ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#define PW_VIRTUAL 5 2838ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project 2848ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project/* AUTHENTIC TYPES */ 2858ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#define PW_RADIUS 1 2868ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#define PW_LOCAL 2 2878ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#define PW_REMOTE 3 2888ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project 2898ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project/* Session-Octets-Limit */ 2908ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#define PW_OCTETS_DIRECTION_SUM 0 2918ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#define PW_OCTETS_DIRECTION_IN 1 2928ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#define PW_OCTETS_DIRECTION_OUT 2 2938ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#define PW_OCTETS_DIRECTION_MAX 3 2948ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project 2958ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project 2968ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project/* Vendor codes */ 2978ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#define VENDOR_NONE (-1) 2988ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#define VENDOR_MICROSOFT 311 2998ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project 3008ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project/* Server data structures */ 3018ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project 3028ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Projecttypedef struct dict_attr 3038ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project{ 3048ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project char name[NAME_LENGTH + 1]; /* attribute name */ 3058ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project int value; /* attribute index */ 3068ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project int type; /* string, int, etc. */ 3078ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project int vendorcode; /* vendor code */ 3088ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project struct dict_attr *next; 3098ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project} DICT_ATTR; 3108ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project 3118ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Projecttypedef struct dict_value 3128ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project{ 3138ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project char attrname[NAME_LENGTH +1]; 3148ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project char name[NAME_LENGTH + 1]; 3158ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project int value; 3168ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project struct dict_value *next; 3178ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project} DICT_VALUE; 3188ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project 3198ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Projecttypedef struct vendor_dict 3208ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project{ 3218ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project char vendorname[NAME_LENGTH + 1]; 3228ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project int vendorcode; 3238ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project DICT_ATTR *attributes; 3248ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project struct vendor_dict *next; 3258ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project} VENDOR_DICT; 3268ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project 3278ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Projecttypedef struct value_pair 3288ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project{ 3298ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project char name[NAME_LENGTH + 1]; 3308ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project int attribute; 3318ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project int vendorcode; 3328ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project int type; 3338ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project UINT4 lvalue; 3348ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project u_char strvalue[AUTH_STRING_LEN + 1]; 3358ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project struct value_pair *next; 3368ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project} VALUE_PAIR; 3378ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project 3388ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project/* don't change this, as it has to be the same as in the Merit radiusd code */ 3398ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#define MGMT_POLL_SECRET "Hardlyasecret" 3408ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project 3418ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project/* Define return codes from "SendServer" utility */ 3428ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project 3438ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#define BADRESP_RC -2 3448ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#define ERROR_RC -1 3458ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#define OK_RC 0 3468ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#define TIMEOUT_RC 1 3478ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project 3488ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Projecttypedef struct send_data /* Used to pass information to sendserver() function */ 3498ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project{ 3508ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project u_char code; /* RADIUS packet code */ 3518ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project u_char seq_nbr; /* Packet sequence number */ 3528ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project char *server; /* Name/addrress of RADIUS server */ 3538ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project int svc_port; /* RADIUS protocol destination port */ 3548ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project int timeout; /* Session timeout in seconds */ 3558ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project int retries; 3568ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project VALUE_PAIR *send_pairs; /* More a/v pairs to send */ 3578ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project VALUE_PAIR *receive_pairs; /* Where to place received a/v pairs */ 3588ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project} SEND_DATA; 3598ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project 3608ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Projecttypedef struct request_info 3618ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project{ 3628ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project char secret[MAX_SECRET_LENGTH + 1]; 3638ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project u_char request_vector[AUTH_VECTOR_LEN]; 3648ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project} REQUEST_INFO; 3658ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project 3668ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#ifndef MIN 3678ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#define MIN(a, b) ((a) < (b) ? (a) : (b)) 3688ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#endif 3698ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#ifndef MAX 3708ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#define MAX(a, b) ((a) > (b) ? (a) : (b)) 3718ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#endif 3728ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project 3738ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#ifndef PATH_MAX 3748ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#define PATH_MAX 1024 3758ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#endif 3768ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project 3778ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Projecttypedef struct env 3788ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project{ 3798ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project int maxsize, size; 3808ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project char **env; 3818ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project} ENV; 3828ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project 3838ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#define ENV_SIZE 128 3848ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project 3858ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project/* Function prototypes */ 3868ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project 3878ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project/* avpair.c */ 3888ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project 3898ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source ProjectVALUE_PAIR *rc_avpair_add __P((VALUE_PAIR **, int, void *, int, int)); 3908ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Projectint rc_avpair_assign __P((VALUE_PAIR *, void *, int)); 3918ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source ProjectVALUE_PAIR *rc_avpair_new __P((int, void *, int, int)); 3928ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source ProjectVALUE_PAIR *rc_avpair_gen __P((AUTH_HDR *)); 3938ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source ProjectVALUE_PAIR *rc_avpair_get __P((VALUE_PAIR *, UINT4)); 3948ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source ProjectVALUE_PAIR *rc_avpair_copy __P((VALUE_PAIR *)); 3958ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Projectvoid rc_avpair_insert __P((VALUE_PAIR **, VALUE_PAIR *, VALUE_PAIR *)); 3968ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Projectvoid rc_avpair_free __P((VALUE_PAIR *)); 3978ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Projectint rc_avpair_parse __P((char *, VALUE_PAIR **)); 3988ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Projectint rc_avpair_tostr __P((VALUE_PAIR *, char *, int, char *, int)); 3998ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source ProjectVALUE_PAIR *rc_avpair_readin __P((FILE *)); 4008ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project 4018ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project/* buildreq.c */ 4028ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project 4038ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Projectvoid rc_buildreq __P((SEND_DATA *, int, char *, unsigned short, int, int)); 4048ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Projectunsigned char rc_get_seqnbr __P((void)); 4058ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Projectint rc_auth __P((UINT4, VALUE_PAIR *, VALUE_PAIR **, char *, REQUEST_INFO *)); 4068ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Projectint rc_auth_using_server __P((SERVER *, UINT4, VALUE_PAIR *, VALUE_PAIR **, 4078ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project char *, REQUEST_INFO *)); 4088ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Projectint rc_auth_proxy __P((VALUE_PAIR *, VALUE_PAIR **, char *)); 4098ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Projectint rc_acct __P((UINT4, VALUE_PAIR *)); 4108ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Projectint rc_acct_using_server __P((SERVER *, UINT4, VALUE_PAIR *)); 4118ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Projectint rc_acct_proxy __P((VALUE_PAIR *)); 4128ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Projectint rc_check __P((char *, unsigned short, char *)); 4138ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project 4148ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project/* clientid.c */ 4158ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project 4168ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Projectint rc_read_mapfile __P((char *)); 4178ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source ProjectUINT4 rc_map2id __P((char *)); 4188ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project 4198ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project/* config.c */ 4208ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project 4218ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Projectint rc_read_config __P((char *)); 4228ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Projectchar *rc_conf_str __P((char *)); 4238ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Projectint rc_conf_int __P((char *)); 4248ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source ProjectSERVER *rc_conf_srv __P((char *)); 4258ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Projectint rc_find_server __P((char *, UINT4 *, char *)); 4268ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project 4278ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project/* dict.c */ 4288ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project 4298ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Projectint rc_read_dictionary __P((char *)); 4308ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source ProjectDICT_ATTR *rc_dict_getattr __P((int, int)); 4318ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source ProjectDICT_ATTR *rc_dict_findattr __P((char *)); 4328ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source ProjectDICT_VALUE *rc_dict_findval __P((char *)); 4338ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source ProjectDICT_VALUE * rc_dict_getval __P((UINT4, char *)); 4348ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source ProjectVENDOR_DICT * rc_dict_findvendor __P((char *)); 4358ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source ProjectVENDOR_DICT * rc_dict_getvendor __P((int)); 4368ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project 4378ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project/* ip_util.c */ 4388ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project 4398ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source ProjectUINT4 rc_get_ipaddr __P((char *)); 4408ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Projectint rc_good_ipaddr __P((char *)); 4418ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Projectconst char *rc_ip_hostname __P((UINT4)); 4428ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source ProjectUINT4 rc_own_ipaddress __P((void)); 4438ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project 4448ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project 4458ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project/* sendserver.c */ 4468ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project 4478ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Projectint rc_send_server __P((SEND_DATA *, char *, REQUEST_INFO *)); 4488ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project 4498ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project/* util.c */ 4508ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project 4518ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Projectvoid rc_str2tm __P((char *, struct tm *)); 4528ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Projectchar *rc_mksid __P((void)); 4538ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Projectvoid rc_mdelay __P((int)); 4548ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project 4558ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project/* md5.c */ 4568ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project 4578ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Projectvoid rc_md5_calc __P((unsigned char *, unsigned char *, unsigned int)); 4588ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project 4598ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#endif /* RADIUSCLIENT_H */ 460