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

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

?? rtpp_record.c

?? ser作為一個高效、高度可配置的simple服務器
?? C
字號:
/* * Copyright (c) 2003, 2004 Maxim Sobolev * 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. * * 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. * * $Id: rtpp_record.c,v 1.1 2005/03/06 19:03:52 sobomax Exp $ * */#include <sys/types.h>#include <sys/socket.h>#include <sys/stat.h>#include <sys/uio.h>#include <netinet/in.h>#include <errno.h>#include <fcntl.h>#include <limits.h>#include <stdio.h>#include <stdlib.h>#include <string.h>#include <unistd.h>#include "rtpp_log.h"#include "rtpp_record.h"#include "rtpp_session.h"#include "rtpp_util.h"struct rtpp_record_channel {    char spath[PATH_MAX + 1];    char rpath[PATH_MAX + 1];    int fd;    int needspool;};#define	RRC_CAST(x)	((struct rtpp_record_channel *)(x))void *ropen(struct rtpp_session *sp, const char *rdir, const char *sdir, int orig){    struct rtpp_record_channel *rrc;    rrc = malloc(sizeof(*rrc));    if (rrc == NULL) {        rtpp_log_ewrite(RTPP_LOG_ERR, sp->log, "can't allocate memory");        return NULL;    }    memset(rrc, 0, sizeof(*rrc));    if (sdir == NULL) {        sdir = rdir;        rrc->needspool = 0;    } else {        rrc->needspool = 1;        sprintf(rrc->rpath, "%s/%s=%s.%c.%s", rdir, sp->call_id, sp->tag,          (orig != 0) ? 'o' : 'a', (sp->rtcp != NULL) ? "rtp" : "rtcp");    }    sprintf(rrc->spath, "%s/%s=%s.%c.%s", sdir, sp->call_id, sp->tag,      (orig != 0) ? 'o' : 'a', (sp->rtcp != NULL) ? "rtp" : "rtcp");    rrc->fd = open(rrc->spath, O_WRONLY | O_CREAT | O_TRUNC, DEFFILEMODE);    if (rrc->fd == -1) {	rtpp_log_ewrite(RTPP_LOG_ERR, sp->log, "can't open file %s for writing",	  rrc->spath);	free(rrc);	return NULL;    }    return (void *)(rrc);}voidrwrite(struct rtpp_session *sp, void *rrc, struct sockaddr *saddr, void *buf, int len){    struct iovec v[2];    struct pkt_hdr hdr;    int rval;    if (RRC_CAST(rrc)->fd == -1)        return;    memset(&hdr, 0, sizeof(hdr));    hdr.time = getctime();    if (hdr.time == -1) {	rtpp_log_ewrite(RTPP_LOG_ERR, sp->log, "can't get current time");	goto fatal_error;    }    switch (saddr->sa_family) {    case AF_INET:	hdr.addr.in4.sin_family = saddr->sa_family;	hdr.addr.in4.sin_port = satosin(saddr)->sin_port;	hdr.addr.in4.sin_addr = satosin(saddr)->sin_addr;	break;    case AF_INET6:	hdr.addr.in6.sin_family = saddr->sa_family;	hdr.addr.in6.sin_port = satosin6(saddr)->sin6_port;	hdr.addr.in6.sin_addr = satosin6(saddr)->sin6_addr;	break;    default:	abort();    }    hdr.plen = len;    v[0].iov_base = (void *)&hdr;    v[0].iov_len = sizeof(hdr);    v[1].iov_base = buf;    v[1].iov_len = len;    rval = writev(RRC_CAST(rrc)->fd, v, 2);    if (rval != -1)	return;    rtpp_log_ewrite(RTPP_LOG_ERR, sp->log, "error while recording session (%s)",      (sp->rtcp != NULL) ? "RTP" : "RTCP");fatal_error:    /* Prevent futher writing if error happens */    close(RRC_CAST(rrc)->fd);    RRC_CAST(rrc)->fd = -1;}voidrclose(struct rtpp_session *sp, void *rrc){    if (RRC_CAST(rrc)->fd != -1)        close(RRC_CAST(rrc)->fd);    if (RRC_CAST(rrc)->needspool == 1)        if (rename(RRC_CAST(rrc)->spath, RRC_CAST(rrc)->rpath) == -1)            rtpp_log_ewrite(RTPP_LOG_ERR, sp->log, "can't move "              "session record from spool into permanent storage");    free(rrc);}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美成人一区二区三区片免费 | 亚洲一区av在线| 91免费版在线| 91.xcao| 青娱乐精品在线视频| 99re这里都是精品| 国产精品久久久久永久免费观看 | 亚洲欧洲精品一区二区精品久久久| 风间由美一区二区av101| 成人欧美一区二区三区白人| 在线观看一区二区精品视频| 日韩**一区毛片| 久久久久久久网| 99热精品国产| 亚洲成人精品一区二区| 欧美精品一区在线观看| 99久久久精品| 亚洲va天堂va国产va久| 久久综合久久综合久久综合| 成人av网址在线| 日韩黄色片在线观看| 亚洲国产高清不卡| 欧美男女性生活在线直播观看| 精彩视频一区二区| 色综合天天在线| 亚洲免费观看高清完整| 26uuu亚洲综合色欧美| 精品视频999| 蜜桃视频在线一区| 国产精品第一页第二页第三页| 欧美探花视频资源| 国产91清纯白嫩初高中在线观看| 亚洲一区二区三区精品在线| 26uuu国产一区二区三区| 日本高清视频一区二区| 国产馆精品极品| 日韩专区欧美专区| 亚洲免费在线看| 久久久五月婷婷| 欧美一卡2卡3卡4卡| 色综合久久久久久久| 国产精品一区二区在线观看不卡| 亚洲国产日日夜夜| 亚洲人成网站色在线观看| 婷婷综合五月天| 欧美一区二区黄| 日本伊人精品一区二区三区观看方式| 国产精品资源网站| 欧美一区二区性放荡片| 99riav久久精品riav| 国产原创一区二区| 日韩精品一卡二卡三卡四卡无卡 | 777色狠狠一区二区三区| a在线欧美一区| 国产一区二区免费视频| 免费成人结看片| 五月婷婷综合激情| 亚洲乱码国产乱码精品精的特点 | 国产福利视频一区二区三区| 久久精品国产99久久6| 日韩中文字幕亚洲一区二区va在线| 亚洲欧洲精品一区二区三区不卡 | 日本欧美一区二区在线观看| 高清免费成人av| 人禽交欧美网站| 婷婷成人综合网| 夜夜精品浪潮av一区二区三区| 中文字幕电影一区| 亚洲国产高清在线| 国产精品沙发午睡系列990531| 日韩免费福利电影在线观看| 在线不卡中文字幕播放| 欧美日本在线观看| 4438x亚洲最大成人网| 91精品国产乱| 69av一区二区三区| 日韩你懂的在线播放| 日韩一区二区电影| 欧美成人r级一区二区三区| 日韩精品一区在线| 久久夜色精品国产噜噜av| 久久久五月婷婷| 国产精品久久毛片a| 亚洲人成影院在线观看| 亚洲黄色av一区| 亚洲国产日韩综合久久精品| 亚瑟在线精品视频| 亚洲成人免费av| 中文字幕av资源一区| 成人黄页在线观看| 国产高清无密码一区二区三区| 丁香激情综合国产| 一本到三区不卡视频| 欧美日韩一区二区三区四区| 欧美一级精品大片| 2019国产精品| 日韩毛片一二三区| 婷婷六月综合网| 蜜臀91精品一区二区三区| 国产精品一线二线三线精华| 成人性生交大片免费看中文网站| 99久久免费精品| 欧美在线免费观看亚洲| 欧美一区二区三区不卡| 国产日本欧美一区二区| 一区二区三区在线观看动漫| 五月天视频一区| 国产精品一区一区| 色婷婷久久久久swag精品| 欧美一级欧美三级| 国产精品美女视频| 五月天视频一区| kk眼镜猥琐国模调教系列一区二区| 在线观看视频欧美| 欧美精品一区在线观看| 在线观看免费成人| 精品视频资源站| 欧美高清视频不卡网| 国产午夜精品一区二区| 亚洲第一激情av| 成人一级片在线观看| 欧美一区二视频| 亚洲成人资源网| 国产麻豆午夜三级精品| 欧美日韩一区久久| 国产精品国产自产拍在线| 美女视频黄免费的久久 | 国产婷婷色一区二区三区| 一区二区三区.www| 国产成人在线看| 欧美一区二区免费视频| 一区二区三区在线观看国产 | 97久久久精品综合88久久| 日韩三级在线观看| 亚洲综合视频在线观看| 懂色中文一区二区在线播放| 日韩限制级电影在线观看| 一区二区三区**美女毛片| 粉嫩高潮美女一区二区三区 | 国产视频一区在线播放| 亚洲午夜久久久久| 日本韩国一区二区三区视频| 亚洲国产高清在线| 久久er精品视频| 精品视频资源站| 亚洲人123区| 成人毛片在线观看| 久久久www成人免费无遮挡大片| 日本三级亚洲精品| 欧美日韩情趣电影| 一区二区三区不卡视频在线观看| 成人激情免费视频| 欧美激情综合在线| 国产成人免费9x9x人网站视频| 精品美女一区二区| 麻豆91在线看| 精品国产伦一区二区三区免费| 麻豆91小视频| 日韩精品一区二区三区中文不卡 | 亚洲成国产人片在线观看| 色噜噜久久综合| 亚洲日本在线视频观看| 不卡的av中国片| 亚洲色图欧洲色图| 91传媒视频在线播放| 亚洲国产wwwccc36天堂| 亚洲综合自拍偷拍| 精品日韩一区二区三区| 日韩色视频在线观看| 欧美日韩不卡在线| 欧美激情综合在线| 懂色av一区二区三区免费看| 中文一区二区在线观看| www.成人在线| 亚洲精品成人在线| 欧美精品视频www在线观看| 日av在线不卡| 精品久久人人做人人爰| 国产精品77777竹菊影视小说| 国产亚洲午夜高清国产拍精品 | 国产精品88888| 国产精品国产三级国产普通话99| 91麻豆蜜桃一区二区三区| 一区二区三区免费在线观看| 欧美性色黄大片| 麻豆国产91在线播放| 国产日韩精品久久久| 色婷婷精品久久二区二区蜜臀av | 国产传媒欧美日韩成人| 国产精品免费丝袜| 中文字幕不卡在线观看| 日本一区二区三区视频视频| 久久蜜桃一区二区| 日韩精品一区在线观看| 国产精品久久久久9999吃药| 日韩 欧美一区二区三区| 久久伊人蜜桃av一区二区| 成人aa视频在线观看| 日韩一区精品字幕| 久久久青草青青国产亚洲免观|