summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBjørn Mork <bjorn@mork.no>2015-04-08 15:06:25 +0200
committerBjørn Mork <bjorn@mork.no>2015-04-08 15:06:25 +0200
commitdc8ff4d7f1eb0a2701eec91e908259d6b1becc87 (patch)
treeb2bd33bb538c1d435197c881ac7e813c876bf0c4
parentf4b0c26588b0cfa6320d3ecb636acd5e30c5903e (diff)
support non default ip-typestmp
Signed-off-by: Bjørn Mork <bjorn@mork.no>
-rw-r--r--cli.c19
1 files changed, 17 insertions, 2 deletions
diff --git a/cli.c b/cli.c
index d1f3e88..15ca5b4 100644
--- a/cli.c
+++ b/cli.c
@@ -324,6 +324,7 @@ mbim_detach_request(void)
static int
mbim_connect_request(void)
{
+ char *apn;
struct mbim_basic_connect_connect_s *c =
(struct mbim_basic_connect_connect_s *) mbim_setup_command_msg(basic_connect,
MBIM_MESSAGE_COMMAND_TYPE_SET, MBIM_CMD_BASIC_CONNECT_CONNECT,
@@ -332,8 +333,22 @@ mbim_connect_request(void)
c->activationcommand = htole32(MBIM_ACTIVATION_COMMAND_ACTIVATE);
c->iptype = htole32(MBIM_CONTEXT_IP_TYPE_DEFAULT);
memcpy(c->contexttype, uuid_context_type_internet, 16);
- if (_argc > 0)
- mbim_encode_string(&c->accessstring, *_argv);
+ if (_argc > 0) {
+ apn = index(*_argv, ':');
+ if (!apn) {
+ apn = *_argv;
+ } else {
+ apn[0] = 0;
+ apn++;
+ if (!strcmp(*_argv, "ipv4"))
+ c->iptype = htole32(MBIM_CONTEXT_IP_TYPE_IPV4);
+ else if (!strcmp(*_argv, "ipv6"))
+ c->iptype = htole32(MBIM_CONTEXT_IP_TYPE_IPV6);
+ else if (!strcmp(*_argv, "ipv4v6"))
+ c->iptype = htole32(MBIM_CONTEXT_IP_TYPE_IPV4V6);
+ }
+ mbim_encode_string(&c->accessstring, apn);
+ }
if (_argc > 3) {
if (!strcmp(_argv[1], "pap"))
c->authprotocol = htole32(MBIM_AUTH_PROTOCOL_PAP);