summaryrefslogtreecommitdiff
path: root/gatchat/ppp_ipcp.c
diff options
context:
space:
mode:
Diffstat (limited to 'gatchat/ppp_ipcp.c')
-rw-r--r--gatchat/ppp_ipcp.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/gatchat/ppp_ipcp.c b/gatchat/ppp_ipcp.c
index f3456070..d64bdedd 100644
--- a/gatchat/ppp_ipcp.c
+++ b/gatchat/ppp_ipcp.c
@@ -330,19 +330,20 @@ static enum rcr_result ipcp_server_rcr(struct ipcp_data *ipcp,
case IP_ADDRESS:
memcpy(&addr, data, 4);
- FILL_IP(nak_options, addr != ipcp->peer_addr,
+ FILL_IP(nak_options,
+ addr != ipcp->peer_addr || addr == 0,
type, &ipcp->peer_addr);
break;
case PRIMARY_DNS_SERVER:
memcpy(&addr, data, 4);
- FILL_IP(nak_options, addr != ipcp->dns1,
+ FILL_IP(nak_options, addr != ipcp->dns1 || addr == 0,
type, &ipcp->dns1);
break;
case SECONDARY_DNS_SERVER:
memcpy(&addr, data, 4);
- FILL_IP(nak_options, addr != ipcp->dns2,
+ FILL_IP(nak_options, addr != ipcp->dns2 || addr == 0,
type, &ipcp->dns2);
break;
default: