From 5f361d7de979aaac9212b5dd596eaf71fbf3b557 Mon Sep 17 00:00:00 2001 From: Denis Kenzior Date: Wed, 7 Apr 2010 15:40:02 -0500 Subject: ppp: Add pppcp option iterators --- gatchat/ppp_cp.h | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) (limited to 'gatchat/ppp_cp.h') diff --git a/gatchat/ppp_cp.h b/gatchat/ppp_cp.h index 913df0f8..407cbd7e 100644 --- a/gatchat/ppp_cp.h +++ b/gatchat/ppp_cp.h @@ -20,6 +20,7 @@ */ struct pppcp_data; +struct ppp_option_iter; /* option format */ struct ppp_option { @@ -48,6 +49,15 @@ enum pppcp_code { PPPCP_CODE_TYPE_DISCARD_REQUEST }; +struct ppp_option_iter { + guint16 max; + guint16 pos; + const guint8 *pdata; + guint8 type; + guint8 len; + const guint8 *option_data; +}; + struct pppcp_action { void (*this_layer_up)(struct pppcp_data *data); void (*this_layer_down)(struct pppcp_data *data); @@ -66,6 +76,13 @@ struct pppcp_packet { guint8 data[0]; } __attribute__((packed)); +void ppp_option_iter_init(struct ppp_option_iter *iter, + const struct pppcp_packet *packet); +gboolean ppp_option_iter_next(struct ppp_option_iter *iter); +guint8 ppp_option_iter_get_type(struct ppp_option_iter *iter); +guint8 ppp_option_iter_get_length(struct ppp_option_iter *iter); +const guint8 *ppp_option_iter_get_data(struct ppp_option_iter *iter); + struct pppcp_data *pppcp_new(GAtPPP *ppp, guint16 proto, const struct pppcp_action *action); void pppcp_free(struct pppcp_data *data); -- cgit v1.2.3