I must admit that I borrowed ip6.h and net/ethernet.h from the FreeBSD
sources, which I found somewhere via google.
However, those files are only needed to get the platform independent
structure of an Ethernet and an IPv6 Header.
Instead, we can define our own:
A minimal definition that would be sufficient for SIPp would be:
typedef struct _ether_hdr {
char dontcare[12];
u_int16_t type; /* we only need the type, so we can determine, if
the next header is IPv4 or IPv6 */
} _ether_hdr;
struct _ip6_hdr {
char dontcare[6];
u_int8_t nxt_header; /* we only need the next header, so we can
determine, if the next header is UDP or not */
char dontcare2[33];
} ip6_hdr;
We could do the same for the ipv4 and the udp header structure, but it
is not necessary to get prepare_pcap.c compiled on cygwin.
I'll prepare a new patch.
Regards,
Lars
Lars Roland schrieb:
> I knew I forgot something.
>
> That was an evil hack.
> I try to reproduce, which cygwin sources I used.
>
> I can send the missing file to you, but obviously you'd like to know,
> where I got it from. And I'd like to know it as well.
>
> Regards,
> Lars
>
> Olivier Jacques schrieb:
>
>> Hi Lars,
>>
>> I am wondering which IPv6 on Cygwin you are using. With the one I used
>> until now (http://win6.jp/Cygwin/index.html), the "make
>> pcapplay_cygwin" doesn't compile: netinet/ip6.h is not found.
>>
>> Are you using something else?
>> Olivier.
>>
>> Olivier Jacques wrote:
>>
>>> Hi Lars,
>>>
>>> glad to see you on this mailing list too :)
>>> This is great news!
>>> I'll try to integrate that quickly.
>>>
>>> Thanks,
>>> Olivier.
>>>
>>> Lars Roland wrote:
>>>
>>>> Hello,
>>>>
>>>> I've attached a patch, which allows you to compile SIPp with pcap
>>>> support on Windows by linking it with WinPcap.
>>>> On my system I've copied the WinPcap developer package to
>>>> "C:\cygwin\lib\WpdPack".
>>>>
>>>> Additionally I had to remove or rename "pthread.h" in
>>>> "C:\cygwin\lib\WpdPack\Include", as it interfered with pthread.h
>>>> from cygwin.
>>>> Perhaps someone who knows more about makefiles for GNU make can
>>>> solve this issue in a better way.
>>>>
>>>> Best regards,
>>>> Lars
>>>> ------------------------------------------------------------------------
>>>>
>>>>
>>>> diff -bruN sipp.2006-09-21/Makefile sipp.2006-09-21-new/Makefile
>>>> --- sipp.2006-09-21/Makefile 2006-09-12 16:29:26.000000000 +0200
>>>> +++ sipp.2006-09-21-new/Makefile 2006-09-27 10:50:10.299252200 +0200
>>>> @@ -138,7 +138,7 @@
>>>> LIBS_tru64= -lcurses -lpthread
>>>> LIBS_freebsd= -lcurses -pthread
>>>> LIBS_SunOS= -lcurses -lpthread -lnsl -lsocket -lstdc++ -lm -ldl -L
>>>> /usr/local/ssl/lib/
>>>> -LIBS_Cygwin= -lcurses -lpthread -lstdc++ +LIBS_Cygwin= -lcurses
>>>> -lpthread -lstdc++ -L /usr/lib/WpdPack/Lib
>>>> LIBS_Darwin= -lcurses
>>>> LIBS=$(LIBS_$(SYSTEM))
>>>>
>>>> @@ -148,7 +148,7 @@
>>>> INCDIR_hpux=-I. -I/usr/local/include -I/opt/openssl/include
>>>> INCDIR_tru64=-I. -I/opt/openssl/include
>>>> INCDIR_SunOS=-I. -I/usr/local/ssl/include/
>>>> -INCDIR_Cygwin=-I. -I/usr/include/openssl -I/usr/include
>>>> +INCDIR_Cygwin=-I. -I/usr/include/openssl -I/usr/include
>>>> -I/usr/lib/WpdPack/Include
>>>> INCDIR_Darwin=-I. -I/usr/local/ssl/include
>>>> INCDIR=$(INCDIR_$(SYSTEM)) @@ -173,6 +173,12 @@
>>>> pcapplay_ossl_hp_li_ia:
>>>> @_HPUX_LI_FLAG=-D_HPUX_LI ; export _HPUX_LI_FLAG ; make
>>>> pcapplay_ossl
>>>>
>>>> +pcapplay_cygwin:
>>>> + make OSNAME=`uname|sed -e "s/CYGWIN.*/CYGWIN/"`
>>>> MODELNAME=`uname -m|sed "s/Power Macintosh/ppc/"`
>>>> OBJ_PCAPPLAY="send_packets.o prepare_pcap.o" PCAPPLAY_LIBS="-lwpcap"
>>>> PCAPPLAY="-DPCAPPLAY" $(OUTPUT)
>>>> +
>>>> +pcapplay_ossl_cygwin:
>>>> + make OSNAME=`uname|sed -e "s/CYGWIN.*/CYGWIN/"`
>>>> MODELNAME=`uname -m|sed "s/Power Macintosh/ppc/"` OBJ_TLS="auth.o
>>>> sslinit.o sslthreadsafe.o milenage.o rijndael.o" TLS_LIBS="-lssl
>>>> -lcrypto" TLS="-D_USE_OPENSSL -DOPENSSL_NO_KRB5"
>>>> OBJ_PCAPPLAY="send_packets.o prepare_pcap.o" PCAPPLAY_LIBS="-lwpcap"
>>>> PCAPPLAY="-DPCAPPLAY" $(OUTPUT)
>>>> +
>>>> $(OUTPUT): $(OBJ_TLS) $(OBJ_PCAPPLAY) $(OBJ)
>>>> $(CCLINK) $(LFLAGS) $(MFLAGS) $(LIBDIR_$(SYSTEM)) \
>>>> $(DEBUG_FLAGS) -o $@ $(OBJ_TLS) $(OBJ_PCAPPLAY) $(OBJ) $(LIBS)
>>>> $(TLS_LIBS) $(PCAPPLAY_LIBS)
>>>> diff -bruN sipp.2006-09-21/prepare_pcap.c
>>>> sipp.2006-09-21-new/prepare_pcap.c
>>>> --- sipp.2006-09-21/prepare_pcap.c 2006-08-29 10:03:34.000000000
>>>> +0200
>>>> +++ sipp.2006-09-21-new/prepare_pcap.c 2006-09-27
>>>> 10:48:39.961039000 +0200
>>>> @@ -129,7 +129,7 @@
>>>> fprintf(stderr, "prepare_pcap.c: Ignoring non UDP packet!\n");
>>>> continue;
>>>> }
>>>> -#ifdef __DARWIN
>>>> +#if defined(__DARWIN) || defined(__CYGWIN)
>>>> udphdr = (struct udphdr *)((char *)iphdr + (iphdr->ihl << 2)
>>>> + 4);
>>>> #else
>>>> udphdr = (struct udphdr *)((char *)iphdr + (iphdr->ihl << 2));
>>>> @@ -149,7 +149,7 @@
>>>> ERROR("Can't allocate memory for pcap pkt data");
>>>> memcpy(pkt_index->data, udphdr, pktlen);
>>>>
>>>> -#if defined(__HPUX) || defined(__DARWIN)
>>>> +#if defined(__HPUX) || defined(__DARWIN) || (defined __CYGWIN)
>>>> udphdr->uh_sum = 0 ; #else
>>>> udphdr->check = 0;
>>>> @@ -158,14 +158,14 @@
>>>> // compute a partial udp checksum
>>>> // not including port that will be changed
>>>> // when sending RTP
>>>> -#if defined(__HPUX) || defined(__DARWIN)
>>>> +#if defined(__HPUX) || defined(__DARWIN) || (defined __CYGWIN)
>>>> pkt_index->partial_check = check((u_int16_t *)
>>>> &udphdr->uh_ulen, pktlen - 4) + ntohs(IPPROTO_UDP + pktlen);
>>>> #else
>>>> pkt_index->partial_check = check((u_int16_t *) &udphdr->len,
>>>> pktlen - 4) + ntohs(IPPROTO_UDP + pktlen);
>>>> #endif
>>>> if (max_length < pktlen)
>>>> max_length = pktlen;
>>>> -#if defined(__HPUX) || defined(__DARWIN)
>>>> +#if defined(__HPUX) || defined(__DARWIN) || (defined __CYGWIN)
>>>> if (base > ntohs(udphdr->uh_dport))
>>>> base = ntohs(udphdr->uh_dport);
>>>> #else
>>>> diff -bruN sipp.2006-09-21/prepare_pcap.h
>>>> sipp.2006-09-21-new/prepare_pcap.h
>>>> --- sipp.2006-09-21/prepare_pcap.h 2006-08-29 10:03:34.000000000
>>>> +0200
>>>> +++ sipp.2006-09-21-new/prepare_pcap.h 2006-09-27
>>>> 10:48:40.007984200 +0200
>>>> @@ -22,7 +22,7 @@
>>>> #include <netinet/udp.h>
>>>> #include <time.h>
>>>>
>>>> -#if defined(__HPUX) || defined(__DARWIN)
>>>> +#if defined(__HPUX) || defined(__DARWIN) || defined(__CYGWIN)
>>>> #define u_int8_t uint8_t
>>>> #define u_int16_t uint16_t
>>>> #define u_int32_t uint32_t
>>>> diff -bruN sipp.2006-09-21/send_packets.c
>>>> sipp.2006-09-21-new/send_packets.c
>>>> --- sipp.2006-09-21/send_packets.c 2006-08-29 10:03:34.000000000
>>>> +0200
>>>> +++ sipp.2006-09-21-new/send_packets.c 2006-09-27
>>>> 10:48:40.086226200 +0200
>>>> @@ -45,12 +45,13 @@
>>>> #include <unistd.h>
>>>> #include <stdlib.h>
>>>> #include <netinet/udp.h>
>>>> -#ifdef __DARWIN
>>>> +#if defined(__DARWIN) || defined(__CYGWIN)
>>>> #include <netinet/in.h>
>>>> #endif
>>>> #include <netinet/ip6.h>
>>>> #include <errno.h>
>>>> #include <string.h>
>>>> +#include <fcntl.h>
>>>>
>>>> #include "send_packets.h"
>>>> #include "prepare_pcap.h"
>>>>
>>>> ------------------------------------------------------------------------
>>>>
>>>>
>>>> -------------------------------------------------------------------------
>>>>
>>>> Take Surveys. Earn Cash. Influence the Future of IT
>>>> Join SourceForge.net's Techsay panel and you'll get the chance to
>>>> share your
>>>> opinions on IT & business topics through brief surveys -- and earn cash
>>>> http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
>>>>
>>>> ------------------------------------------------------------------------
>>>>
>>>>
>>>> _______________________________________________
>>>> Sipp-users mailing list
>>>> [email protected]
>>>> https://lists.sourceforge.net/lists/listinfo/sipp-users
>>>>
>>>>
>>>
>
>
> -------------------------------------------------------------------------
> Take Surveys. Earn Cash. Influence the Future of IT
> Join SourceForge.net's Techsay panel and you'll get the chance to share your
> opinions on IT & business topics through brief surveys -- and earn cash
> http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
> _______________________________________________
> Sipp-users mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/sipp-users
>
-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys -- and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
Sipp-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/sipp-users