summaryrefslogtreecommitdiffstats
path: root/drivers/isimodem/gprs-context.c
diff options
context:
space:
mode:
authorAki Niemi <aki.niemi@nokia.com>2011-03-02 17:34:00 +0200
committerAki Niemi <aki.niemi@nokia.com>2011-03-03 17:43:29 +0200
commitbb473dbef752d2fb386528fa95f68582a5798a52 (patch)
treeda11102c015a6f9f27adcca4095c158f95330e2c /drivers/isimodem/gprs-context.c
parent39e155b65d8a5a94c5ba93ac65b7e02df878fd90 (diff)
downloadofono-bb473dbef752d2fb386528fa95f68582a5798a52.tar.bz2
isimodem: Refactor and fix GPRS alignment
Diffstat (limited to 'drivers/isimodem/gprs-context.c')
-rw-r--r--drivers/isimodem/gprs-context.c45
1 files changed, 22 insertions, 23 deletions
diff --git a/drivers/isimodem/gprs-context.c b/drivers/isimodem/gprs-context.c
index bbf7ca92..ad7abad1 100644
--- a/drivers/isimodem/gprs-context.c
+++ b/drivers/isimodem/gprs-context.c
@@ -349,11 +349,13 @@ static void send_context_authenticate(GIsiClient *client, void *opaque)
size_t password_len = strlen(cd->password);
/* Pad the fields to the next 32bit boundary */
- size_t sb_userinfo_len = (3 + username_len + 3) & ~3;
- uint8_t userinfo_pad[sb_userinfo_len - (3 + username_len)];
+ size_t sb_userinfo_len = ALIGN4(3 + username_len);
+ size_t userinfo_pad_len = sb_userinfo_len - (3 + username_len);
- size_t sb_password_info_len = (3 + password_len + 3) & ~3;
- uint8_t password_pad[sb_password_info_len - (3 + password_len)];
+ size_t sb_password_info_len = ALIGN4(3 + password_len);
+ size_t password_pad_len = sb_password_info_len - (3 + password_len);
+
+ const uint8_t padding[4] = { 0 };
const uint8_t top[] = {
GPDS_CONTEXT_AUTH_REQ,
@@ -375,17 +377,14 @@ static void send_context_authenticate(GIsiClient *client, void *opaque)
};
const struct iovec iov[6] = {
- { (uint8_t *)top, sizeof(top) },
+ { (uint8_t *) top, sizeof(top) },
{ cd->username, username_len },
- { userinfo_pad, sizeof(userinfo_pad) },
- { (uint8_t *)bottom, sizeof(bottom) },
+ { (uint8_t *) padding, userinfo_pad_len },
+ { (uint8_t *) bottom, sizeof(bottom) },
{ cd->password, password_len },
- { password_pad, sizeof(password_pad) },
+ { (uint8_t *) padding, password_pad_len },
};
- memset(userinfo_pad, 0, sizeof(userinfo_pad));
- memset(password_pad, 0, sizeof(password_pad));
-
if (!g_isi_client_vsend(client, iov, 6, context_auth_cb, cd, NULL))
gprs_up_fail(cd);
}
@@ -407,8 +406,10 @@ static void link_conf_cb(const GIsiMessage *msg, void *opaque)
{
struct context_data *cd = opaque;
size_t apn_len = strlen(cd->apn);
- size_t sb_apn_info_len = (3 + apn_len + 3) & ~3;
- size_t apn_pad[sb_apn_info_len - (3 + apn_len)];
+ size_t sb_apn_info_len = ALIGN4(3 + apn_len);
+ size_t apn_pad_len = sb_apn_info_len - (3 + apn_len);
+
+ const uint8_t padding[4] = { 0 };
const uint8_t req[] = {
GPDS_CONTEXT_CONFIGURE_REQ,
@@ -428,13 +429,11 @@ static void link_conf_cb(const GIsiMessage *msg, void *opaque)
};
const struct iovec iov[3] = {
- { (uint8_t *)req, sizeof(req) },
+ { (uint8_t *) req, sizeof(req) },
{ cd->apn, apn_len },
- { apn_pad, sizeof(apn_pad) },
+ { (uint8_t *) padding, apn_pad_len },
};
- memset(apn_pad, 0, sizeof(apn_pad));
-
if (!check_resp(msg, GPDS_LL_CONFIGURE_RESP, 2, cd, gprs_up_fail))
return;
@@ -447,7 +446,7 @@ static void create_context_cb(const GIsiMessage *msg, void *opaque)
struct context_data *cd = opaque;
const uint8_t *data = g_isi_msg_data(msg);
- unsigned char req[] = {
+ uint8_t req[] = {
GPDS_LL_CONFIGURE_REQ,
0x00, /* GPDS context ID, added later */
g_isi_pipe_get_handle(cd->pipe),
@@ -459,8 +458,8 @@ static void create_context_cb(const GIsiMessage *msg, void *opaque)
cd->handle = req[1] = data[0];
- if (!g_isi_client_send(cd->client, req, sizeof(req),
- link_conf_cb, cd, NULL))
+ if (!g_isi_client_send(cd->client, req, sizeof(req), link_conf_cb,
+ cd, NULL))
gprs_up_fail(cd);
}
@@ -468,12 +467,12 @@ static void create_pipe_cb(GIsiPipe *pipe)
{
struct context_data *cd = g_isi_pipe_get_userdata(pipe);
- const unsigned char msg[] = {
+ const uint8_t msg[] = {
GPDS_CONTEXT_ID_CREATE_REQ,
};
- if (!g_isi_client_send(cd->client, msg, sizeof(msg),
- create_context_cb, cd, NULL))
+ if (!g_isi_client_send(cd->client, msg, sizeof(msg), create_context_cb,
+ cd, NULL))
gprs_up_fail(cd);
}