Hi Giacinto, I applied a modified version of this patch, see below: > diff --git a/drivers/mbimmodem/gprs-context.c b/drivers/mbimmodem/gprs-context.c > index 79793c92..be256e43 100644 > --- a/drivers/mbimmodem/gprs-context.c > +++ b/drivers/mbimmodem/gprs-context.c > @@ -75,9 +75,11 @@ static uint32_t auth_method_to_auth_protocol(enum ofono_gprs_auth_method method) > return 2; /* MBIMAuthProtocolChap */ > case OFONO_GPRS_AUTH_METHOD_PAP: > return 1; /* MBIMAuthProtocolPap */ > + case OFONO_GPRS_AUTH_METHOD_NONE: > + return 0; /* MBIMAUthProtocolNone */ > } > > - return 0; > + return 0; /* MBIMAUthProtocolNone */ > } > > static void mbim_deactivate_cb(struct mbim_message *message, void *user) > @@ -345,6 +347,8 @@ static void mbim_gprs_activate_primary(struct ofono_gprs_context *gc, > { > struct gprs_context_data *gcd = ofono_gprs_context_get_data(gc); > struct mbim_message *message; > + const char username = NULL; > + const char password = NULL; These were changed to const char * > > DBG("cid %u", ctx->cid); > > @@ -354,6 +358,12 @@ static void mbim_gprs_activate_primary(struct ofono_gprs_context *gc, > gcd->active_context = ctx->cid; > gcd->proto = ctx->proto; > > + if (ctx->auth_method != OFONO_GPRS_AUTH_METHOD_NONE && ctx->username[0]) > + username = ctx->username; > + > + if (ctx->auth_method != OFONO_GPRS_AUTH_METHOD_NONE && ctx->password[0]) > + password = ctx->password; > + > message = mbim_message_new(mbim_uuid_basic_connect, > MBIM_CID_CONNECT, > MBIM_COMMAND_TYPE_SET); > @@ -361,8 +371,8 @@ static void mbim_gprs_activate_primary(struct ofono_gprs_context *gc, > ctx->cid, > 1, /* MBIMActivationCommandActivate */ > ctx->apn, > - ctx->username[0] ? ctx->username : NULL, > - ctx->password[0] ? ctx->password : NULL, > + username, > + password, > 0, /*MBIMCompressionNone */ > auth_method_to_auth_protocol(ctx->auth_method), > proto_to_context_ip_type(ctx->proto), > diff --git a/drivers/mbmmodem/gprs-context.c b/drivers/mbmmodem/gprs-context.c > index e961afa1..fa8b44b6 100644 > --- a/drivers/mbmmodem/gprs-context.c > +++ b/drivers/mbmmodem/gprs-context.c > @@ -394,11 +394,12 @@ static void mbm_gprs_activate_primary(struct ofono_gprs_context *gc, > * Set username and password, this should be done after CGDCONT > * or an error can occur. We don't bother with error checking > * here > - * */ > - snprintf(buf, sizeof(buf), "AT*EIAAUW=%d,1,\"%s\",\"%s\"", > - ctx->cid, ctx->username, ctx->password); > - > - g_at_chat_send(gcd->chat, buf, none_prefix, NULL, NULL, NULL); > + */ > + if (ctx->auth_method != OFONO_GPRS_AUTH_METHOD_NONE) { > + snprintf(buf, sizeof(buf), "AT*EIAAUW=%d,1,\"%s\",\"%s\"", > + ctx->cid, ctx->username, ctx->password); > + g_at_chat_send(gcd->chat, buf, none_prefix, NULL, NULL, NULL); > + } > > return; > I dropped this part entirely. The reason is that we can have profiles with username/password & without operating on the same CID. Since the setting is permanent on the modem, we need to set it/clear it even when AUTH_METHOD_NONE is used. If you disagree, please send a follow up series. > diff --git a/drivers/stemodem/gprs-context.c b/drivers/stemodem/gprs-context.c > index 18b2bfa4..32facd8c 100644 > --- a/drivers/stemodem/gprs-context.c > +++ b/drivers/stemodem/gprs-context.c > @@ -307,10 +307,11 @@ static void ste_gprs_activate_primary(struct ofono_gprs_context *gc, > * or an error can occur. We don't bother with error checking > * here > */ > - snprintf(buf, sizeof(buf), "AT*EIAAUW=%d,1,\"%s\",\"%s\"", > - ctx->cid, ctx->username, ctx->password); > - > - g_at_chat_send(gcd->chat, buf, none_prefix, NULL, NULL, NULL); > + if (ctx->auth_method != OFONO_GPRS_AUTH_METHOD_NONE) { > + snprintf(buf, sizeof(buf), "AT*EIAAUW=%d,1,\"%s\",\"%s\"", > + ctx->cid, ctx->username, ctx->password); > + g_at_chat_send(gcd->chat, buf, none_prefix, NULL, NULL, NULL); > + } > > return; > Dropped for the same reason as above Regards, -Denis