radmsg.h 1.44 KB
Newer Older
1 2 3
/* Copyright (c) 2007-2008, UNINETT AS */
/* Copyright (c) 2015, NORDUnet A/S */
/* See LICENSE for licensing information. */
4 5 6 7 8 9 10 11 12 13 14 15

#define RAD_Access_Request 1
#define RAD_Access_Accept 2
#define RAD_Access_Reject 3
#define RAD_Accounting_Request 4
#define RAD_Accounting_Response 5
#define RAD_Access_Challenge 11
#define RAD_Status_Server 12
#define RAD_Status_Client 13

#define RAD_Attr_User_Name 1
#define RAD_Attr_User_Password 2
16
#define RAD_Attr_CHAP_Password 3
17 18 19
#define RAD_Attr_Reply_Message 18
#define RAD_Attr_Vendor_Specific 26
#define RAD_Attr_Calling_Station_Id 31
20
#define RAD_Attr_Proxy_State 33
21
#define RAD_Attr_CHAP_Challenge 60
22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
#define RAD_Attr_Tunnel_Password 69
#define RAD_Attr_Message_Authenticator 80

#define RAD_VS_ATTR_MS_MPPE_Send_Key 16
#define RAD_VS_ATTR_MS_MPPE_Recv_Key 17

struct radmsg {
    uint8_t code;
    uint8_t id;
    uint8_t auth[20];
    struct list *attrs;
};

void radmsg_free(struct radmsg *);
struct radmsg *radmsg_init(uint8_t, uint8_t, uint8_t *);
int radmsg_add(struct radmsg *, struct tlv *);
struct tlv *radmsg_gettype(struct radmsg *, uint8_t);
39 40 41 42
struct list *radmsg_getalltype(const struct radmsg *msg, uint8_t type);
int radmsg_copy_attrs(struct radmsg *dst,
                      const struct radmsg *src,
                      uint8_t type);
43 44
uint8_t *radmsg2buf(struct radmsg *msg, uint8_t *);
struct radmsg *buf2radmsg(uint8_t *, uint8_t *, uint8_t *);
45 46 47 48

/* Local Variables: */
/* c-file-style: "stroustrup" */
/* End: */