mirror of git://git.sysmocom.de/ofono
ppp: Reset the options whenever the layer is down
So we can re-negotiate the options if the layer is opened again.
This commit is contained in:
parent
8c1677713f
commit
dbbaa3c416
|
@ -101,6 +101,20 @@ static void ipcp_generate_config_options(struct ipcp_data *ipcp)
|
|||
ipcp->options_len = len;
|
||||
}
|
||||
|
||||
static void ipcp_reset_config_options(struct ipcp_data *ipcp)
|
||||
{
|
||||
ipcp->req_options = REQ_OPTION_IPADDR | REQ_OPTION_DNS1 |
|
||||
REQ_OPTION_DNS2 | REQ_OPTION_NBNS1 |
|
||||
REQ_OPTION_NBNS2;
|
||||
ipcp->ipaddr = 0;
|
||||
ipcp->dns1 = 0;
|
||||
ipcp->dns2 = 0;
|
||||
ipcp->nbns1 = 0;
|
||||
ipcp->nbns2 = 0;
|
||||
|
||||
ipcp_generate_config_options(ipcp);
|
||||
}
|
||||
|
||||
static void ipcp_up(struct pppcp_data *pppcp)
|
||||
{
|
||||
struct ipcp_data *ipcp = pppcp_get_data(pppcp);
|
||||
|
@ -129,6 +143,10 @@ static void ipcp_up(struct pppcp_data *pppcp)
|
|||
|
||||
static void ipcp_down(struct pppcp_data *pppcp)
|
||||
{
|
||||
struct ipcp_data *ipcp = pppcp_get_data(pppcp);
|
||||
|
||||
ipcp_reset_config_options(ipcp);
|
||||
pppcp_set_local_options(pppcp, ipcp->options, ipcp->options_len);
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -307,12 +325,7 @@ struct pppcp_data *ipcp_new(GAtPPP *ppp)
|
|||
}
|
||||
|
||||
pppcp_set_data(pppcp, ipcp);
|
||||
|
||||
ipcp->req_options = REQ_OPTION_IPADDR | REQ_OPTION_DNS1 |
|
||||
REQ_OPTION_DNS2 | REQ_OPTION_NBNS1 |
|
||||
REQ_OPTION_NBNS2;
|
||||
|
||||
ipcp_generate_config_options(ipcp);
|
||||
ipcp_reset_config_options(ipcp);
|
||||
pppcp_set_local_options(pppcp, ipcp->options, ipcp->options_len);
|
||||
|
||||
return pppcp;
|
||||
|
|
|
@ -90,6 +90,14 @@ static void lcp_generate_config_options(struct lcp_data *lcp)
|
|||
lcp->options_len = len;
|
||||
}
|
||||
|
||||
static void lcp_reset_config_options(struct lcp_data *lcp)
|
||||
{
|
||||
lcp->req_options = REQ_OPTION_ACCM;
|
||||
lcp->accm = 0;
|
||||
|
||||
lcp_generate_config_options(lcp);
|
||||
}
|
||||
|
||||
/*
|
||||
* signal the Up event to the NCP
|
||||
*/
|
||||
|
@ -103,7 +111,10 @@ static void lcp_up(struct pppcp_data *pppcp)
|
|||
*/
|
||||
static void lcp_down(struct pppcp_data *pppcp)
|
||||
{
|
||||
/* XXX should implement a way to signal NCP */
|
||||
struct lcp_data *lcp = pppcp_get_data(pppcp);
|
||||
|
||||
lcp_reset_local_options(lcp);
|
||||
pppcp_set_local_options(pppcp, lcp->options, lcp->options_len);
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -255,10 +266,7 @@ struct pppcp_data *lcp_new(GAtPPP *ppp)
|
|||
|
||||
pppcp_set_data(pppcp, lcp);
|
||||
|
||||
lcp->req_options = REQ_OPTION_ACCM;
|
||||
lcp->accm = 0;
|
||||
|
||||
lcp_generate_config_options(lcp);
|
||||
lcp_reset_local_options(lcp);
|
||||
pppcp_set_local_options(pppcp, lcp->options, lcp->options_len);
|
||||
|
||||
return pppcp;
|
||||
|
|
Loading…
Reference in New Issue