From 5c29ba6c25f2463c68a0b0b4c38eba4e4777c1de Mon Sep 17 00:00:00 2001 From: owen_lu Date: Wed, 4 Feb 2026 16:17:43 +0800 Subject: [PATCH] RDKBDEV-3368:Fix the old dhcp server route was not deleted when dhcp server changes Reason for change: When dhcp server changes, the old dhcp server route should be deleted Test Procedure: 1. cdrouter_dhcp_70 2. when the old DHCP server becomes unresponsive (such as going down) and the CPE bind to the new DHCP server, check if the CPE still has old dhcp server routing rule Risks: Low Signed-off-by: Owen Lu --- source/WanManager/wanmgr_net_utils.c | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/source/WanManager/wanmgr_net_utils.c b/source/WanManager/wanmgr_net_utils.c index a9c1da8d..89b02e50 100644 --- a/source/WanManager/wanmgr_net_utils.c +++ b/source/WanManager/wanmgr_net_utils.c @@ -2267,9 +2267,20 @@ int WanManager_AddGatewayRoute(const WANMGR_IPV4_DATA* pIpv4Info) char cmd[BUFLEN_128]={0}; int ret = RETURN_OK; FILE *fp = NULL; - + char interface_gw[32] = {0}; + char backup_gw[32] = {0}; + /* delete gateway first before add */ - snprintf(cmd, sizeof(cmd), "route del %s dev %s", pIpv4Info->gateway, pIpv4Info->ifname); + snprintf(interface_gw,sizeof(interface_gw),"%s_backup_gw",pIpv4Info->ifname); + sysevent_get(sysevent_fd, sysevent_token, interface_gw, backup_gw, sizeof(backup_gw)); + if(strlen(backup_gw) > 0) + { + snprintf(cmd, sizeof(cmd), "route del %s dev %s", backup_gw, pIpv4Info->ifname); + } + else + { + snprintf(cmd, sizeof(cmd), "route del %s dev %s", pIpv4Info->gateway, pIpv4Info->ifname); + } WanManager_DoSystemAction("SetUpSystemGateway:", cmd); /* Sets gateway route entry */ @@ -2279,6 +2290,7 @@ int WanManager_AddGatewayRoute(const WANMGR_IPV4_DATA* pIpv4Info) WanManager_DoSystemAction("SetUpSystemGateway:", cmd); CcspTraceInfo(("%s %d - The gateway route entries set!\n",__FUNCTION__,__LINE__)); } + sysevent_set(sysevent_fd, sysevent_token,interface_gw, pIpv4Info->gateway, 0); return ret; } @@ -3067,4 +3079,4 @@ ANSC_STATUS WanManager_Wait_Until_IPv6_LinkLocal_ReadyToUse(char *pInterfaceName } return returnStatus; -} \ No newline at end of file +}