mirror of git://git.sysmocom.de/ofono
Refactor: Add pppcp_set_data & pppcp_get_data
Using these functions makes the code much cleaner than trying to pass the priv pointer everywhere
This commit is contained in:
parent
331fcaea32
commit
60d96505dc
|
@ -936,7 +936,7 @@ static guint8 pppcp_process_configure_request(struct pppcp_data *data,
|
|||
*/
|
||||
if (action->option_process) {
|
||||
g_list_foreach(data->acceptable_options,
|
||||
action->option_process, data->priv);
|
||||
action->option_process, data);
|
||||
g_list_foreach(data->acceptable_options, remove_config_option,
|
||||
data);
|
||||
}
|
||||
|
@ -986,8 +986,7 @@ static guint8 pppcp_process_configure_ack(struct pppcp_data *data,
|
|||
* the config_options list.
|
||||
*/
|
||||
if (action->option_process)
|
||||
action->option_process(acked_option,
|
||||
data->priv);
|
||||
action->option_process(acked_option, data);
|
||||
|
||||
g_free(list->data);
|
||||
data->config_options =
|
||||
|
@ -1287,6 +1286,16 @@ void pppcp_free(struct pppcp_data *data)
|
|||
g_free(data);
|
||||
}
|
||||
|
||||
void pppcp_set_data(struct pppcp_data *pppcp, gpointer data)
|
||||
{
|
||||
pppcp->priv = data;
|
||||
}
|
||||
|
||||
gpointer pppcp_get_data(struct pppcp_data *pppcp)
|
||||
{
|
||||
return pppcp->priv;
|
||||
}
|
||||
|
||||
struct pppcp_data *pppcp_new(GAtPPP *ppp, guint16 proto)
|
||||
{
|
||||
struct pppcp_data *data;
|
||||
|
|
|
@ -89,6 +89,10 @@ struct pppcp_data {
|
|||
|
||||
struct pppcp_data *pppcp_new(GAtPPP *ppp, guint16 proto);
|
||||
void pppcp_free(struct pppcp_data *data);
|
||||
|
||||
void pppcp_set_data(struct pppcp_data *pppcp, gpointer data);
|
||||
gpointer pppcp_get_data(struct pppcp_data *pppcp);
|
||||
|
||||
void pppcp_add_config_option(struct pppcp_data *data,
|
||||
struct ppp_option *option);
|
||||
void pppcp_set_valid_codes(struct pppcp_data *data, guint16 codes);
|
||||
|
|
|
@ -57,7 +57,7 @@ enum ipcp_option_types {
|
|||
|
||||
static void ipcp_up(struct pppcp_data *pppcp)
|
||||
{
|
||||
struct ipcp_data *data = pppcp->priv;
|
||||
struct ipcp_data *data = pppcp_get_data(pppcp);
|
||||
char ip[INET_ADDRSTRLEN];
|
||||
char dns1[INET_ADDRSTRLEN];
|
||||
char dns2[INET_ADDRSTRLEN];
|
||||
|
@ -125,7 +125,8 @@ static guint ipcp_option_scan(struct ppp_option *option, gpointer user)
|
|||
static void ipcp_option_process(gpointer data, gpointer user)
|
||||
{
|
||||
struct ppp_option *option = data;
|
||||
struct ipcp_data *ipcp = user;
|
||||
struct pppcp_data *pppcp = user;
|
||||
struct ipcp_data *ipcp = pppcp_get_data(pppcp);
|
||||
|
||||
switch (option->type) {
|
||||
case IP_ADDRESS:
|
||||
|
@ -188,7 +189,8 @@ struct pppcp_data *ipcp_new(GAtPPP *ppp)
|
|||
|
||||
pppcp->option_strings = ipcp_option_strings;
|
||||
pppcp->prefix = "ipcp";
|
||||
pppcp->priv = data;
|
||||
|
||||
pppcp_set_data(pppcp, data);
|
||||
|
||||
/* set the actions */
|
||||
pppcp->action = &ipcp_action;
|
||||
|
@ -209,11 +211,8 @@ struct pppcp_data *ipcp_new(GAtPPP *ppp)
|
|||
|
||||
void ipcp_free(struct pppcp_data *data)
|
||||
{
|
||||
struct ipcp_data *ipcp = data->priv;
|
||||
struct ipcp_data *ipcp = pppcp_get_data(data);
|
||||
|
||||
/* free ipcp */
|
||||
g_free(ipcp);
|
||||
|
||||
/* free pppcp */
|
||||
pppcp_free(data);
|
||||
}
|
||||
|
|
|
@ -220,7 +220,6 @@ struct pppcp_data *lcp_new(GAtPPP *ppp)
|
|||
|
||||
pppcp->option_strings = lcp_option_strings;
|
||||
pppcp->prefix = "lcp";
|
||||
pppcp->priv = pppcp;
|
||||
|
||||
/* set the actions */
|
||||
pppcp->action = &lcp_action;
|
||||
|
|
Loading…
Reference in New Issue