diff options
author | Paul Kocialkowski <contact@paulk.fr> | 2012-07-08 00:35:04 +0200 |
---|---|---|
committer | Paul Kocialkowski <contact@paulk.fr> | 2012-07-08 00:35:04 +0200 |
commit | dadca553b13324a599c98ca2da98aad25e47d1d5 (patch) | |
tree | 295e9b91ae9da58e6226a32cb128f77a0172430e /samsung-ipc/gprs.c | |
parent | 7090d361f77842818b65f014b3731fb1445362d9 (diff) | |
download | hardware_replicant_libsamsung-ipc-dadca553b13324a599c98ca2da98aad25e47d1d5.tar.gz hardware_replicant_libsamsung-ipc-dadca553b13324a599c98ca2da98aad25e47d1d5.tar.bz2 hardware_replicant_libsamsung-ipc-dadca553b13324a599c98ca2da98aad25e47d1d5.zip |
GPRS: added and completed structures, defines and reworked functions accordingly
Signed-off-by: Paul Kocialkowski <contact@paulk.fr>
Diffstat (limited to 'samsung-ipc/gprs.c')
-rw-r--r-- | samsung-ipc/gprs.c | 38 |
1 files changed, 23 insertions, 15 deletions
diff --git a/samsung-ipc/gprs.c b/samsung-ipc/gprs.c index c9edf7b..42dcd59 100644 --- a/samsung-ipc/gprs.c +++ b/samsung-ipc/gprs.c @@ -30,36 +30,44 @@ void ipc_gprs_port_list_setup(struct ipc_gprs_port_list *message) 0x02, 0x04, 0x16, 0x00, 0x17, 0x00, 0x87, 0x00, 0xBD, 0x01 }; - memset(message->unk, 0, sizeof(message->unk)); - memcpy(message->unk, bytes, sizeof(bytes)); + assert(message != NULL); + + memset(message, 0, sizeof(struct ipc_gprs_port_list)); + memcpy(message->unk, bytes, sizeof(bytes)); } -void ipc_gprs_define_pdp_context_setup(struct ipc_gprs_define_pdp_context *message, char *apn) +void ipc_gprs_define_pdp_context_setup(struct ipc_gprs_define_pdp_context *message, + unsigned char cid, int enable, char *apn) { assert(message != NULL); - message->unk0[0] = 0x1; - message->unk0[1] = 0x1; - message->unk0[2] = 0x2; - strncpy((char*)message->apn, apn, 124); + + memset(message, 0, sizeof(struct ipc_gprs_define_pdp_context)); + + message->enable = enable ? 1 : 0; + message->cid = cid; + message->unk = 0x2; + + strncpy((char *) message->apn, apn, 124); } -void ipc_gprs_pdp_context_setup(struct ipc_gprs_pdp_context *message, int activate, char *username, char *password) +void ipc_gprs_pdp_context_setup(struct ipc_gprs_pdp_context_set *message, + unsigned char cid, int enable, char *username, char *password) { assert(message != NULL); - if (activate) + + memset(message, 0, sizeof(struct ipc_gprs_pdp_context_set)); + + message->enable = enable ? 1 : 0; + message->cid = cid; + + if (enable && username != NULL && password != NULL) { - message->unk0[0] = 0x1; - message->unk0[1] = 0x1; message->unk0[2] = 0x13; message->unk2 = 0x1; strncpy((char*)message->username, username, 32); strncpy((char*)message->password, password, 32); } - else - { - message->unk0[1] = 0x1; - } } // vim:ts=4:sw=4:expandtab |