summaryrefslogtreecommitdiffstats
path: root/gatchat
diff options
context:
space:
mode:
authorDenis Kenzior <denkenz@gmail.com>2011-06-29 04:03:25 -0500
committerDenis Kenzior <denkenz@gmail.com>2011-06-29 04:03:25 -0500
commit078d621033d5007b21e75d0c0f73d778c3934c3c (patch)
tree6363814ca02190c83ddf857c0f6d53430d7f9e75 /gatchat
parentbc64df2d2abde6b4045231f6db31bc7976bd7772 (diff)
downloadofono-078d621033d5007b21e75d0c0f73d778c3934c3c.tar.bz2
ppp: Don't regenerate options when unchanged
Diffstat (limited to 'gatchat')
-rw-r--r--gatchat/ppp_lcp.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/gatchat/ppp_lcp.c b/gatchat/ppp_lcp.c
index 01b36bff..d396e518 100644
--- a/gatchat/ppp_lcp.c
+++ b/gatchat/ppp_lcp.c
@@ -374,12 +374,16 @@ struct pppcp_data *lcp_new(GAtPPP *ppp, gboolean is_server)
void lcp_set_acfc_enabled(struct pppcp_data *pppcp, gboolean enabled)
{
struct lcp_data *lcp = pppcp_get_data(pppcp);
+ guint8 old = lcp->req_options;
if (enabled == TRUE)
lcp->req_options |= REQ_OPTION_ACFC;
else
lcp->req_options &= ~REQ_OPTION_ACFC;
+ if (lcp->req_options == old)
+ return;
+
lcp_generate_config_options(lcp);
pppcp_set_local_options(pppcp, lcp->options, lcp->options_len);
}
@@ -387,12 +391,16 @@ void lcp_set_acfc_enabled(struct pppcp_data *pppcp, gboolean enabled)
void lcp_set_pfc_enabled(struct pppcp_data *pppcp, gboolean enabled)
{
struct lcp_data *lcp = pppcp_get_data(pppcp);
+ guint8 old = lcp->req_options;
if (enabled == TRUE)
lcp->req_options |= REQ_OPTION_PFC;
else
lcp->req_options &= ~REQ_OPTION_PFC;
+ if (lcp->req_options == old)
+ return;
+
lcp_generate_config_options(lcp);
pppcp_set_local_options(pppcp, lcp->options, lcp->options_len);
}