#define FLAG_ENCRYPT_ASCEND_SECRET (3)
typedef struct dict_attr {
- int attr;
+ unsigned int attr;
int type;
int vendor;
ATTR_FLAGS flags;
} DICT_ATTR;
typedef struct dict_value {
- int attr;
+ unsigned int attr;
int value;
char name[1];
} DICT_VALUE;
int dict_addvalue(const char *namestr, const char *attrstr, int value);
int dict_init(const char *dir, const char *fn);
void dict_free(void);
-DICT_ATTR *dict_attrbyvalue(int attr);
+DICT_ATTR *dict_attrbyvalue(unsigned int attr);
DICT_ATTR *dict_attrbyname(const char *attr);
-DICT_VALUE *dict_valbyattr(int attr, int val);
-DICT_VALUE *dict_valbyname(int attr, const char *val);
+DICT_VALUE *dict_valbyattr(unsigned int attr, int val);
+DICT_VALUE *dict_valbyname(unsigned int attr, const char *val);
int dict_vendorbyname(const char *name);
DICT_VENDOR *dict_vendorbyvalue(int vendor);
/*
* Get an attribute by its numerical value.
*/
-DICT_ATTR *dict_attrbyvalue(int attr)
+DICT_ATTR *dict_attrbyvalue(unsigned int attr)
{
DICT_ATTR dattr;
/*
* Associate a value with an attribute and return it.
*/
-DICT_VALUE *dict_valbyattr(int attr, int value)
+DICT_VALUE *dict_valbyattr(unsigned int attr, int value)
{
DICT_VALUE dval, *dv;
/*
* Get a value by its name, keyed off of an attribute.
*/
-DICT_VALUE *dict_valbyname(int attr, const char *name)
+DICT_VALUE *dict_valbyname(unsigned int attr, const char *name)
{
DICT_VALUE *my_dv, *dv;
uint32_t buffer[(sizeof(*my_dv) + DICT_VALUE_MAX_NAME_LEN + 3)/4];
}
#define MAX_PASS_LEN (128)
-static void make_passwd(uint8_t *output, int *outlen,
- const uint8_t *input, int inlen,
+static void make_passwd(uint8_t *output, size_t *outlen,
+ const uint8_t *input, size_t inlen,
const char *secret, const uint8_t *vector)
{
FR_MD5_CTX context, old;
memcpy(output, passwd, len);
}
-static void make_tunnel_passwd(uint8_t *output, int *outlen,
- const uint8_t *input, int inlen, int room,
+static void make_tunnel_passwd(uint8_t *output, size_t *outlen,
+ const uint8_t *input, size_t inlen, size_t room,
const char *secret, const uint8_t *vector)
{
FR_MD5_CTX context, old;
static int vp2data(const RADIUS_PACKET *packet, const RADIUS_PACKET *original,
const char *secret, const VALUE_PAIR *vp, uint8_t *ptr,
- int offset, int room)
+ size_t offset, size_t room)
{
uint32_t lvalue;
size_t len;
static VALUE_PAIR *rad_vp2tlv(VALUE_PAIR *vps)
{
int maxattr = 0;
- int length, attribute;
+ int length;
+ unsigned int attribute;
uint8_t *ptr;
VALUE_PAIR *vp, *tlv;
*
* FIXME: Keep track of room in the packet!
*/
- if (vp->length > (254 - (ptr - start))) {
+ if (vp->length > (((size_t) 254) - (ptr - start))) {
return rad_vp2continuation(vp, start, ptr);
}
static VALUE_PAIR *data2vp(const RADIUS_PACKET *packet,
const RADIUS_PACKET *original,
- const char *secret, int attribute, int length,
+ const char *secret,
+ UNUSED unsigned int attribute, size_t length,
const uint8_t *data, VALUE_PAIR *vp)
{
int offset = 0;
* Sane clients should put the fragments next to each other, in
* which case this is O(N), in the number of fragments.
*/
-static uint8_t *rad_coalesce(int attribute, size_t length, uint8_t *data,
+static uint8_t *rad_coalesce(unsigned int attribute, size_t length,
+ uint8_t *data,
size_t packet_length, size_t *ptlv_length)
{