Hi Antara,
On 03/20/2019 04:15 AM, Antara Borwankar wrote:
Handled IPv6 address after activating PDP context
---
drivers/ifxmodem/gprs-context.c | 33 +++++++++++++++++++++++----------
1 file changed, 23 insertions(+), 10 deletions(-)
diff --git a/drivers/ifxmodem/gprs-context.c b/drivers/ifxmodem/gprs-context.c
index 6042004..55d72a6 100644
--- a/drivers/ifxmodem/gprs-context.c
+++ b/drivers/ifxmodem/gprs-context.c
@@ -352,10 +352,12 @@ static void cgcontrdp_cb(gboolean ok, GAtResult *result,
gpointer user_data)
DBG("DNS: %s, %s\n", gcd->dns1, gcd->dns2);
- if (!laddrnetmask || at_util_get_ipv4_address_and_netmask(laddrnetmask,
- gcd->address, gcd->netmask) < 0) {
- failed_setup(gc, NULL, TRUE);
- return;
+ if(gcd->proto == OFONO_GPRS_PROTO_IP) {
There really should be a space after 'if' here.
+ if (!laddrnetmask ||
at_util_get_ipv4_address_and_netmask(laddrnetmask,
+ gcd->address, gcd->netmask) <
0) {
+ failed_setup(gc, NULL, TRUE);
+ return;
+ }
}
if (gw)
@@ -373,15 +375,26 @@ static void cgcontrdp_cb(gboolean ok, GAtResult *result,
gpointer user_data)
interface = ofono_gprs_context_get_interface(gc);
datapath = get_datapath(modem, interface);
- ofono_gprs_context_set_ipv4_address(gc, gcd->address, TRUE);
+ if(gcd->proto == OFONO_GPRS_PROTO_IP) {
And here
+ ofono_gprs_context_set_ipv4_address(gc, gcd->address, TRUE);
- if (gcd->netmask[0])
- ofono_gprs_context_set_ipv4_netmask(gc, gcd->netmask);
+ if (gcd->netmask[0])
+ ofono_gprs_context_set_ipv4_netmask(gc, gcd->netmask);
- if (gcd->gateway[0])
- ofono_gprs_context_set_ipv4_gateway(gc, gcd->gateway);
+ if (gcd->gateway[0])
+ ofono_gprs_context_set_ipv4_gateway(gc, gcd->gateway);
- ofono_gprs_context_set_ipv4_dns_servers(gc, dns);
+ ofono_gprs_context_set_ipv4_dns_servers(gc, dns);
+ }
+
+ if(gcd->proto == OFONO_GPRS_PROTO_IPV6) {
+ ofono_gprs_context_set_ipv6_address(gc, gcd->address);
So I'm not sure I understand what is happening here. gcd->address is
only set when gcd->proto is OFONO_GPRS_PROTO_IP. E.g. when it is
extracted by at_util_get_ipv4_address_and_netmask. How are you
obtaining it for IPV6?
+
+ if (gcd->gateway[0])
+ ofono_gprs_context_set_ipv6_gateway(gc, gcd->gateway);
+
+ ofono_gprs_context_set_ipv6_dns_servers(gc, dns);
+ }
snprintf(buf, sizeof(buf), "AT+XDATACHANNEL=1,1,\"%s\",\"%s\",2,%u",
ctrlpath, datapath, gcd->active_context);
Regards,
-Denis
_______________________________________________
ofono mailing list
[email protected]
https://lists.ofono.org/mailman/listinfo/ofono