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

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

?? send_packets.c

?? sipp is sip protocal testing tool.
?? C
字號:
/* * send_packets.c: from tcpreplay tools by Aaron Turner  * http://tcpreplay.sourceforge.net/ * send_packets.c is under BSD license (see below) * SIPp is under GPL license * * * Copyright (c) 2001-2004 Aaron Turner. * 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. Neither the names of the copyright owners nor the names of its *    contributors may be used to endorse or promote products derived from *    this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED ``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 AUTHORS OR COPYRIGHT HOLDERS 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. *//*Map linux structure fields to BSD ones*/#ifdef __LINUX#define __BSD_SOURCE#define _BSD_SOURCE#define __FAVOR_BSD#endif /*__LINUX*/#include <pcap.h>#include <unistd.h>#include <stdlib.h>#include <netinet/udp.h>#if defined(__DARWIN) || defined(__CYGWIN)#include <netinet/in.h>#endif#ifndef __CYGWIN#include <netinet/ip6.h>#endif#include <errno.h>#include <string.h>#include <fcntl.h>#include "send_packets.h"#include "prepare_pcap.h"#include "screen.hpp"extern volatile unsigned long rtp_pckts_pcap;extern volatile unsigned long rtp_bytes_pcap;extern int media_ip_is_ipv6;inline voidtimerdiv (struct timeval *tvp, float div){  double interval;  if (div == 0 || div == 1)    return;  interval = ((double) tvp->tv_sec * 1000000 + tvp->tv_usec) / (double) div;  tvp->tv_sec = interval / (int) 1000000;  tvp->tv_usec = interval - (tvp->tv_sec * 1000000);}/* * converts a float to a timeval structure */inline voidfloat2timer (float time, struct timeval *tvp){  float n;  n = time;  tvp->tv_sec = n;  n -= tvp->tv_sec;  tvp->tv_usec = n * 100000;}/* buffer should be "file_name" */intparse_play_args (char *buffer, pcap_pkts *pkts){  pkts->file = strdup (buffer);  prepare_pkts(pkts->file, pkts);  return 1;}void hexdump(char *p, int s) {	int i;	for (i = 0; i < s; i++) {		fprintf(stderr, "%02x ", *(char *)(p+i));	}	fprintf(stderr, "\n");}/*Safe threaded version*/void do_sleep (struct timeval *, struct timeval *,               struct timeval *, struct timeval *);intsend_packets (play_args_t * play_args){  int ret, sock, port_diff, i;  pcap_pkt *pkt_index, *pkt_max;  uint16_t *from_port, *to_port;  struct timeval didsleep = { 0, 0 };  struct timeval start = { 0, 0 };  struct timeval last = { 0, 0 };  pcap_pkts *pkts = play_args->pcap;	/* to and from are pointers in case play_args (call sticky) gets modified! */  struct sockaddr_storage *to = &(play_args->to);  struct sockaddr_storage *from = &(play_args->from);  struct udphdr *udp;	struct ip6_hdr *ip6;  struct sockaddr_in6 to6, from6;  char buffer[PCAP_MAXPACKET];  int temp_sum;#ifndef MSG_DONTWAIT  int fd_flags;#endif  if (media_ip_is_ipv6) {    sock = socket(PF_INET6, SOCK_RAW, IPPROTO_UDP);    if (sock < 0) {      ERROR("Can't create raw socket (need to run as root?)");    }    from_port = &(((struct sockaddr_in6 *)(void *) from )->sin6_port);    to_port = &(((struct sockaddr_in6 *)(void *) to )->sin6_port);  }  else {    sock = socket(PF_INET, SOCK_RAW, IPPROTO_UDP);    if (sock < 0) {      ERROR("Can't create raw socket (need to run as root?)");    }    from_port = &(((struct sockaddr_in *)(void *) from )->sin_port);    to_port = &(((struct sockaddr_in *)(void *) to )->sin_port);  }	#ifndef MSG_DONTWAIT  fd_flags = fcntl(sock, F_GETFL , NULL);  fd_flags |= O_NONBLOCK;  fcntl(sock, F_SETFL , fd_flags);#endif  udp = (struct udphdr *)buffer;  pkt_index = pkts->pkts;  pkt_max = pkts->max;	  if (media_ip_is_ipv6) {    memset(&to6, 0, sizeof(to6));    memset(&from6, 0, sizeof(from6));    to6.sin6_family = AF_INET6;    from6.sin6_family = AF_INET6;    memcpy(&(to6.sin6_addr.s6_addr), &(((struct sockaddr_in6 *)(void *) to)->sin6_addr.s6_addr), sizeof(to6.sin6_addr.s6_addr));    memcpy(&(from6.sin6_addr.s6_addr), &(((struct sockaddr_in6 *)(void *) from)->sin6_addr.s6_addr), sizeof(from6.sin6_addr.s6_addr));  }	  while (pkt_index < pkt_max) {    memcpy(udp, pkt_index->data, pkt_index->pktlen);    port_diff = ntohs (udp->uh_dport) - pkts->base;    // modify UDP ports    udp->uh_sport = htons(port_diff + *from_port);    udp->uh_dport = htons(port_diff + *to_port);    if (!media_ip_is_ipv6) {      temp_sum = checksum_carry(pkt_index->partial_check + check((u_int16_t *) &(((struct sockaddr_in *)(void *) from)->sin_addr.s_addr), 4) + check((u_int16_t *) &(((struct sockaddr_in *)(void *) to)->sin_addr.s_addr), 4) + check((u_int16_t *) &udp->uh_sport, 4));    }    else {      temp_sum = checksum_carry(pkt_index->partial_check + check((u_int16_t *) &(from6.sin6_addr.s6_addr), 16) + check((u_int16_t *) &(to6.sin6_addr.s6_addr), 16) + check((u_int16_t *) &udp->uh_sport, 4));    }#ifndef _HPUX_LI#ifdef __HPUX    udp->uh_sum = (temp_sum>>16)+((temp_sum & 0xffff)<<16);#else    udp->uh_sum = temp_sum;#endif#else    udp->uh_sum = temp_sum;#endif    do_sleep ((struct timeval *) &pkt_index->ts, &last, &didsleep,		&start);#ifdef MSG_DONTWAIT    if (!media_ip_is_ipv6) {      ret = sendto(sock, buffer, pkt_index->pktlen, MSG_DONTWAIT,                   (struct sockaddr *)(void *) to, sizeof(struct sockaddr_in));    }    else {      ret = sendto(sock, buffer, pkt_index->pktlen, MSG_DONTWAIT,                   (struct sockaddr *)(void *) &to6, sizeof(struct sockaddr_in6));    }#else    if (!media_ip_is_ipv6) {      ret = sendto(sock, buffer, pkt_index->pktlen, 0,                   (struct sockaddr *)(void *) to, sizeof(struct sockaddr_in));    }    else {      ret = sendto(sock, buffer, pkt_index->pktlen, 0,                   (struct sockaddr *)(void *) &to6, sizeof(struct sockaddr_in6));    }#endif    if (ret < 0) {      ERROR_P1("send_packets.c: sendto failed with error: %s", strerror(errno));    }	  rtp_pckts_pcap++;    rtp_bytes_pcap += pkt_index->pktlen - sizeof(*udp);    memcpy (&last, &(pkt_index->ts), sizeof (struct timeval));    pkt_index++;	}  close(sock);  return 0;}/* * Given the timestamp on the current packet and the last packet sent, * calculate the appropriate amount of time to sleep and do so. */void do_sleep (struct timeval *time, struct timeval *last,	  struct timeval *didsleep, struct timeval *start){  struct timeval nap, now, delta;  struct timespec ignore, sleep;  float n;  if (gettimeofday (&now, NULL) < 0)    {      fprintf (stderr, "Error gettimeofday: %s\n", strerror (errno));    }  /* First time through for this file */  if (!timerisset (last))    {      *start = now;      timerclear (&delta);      timerclear (didsleep);    }  else    {      timersub (&now, start, &delta);    }  if (timerisset (last) && timercmp (time, last, >))    {      timersub (time, last, &nap);    }  else    {      /*        * Don't sleep if this is our first packet, or if the       * this packet appears to have been sent before the        * last packet.       */      timerclear (&nap);    }  timeradd (didsleep, &nap, didsleep);  if (timercmp (didsleep, &delta, >))    {      timersub (didsleep, &delta, &nap);      sleep.tv_sec = nap.tv_sec;      sleep.tv_nsec = nap.tv_usec * 1000;	/* convert ms to ns */      while ((nanosleep (&sleep, &sleep) == -1) && (errno == -EINTR));    }}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
蜜臀av性久久久久蜜臀aⅴ流畅| 国产精品久久三| 国模少妇一区二区三区| 欧美国产精品中文字幕| 成人午夜激情片| 欧美韩日一区二区三区| 日本韩国欧美三级| 日韩成人午夜精品| 中文字幕一区二区三区在线不卡| 精品视频色一区| 成人免费毛片片v| 亚欧色一区w666天堂| 久久亚洲捆绑美女| 欧美三片在线视频观看 | 国产91精品一区二区麻豆网站| 国产精品久久久久永久免费观看| 欧美日韩一区二区三区不卡| 国产中文字幕精品| 亚洲资源在线观看| 国产午夜精品理论片a级大结局| 欧洲精品一区二区| 国产黄色成人av| 亚洲午夜一区二区三区| 久久精品视频在线免费观看| 欧美日韩国产首页在线观看| 国产一二三精品| 午夜伦欧美伦电影理论片| 精品不卡在线视频| 欧美性感一类影片在线播放| 国产精品综合一区二区三区| 天堂在线亚洲视频| 亚洲日本在线观看| 国产欧美一区二区三区沐欲| 欧美日韩卡一卡二| 91在线视频官网| 国产成人一级电影| 久草精品在线观看| 日韩国产一区二| 亚洲国产精品av| 精品国产一区二区三区av性色| 欧美中文字幕一区二区三区亚洲| 成人国产在线观看| 国产一区二区日韩精品| 男男gaygay亚洲| 亚洲bt欧美bt精品777| 亚洲免费观看高清完整版在线观看熊| 久久九九99视频| 久久久一区二区三区捆绑**| 日韩一区二区在线播放| 欧美无乱码久久久免费午夜一区 | 自拍偷拍亚洲激情| 久久这里只精品最新地址| 日韩一二三四区| 5858s免费视频成人| 色久优优欧美色久优优| 91丝袜呻吟高潮美腿白嫩在线观看| 日韩国产欧美视频| 日本欧美一区二区在线观看| 视频在线观看一区二区三区| 亚洲成av人在线观看| 喷白浆一区二区| 国产一区二区福利| 91免费版在线看| 欧美日韩一区不卡| 精品va天堂亚洲国产| 中文字幕一区二区三区精华液| 一区二区不卡在线播放| 玖玖九九国产精品| 成人av在线播放网站| 色八戒一区二区三区| 91精品国产综合久久久蜜臀图片| 日韩午夜激情电影| 国产精品国产三级国产aⅴ中文| 一区二区三区中文字幕精品精品| 偷拍一区二区三区| 国产一区二区精品久久91| 色综合天天综合网天天狠天天| 欧美日韩成人综合| 国产人成一区二区三区影院| 亚洲综合一区二区三区| 精品一区免费av| 99精品国产91久久久久久| 欧美精品在线视频| 国产精品久久久久天堂| 无吗不卡中文字幕| jvid福利写真一区二区三区| 欧美日韩1234| 中文av一区特黄| 首页综合国产亚洲丝袜| 成人福利在线看| 欧美一区二区福利在线| 亚洲图片激情小说| 经典三级一区二区| 欧美三级在线看| 中文成人综合网| 美女视频一区在线观看| 91免费精品国自产拍在线不卡 | 日韩午夜激情av| 亚洲日本护士毛茸茸| 国内精品久久久久影院薰衣草| 91亚洲大成网污www| 精品精品国产高清一毛片一天堂| 亚洲自拍偷拍网站| 盗摄精品av一区二区三区| 欧美一区永久视频免费观看| 国产精品久久久久久久久久免费看| 亚洲在线视频一区| 不卡视频在线观看| 久久综合999| 免费成人av在线播放| 一本色道久久加勒比精品| 国产午夜精品久久久久久久 | 日韩一区在线看| 国产中文一区二区三区| 欧美肥胖老妇做爰| 亚洲午夜一二三区视频| 99久久久免费精品国产一区二区| 久久蜜桃一区二区| 麻豆国产欧美日韩综合精品二区| 在线精品视频小说1| 综合电影一区二区三区| 国产成人午夜视频| 久久亚洲一区二区三区明星换脸| 日韩中文字幕av电影| 欧美性猛交xxxxxxxx| 一区二区三区在线高清| 99视频精品在线| 亚洲欧美综合色| 91在线视频免费91| 日韩毛片在线免费观看| 99精品视频中文字幕| 中文字幕av在线一区二区三区| 国产米奇在线777精品观看| 欧美一卡二卡三卡| 美女脱光内衣内裤视频久久网站| 91精品国产高清一区二区三区 | 91农村精品一区二区在线| 国产精品三级电影| 成人黄色软件下载| 国产精品女同一区二区三区| 国产精品自拍一区| 国产亚洲欧美在线| 成人做爰69片免费看网站| 国产片一区二区三区| 成人听书哪个软件好| 国产精品久久久久久久久久免费看 | 91精品国产综合久久福利| 日韩中文字幕不卡| 日韩欧美在线影院| 国产综合一区二区| 久久在线免费观看| jizzjizzjizz欧美| 亚洲猫色日本管| 欧美日韩一区二区三区在线| 日韩精品国产欧美| 久久蜜臀精品av| bt7086福利一区国产| 亚洲乱码中文字幕| 欧美精品丝袜久久久中文字幕| 日本在线不卡一区| 久久精品免费在线观看| 白白色 亚洲乱淫| 一区二区三区小说| 91精品国产黑色紧身裤美女| 国产一区二区三区在线观看精品 | 欧美日韩黄色影视| 精品一区二区久久久| 日本一区二区高清| 欧洲一区二区三区免费视频| 男女男精品视频| 国产精品污www在线观看| 欧洲色大大久久| 久久机这里只有精品| 国产精品高潮久久久久无| 欧美日韩一区精品| 国产自产v一区二区三区c| 亚洲欧美日韩综合aⅴ视频| 91麻豆精品国产91久久久资源速度| 久久99精品国产91久久来源| 中文字幕一区二区三区不卡| 欧美性做爰猛烈叫床潮| 国内精品免费**视频| 亚洲黄色录像片| 精品sm在线观看| 欧美午夜电影在线播放| 国产九九视频一区二区三区| 亚洲在线一区二区三区| 久久精品一区二区三区不卡| 欧美天天综合网| 国产成人99久久亚洲综合精品| 亚洲国产日韩一区二区| 欧美国产一区二区| 91精品国产综合久久久蜜臀粉嫩| 成人h动漫精品一区二区| 青青青爽久久午夜综合久久午夜| 国产精品久线观看视频| 精品久久久三级丝袜| 欧美天堂一区二区三区| 不卡一区二区中文字幕| 激情五月播播久久久精品|