📄 ota_prov.c
字号:
msg->sms.msgdata = octstr_create(""); /* PUSH ID, PDU type, header length, value length */ octstr_append_from_hex(msg->sms.msgdata, "01062C1F2A"); /* MIME-type: application/x-wap-prov.browser-settings */ octstr_format_append(msg->sms.msgdata, "%s", "application/x-wap-prov.browser-settings"); octstr_append_from_hex(msg->sms.msgdata, "00"); /* charset UTF-8 */ octstr_append_from_hex(msg->sms.msgdata, "81EA"); /* WSP layer (end WSP headers) */ /* * WSP layer (start WSP data field) */ /* WBXML version 1.1 */ octstr_append_from_hex(msg->sms.msgdata, "0101"); /* charset UTF-8 */ octstr_append_from_hex(msg->sms.msgdata, "6A00"); /* CHARACTERISTIC_LIST */ octstr_append_from_hex(msg->sms.msgdata, "45"); /* CHARACTERISTIC with content and attributes */ octstr_append_from_hex(msg->sms.msgdata, "C6"); /* TYPE=ADDRESS */ octstr_append_char(msg->sms.msgdata, WBXML_TOK_TYPE_ADDRESS); octstr_append_char(msg->sms.msgdata, WBXML_TOK_END); /* bearer type */ if (bearer != -1) { /* PARM with attributes */ octstr_append_from_hex(msg->sms.msgdata, "87"); /* NAME=BEARER, VALUE=GSM_CSD */ octstr_append_char(msg->sms.msgdata, WBXML_TOK_NAME_BEARER); octstr_append_char(msg->sms.msgdata, bearer); octstr_append_char(msg->sms.msgdata, WBXML_TOK_END); } /* IP address */ if (ipaddr != NULL) { /* PARM with attributes */ octstr_append_from_hex(msg->sms.msgdata, "87"); /* NAME=PROXY, VALUE, inline string */ octstr_append_char(msg->sms.msgdata, WBXML_TOK_NAME_PROXY); octstr_append_char(msg->sms.msgdata, WBXML_TOK_VALUE); octstr_append_char(msg->sms.msgdata, WBXML_TOK_STR_I); octstr_append(msg->sms.msgdata, octstr_duplicate(ipaddr)); octstr_append_char(msg->sms.msgdata, WBXML_TOK_END_STR_I); octstr_append_char(msg->sms.msgdata, WBXML_TOK_END); } /* connection type */ if (connection != -1) { /* PARM with attributes */ octstr_append_from_hex(msg->sms.msgdata, "87"); /* NAME=PORT, VALUE */ octstr_append_char(msg->sms.msgdata, WBXML_TOK_NAME_PORT); octstr_append_char(msg->sms.msgdata, connection); octstr_append_char(msg->sms.msgdata, WBXML_TOK_END); } /* phone number */ if (phonenum != NULL) { /* PARM with attributes */ octstr_append_from_hex(msg->sms.msgdata, "87"); /* NAME=CSD_DIALSTRING, VALUE, inline string */ octstr_append_char(msg->sms.msgdata, WBXML_TOK_NAME_CSD_DIALSTRING); octstr_append_char(msg->sms.msgdata, WBXML_TOK_VALUE); octstr_append_char(msg->sms.msgdata, WBXML_TOK_STR_I); octstr_append(msg->sms.msgdata, octstr_duplicate(phonenum)); octstr_append_char(msg->sms.msgdata, WBXML_TOK_END_STR_I); octstr_append_char(msg->sms.msgdata, WBXML_TOK_END); } /* authentication */ /* PARM with attributes */ octstr_append_from_hex(msg->sms.msgdata, "87"); /* NAME=PPP_AUTHTYPE, VALUE */ octstr_append_char(msg->sms.msgdata, WBXML_TOK_NAME_PPP_AUTHTYPE); octstr_append_char(msg->sms.msgdata, authent); octstr_append_char(msg->sms.msgdata, WBXML_TOK_END); /* user name */ if (username != NULL) { /* PARM with attributes */ octstr_append_from_hex(msg->sms.msgdata, "87"); /* NAME=PPP_AUTHNAME, VALUE, inline string */ octstr_append_char(msg->sms.msgdata, WBXML_TOK_NAME_PPP_AUTHNAME); octstr_append_char(msg->sms.msgdata, WBXML_TOK_VALUE); octstr_append_char(msg->sms.msgdata, WBXML_TOK_STR_I); octstr_append(msg->sms.msgdata, octstr_duplicate(username)); octstr_append_char(msg->sms.msgdata, WBXML_TOK_END_STR_I); octstr_append_char(msg->sms.msgdata, WBXML_TOK_END); } /* password */ if (passwd != NULL) { /* PARM with attributes */ octstr_append_from_hex(msg->sms.msgdata, "87"); /* NAME=PPP_AUTHSECRET, VALUE, inline string */ octstr_append_char(msg->sms.msgdata, WBXML_TOK_NAME_PPP_AUTHSECRET); octstr_append_char(msg->sms.msgdata, WBXML_TOK_VALUE); octstr_append_char(msg->sms.msgdata, WBXML_TOK_STR_I); octstr_append(msg->sms.msgdata, octstr_duplicate(passwd)); octstr_append_char(msg->sms.msgdata, WBXML_TOK_END_STR_I); octstr_append_char(msg->sms.msgdata, WBXML_TOK_END); } /* data call type */ if (calltype != -1) { /* PARM with attributes */ octstr_append_from_hex(msg->sms.msgdata, "87"); /* NAME=CSD_CALLTYPE, VALUE */ octstr_append_char(msg->sms.msgdata, WBXML_TOK_NAME_CSD_CALLTYPE); octstr_append_char(msg->sms.msgdata, calltype); octstr_append_char(msg->sms.msgdata, WBXML_TOK_END); } /* speed */ /* PARM with attributes */ octstr_append_from_hex(msg->sms.msgdata, "87"); /* NAME=CSD_CALLSPEED, VALUE */ octstr_append_char(msg->sms.msgdata, WBXML_TOK_NAME_CSD_CALLSPEED); octstr_append_char(msg->sms.msgdata, speed); octstr_append_char(msg->sms.msgdata, WBXML_TOK_END); /* end CHARACTERISTIC TYPE=ADDRESS */ octstr_append_char(msg->sms.msgdata, WBXML_TOK_END); /* homepage */ if (url != NULL) { /* CHARACTERISTIC with attributes */ octstr_append_from_hex(msg->sms.msgdata, "86"); /* TYPE=URL */ octstr_append_char(msg->sms.msgdata, WBXML_TOK_TYPE_URL); octstr_append_char(msg->sms.msgdata, WBXML_TOK_VALUE); octstr_append_char(msg->sms.msgdata, WBXML_TOK_STR_I); octstr_append(msg->sms.msgdata, octstr_duplicate(url)); octstr_append_char(msg->sms.msgdata, WBXML_TOK_END_STR_I); octstr_append_char(msg->sms.msgdata, WBXML_TOK_END); } /* CHARACTERISTIC with content and attributes */ octstr_append_from_hex(msg->sms.msgdata, "C6"); /* TYPE=NAME */ octstr_append_char(msg->sms.msgdata, WBXML_TOK_TYPE_NAME); octstr_append_char(msg->sms.msgdata, WBXML_TOK_END); /* service description */ if (desc != NULL) { /* PARAM with attributes */ octstr_append_from_hex(msg->sms.msgdata, "87"); /* NAME=NAME, VALUE, inline */ octstr_append_char(msg->sms.msgdata, WBXML_TOK_NAME_NAME); octstr_append_char(msg->sms.msgdata, WBXML_TOK_VALUE); octstr_append_char(msg->sms.msgdata, WBXML_TOK_STR_I); octstr_append(msg->sms.msgdata, octstr_duplicate(desc)); octstr_append_char(msg->sms.msgdata, WBXML_TOK_END_STR_I); octstr_append_char(msg->sms.msgdata, WBXML_TOK_END); } /* end of CHARACTERISTIC */ octstr_append_char(msg->sms.msgdata, WBXML_TOK_END); /* end of CHARACTERISTIC-LIST */ octstr_append_char(msg->sms.msgdata, WBXML_TOK_END); /* WSP layer (end WSP data field) */ msg->sms.sender = from; msg->sms.receiver = octstr_duplicate(receiver); msg->sms.coding = DC_8BIT; msg->sms.time = time(NULL); octstr_destroy(url); octstr_destroy(desc); octstr_destroy(ipaddr); octstr_destroy(phonenum); octstr_destroy(username); octstr_destroy(passwd); return msg;}Msg *ota_tokenize_bookmarks(CfgGroup *grp, Octstr *from, Octstr *receiver){ Octstr *url, *name; Msg *msg; url = NULL; name = NULL; url = cfg_get(grp, octstr_imm("url")); name = cfg_get(grp, octstr_imm("name")); msg = msg_create(sms); /* * Append the User Data Header (UDH) including the lenght (UDHL) * WDP layer (start WDP headers) */ msg->sms.sms_type = mt_push; msg->sms.udhdata = octstr_create(""); octstr_append_from_hex(msg->sms.udhdata, "060504C34FC002"); /* WDP layer (end WDP headers) */ /* * WSP layer (start WSP headers) */ msg->sms.msgdata = octstr_create(""); /* PUSH ID, PDU type, header length, value length */ octstr_append_from_hex(msg->sms.msgdata, "01062D1F2B"); /* MIME-type: application/x-wap-prov.browser-bookmarks */ octstr_format_append(msg->sms.msgdata, "%s", "application/x-wap-prov.browser-bookmarks"); octstr_append_from_hex(msg->sms.msgdata, "00"); /* charset UTF-8 */ octstr_append_from_hex(msg->sms.msgdata, "81EA"); /* WSP layer (end WSP headers) */ /* * WSP layer (start WSP data field) */ /* WBXML version 1.1 */ octstr_append_from_hex(msg->sms.msgdata, "0101"); /* charset UTF-8 */ octstr_append_from_hex(msg->sms.msgdata, "6A00"); /* CHARACTERISTIC_LIST */ octstr_append_from_hex(msg->sms.msgdata, "45"); /* CHARACTERISTIC with content and attributes */ octstr_append_from_hex(msg->sms.msgdata, "C6"); /* TYPE=BOOKMARK */ octstr_append_char(msg->sms.msgdata, WBXML_TOK_TYPE_BOOKMARK); octstr_append_char(msg->sms.msgdata, WBXML_TOK_END); /* name */ if (name != NULL) { /* PARM with attributes */ octstr_append_from_hex(msg->sms.msgdata, "87"); /* NAME=PROXY, VALUE, inline string */ octstr_append_char(msg->sms.msgdata, WBXML_TOK_NAME_NAME); octstr_append_char(msg->sms.msgdata, WBXML_TOK_VALUE); octstr_append_char(msg->sms.msgdata, WBXML_TOK_STR_I); octstr_append(msg->sms.msgdata, octstr_duplicate(name)); octstr_append_char(msg->sms.msgdata, WBXML_TOK_END_STR_I); octstr_append_char(msg->sms.msgdata, WBXML_TOK_END); } /* URL */ if (url != NULL) { /* PARM with attributes */ octstr_append_from_hex(msg->sms.msgdata, "87"); /* NAME=PROXY, VALUE, inline string */ octstr_append_char(msg->sms.msgdata, WBXML_TOK_NAME_URL); octstr_append_char(msg->sms.msgdata, WBXML_TOK_VALUE); octstr_append_char(msg->sms.msgdata, WBXML_TOK_STR_I); octstr_append(msg->sms.msgdata, octstr_duplicate(url)); octstr_append_char(msg->sms.msgdata, WBXML_TOK_END_STR_I); octstr_append_char(msg->sms.msgdata, WBXML_TOK_END); } /* end of CHARACTERISTIC */ octstr_append_char(msg->sms.msgdata, WBXML_TOK_END); /* end of CHARACTERISTIC-LIST */ octstr_append_char(msg->sms.msgdata, WBXML_TOK_END); /* WSP layer (end WSP data field) */ msg->sms.sender = from; msg->sms.receiver = octstr_duplicate(receiver); msg->sms.coding = DC_8BIT; msg->sms.time = time(NULL); octstr_destroy(name); octstr_destroy(url); return msg;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -