Make pppcp_code enum a private structure

This commit is contained in:
Marcel Holtmann 2010-04-05 11:12:43 -07:00
parent 12ffb2c772
commit 331fcaea32
4 changed files with 51 additions and 37 deletions

View File

@ -135,6 +135,40 @@ static int cp_transitions[16][10] = {
{ INV, INV, 2, 3, 4, 5, 6, 7, 8, SER|9 },
};
enum pppcp_code {
CONFIGURE_REQUEST = 1,
CONFIGURE_ACK,
CONFIGURE_NAK,
CONFIGURE_REJECT,
TERMINATE_REQUEST,
TERMINATE_ACK,
CODE_REJECT,
PROTOCOL_REJECT,
ECHO_REQUEST,
ECHO_REPLY,
DISCARD_REQUEST
};
#define LCP_SUPPORTED_CODES ((1 << CONFIGURE_REQUEST) | \
(1 << CONFIGURE_ACK) | \
(1 << CONFIGURE_NAK) | \
(1 << CONFIGURE_REJECT) | \
(1 << TERMINATE_REQUEST) | \
(1 << TERMINATE_ACK) | \
(1 << CODE_REJECT) | \
(1 << PROTOCOL_REJECT) | \
(1 << ECHO_REQUEST) | \
(1 << ECHO_REPLY) | \
(1 << DISCARD_REQUEST))
#define IPCP_SUPPORTED_CODES ((1 << CONFIGURE_REQUEST) | \
(1 << CONFIGURE_ACK) | \
(1 << CONFIGURE_NAK) | \
(1 << CONFIGURE_REJECT) | \
(1 << TERMINATE_REQUEST) | \
(1 << TERMINATE_ACK) | \
(1 << CODE_REJECT))
enum pppcp_event_type {
UP = 0,
DOWN = 1,
@ -1256,6 +1290,7 @@ void pppcp_free(struct pppcp_data *data)
struct pppcp_data *pppcp_new(GAtPPP *ppp, guint16 proto)
{
struct pppcp_data *data;
guint16 codes;
data = g_try_malloc0(sizeof(struct pppcp_data));
if (!data)
@ -1289,5 +1324,19 @@ struct pppcp_data *pppcp_new(GAtPPP *ppp, guint16 proto)
data->packet_ops[ECHO_REPLY - 1] = pppcp_process_echo_reply;
data->packet_ops[DISCARD_REQUEST - 1] = pppcp_process_discard_request;
switch (proto) {
case LCP_PROTOCOL:
codes = LCP_SUPPORTED_CODES;
break;
case IPCP_PROTO:
codes = IPCP_SUPPORTED_CODES;
break;
default:
codes = 0;
break;
}
pppcp_set_valid_codes(data, codes);
return data;
}

View File

@ -21,20 +21,6 @@
struct pppcp_data;
enum pppcp_code {
CONFIGURE_REQUEST = 1,
CONFIGURE_ACK,
CONFIGURE_NAK,
CONFIGURE_REJECT,
TERMINATE_REQUEST,
TERMINATE_ACK,
CODE_REJECT,
PROTOCOL_REJECT,
ECHO_REQUEST,
ECHO_REPLY,
DISCARD_REQUEST
};
/* option format */
struct ppp_option {
guint8 type;

View File

@ -44,14 +44,6 @@ struct ipcp_data {
struct pppcp_data *pppcp;
};
#define IPCP_SUPPORTED_CODES ((1 << CONFIGURE_REQUEST) | \
(1 << CONFIGURE_ACK) | \
(1 << CONFIGURE_NAK) | \
(1 << CONFIGURE_REJECT) | \
(1 << TERMINATE_REQUEST) | \
(1 << TERMINATE_ACK) | \
(1 << CODE_REJECT))
enum ipcp_option_types {
IP_ADDRESSES = 1,
IP_COMPRESSION_PROTO = 2,
@ -193,7 +185,7 @@ struct pppcp_data *ipcp_new(GAtPPP *ppp)
g_free(data);
return NULL;
}
pppcp_set_valid_codes(pppcp, IPCP_SUPPORTED_CODES);
pppcp->option_strings = ipcp_option_strings;
pppcp->prefix = "ipcp";
pppcp->priv = data;

View File

@ -46,18 +46,6 @@ enum lcp_options {
ACFC = 8,
};
#define LCP_SUPPORTED_CODES ((1 << CONFIGURE_REQUEST) | \
(1 << CONFIGURE_ACK) | \
(1 << CONFIGURE_NAK) | \
(1 << CONFIGURE_REJECT) | \
(1 << TERMINATE_REQUEST) | \
(1 << TERMINATE_ACK) | \
(1 << CODE_REJECT) | \
(1 << PROTOCOL_REJECT) | \
(1 << ECHO_REQUEST) | \
(1 << ECHO_REPLY) | \
(1 << DISCARD_REQUEST))
/*
* signal the Up event to the NCP
*/
@ -223,14 +211,13 @@ struct pppcp_data *lcp_new(GAtPPP *ppp)
{
struct pppcp_data *pppcp;
struct ppp_option *option;
guint16 codes = LCP_SUPPORTED_CODES;
pppcp = pppcp_new(ppp, LCP_PROTOCOL);
if (!pppcp) {
g_print("Failed to allocate PPPCP struct\n");
return NULL;
}
pppcp_set_valid_codes(pppcp, codes);
pppcp->option_strings = lcp_option_strings;
pppcp->prefix = "lcp";
pppcp->priv = pppcp;