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

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

?? xstream.c

?? 性能優秀的SIP Proxy
?? C
字號:
/* * $Id: xstream.c,v 1.1.1.1 2005/06/13 16:47:40 bogdan_iancu Exp $ * *  This program is free software; you can redistribute it and/or modify *  it under the terms of the GNU General Public License as published by *  the Free Software Foundation; either version 2 of the License, or *  (at your option) any later version. * *  This program is distributed in the hope that it will be useful, *  but WITHOUT ANY WARRANTY; without even the implied warranty of *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the *  GNU General Public License for more details. * *  You should have received a copy of the GNU General Public License *  along with this program; if not, write to the Free Software *  Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * *  Jabber *  Copyright (C) 1998-1999 The Jabber Team http://jabber.org/ */#include "xode.h"/* xode_stream is a way to have a consistent method of handling incoming XML Stream based events... it doesn't handle the generation of an XML Stream, but provides some facilities to help do that */static void _xode_put_expatattribs(xode owner, const char** atts){    int i = 0;    if (atts == NULL) return;    while (atts[i] != '\0')    {        xode_put_attrib(owner, atts[i], atts[i+1]);        i += 2;    }}/******* internal expat callbacks *********/static void _xode_stream_startElement(xode_stream xs, const char* name, const char** atts){    xode_pool p;    /* if xode_stream is bad, get outa here */    if(xs->status > XODE_STREAM_NODE) return;    if(xs->node == NULL)    {        p = xode_pool_heap(5*1024); /* 5k, typically 1-2k each plus copy of self and workspace */        xs->node = xode_new_frompool(p,name);        _xode_put_expatattribs(xs->node, atts);        if(xs->status == XODE_STREAM_ROOT)        {            xs->status = XODE_STREAM_NODE; /* flag status that we're processing nodes now */            (xs->f)(XODE_STREAM_ROOT, xs->node, xs->arg); /* send the root, f must free all nodes */            xs->node = NULL;        }    }else{        xs->node = xode_insert_tag(xs->node, name);        _xode_put_expatattribs(xs->node, atts);    }    /* depth check */    xs->depth++;    if(xs->depth > XODE_STREAM_MAXDEPTH)        xs->status = XODE_STREAM_ERROR;}static void _xode_stream_endElement(xode_stream xs, const char* name){    xode parent;    /* if xode_stream is bad, get outa here */    if(xs->status > XODE_STREAM_NODE) return;    /* if it's already NULL we've received </stream>, tell the app and we're outta here */    if(xs->node == NULL)    {        xs->status = XODE_STREAM_CLOSE;        (xs->f)(XODE_STREAM_CLOSE, NULL, xs->arg);    }else{        parent = xode_get_parent(xs->node);        /* we are the top-most node, feed to the app who is responsible to delete it */        if(parent == NULL)            (xs->f)(XODE_STREAM_NODE, xs->node, xs->arg);        xs->node = parent;    }    xs->depth--;}static void _xode_stream_charData(xode_stream xs, const char *str, int len){    /* if xode_stream is bad, get outa here */    if(xs->status > XODE_STREAM_NODE) return;    if(xs->node == NULL)    {        /* we must be in the root of the stream where CDATA is irrelevant */        return;    }    xode_insert_cdata(xs->node, str, len);}static void _xode_stream_cleanup(void *arg){    xode_stream xs = (xode_stream)arg;    xode_free(xs->node); /* cleanup anything left over */    XML_ParserFree(xs->parser);}/* creates a new xode_stream with given pool, xode_stream will be cleaned up w/ pool */xode_stream xode_stream_new(xode_pool p, xode_stream_onNode f, void *arg){    xode_stream newx;    if(p == NULL || f == NULL)    {        fprintf(stderr,"Fatal Programming Error: xode_streamnew() was improperly called with NULL.\n");        return NULL;    }    newx = xode_pool_malloco(p, sizeof(_xode_stream));    newx->p = p;    newx->f = f;    newx->arg = arg;    /* create expat parser and ensure cleanup */    newx->parser = XML_ParserCreate(NULL);    XML_SetUserData(newx->parser, (void *)newx);    XML_SetElementHandler(newx->parser,		(void (*)(void*, const char*, const char**))_xode_stream_startElement,		(void (*)(void*, const char*))_xode_stream_endElement);    XML_SetCharacterDataHandler(newx->parser, 		(void (*)(void*, const char*, int))_xode_stream_charData);    xode_pool_cleanup(p, _xode_stream_cleanup, (void *)newx);    return newx;}/* attempts to parse the buff onto this stream firing events to the handler, returns the last known status */int xode_stream_eat(xode_stream xs, char *buff, int len){    char *err;    xode xerr;    static char maxerr[] = "maximum node size reached";    static char deeperr[] = "maximum node depth reached";    if(xs == NULL)    {        fprintf(stderr,"Fatal Programming Error: xode_streameat() was improperly called with NULL.\n");        return XODE_STREAM_ERROR;    }    if(len == 0 || buff == NULL)        return xs->status;    if(len == -1) /* easy for hand-fed eat calls */        len = strlen(buff);    if(!XML_Parse(xs->parser, buff, len, 0))    {        err = (char *)XML_ErrorString(XML_GetErrorCode(xs->parser));        xs->status = XODE_STREAM_ERROR;    }else if(xode_pool_size(xode_get_pool(xs->node)) > XODE_STREAM_MAXNODE || xs->cdata_len > XODE_STREAM_MAXNODE){        err = maxerr;        xs->status = XODE_STREAM_ERROR;    }else if(xs->status == XODE_STREAM_ERROR){ /* set within expat handlers */        err = deeperr;    }else{        err = deeperr;    }    /* fire parsing error event, make a node containing the error string */    if(xs->status == XODE_STREAM_ERROR)    {        xerr = xode_new("error");        xode_insert_cdata(xerr,err,-1);        (xs->f)(XODE_STREAM_ERROR, xerr, xs->arg);    }    return xs->status;}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久九九国产精品| 欧美日韩精品一区二区三区| 国产丝袜欧美中文另类| 国产a视频精品免费观看| 国产精品大尺度| 欧美午夜片在线观看| 天天色图综合网| 精品国产91乱码一区二区三区| 蜜桃视频一区二区| 亚洲国产精品成人综合| 色噜噜夜夜夜综合网| 日韩和的一区二区| 精品国产露脸精彩对白 | 精品国内二区三区| 国产大陆a不卡| 亚洲一级二级三级| 精品国产乱码久久久久久浪潮| 粉嫩av一区二区三区| 亚洲国产毛片aaaaa无费看| 欧美va亚洲va香蕉在线| av亚洲产国偷v产偷v自拍| 婷婷成人激情在线网| 国产欧美中文在线| 欧美片网站yy| 成人丝袜视频网| 日韩av电影天堂| 欧美高清在线精品一区| 欧美日韩亚洲综合一区| 国产精品一区二区免费不卡| 亚洲综合色丁香婷婷六月图片| 精品入口麻豆88视频| 色噜噜狠狠成人网p站| 国产麻豆欧美日韩一区| 夜夜精品视频一区二区| 一区二区三区高清在线| 日韩精品一区二区三区三区免费 | 91视频国产资源| 久久成人久久爱| 一区二区国产视频| 国产婷婷色一区二区三区在线| 欧美亚洲尤物久久| 成人白浆超碰人人人人| 日韩国产欧美视频| 一区二区三区四区在线播放 | 日韩色视频在线观看| 色综合中文字幕国产| 韩国v欧美v日本v亚洲v| 亚洲成在线观看| 亚洲视频一二三| 久久久亚洲精品石原莉奈| 欧美日韩精品一区二区| 91啪九色porn原创视频在线观看| 国产一区二区三区在线观看免费视频 | 精品少妇一区二区三区在线播放| 99久久99久久精品国产片果冻| 久久69国产一区二区蜜臀 | 免费欧美高清视频| 亚洲欧美日韩一区二区三区在线观看| 欧美mv日韩mv国产网站app| 欧美日韩色一区| 在线一区二区三区做爰视频网站| 国产aⅴ综合色| 国产一区二区伦理| 蜜臂av日日欢夜夜爽一区| 天堂午夜影视日韩欧美一区二区| 夜夜操天天操亚洲| 亚洲三级在线免费| 综合色中文字幕| 亚洲国产高清aⅴ视频| 久久久精品一品道一区| 久久久久国产精品麻豆ai换脸 | 欧美私人免费视频| 国产精品色婷婷久久58| 精品国产一区二区三区不卡| 在线综合+亚洲+欧美中文字幕| 欧美性受极品xxxx喷水| 欧美图区在线视频| 7777精品伊人久久久大香线蕉超级流畅 | 久久久午夜精品| 亚洲精品在线一区二区| 久久久精品免费网站| 日本一区二区不卡视频| √…a在线天堂一区| 国产精品久久久久久户外露出 | 久久综合色天天久久综合图片| 日韩欧美电影在线| 久久综合色播五月| 国产网站一区二区| 中文字幕一区二区三区色视频| 亚洲精品日日夜夜| 午夜激情一区二区| 精品在线视频一区| 国产**成人网毛片九色| www.亚洲在线| 欧美午夜电影在线播放| 欧美一区二区三区免费| 久久精品日韩一区二区三区| 国产精品国产精品国产专区不蜜| 亚洲乱码日产精品bd| 亚洲6080在线| 国产一区二区在线观看免费| 成人av网站在线| 在线观看91视频| 91精品一区二区三区在线观看| 精品久久久久久久久久久久久久久久久| 久久中文娱乐网| 中文字幕一区二区视频| 亚洲不卡av一区二区三区| 国产一区二区三区在线观看免费| thepron国产精品| 欧美精品高清视频| 亚洲国产精品传媒在线观看| 亚洲午夜精品在线| 国产精品一区二区91| 欧美做爰猛烈大尺度电影无法无天| 欧美一区二区三区四区久久 | 在线免费视频一区二区| 欧美mv日韩mv亚洲| 亚洲黄色片在线观看| 激情久久五月天| 欧美性猛交xxxx黑人交| 久久午夜国产精品| 亚洲成人午夜电影| 成人中文字幕合集| 欧美一级久久久久久久大片| 中文字幕综合网| 国产酒店精品激情| 欧美日产在线观看| 亚洲日本一区二区| 国产一区三区三区| 91麻豆精品国产91久久久资源速度 | 精品在线一区二区| 在线亚洲人成电影网站色www| 2023国产精品自拍| 午夜精彩视频在线观看不卡| 99热在这里有精品免费| 精品国产一区二区三区av性色 | 欧美一区二区黄| 一区二区欧美国产| 岛国一区二区在线观看| 精品精品欲导航| 日韩va亚洲va欧美va久久| 欧美亚洲动漫另类| 国产精品久久一卡二卡| 国产在线播精品第三| 在线成人免费视频| 亚洲第一福利视频在线| 在线影院国内精品| 亚洲精品欧美激情| 99久久伊人精品| 中文字幕二三区不卡| 国产在线不卡视频| 久久久久久久久久久久久女国产乱 | 欧美人动与zoxxxx乱| 一区二区在线免费观看| 91免费在线视频观看| 日韩一区在线看| 99久久精品一区二区| 国产精品美女久久久久久久久| 国产一区二三区| 久久综合色播五月| 国产精品主播直播| 国产午夜精品久久久久久久| 国产精品乡下勾搭老头1| 久久久久久久久久久电影| 极品美女销魂一区二区三区| 精品久久久久久久久久久久包黑料| 美国毛片一区二区三区| 欧美精品一区二区在线观看| 久久国产精品99久久久久久老狼| 日韩一区二区在线看| 加勒比av一区二区| 欧美精品一区二区在线观看| 国产又粗又猛又爽又黄91精品| 精品久久久久久亚洲综合网| 国产在线观看免费一区| 久久亚洲二区三区| 国产91对白在线观看九色| 中文欧美字幕免费| 91视频观看视频| 亚洲成人免费在线观看| 欧美tickle裸体挠脚心vk| 国产精品一区二区在线看| 国产精品美女视频| 欧美日韩在线一区二区| 麻豆91精品视频| 国产喷白浆一区二区三区| 色综合天天综合网天天狠天天| 亚洲高清免费在线| 日韩精品一区二区三区在线播放 | 五月天婷婷综合| 精品久久久久香蕉网| 本田岬高潮一区二区三区| 亚洲男人天堂av| 日韩视频一区二区在线观看| 国产高清视频一区| 一区二区三区国产豹纹内裤在线| 日韩视频免费直播| 成人黄色综合网站| 日日夜夜精品视频免费|