[Bugfix][T108-sl][bug-view-2338][data] after data call start suc, should get non-zero gateway info in call info
Only Configure:No
Affected branchmaster
Affected module:data
Is it affected on:asr
Doc Update:No
Change-Id: I60f06ec77f31274b7f1051b6bfbce57c04c35789
diff --git a/mbtk/mbtk_rild_v2/src/ril_data_call.c b/mbtk/mbtk_rild_v2/src/ril_data_call.c
index a9ebd12..2a0994b 100755
--- a/mbtk/mbtk_rild_v2/src/ril_data_call.c
+++ b/mbtk/mbtk_rild_v2/src/ril_data_call.c
@@ -1294,6 +1294,33 @@
return err;
}
+void get_gate_way_v4(uint32 ip_v4, void* gateWay)
+{
+ uint32 local_gateWay=ip_v4;
+ if((local_gateWay & 0xff000000) < 0xfe000000)
+ {
+ local_gateWay+=(1 << 24);
+ }
+ else
+ {
+ local_gateWay-=(1 << 24);
+ }
+ (* (uint32*) gateWay) = local_gateWay;
+}
+
+void get_gate_way_v6(void* ip_v6, void* gateWay)
+{
+ memcpy(gateWay,ip_v6,32);
+ if((((uint32*)gateWay)[3] & 0xff000000)!=0xff000000)
+ {
+ ((uint32*)gateWay)[3] += (1 << 24);
+ }
+ else
+ {
+ ((uint32*)gateWay)[3] -= (1 << 24);
+ }
+}
+
/*
AT+CGCONTRDP=1
+CGCONTRDP: 1,7,"cmnet-2.MNC000.MCC460.GPRS","10.255.74.26","","223.87.253.100","223.87.253.253","","",0,0
@@ -1393,6 +1420,18 @@
//log_hex("IPv6", &(ipv6->GateWay), 16);
}
}
+ else
+ {
+ if(ip_info->ipv4.valid)
+ {
+ get_gate_way_v4(ip_info->ipv4.IPAddr,&(ip_info->ipv4.GateWay));
+ ip_info->ipv4.NetMask=0xffffff;
+ }
+ else if(ip_info->ipv6.valid)
+ {
+ get_gate_way_v6(ip_info->ipv6.IPV6Addr,ip_info->ipv6.GateWay);
+ }
+ }
err = at_tok_nextstr(&line, &tmp_ptr); // prim_DNS
if (err < 0)