summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-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);
}