diff options
author | Denis Kenzior <denkenz@gmail.com> | 2010-04-07 15:40:02 -0500 |
---|---|---|
committer | Denis Kenzior <denkenz@gmail.com> | 2010-04-07 16:41:49 -0500 |
commit | 5f361d7de979aaac9212b5dd596eaf71fbf3b557 (patch) | |
tree | a0f997f90536b11be61079d3a5c429bb94226cc7 /gatchat/ppp_cp.h | |
parent | 4a6a381a1d5c2932c904b021383b8d63e369aeb0 (diff) | |
download | ofono-5f361d7de979aaac9212b5dd596eaf71fbf3b557.tar.bz2 |
ppp: Add pppcp option iterators
Diffstat (limited to 'gatchat/ppp_cp.h')
-rw-r--r-- | gatchat/ppp_cp.h | 17 |
1 files changed, 17 insertions, 0 deletions
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); |