summaryrefslogtreecommitdiffstats
path: root/gatchat/ppp_cp.c
diff options
context:
space:
mode:
authorMarcel Holtmann <marcel@holtmann.org>2010-04-05 11:12:43 -0700
committerMarcel Holtmann <marcel@holtmann.org>2010-04-05 11:12:43 -0700
commit331fcaea32627b58882e36752068cb25987a22fe (patch)
tree9e9f09ec1d173f5eff7d05e45c22d6a60a77a290 /gatchat/ppp_cp.c
parent12ffb2c772fd35af4a18d3b8d1ef39a0c3895ec1 (diff)
downloadofono-331fcaea32627b58882e36752068cb25987a22fe.tar.bz2
Make pppcp_code enum a private structure
Diffstat (limited to 'gatchat/ppp_cp.c')
-rw-r--r--gatchat/ppp_cp.c49
1 files changed, 49 insertions, 0 deletions
diff --git a/gatchat/ppp_cp.c b/gatchat/ppp_cp.c
index 115fb65e..de6c7766 100644
--- a/gatchat/ppp_cp.c
+++ b/gatchat/ppp_cp.c
@@ -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;
}