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

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

?? message.c

?? Linux下的飛鴿傳書
?? C
字號:
/* *  Copyright (C) 2006 Takeharu KATO * * 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. * * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND * ANY EXPRESS 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 AUTHOR OR 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. */#include <stdio.h>#include <errno.h>#include <string.h>#include <sys/time.h>#include <iconv.h>#include <glib.h>#include "common.h"#define UNKNOWN_NAME _("UnKnown")#define TO_CODE_SET "UTF-8"#define IPMSG_CODE_SET "SHIFT-JIS"#define FROM_CODE_SET IPMSG_CODE_SETconst char *refer_user_name_from_msg(const msg_data_t *msg){  if (!msg)    return UNKNOWN_NAME;  return (msg->username)?(msg->username):(UNKNOWN_NAME);}const char *refer_host_name_from_msg(const msg_data_t *msg){  if (!msg)    return UNKNOWN_NAME;  return (msg->hostname)?(msg->hostname):(UNKNOWN_NAME);}const char *refer_nick_name_from_msg(const msg_data_t *msg){  if (!msg)    return UNKNOWN_NAME;  return (msg->message)?(msg->message):(UNKNOWN_NAME);}const char *refer_group_name_from_msg(const msg_data_t *msg){  if (!msg)    return UNKNOWN_NAME;  return (msg->extstring)?(msg->extstring):(UNKNOWN_NAME);}intrefer_pkt_no_name_from_msg(const msg_data_t *msg){  return msg->pkt_seq_no;}intinit_message_data(msg_data_t *msg){  if (!msg)    return -EINVAL;  memset(msg,0,sizeof(msg_data_t));  msg->magic=IPMSG_MSG_MAGIC;  return 0;}intrelease_message_data(msg_data_t *msg){  if ( (!msg) || (msg->magic!= IPMSG_MSG_MAGIC) )    return -EINVAL;    if (msg->username)    g_free(msg->username);  if (msg->hostname)    g_free(msg->hostname);  if (msg->extstring)    g_free(msg->extstring);  if (msg->message)    g_free(msg->message);  msg->magic=0;  return 0;}intparse_message(const char *ipaddr,msg_data_t *msg,const char *message_buff,size_t len){  long int_val;  char *sp=NULL;  char *ep=NULL;  char *buffer;  ssize_t remains;  char *temp_buffer=NULL;  size_t tmp_len;  int rc=0;  /*   * TCP経由でよばれた場合は, ipaddrがNULLになりうる     */  if  ( (!message_buff) || (!msg)  || (msg->magic!= IPMSG_MSG_MAGIC) )    return -EINVAL;  _assert(len>0);  buffer=g_malloc(len);  if (!buffer)    return -ENOMEM;  gettimeofday(&msg->tv, NULL);  memcpy(buffer,message_buff,len);  remains=len;  /*   * バージョン番號      */  sp=buffer;  ep=memchr(sp, ':', remains);  if (!ep) {    rc=-EINVAL;    goto err_out;  }  *ep='\0';  remains =len - ((unsigned long)ep-(unsigned long)buffer);  if (remains<=0) {    rc=-EINVAL;    goto err_out;  }  ++ep;  int_val=strtol(sp, (char **)NULL, 10);  msg->version=int_val;  dbg_out("Version:%d\n",msg->version);  sp=ep;  /*   * シーケンス番號      */  ep=memchr(sp, ':', remains);  if (!ep) {    rc=-EINVAL;    goto err_out;  }  *ep='\0';  remains =len - ((unsigned long)ep-(unsigned long)buffer);  if (remains<=0) {    rc=-EINVAL;    goto err_out;  }  ++ep;  int_val=strtol(sp, (char **)NULL, 10);  msg->pkt_seq_no=int_val;  dbg_out("pkt_no:%d(%x)\n",msg->pkt_seq_no,msg->pkt_seq_no);  sp=ep;  /*   * 名前   */  ep=memchr(sp, ':', remains);  if (!ep) {    rc=-EINVAL;    goto err_out;  }  *ep='\0';  remains =len - ((unsigned long)ep-(unsigned long)buffer);  if (remains<=0) {    rc=-EINVAL;    goto err_out;  }  ++ep;  msg->username=g_strdup(sp);  dbg_out("Name:%s\n",msg->username);  sp=ep;  /*   * ホスト名   */  ep=memchr(sp, ':', remains);  if (!ep) {    rc=-EINVAL;    goto err_out;  }  *ep='\0';  remains =len - ((unsigned long)ep-(unsigned long)buffer);  if (remains<=0) {    rc=-EINVAL;    goto err_out;  }  ++ep;  msg->hostname=g_strdup(sp);  dbg_out("Host:%s\n",msg->hostname);  sp=ep;  /*   * コマンド番號      */  ep=memchr(sp, ':', remains);  if (!ep) {    rc=-EINVAL;    goto err_out;  }  *ep='\0';  ++ep;  int_val=strtol(sp, (char **)NULL, 10);  msg->command=(int_val & 0xff);  msg->command_opts=(int_val & ~0xffUL);  dbg_out("Command:0x%x Option:0x%x\n",msg->command,msg->command_opts);  sp=ep;   /*   *メッセージ本文   */  ep=memchr(sp, '\0', remains);  if (!ep) {    rc=-EINVAL;    goto err_out;  }  if ( (msg->command == IPMSG_SENDMSG) && (msg->command_opts & (IPMSG_ENCRYPTOPT)) )  {#if defined(USE_OPENSSL)    unsigned char *enc_buff=NULL;    char *extend=NULL;    char *sep=NULL;    size_t enc_len;    g_assert(ipaddr); /* 暗號化がある場合は, NULLを許さない(署名の検証があるので) */    dbg_out("This is encrypted message:%s.\n",sp);    rc=ipmsg_decrypt_message(ipaddr,sp,&enc_buff,&enc_len);    if (rc) {      err_out("Can not decrypt message.\n");      goto err_out;    }    msg->message=g_strdup(enc_buff);    if (!(msg->message))      goto decode_end;    dbg_out("body:%s\n",msg->message);    dbg_out("Decrypt message %s(%d) total=%d.\n",enc_buff,strlen(enc_buff),enc_len);  decode_end:    if (enc_buff)      g_free(enc_buff);#else    dbg_out("I can not decode encrypted message.Ignore the message.");    goto err_out; /*  暗號化されたメッセージは捨てる		   *  (暗號化できないクライアントに送ってきた方が悪い)  		   */    #endif  /*  USE_OPENSSL  */  }else{    msg->message=g_strdup(sp);    if (!(msg->message))      goto err_out;    dbg_out("body:%s\n",msg->message);  }  /*   *拡張部   */  if ( ((unsigned long)ep - (unsigned long)buffer) < len) {    ++ep;    sp=ep;    msg->extstring=g_strdup(sp);    dbg_out("extention:%s\n",msg->extstring);  }err_out:  g_free(buffer);  return rc;}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产一区二区三区高清播放| 最新日韩av在线| 欧美日韩专区在线| 日本高清不卡在线观看| 色综合久久久久综合体桃花网| av成人动漫在线观看| 99国产精品久久久| 色综合av在线| 欧美日韩国产精选| 精品久久五月天| 国产欧美精品一区二区色综合| 国产欧美精品一区aⅴ影院| 一色屋精品亚洲香蕉网站| 亚洲乱码中文字幕综合| 亚洲国产日韩在线一区模特| 午夜精品福利视频网站| 欧美a级理论片| 国产91丝袜在线观看| 在线亚洲欧美专区二区| 欧美片网站yy| 2022国产精品视频| 1024国产精品| 丝袜诱惑制服诱惑色一区在线观看 | 国产精品一区二区在线看| 福利电影一区二区| 欧美在线观看一二区| 日韩欧美在线观看一区二区三区| 精品国产伦理网| 亚洲青青青在线视频| 免费观看在线综合| 懂色av一区二区夜夜嗨| 欧美色精品在线视频| 久久网这里都是精品| 亚洲女爱视频在线| 精品一区二区影视| 在线观看一区二区精品视频| 精品欧美乱码久久久久久1区2区| 亚洲欧洲av另类| 美女国产一区二区三区| 91啦中文在线观看| 久久久国际精品| 日韩在线一二三区| 色伊人久久综合中文字幕| 欧美成人性福生活免费看| 亚洲激情网站免费观看| 国产在线不卡一卡二卡三卡四卡| 在线观看国产91| 欧美国产视频在线| 久久草av在线| 在线播放一区二区三区| 亚洲免费视频成人| 国产成人av一区| 精品三级av在线| 亚洲不卡一区二区三区| 一本一道综合狠狠老| 国产精品久久久久久久第一福利| 麻豆精品国产传媒mv男同 | 韩国成人精品a∨在线观看| 欧美亚洲另类激情小说| 亚洲欧美影音先锋| 国产一区二区不卡在线| 欧美刺激午夜性久久久久久久| 亚洲图片有声小说| 欧美性受xxxx黑人xyx| 亚洲视频在线一区观看| 99久久久国产精品| 中文字幕亚洲一区二区av在线 | 亚欧色一区w666天堂| 在线亚洲高清视频| 一级中文字幕一区二区| 一本大道久久a久久精品综合| 最新热久久免费视频| 91在线无精精品入口| 亚洲欧美日韩国产一区二区三区| 色综合天天在线| 一区二区国产视频| 欧美日韩亚州综合| 日本大胆欧美人术艺术动态 | 亚洲视频一区在线| 91久久精品一区二区三区| 亚洲欧美日韩在线| 欧美色图天堂网| 日韩在线一区二区| 26uuu精品一区二区在线观看| 国产一区二区三区最好精华液| 日本一区二区三区久久久久久久久不 | 日韩精品电影一区亚洲| 日韩美女视频一区二区在线观看| 另类的小说在线视频另类成人小视频在线 | 国产一区二区精品久久| 国产丝袜美腿一区二区三区| 粉嫩在线一区二区三区视频| 亚洲精品综合在线| 欧美一卡二卡在线| 国产高清亚洲一区| 亚洲色欲色欲www| 欧美精品 国产精品| 国产美女视频91| 一区二区三区精品视频| 精品久久久影院| 色综合天天综合色综合av| 日本一不卡视频| 国产精品乱人伦中文| 欧美日韩国产综合一区二区 | 日本成人在线网站| 国产视频一区二区三区在线观看 | 三级影片在线观看欧美日韩一区二区| 欧美一区二区视频在线观看2020| 国产露脸91国语对白| 亚洲综合一二三区| 国产三级精品视频| 欧美喷潮久久久xxxxx| 成人免费毛片嘿嘿连载视频| 亚洲国产中文字幕在线视频综合 | 91精品国产综合久久婷婷香蕉| 国产在线精品一区二区夜色| 亚洲综合在线免费观看| 久久久国产午夜精品| 欧美午夜精品理论片a级按摩| 国产伦精品一区二区三区免费| 亚洲一区在线播放| 国产精品久久久久aaaa樱花| 精品理论电影在线| 欧美日韩免费观看一区二区三区| 国产成人免费av在线| 免费成人av资源网| 亚洲一区二区三区国产| 亚洲免费观看在线观看| 久久久不卡网国产精品二区| 日韩欧美在线网站| 欧美猛男gaygay网站| 色综合久久综合网97色综合| 成人久久18免费网站麻豆| 久久99国产精品尤物| 丝袜美腿亚洲一区二区图片| 亚洲一区二区中文在线| 自拍偷拍亚洲激情| 亚洲欧洲色图综合| 中文字幕乱码亚洲精品一区 | 欧美精品v日韩精品v韩国精品v| k8久久久一区二区三区| 国产精品99久久久久久有的能看| 久久成人免费日本黄色| 男人操女人的视频在线观看欧美| 亚洲国产综合人成综合网站| 一区二区三区在线观看国产| 亚洲欧洲成人精品av97| 国产精品美女久久福利网站| 欧美国产精品一区二区| 国产性做久久久久久| 国产精品色哟哟网站| 国产精品久久久久久久久果冻传媒| 国产欧美一区二区在线| 国产精品水嫩水嫩| 亚洲手机成人高清视频| 一区二区三区视频在线看| 亚洲国产aⅴ成人精品无吗| 亚洲国产成人精品视频| 日韩精品国产精品| 国内精品伊人久久久久av影院| 美女精品自拍一二三四| 国产精品18久久久久久久久久久久 | 福利91精品一区二区三区| 成人教育av在线| 欧美性视频一区二区三区| 欧美军同video69gay| 精品国产乱码久久久久久闺蜜| 久久久不卡影院| 亚洲免费在线播放| 美女脱光内衣内裤视频久久网站 | 日本韩国一区二区| 欧美日韩电影在线播放| 精品免费视频.| 亚洲国产精品精华液ab| 一区二区三区四区精品在线视频| 亚洲一区二区三区国产| 久久电影网电视剧免费观看| 成人一区二区三区视频| 欧美羞羞免费网站| 精品电影一区二区三区| 中文字幕在线不卡一区| 天堂一区二区在线| 成人18精品视频| 欧美麻豆精品久久久久久| 国产亚洲欧美一级| 亚洲第一狼人社区| 高清日韩电视剧大全免费| 欧美日韩不卡视频| 欧美韩日一区二区三区四区| 五月激情综合婷婷| 成人国产精品免费观看动漫| 91精品黄色片免费大全| 欧美在线视频日韩| 国产精品久久久爽爽爽麻豆色哟哟 | 欧美亚洲禁片免费| 国产午夜精品福利| 五月婷婷激情综合网| 国产a级毛片一区| 欧美一区二区精品久久911| 亚洲欧洲在线观看av|