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

? 歡迎來(lái)到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? radius_pdu.c

?? The Kannel Open Source WAP and SMS gateway works as both an SMS gateway, for implementing keyword b
?? C
?? 第 1 頁(yè) / 共 2 頁(yè)
字號(hào):
/* ====================================================================  * The Kannel Software License, Version 1.0  *  * Copyright (c) 2001-2004 Kannel Group   * Copyright (c) 1998-2001 WapIT Ltd.    * All rights reserved.  *  * Redistribution and use in source and binary forms, with or without  * modification, are permitted provided that the following conditions  * are met:  *  * 1. Redistributions of source code must retain the above copyright  *    notice, this list of conditions and the following disclaimer.  *  * 2. Redistributions in binary form must reproduce the above copyright  *    notice, this list of conditions and the following disclaimer in  *    the documentation and/or other materials provided with the  *    distribution.  *  * 3. The end-user documentation included with the redistribution,  *    if any, must include the following acknowledgment:  *       "This product includes software developed by the  *        Kannel Group (http://www.kannel.org/)."  *    Alternately, this acknowledgment may appear in the software itself,  *    if and wherever such third-party acknowledgments normally appear.  *  * 4. The names "Kannel" and "Kannel Group" must not be used to  *    endorse or promote products derived from this software without  *    prior written permission. For written permission, please   *    contact org@kannel.org.  *  * 5. Products derived from this software may not be called "Kannel",  *    nor may "Kannel" appear in their name, without prior written  *    permission of the Kannel Group.  *  * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED  * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES  * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE  * DISCLAIMED.  IN NO EVENT SHALL THE KANNEL GROUP OR ITS CONTRIBUTORS  * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,   * OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT   * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR   * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,   * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE   * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,   * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.  * ====================================================================  *  * This software consists of voluntary contributions made by many  * individuals on behalf of the Kannel Group.  For more information on   * the Kannel Group, please see <http://www.kannel.org/>.  *  * Portions of this software are based upon software originally written at   * WapIT Ltd., Helsinki, Finland for the Kannel project.   */ /* * radius_pdu.c - parse and generate RADIUS Accounting PDUs * * Taken from gw/smsc/smpp_pdu.c writen by Lars Wirzenius. * This makes heavy use of C pre-processor macro magic. * * Stipe Tolj <tolj@wapme-systems.de> */#include <string.h>#include "radius_pdu.h"#define MIN_RADIUS_PDU_LEN  20#define MAX_RADIUS_PDU_LEN  4095 static unsigned long decode_integer(Octstr *os, long pos, int octets){    unsigned long u;    int i;    gw_assert(octstr_len(os) >= pos + octets);    u = 0;    for (i = 0; i < octets; ++i)    	u = (u << 8) | octstr_get_char(os, pos + i);    return u;}static void append_encoded_integer(Octstr *os, unsigned long u, long octets){    long i;    for (i = 0; i < octets; ++i)    	octstr_append_char(os, (u >> ((octets - i - 1) * 8)) & 0xFF);}/*static void *get_header_element(RADIUS_PDU *pdu, unsigned char *e) {    switch (pdu->type) {    #define INTEGER(name, octets) \    if (strcmp(#name, e) == 0) return (void*) *(&p->name);    #define NULTERMINATED(name, max_octets)    #define OCTETS(name, field_giving_octets) \    if (strcmp(#name, e) == 0) return (void*) p->name;    #define PDU(name, id, fields) \        case id: { \        struct name *p = &pdu->u.name; \    } break;    #include "radius_pdu.def"    default:    	error(0, "Unknown RADIUS_PDU type, internal error.");    	gw_free(pdu);	   return NULL;    }}*/RADIUS_PDU *radius_pdu_create(int type, RADIUS_PDU *req){    RADIUS_PDU *pdu;    pdu = gw_malloc(sizeof(*pdu));    pdu->type = type;    switch (type) {    #define INTEGER(name, octets) \   	if (strcmp(#name, "code") == 0) p->name = type; \    else p->name = 0;    #define OCTETS(name, field_giving_octets) p->name = NULL;    #define PDU(name, id, fields) \    	case id: { \	    struct name *p = &pdu->u.name; \	    pdu->type_name = #name; \	    fields \	} break;    #include "radius_pdu.def"    default:    	error(0, "Unknown RADIUS_PDU type, internal error.");    	gw_free(pdu);	return NULL;    }    #define ATTR(attr, type, string, min, max)    #define UNASSIGNED(attr)    #define ATTRIBUTES(fields) \        pdu->attr = dict_create(20, (void (*)(void *))octstr_destroy);    #include "radius_attributes.def"    return pdu;}void radius_pdu_destroy(RADIUS_PDU *pdu){    if (pdu == NULL)    	return;    switch (pdu->type) {    #define INTEGER(name, octets) p->name = 0;    #define OCTETS(name, field_giving_octets) octstr_destroy(p->name);    #define PDU(name, id, fields) \    	case id: { struct name *p = &pdu->u.name; fields } break;    #include "radius_pdu.def"    default:    	error(0, "Unknown RADIUS_PDU type, internal error while destroying.");    }    #define ATTR(attr, type, string, min, max)    #define UNASSIGNED(attr)    #define ATTRIBUTES(fields) dict_destroy(pdu->attr);    #include "radius_attributes.def"    gw_free(pdu);}/*static void radius_type_append(Octstr **os, int type, int pmin, int pmax,                                Octstr *value) {    long l;    switch (type) {        case t_int:            octstr_parse_long(&l, value, 0, 10);    	    append_encoded_integer(*os, l, pmin);            break;        case t_string:            octstr_append(*os, value);            break;        case t_ipaddr:            ret = octstr_create("");            for (i = 0; i < 4; i++) {                int c = octstr_get_char(value, i);                Octstr *b = octstr_format("%d", c);                octstr_append(ret, b);                i < 3 ? octstr_append_cstr(ret, ".") : NULL;                octstr_destroy(b);            }            break;        default:            panic(0, "RADIUS: Attribute type %d does not exist.", type);            break;    }}*/static Octstr *radius_attr_pack(RADIUS_PDU *pdu) {    Octstr *os;    os = octstr_create("");    gw_assert(pdu != NULL);    #define ATTR(atype, type, string, pmin, pmax)                                \        {                                                                        \            Octstr *attr_strg = octstr_create(string);                           \            Octstr *attr_val = dict_get(p->attr, attr_str);                      \            if (attr_str != NULL) {                                              \                int attr_len = octstr_len(attr_val) + 2;                         \                octstr_format_append(os, "%02X", atype);                         \                octstr_append_data(os, (char*) &attr_len, 2);                    \                radius_type_append(&os, type, pmin, pmax, attr_val);             \            }                                                                    \            octstr_destroy(attr_str);                                            \        }     #define UNASSIGNED(attr)    #define ATTRIBUTES(fields)                                                                         #include "radius_attributes.def"    return os;}Octstr *radius_pdu_pack(RADIUS_PDU *pdu){    Octstr *os,*oos;    Octstr *temp;    os = octstr_create("");    gw_assert(pdu != NULL);    /*    switch (pdu->type) {    #define INTEGER(name, octets) p = *(&p);    #define NULTERMINATED(name, max_octets) p = *(&p);    #define OCTETS(name, field_giving_octets) \    	p->field_giving_octets = octstr_len(p->name);    #define PDU(name, id, fields) \    	case id: { struct name *p = &pdu->u.name; fields } break;    #include "radius_pdu.def"    default:    	error(0, "Unknown RADIUS_PDU type, internal error while packing.");    }

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品国产三级国产普通话蜜臀| 亚洲国产日日夜夜| 欧美精品99久久久**| av网站免费线看精品| 国产成人久久精品77777最新版本| 日日摸夜夜添夜夜添精品视频| 一二三四社区欧美黄| 一区二区三区在线看| 一片黄亚洲嫩模| 一区二区三区四区亚洲| 一区二区在线观看视频| 一区二区高清视频在线观看| ...xxx性欧美| 亚洲国产日韩精品| 热久久免费视频| 久久精品国产亚洲a| 国产在线精品不卡| 风间由美一区二区av101| 91美女在线视频| 欧美视频一区二区在线观看| 成人一区二区三区| 国产精品卡一卡二| 555夜色666亚洲国产免| 国产成人精品影视| **欧美大码日韩| 欧美一级片免费看| 成人性生交大片免费看中文网站| 亚洲一区在线播放| 久久亚洲免费视频| 欧美性大战久久久| 国产中文字幕精品| 国产福利91精品一区二区三区| 国产喂奶挤奶一区二区三区| 91网站在线观看视频| 亚洲v中文字幕| 中文天堂在线一区| 9191国产精品| 91丨porny丨首页| 色视频欧美一区二区三区| 亚洲国产三级在线| 国产喷白浆一区二区三区| 欧美亚洲国产bt| 成人h动漫精品| 日本少妇一区二区| 亚洲欧美经典视频| 久久久激情视频| 日韩精品中文字幕在线一区| 色av一区二区| 成+人+亚洲+综合天堂| 久久精品久久99精品久久| 一区二区三区在线免费播放| 中文字幕电影一区| 精品国产欧美一区二区| 在线观看91精品国产麻豆| 色偷偷88欧美精品久久久| 欧美日韩国产区一| 一区二区激情小说| 日本一区二区三级电影在线观看| 欧美图片一区二区三区| 91在线国内视频| 国产成+人+日韩+欧美+亚洲| 捆绑紧缚一区二区三区视频| 午夜精品久久久久久| 亚洲日本韩国一区| 国产精品伦一区二区三级视频| 欧美mv和日韩mv国产网站| 3751色影院一区二区三区| 在线视频欧美精品| 在线亚洲精品福利网址导航| bt7086福利一区国产| 成人高清视频在线| 欧洲另类一二三四区| 欧美高清激情brazzers| 欧美午夜电影在线播放| 91国产福利在线| 在线精品视频小说1| 色欧美片视频在线观看在线视频| 成人激情免费网站| 99视频超级精品| 色先锋资源久久综合| 蜜桃av一区二区| 久久国产精品一区二区| 日本午夜一区二区| 九九精品视频在线看| 精品一区二区在线播放| 国产一区二区视频在线| 国产乱妇无码大片在线观看| 国产福利一区二区三区在线视频| 国产成人亚洲精品狼色在线| 国产成人三级在线观看| av一区二区三区| 在线免费观看不卡av| 欧美日韩激情一区二区三区| 在线播放中文一区| 精品日韩av一区二区| 国产三级一区二区| 亚洲日本免费电影| 首页国产欧美久久| 国产乱子伦一区二区三区国色天香| 国产在线不卡一卡二卡三卡四卡| 国产69精品久久777的优势| www.日韩av| 欧美人体做爰大胆视频| 精品精品国产高清a毛片牛牛| 久久久久国色av免费看影院| kk眼镜猥琐国模调教系列一区二区 | 久久九九全国免费| 国产精品家庭影院| 香蕉成人啪国产精品视频综合网| 麻豆国产欧美日韩综合精品二区 | 国产一区美女在线| 91网站最新地址| 日韩亚洲欧美成人一区| 国产精品系列在线| 亚洲成年人影院| 国产一区视频导航| 在线观看欧美黄色| 久久亚洲影视婷婷| 亚洲一区二区欧美| 国产成人精品一区二区三区四区 | 中文文精品字幕一区二区| 一区二区三区美女视频| 激情综合色丁香一区二区| 99国产精品一区| 欧美大片免费久久精品三p| 综合欧美亚洲日本| 久久99九九99精品| 欧美又粗又大又爽| 成人午夜碰碰视频| 56国语精品自产拍在线观看| 久久久无码精品亚洲日韩按摩| 亚洲精品视频在线看| 久草在线在线精品观看| 欧美中文字幕一区| 国产欧美综合在线| 日韩黄色小视频| 日本久久电影网| 国产女人18水真多18精品一级做| 天天影视涩香欲综合网 | 中文字幕av一区二区三区免费看| 亚洲综合偷拍欧美一区色| 国产成人亚洲综合a∨猫咪| 51午夜精品国产| 一区二区三区四区蜜桃| 欧美人动与zoxxxx乱| 国产高清亚洲一区| 狠狠久久亚洲欧美| 精品午夜久久福利影院| 老司机精品视频在线| 美女脱光内衣内裤视频久久网站| 精品成人一区二区三区| 国产suv一区二区三区88区| 国产精品嫩草99a| 亚洲一区二区三区视频在线播放| 国产成人av电影在线| 精品日韩在线观看| 麻豆视频一区二区| 欧美精品18+| 日韩电影在线看| 欧美二区三区91| 日韩电影在线观看电影| 欧美男女性生活在线直播观看| 亚洲激情五月婷婷| 91国偷自产一区二区三区观看| 国产精品热久久久久夜色精品三区 | 国产成人精品免费网站| 2020国产成人综合网| 久久99日本精品| 精品对白一区国产伦| 国内精品嫩模私拍在线| xnxx国产精品| 国产成人av网站| 制服丝袜在线91| 亚洲一区二区三区国产| 久久久国产精品午夜一区ai换脸| 丝袜美腿亚洲综合| 欧美一级生活片| 精品制服美女久久| 国产日韩欧美激情| 成人国产精品免费观看动漫| 中文成人综合网| 日本高清不卡aⅴ免费网站| 亚洲一区二区中文在线| 欧美肥妇bbw| 精品一区二区三区香蕉蜜桃| 26uuu精品一区二区三区四区在线| 国产一区二区三区四区五区入口| 国产亚洲短视频| 91丨九色丨尤物| 三级久久三级久久久| 精品动漫一区二区三区在线观看| 国产自产高清不卡| 中文字幕一区二区不卡| 欧美日韩一二三| 久久99国产乱子伦精品免费| 国产性色一区二区| 欧美性大战久久久久久久蜜臀| 免费观看一级欧美片| 中文乱码免费一区二区| 欧美日韩在线精品一区二区三区激情|