diff options
author | Denis Kenzior <denkenz@gmail.com> | 2010-04-05 16:16:14 -0500 |
---|---|---|
committer | Denis Kenzior <denkenz@gmail.com> | 2010-04-05 16:16:14 -0500 |
commit | 7b447dd0e23e600aae4a97222a0dc21cad5934c8 (patch) | |
tree | a97e9a064da94fe0ce0d65b0c51073edf243b156 /gatchat | |
parent | 4f5de3426e11f6f382a3063cc7d3ce0ec4d52a97 (diff) | |
download | ofono-7b447dd0e23e600aae4a97222a0dc21cad5934c8.tar.bz2 |
Refactor: Move valid code selection to ipcp/lcp
We already have a set_valid_codes function, let us use it
Diffstat (limited to 'gatchat')
-rw-r--r-- | gatchat/ppp_cp.c | 71 | ||||
-rw-r--r-- | gatchat/ppp_cp.h | 14 | ||||
-rw-r--r-- | gatchat/ppp_ipcp.c | 9 | ||||
-rw-r--r-- | gatchat/ppp_lcp.c | 14 |
4 files changed, 50 insertions, 58 deletions
diff --git a/gatchat/ppp_cp.c b/gatchat/ppp_cp.c index 78fbe426..99583d36 100644 --- a/gatchat/ppp_cp.c +++ b/gatchat/ppp_cp.c @@ -135,40 +135,6 @@ 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, @@ -415,7 +381,8 @@ static void pppcp_send_configure_request(struct pppcp_data *data) /* figure out how much space to allocate for options */ g_list_foreach(data->config_options, get_option_length, &olength); - packet = pppcp_packet_new(data, CONFIGURE_REQUEST, olength); + packet = pppcp_packet_new(data, PPPCP_CODE_TYPE_CONFIGURE_REQUEST, + olength); /* copy config options into packet data */ odata = packet->data; @@ -460,7 +427,7 @@ static void pppcp_send_configure_ack(struct pppcp_data *data, /* subtract for header. */ len = ntohs(pppcp_header->length) - sizeof(*packet); - packet = pppcp_packet_new(data, CONFIGURE_ACK, len); + packet = pppcp_packet_new(data, PPPCP_CODE_TYPE_CONFIGURE_ACK, len); /* copy the applied options in. */ odata = packet->data; @@ -508,7 +475,8 @@ static void pppcp_send_configure_nak(struct pppcp_data *data, g_list_foreach(data->rejected_options, get_option_length, &olength); - packet = pppcp_packet_new(data, CONFIGURE_REJECT, olength); + packet = pppcp_packet_new(data, + PPPCP_CODE_TYPE_CONFIGURE_REJECT, olength); /* copy the rejected options in. */ odata = packet->data; @@ -533,7 +501,8 @@ static void pppcp_send_configure_nak(struct pppcp_data *data, g_list_foreach(data->unacceptable_options, get_option_length, &olength); - packet = pppcp_packet_new(data, CONFIGURE_NAK, olength); + packet = pppcp_packet_new(data, PPPCP_CODE_TYPE_CONFIGURE_NAK, + olength); /* copy the unacceptable options in. */ odata = packet->data; @@ -565,7 +534,7 @@ static void pppcp_send_terminate_request(struct pppcp_data *data) * the data field can be used by the sender (us). * leave this empty for now. */ - packet = pppcp_packet_new(data, TERMINATE_REQUEST, 0); + packet = pppcp_packet_new(data, PPPCP_CODE_TYPE_TERMINATE_REQUEST, 0); /* * Is this a retransmission? If so, do not change @@ -594,7 +563,7 @@ static void pppcp_send_terminate_ack(struct pppcp_data *data, pppcp_trace(data); - packet = pppcp_packet_new(data, TERMINATE_ACK, 0); + packet = pppcp_packet_new(data, PPPCP_CODE_TYPE_TERMINATE_ACK, 0); /* match identifier of the request */ packet->identifier = pppcp_header->identifier; @@ -619,7 +588,8 @@ static void pppcp_send_code_reject(struct pppcp_data *data, pppcp_trace(data); - packet = pppcp_packet_new(data, CODE_REJECT, ntohs(old_packet->length)); + packet = pppcp_packet_new(data, PPPCP_CODE_TYPE_CODE_REJECT, + ntohs(old_packet->length)); /* * Identifier must be changed for each Code-Reject sent @@ -651,7 +621,7 @@ static void pppcp_send_echo_reply(struct pppcp_data *data, /* * 0 bytes for data, 4 bytes for magic number */ - packet = pppcp_packet_new(data, ECHO_REPLY, 4); + packet = pppcp_packet_new(data, PPPCP_CODE_TYPE_ECHO_REPLY, 4); /* * match identifier of request @@ -1222,7 +1192,7 @@ void pppcp_send_protocol_reject(struct pppcp_data *data, * info should contain the old packet info, plus the 16bit * protocol number we are rejecting. */ - packet = pppcp_packet_new(data, PROTOCOL_REJECT, len); + packet = pppcp_packet_new(data, PPPCP_CODE_TYPE_PROTOCOL_REJECT, len); /* * Identifier must be changed for each Protocol-Reject sent @@ -1317,7 +1287,6 @@ gpointer pppcp_get_data(struct pppcp_data *pppcp) 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) @@ -1336,19 +1305,5 @@ struct pppcp_data *pppcp_new(GAtPPP *ppp, guint16 proto) data->ppp = ppp; data->proto = proto; - 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; } diff --git a/gatchat/ppp_cp.h b/gatchat/ppp_cp.h index 9cba8047..9e74f253 100644 --- a/gatchat/ppp_cp.h +++ b/gatchat/ppp_cp.h @@ -35,6 +35,20 @@ enum option_rval { OPTION_ERR, }; +enum pppcp_code { + PPPCP_CODE_TYPE_CONFIGURE_REQUEST = 1, + PPPCP_CODE_TYPE_CONFIGURE_ACK, + PPPCP_CODE_TYPE_CONFIGURE_NAK, + PPPCP_CODE_TYPE_CONFIGURE_REJECT, + PPPCP_CODE_TYPE_TERMINATE_REQUEST, + PPPCP_CODE_TYPE_TERMINATE_ACK, + PPPCP_CODE_TYPE_CODE_REJECT, + PPPCP_CODE_TYPE_PROTOCOL_REJECT, + PPPCP_CODE_TYPE_ECHO_REQUEST, + PPPCP_CODE_TYPE_ECHO_REPLY, + PPPCP_CODE_TYPE_DISCARD_REQUEST +}; + struct pppcp_action { void (*this_layer_up)(struct pppcp_data *data); void (*this_layer_down)(struct pppcp_data *data); diff --git a/gatchat/ppp_ipcp.c b/gatchat/ppp_ipcp.c index f5f738ba..e81c6b72 100644 --- a/gatchat/ppp_ipcp.c +++ b/gatchat/ppp_ipcp.c @@ -35,6 +35,14 @@ #include "gatppp.h" #include "ppp.h" +#define IPCP_SUPPORTED_CODES ((1 << PPPCP_CODE_TYPE_CONFIGURE_REQUEST) | \ + (1 << PPPCP_CODE_TYPE_CONFIGURE_ACK) | \ + (1 << PPPCP_CODE_TYPE_CONFIGURE_NAK) | \ + (1 << PPPCP_CODE_TYPE_CONFIGURE_REJECT) | \ + (1 << PPPCP_CODE_TYPE_TERMINATE_REQUEST) | \ + (1 << PPPCP_CODE_TYPE_TERMINATE_ACK) | \ + (1 << PPPCP_CODE_TYPE_CODE_REJECT)) + struct ipcp_data { guint8 ip_address[4]; guint8 primary_dns[4]; @@ -190,6 +198,7 @@ struct pppcp_data *ipcp_new(GAtPPP *ppp) pppcp->option_strings = ipcp_option_strings; pppcp->prefix = "ipcp"; + pppcp_set_valid_codes(pppcp, IPCP_SUPPORTED_CODES); pppcp_set_data(pppcp, data); /* set the actions */ diff --git a/gatchat/ppp_lcp.c b/gatchat/ppp_lcp.c index aba52864..2431aea8 100644 --- a/gatchat/ppp_lcp.c +++ b/gatchat/ppp_lcp.c @@ -34,6 +34,18 @@ #include "gatppp.h" #include "ppp.h" +#define LCP_SUPPORTED_CODES ((1 << PPPCP_CODE_TYPE_CONFIGURE_REQUEST) | \ + (1 << PPPCP_CODE_TYPE_CONFIGURE_ACK) | \ + (1 << PPPCP_CODE_TYPE_CONFIGURE_NAK) | \ + (1 << PPPCP_CODE_TYPE_CONFIGURE_REJECT) | \ + (1 << PPPCP_CODE_TYPE_TERMINATE_REQUEST) | \ + (1 << PPPCP_CODE_TYPE_TERMINATE_ACK) | \ + (1 << PPPCP_CODE_TYPE_CODE_REJECT) | \ + (1 << PPPCP_CODE_TYPE_PROTOCOL_REJECT) | \ + (1 << PPPCP_CODE_TYPE_ECHO_REQUEST) | \ + (1 << PPPCP_CODE_TYPE_ECHO_REPLY) | \ + (1 << PPPCP_CODE_TYPE_DISCARD_REQUEST)) + enum lcp_options { RESERVED = 0, MRU = 1, @@ -221,6 +233,8 @@ struct pppcp_data *lcp_new(GAtPPP *ppp) pppcp->option_strings = lcp_option_strings; pppcp->prefix = "lcp"; + pppcp_set_valid_codes(pppcp, LCP_SUPPORTED_CODES); + /* set the actions */ pppcp->action = &lcp_action; |