亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? xmlrpc.c

?? mms client
?? C
?? 第 1 頁 / 共 3 頁
字號:
            break;    }    return scalar;}XMLRPCScalar *xmlrpc_scalar_create_double(int type, double val){    XMLRPCScalar *scalar = gw_malloc(sizeof(XMLRPCScalar));    scalar->s_type = type;    scalar->s_int = 0;    scalar->s_bool = 0;    scalar->s_double = 0;    scalar->s_str = NULL;    scalar->s_date = NULL;    scalar->s_base64 = NULL;        switch (type) {        case xr_double:            scalar->s_double = val;            break;        default:            panic(0,"XML-RPC: scalar type not supported!");            break;    }    return scalar;}/* Destroy scalar */void xmlrpc_scalar_destroy(XMLRPCScalar *scalar){    if (scalar == NULL)	return;    octstr_destroy(scalar->s_str);    octstr_destroy(scalar->s_date);    octstr_destroy(scalar->s_base64);        gw_free(scalar);}void xmlrpc_scalar_print(XMLRPCScalar *scalar, Octstr *os){    switch (scalar->s_type) {        case xr_int:            octstr_format_append(os, "<int>%d</int>", scalar->s_int);            break;        case xr_bool:            octstr_format_append(os, "<bool>%d</bool>", scalar->s_bool);            break;        case xr_string:            octstr_format_append(os, "<string>%S</string>", scalar->s_str);            break;        case xr_double:            octstr_format_append(os, "<double>%d</double>", scalar->s_double);            break;        case xr_date:            octstr_format_append(os, "<date>%S</date>", scalar->s_date);            break;        case xr_base64:            octstr_format_append(os, "<base64>%S</base64>", scalar->s_base64);            break;    }}/*------------------------------------------------- * Utilities to make things easier *//* create scalar value from given arguments * XXX: Should this take different kind of arguments? */XMLRPCValue *xmlrpc_create_scalar_value(int type, void *arg){    XMLRPCValue *value = xmlrpc_value_create();    value->v_type = xr_scalar;    value->v_scalar = xmlrpc_scalar_create(type, arg);    return value;}XMLRPCValue *xmlrpc_create_scalar_value_double(int type, double val){    XMLRPCValue *value = xmlrpc_value_create();    value->v_type = xr_scalar;    value->v_scalar = xmlrpc_scalar_create_double(type, val);    return value;}XMLRPCValue *xmlrpc_create_struct_value(int type, void *arg){    XMLRPCValue *value = xmlrpc_value_create();    value->v_type = xr_struct;    value->v_struct = list_create();    return value;}int xmlrpc_parse_status(XMLRPCMethodCall *call){    if (call == NULL)	   return -1;    return call->parse_status;}Octstr *xmlrpc_parse_error(XMLRPCMethodCall *call) {    if (call == NULL)        return NULL;        return call->parse_error;}Octstr *xmlrpc_get_method_name(XMLRPCMethodCall *call){    if (call == NULL)        return NULL;    return call->method_name;}int xmlrpc_call_len(XMLRPCMethodCall *call){    if (call == NULL)        return 0;    return list_len(call->params);}int xmlrpc_get_type(XMLRPCMethodCall *call, int pos){    XMLRPCValue *var;    if (call == NULL)        return -1;    var = list_get(call->params, pos);    return var->v_type;}/*------------------------------------------------- * Internal parser functions */static int parse_member_element(xmlDocPtr doc, xmlNodePtr node,                                 XMLRPCMethodCall **msg){    Octstr *name;    size_t i;    /*     * check if the element is allowed at this level      */    name = octstr_create(node->name);    if (octstr_len(name) == 0) {        octstr_destroy(name);        return -1;    }    i = 0;    while (i < NUMBER_OF_MEMBER_ELEMENTS) {        if (octstr_case_compare(name, octstr_imm(member_elements[i].name)) == 0)            break;        ++i;    }    if (i == NUMBER_OF_MEMBER_ELEMENTS) {        (*msg)->parse_status = XMLRPC_PARSING_FAILED;        (*msg)->parse_error = octstr_format("XML-RPC compiler: unknown tag '%s' "                                            "in XML source at level <member>",                                             octstr_get_cstr(name));        octstr_destroy(name);        return -1;    }     octstr_destroy(name);    /*      * now check which type it is and process      *     * valid tags at this level are:     *   name [0]     *   value [1]     */    if (i == 0) {        /* this has been a <member> tag */        //if (parse_name(doc, node->xmlChildrenNode, msg) == -1)        //    return -1;    } else {        /* we should never be here */        (*msg)->parse_status = XMLRPC_PARSING_FAILED;        (*msg)->parse_error = octstr_format("XML-RPC compiler: bogus parsing exception in parse_member!");        return -1;    }    return 0;}static int parse_member(xmlDocPtr doc, xmlNodePtr node,                         XMLRPCMethodCall **msg){    int status = 0;      /* call for the parser function of the node type. */    switch (node->type) {        case XML_ELEMENT_NODE:            status = parse_member_element(doc, node, msg);            break;        case XML_TEXT_NODE:        case XML_COMMENT_NODE:        case XML_PI_NODE:            /* Text nodes, comments and PIs are ignored. */            break;	   /*	    * XML has also many other node types, these are not needed with 	    * XML-RPC. Therefore they are assumed to be an error.	    */        default:            (*msg)->parse_status = XMLRPC_PARSING_FAILED;            (*msg)->parse_error = octstr_format("XML-RPC compiler: Unknown XML node in the XML-RPC source.");            return -1;            break;    }    if (node->next != NULL)	   if (parse_member(doc, node->next, msg) == -1)            return -1;    return status;}static int parse_struct_element(xmlDocPtr doc, xmlNodePtr node,                                 XMLRPCMethodCall **msg){    Octstr *name;    size_t i;    /*     * check if the element is allowed at this level      */    name = octstr_create(node->name);    if (octstr_len(name) == 0) {        octstr_destroy(name);        return -1;    }    i = 0;    while (i < NUMBER_OF_STRUCT_ELEMENTS) {        if (octstr_case_compare(name, octstr_imm(struct_elements[i].name)) == 0)            break;        ++i;    }    if (i == NUMBER_OF_STRUCT_ELEMENTS) {        (*msg)->parse_status = XMLRPC_PARSING_FAILED;        (*msg)->parse_error = octstr_format("XML-RPC compiler: unknown tag '%s' "                                            "in XML source at level <struct>",                                             octstr_get_cstr(name));        octstr_destroy(name);        return -1;    }     octstr_destroy(name);    /*      * now check which type it is and process      *     * valid tags at this level are:     *   member [0]     */    if (i == 0) {        /* this has been a <member> tag */        if (parse_member(doc, node->xmlChildrenNode, msg) == -1)            return -1;    } else {        /* we should never be here */        (*msg)->parse_status = XMLRPC_PARSING_FAILED;        (*msg)->parse_error = octstr_format("XML-RPC compiler: bogus parsing exception in parse_struct!");        return -1;    }    return 0;}static int parse_struct(xmlDocPtr doc, xmlNodePtr node,                         XMLRPCMethodCall **msg){    int status = 0;      /* call for the parser function of the node type. */    switch (node->type) {        case XML_ELEMENT_NODE:            status = parse_struct_element(doc, node, msg);            break;        case XML_TEXT_NODE:        case XML_COMMENT_NODE:        case XML_PI_NODE:            /* Text nodes, comments and PIs are ignored. */            break;	   /*	    * XML has also many other node types, these are not needed with 	    * XML-RPC. Therefore they are assumed to be an error.	    */        default:            (*msg)->parse_status = XMLRPC_PARSING_FAILED;            (*msg)->parse_error = octstr_format("XML-RPC compiler: Unknown XML node in the XML-RPC source.");            return -1;            break;    }    if (node->next != NULL)	   if (parse_struct(doc, node->next, msg) == -1)            return -1;    return status;}static int parse_value_element(xmlDocPtr doc, xmlNodePtr node,                                XMLRPCMethodCall **msg){    Octstr *name;    Octstr *value;    long lval = 0;    size_t i;    /*     * check if the element is allowed at this level      */    name = octstr_create(node->name);    if (octstr_len(name) == 0) {        octstr_destroy(name);        return -1;    }    i = 0;    while (i < NUMBER_OF_VALUE_ELEMENTS) {        if (octstr_case_compare(name, octstr_imm(value_elements[i].name)) == 0)            break;        ++i;    }    if (i == NUMBER_OF_VALUE_ELEMENTS) {        (*msg)->parse_status = XMLRPC_PARSING_FAILED;        (*msg)->parse_error = octstr_format("XML-RPC compiler: unknown tag '%s' "                                            "in XML source at level <value>",                                             octstr_get_cstr(name));        octstr_destroy(name);        return -1;    }     octstr_destroy(name);    value = octstr_create(xmlNodeListGetString(doc, node->xmlChildrenNode, 1));    if (value == NULL) {        (*msg)->parse_status = XMLRPC_PARSING_FAILED;        (*msg)->parse_error = octstr_format("XML-RPC compiler: no value for '%s'",                                             node->name);        return -1;    }    /*      * now check which type it is and process      *     * valid tags at this level are:     *   i4, int     *   boolean     *   string     *   double     *   dateTime.iso8601     *   base64     *   struct     *   array     */    switch (value_elements[i].s_type) {                /*         * scalar types         */        case xr_int:            if (octstr_parse_long(&lval, value, 0, 10) < 0) {                (*msg)->parse_status = XMLRPC_PARSING_FAILED;                (*msg)->parse_error = octstr_format("XML-RPC compiler: could not parse int value '%s'",                                                     octstr_get_cstr(value));                return -1;            }            //xmlrpc_call_add_int((*msg), lval);            xmlrpc_call_add_scalar((*msg), xr_int, (void *) lval);            debug("", 0, "XML-RPC: added int %ld", lval);            break;                case xr_bool:            if (octstr_parse_long(&lval, value, 0, 10) < 0) {                (*msg)->parse_status = XMLRPC_PARSING_FAILED;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲男人电影天堂| 麻豆免费看一区二区三区| 日韩电影在线一区二区三区| 国产盗摄女厕一区二区三区| 欧美日韩国产首页| 亚洲色欲色欲www在线观看| 国产精品综合网| 欧美喷水一区二区| 一区二区三区欧美| 国产成人高清在线| 精品国产精品网麻豆系列 | 天天做天天摸天天爽国产一区 | 国产精品女人毛片| 麻豆精品一二三| 欧美专区在线观看一区| 亚洲欧洲三级电影| 成人在线一区二区三区| 久久综合资源网| 国内欧美视频一区二区| 91精品国产91久久久久久一区二区 | 欧美日韩国产123区| 亚洲区小说区图片区qvod| 成人97人人超碰人人99| 国产精品三级电影| 国产综合色视频| 精品久久久久久久久久久久包黑料| 亚洲电影你懂得| 在线观看日韩高清av| 亚洲少妇最新在线视频| 一本大道av伊人久久综合| 亚洲欧美国产三级| 在线精品亚洲一区二区不卡| 亚洲一二三四久久| 8x福利精品第一导航| 午夜精品爽啪视频| 欧美一区二区视频在线观看2022| 日韩高清在线一区| 欧美成人性战久久| 粉嫩久久99精品久久久久久夜| 久久精品欧美一区二区三区不卡 | 亚洲欧洲av另类| 91国产精品成人| 日韩福利电影在线| 欧美成人一区二区三区片免费| 国产一区三区三区| 欧美国产禁国产网站cc| 色妞www精品视频| 天堂久久久久va久久久久| 欧美大白屁股肥臀xxxxxx| 国产美女av一区二区三区| 国产欧美一区二区三区网站| 91丨九色丨蝌蚪富婆spa| 亚洲二区在线视频| 欧美一区二区三级| 成人午夜视频在线观看| 一区二区国产盗摄色噜噜| 欧美一区二区久久| 成人福利视频在线| 日韩精品电影一区亚洲| 国产欧美一区二区精品秋霞影院| av中文字幕在线不卡| 日韩不卡一二三区| 一区在线中文字幕| 欧美精品视频www在线观看| 国内精品国产成人国产三级粉色| 国产精品久久777777| 7777女厕盗摄久久久| 成人午夜视频福利| 蜜桃在线一区二区三区| 亚洲欧美视频一区| 精品久久久久久久久久久久包黑料| 成人精品视频.| 麻豆国产精品视频| 亚洲最新视频在线播放| 国产亚洲欧美色| 91精品国产综合久久久久| 粉嫩av一区二区三区在线播放| 天天综合天天做天天综合| 国产精品素人一区二区| 欧美电影免费观看高清完整版 | hitomi一区二区三区精品| 日本亚洲视频在线| 亚洲黄色小说网站| 国产精品私房写真福利视频| 欧美精选一区二区| 色爱区综合激月婷婷| 国产成人在线看| 精品一区二区三区香蕉蜜桃| 亚洲国产精品影院| 亚洲欧美日韩久久| 国产精品视频yy9299一区| 日韩精品一区在线| 欧美一区二区三区免费在线看| 欧洲视频一区二区| 在线免费观看成人短视频| 成人h精品动漫一区二区三区| 国产最新精品精品你懂的| 蜜桃91丨九色丨蝌蚪91桃色| 视频一区视频二区中文| 亚洲成年人影院| 久久精品一二三| 日韩欧美国产一区二区三区 | 欧美性受xxxx黑人xyx性爽| 国产成人av网站| 国产又粗又猛又爽又黄91精品| 三级不卡在线观看| 亚洲电影第三页| 亚洲国产日韩av| 亚洲成人av一区二区三区| 亚洲一区在线观看视频| 亚洲激情图片qvod| 一区二区不卡在线播放 | 另类专区欧美蜜桃臀第一页| 日本一不卡视频| 久久精品国产久精国产爱| 奇米影视在线99精品| 裸体一区二区三区| 国产一区二区三区免费观看| 国产精品香蕉一区二区三区| 高清在线观看日韩| 99国产精品久久久久久久久久久 | 国产风韵犹存在线视精品| 高清成人免费视频| 91天堂素人约啪| 欧美日韩一区三区| 欧美成人高清电影在线| 久久久久久一级片| 国产精品久久久久久亚洲伦| 夜夜嗨av一区二区三区中文字幕| 亚洲永久精品国产| 久久国产视频网| 不卡高清视频专区| 欧美制服丝袜第一页| 日韩欧美国产不卡| 国产精品萝li| 日本三级亚洲精品| 成人免费看视频| 欧美三级电影一区| 精品国产露脸精彩对白| 亚洲日本在线a| 美女网站在线免费欧美精品| 懂色中文一区二区在线播放| 欧洲精品中文字幕| 精品国产免费视频| 亚洲蜜臀av乱码久久精品| 青青草91视频| 99精品视频一区二区三区| 在线综合+亚洲+欧美中文字幕| 久久精品一区八戒影视| 亚洲高清视频在线| 国产成人av一区| 欧美乱妇23p| 亚洲婷婷综合久久一本伊一区| 日本欧洲一区二区| 欧美日韩中文精品| 国产亚洲精品aa午夜观看| 午夜伦欧美伦电影理论片| 国产福利不卡视频| 欧美一区午夜视频在线观看 | 久久女同性恋中文字幕| 樱花影视一区二区| 国产91精品一区二区麻豆网站| 欧美日韩国产三级| 亚洲三级在线观看| 国产一区二区三区最好精华液 | 91在线视频官网| 精品va天堂亚洲国产| 亚洲成人免费视频| youjizz国产精品| 久久精品人人做人人综合| 日韩av电影免费观看高清完整版在线观看| zzijzzij亚洲日本少妇熟睡| ww久久中文字幕| 免费久久99精品国产| 欧美视频在线一区二区三区 | 亚洲一区二区精品久久av| 国产精品12区| 91麻豆精品国产自产在线| 一区二区三区免费看视频| 国产99久久久国产精品潘金| 日韩欧美一区二区三区在线| 五月婷婷欧美视频| 欧美日产国产精品| 亚洲第一二三四区| 欧美视频三区在线播放| 一区二区三区成人| 91在线观看地址| 自拍偷拍亚洲欧美日韩| av电影一区二区| ...xxx性欧美| 91丨九色丨国产丨porny| 中文字幕一区二区三区在线播放 | 亚洲一线二线三线久久久| 不卡一区二区中文字幕| 国产精品国产三级国产普通话99| 国产aⅴ综合色| 国产精品盗摄一区二区三区| www.爱久久.com| 夜夜精品视频一区二区| 欧美日韩一级黄|