aboutsummaryrefslogtreecommitdiffstats
path: root/testing/dsniff/07_libnet_1.1.patch
diff options
context:
space:
mode:
Diffstat (limited to 'testing/dsniff/07_libnet_1.1.patch')
-rw-r--r--testing/dsniff/07_libnet_1.1.patch903
1 files changed, 0 insertions, 903 deletions
diff --git a/testing/dsniff/07_libnet_1.1.patch b/testing/dsniff/07_libnet_1.1.patch
deleted file mode 100644
index 6cf86f0baf..0000000000
--- a/testing/dsniff/07_libnet_1.1.patch
+++ /dev/null
@@ -1,903 +0,0 @@
-Author: Faidon Liambotis <paravoid@debian.org>
-Description: Use libnet v1.1 instead of v1.0
---- a/arpspoof.c 2011-06-19 17:15:04.591999376 -0500
-+++ b/arpspoof.c 2011-06-19 17:15:10.511999375 -0500
-@@ -27,7 +27,7 @@
-
- extern char *ether_ntoa(struct ether_addr *);
-
--static struct libnet_link_int *llif;
-+static libnet_t *l;
- static struct ether_addr spoof_mac, target_mac;
- static in_addr_t spoof_ip, target_ip;
- static char *intf;
-@@ -41,47 +41,49 @@
- }
-
- static int
--arp_send(struct libnet_link_int *llif, char *dev,
-- int op, u_char *sha, in_addr_t spa, u_char *tha, in_addr_t tpa)
-+arp_send(libnet_t *l, int op, u_int8_t *sha,
-+ in_addr_t spa, u_int8_t *tha, in_addr_t tpa)
- {
-- char ebuf[128];
-- u_char pkt[60];
--
-+ int retval;
-+
- if (sha == NULL &&
-- (sha = (u_char *)libnet_get_hwaddr(llif, dev, ebuf)) == NULL) {
-+ (sha = (u_int8_t *)libnet_get_hwaddr(l)) == NULL) {
- return (-1);
- }
- if (spa == 0) {
-- if ((spa = libnet_get_ipaddr(llif, dev, ebuf)) == 0)
-+ if ((spa = libnet_get_ipaddr4(l)) == -1)
- return (-1);
-- spa = htonl(spa); /* XXX */
- }
- if (tha == NULL)
- tha = "\xff\xff\xff\xff\xff\xff";
-
-- libnet_build_ethernet(tha, sha, ETHERTYPE_ARP, NULL, 0, pkt);
-+ libnet_autobuild_arp(op, sha, (u_int8_t *)&spa,
-+ tha, (u_int8_t *)&tpa, l);
-+ libnet_build_ethernet(tha, sha, ETHERTYPE_ARP, NULL, 0, l, 0);
-
-- libnet_build_arp(ARPHRD_ETHER, ETHERTYPE_IP, ETHER_ADDR_LEN, 4,
-- op, sha, (u_char *)&spa, tha, (u_char *)&tpa,
-- NULL, 0, pkt + ETH_H);
--
- fprintf(stderr, "%s ",
- ether_ntoa((struct ether_addr *)sha));
-
- if (op == ARPOP_REQUEST) {
- fprintf(stderr, "%s 0806 42: arp who-has %s tell %s\n",
- ether_ntoa((struct ether_addr *)tha),
-- libnet_host_lookup(tpa, 0),
-- libnet_host_lookup(spa, 0));
-+ libnet_addr2name4(tpa, LIBNET_DONT_RESOLVE),
-+ libnet_addr2name4(spa, LIBNET_DONT_RESOLVE));
- }
- else {
- fprintf(stderr, "%s 0806 42: arp reply %s is-at ",
- ether_ntoa((struct ether_addr *)tha),
-- libnet_host_lookup(spa, 0));
-+ libnet_addr2name4(spa, LIBNET_DONT_RESOLVE));
- fprintf(stderr, "%s\n",
- ether_ntoa((struct ether_addr *)sha));
- }
-- return (libnet_write_link_layer(llif, dev, pkt, sizeof(pkt)) == sizeof(pkt));
-+ retval = libnet_write(l);
-+ if (retval)
-+ fprintf(stderr, "%s", libnet_geterror(l));
-+
-+ libnet_clear_packet(l);
-+
-+ return retval;
- }
-
- #ifdef __linux__
-@@ -119,7 +121,7 @@
- /* XXX - force the kernel to arp. feh. */
- arp_force(ip);
- #else
-- arp_send(llif, intf, ARPOP_REQUEST, NULL, 0, NULL, ip);
-+ arp_send(l, ARPOP_REQUEST, NULL, 0, NULL, ip);
- #endif
- sleep(1);
- }
-@@ -136,9 +138,9 @@
- if (arp_find(spoof_ip, &spoof_mac)) {
- for (i = 0; i < 3; i++) {
- /* XXX - on BSD, requires ETHERSPOOF kernel. */
-- arp_send(llif, intf, ARPOP_REPLY,
-- (u_char *)&spoof_mac, spoof_ip,
-- (target_ip ? (u_char *)&target_mac : NULL),
-+ arp_send(l, ARPOP_REPLY,
-+ (u_int8_t *)&spoof_mac, spoof_ip,
-+ (target_ip ? (u_int8_t *)&target_mac : NULL),
- target_ip);
- sleep(1);
- }
-@@ -151,7 +153,8 @@
- {
- extern char *optarg;
- extern int optind;
-- char ebuf[PCAP_ERRBUF_SIZE];
-+ char pcap_ebuf[PCAP_ERRBUF_SIZE];
-+ char libnet_ebuf[LIBNET_ERRBUF_SIZE];
- int c;
-
- intf = NULL;
-@@ -163,7 +166,7 @@
- intf = optarg;
- break;
- case 't':
-- if ((target_ip = libnet_name_resolve(optarg, 1)) == -1)
-+ if ((target_ip = libnet_name2addr4(l, optarg, LIBNET_RESOLVE)) == -1)
- usage();
- break;
- default:
-@@ -176,26 +179,26 @@
- if (argc != 1)
- usage();
-
-- if ((spoof_ip = libnet_name_resolve(argv[0], 1)) == -1)
-+ if ((spoof_ip = libnet_name2addr4(l, argv[0], LIBNET_RESOLVE)) == -1)
- usage();
-
-- if (intf == NULL && (intf = pcap_lookupdev(ebuf)) == NULL)
-- errx(1, "%s", ebuf);
-+ if (intf == NULL && (intf = pcap_lookupdev(pcap_ebuf)) == NULL)
-+ errx(1, "%s", pcap_ebuf);
-
-- if ((llif = libnet_open_link_interface(intf, ebuf)) == 0)
-- errx(1, "%s", ebuf);
-+ if ((l = libnet_init(LIBNET_LINK, intf, libnet_ebuf)) == NULL)
-+ errx(1, "%s", libnet_ebuf);
-
- if (target_ip != 0 && !arp_find(target_ip, &target_mac))
- errx(1, "couldn't arp for host %s",
-- libnet_host_lookup(target_ip, 0));
-+ libnet_addr2name4(target_ip, LIBNET_DONT_RESOLVE));
-
- signal(SIGHUP, cleanup);
- signal(SIGINT, cleanup);
- signal(SIGTERM, cleanup);
-
- for (;;) {
-- arp_send(llif, intf, ARPOP_REPLY, NULL, spoof_ip,
-- (target_ip ? (u_char *)&target_mac : NULL),
-+ arp_send(l, ARPOP_REPLY, NULL, spoof_ip,
-+ (target_ip ? (u_int8_t *)&target_mac : NULL),
- target_ip);
- sleep(2);
- }
---- a/dnsspoof.c 2011-06-19 17:14:04.651999389 -0500
-+++ b/dnsspoof.c 2011-06-19 17:15:10.515999375 -0500
-@@ -38,7 +38,7 @@
-
- pcap_t *pcap_pd = NULL;
- int pcap_off = -1;
--int lnet_sock = -1;
-+libnet_t *l;
- u_long lnet_ip = -1;
-
- static void
-@@ -90,19 +90,18 @@
- dns_init(char *dev, char *filename)
- {
- FILE *f;
-- struct libnet_link_int *llif;
-+ libnet_t *l;
-+ char libnet_ebuf[LIBNET_ERRBUF_SIZE];
- struct dnsent *de;
- char *ip, *name, buf[1024];
-
-- if ((llif = libnet_open_link_interface(dev, buf)) == NULL)
-- errx(1, "%s", buf);
-+ if ((l = libnet_init(LIBNET_LINK, dev, libnet_ebuf)) == NULL)
-+ errx(1, "%s", libnet_ebuf);
-
-- if ((lnet_ip = libnet_get_ipaddr(llif, dev, buf)) == -1)
-- errx(1, "%s", buf);
-+ if ((lnet_ip = libnet_get_ipaddr4(l)) == -1)
-+ errx(1, "%s", libnet_geterror(l));
-
-- lnet_ip = htonl(lnet_ip);
--
-- libnet_close_link_interface(llif);
-+ libnet_destroy(l);
-
- SLIST_INIT(&dns_entries);
-
-@@ -180,7 +179,7 @@
- static void
- dns_spoof(u_char *u, const struct pcap_pkthdr *pkthdr, const u_char *pkt)
- {
-- struct libnet_ip_hdr *ip;
-+ struct libnet_ipv4_hdr *ip;
- struct libnet_udp_hdr *udp;
- HEADER *dns;
- char name[MAXHOSTNAMELEN];
-@@ -189,7 +188,7 @@
- in_addr_t dst;
- u_short type, class;
-
-- ip = (struct libnet_ip_hdr *)(pkt + pcap_off);
-+ ip = (struct libnet_ipv4_hdr *)(pkt + pcap_off);
- udp = (struct libnet_udp_hdr *)(pkt + pcap_off + (ip->ip_hl * 4));
- dns = (HEADER *)(udp + 1);
- p = (u_char *)(dns + 1);
-@@ -212,7 +211,7 @@
- if (class != C_IN)
- return;
-
-- p = buf + IP_H + UDP_H + dnslen;
-+ p = buf + dnslen;
-
- if (type == T_A) {
- if ((dst = dns_lookup_a(name)) == -1)
-@@ -234,38 +233,38 @@
- anslen += 12;
- }
- else return;
--
-- libnet_build_ip(UDP_H + dnslen + anslen, 0, libnet_get_prand(PRu16),
-- 0, 64, IPPROTO_UDP, ip->ip_dst.s_addr,
-- ip->ip_src.s_addr, NULL, 0, buf);
--
-- libnet_build_udp(ntohs(udp->uh_dport), ntohs(udp->uh_sport),
-- NULL, dnslen + anslen, buf + IP_H);
-
-- memcpy(buf + IP_H + UDP_H, (u_char *)dns, dnslen);
-+ memcpy(buf, (u_char *)dns, dnslen);
-
-- dns = (HEADER *)(buf + IP_H + UDP_H);
-+ dns = (HEADER *)buf;
- dns->qr = dns->ra = 1;
- if (type == T_PTR) dns->aa = 1;
- dns->ancount = htons(1);
-
- dnslen += anslen;
-+
-+ libnet_clear_packet(l);
-+ libnet_build_udp(ntohs(udp->uh_dport), ntohs(udp->uh_sport),
-+ LIBNET_UDP_H + dnslen, 0,
-+ (u_int8_t *)buf, dnslen, l, 0);
-+
-+ libnet_build_ipv4(LIBNET_IPV4_H + LIBNET_UDP_H + dnslen, 0,
-+ libnet_get_prand(LIBNET_PRu16), 0, 64, IPPROTO_UDP, 0,
-+ ip->ip_dst.s_addr, ip->ip_src.s_addr, NULL, 0, l, 0);
-
-- libnet_do_checksum(buf, IPPROTO_UDP, UDP_H + dnslen);
--
-- if (libnet_write_ip(lnet_sock, buf, IP_H + UDP_H + dnslen) < 0)
-+ if (libnet_write(l) < 0)
- warn("write");
-
- fprintf(stderr, "%s.%d > %s.%d: %d+ %s? %s\n",
-- libnet_host_lookup(ip->ip_src.s_addr, 0), ntohs(udp->uh_sport),
-- libnet_host_lookup(ip->ip_dst.s_addr, 0), ntohs(udp->uh_dport),
-+ libnet_addr2name4(ip->ip_src.s_addr, 0), ntohs(udp->uh_sport),
-+ libnet_addr2name4(ip->ip_dst.s_addr, 0), ntohs(udp->uh_dport),
- ntohs(dns->id), type == T_A ? "A" : "PTR", name);
- }
-
- static void
- cleanup(int sig)
- {
-- libnet_close_raw_sock(lnet_sock);
-+ libnet_destroy(l);
- pcap_close(pcap_pd);
- exit(0);
- }
-@@ -276,6 +275,7 @@
- extern char *optarg;
- extern int optind;
- char *p, *dev, *hosts, buf[1024];
-+ char ebuf[LIBNET_ERRBUF_SIZE];
- int i;
-
- dev = hosts = NULL;
-@@ -306,7 +306,7 @@
- strlcpy(buf, p, sizeof(buf));
- }
- else snprintf(buf, sizeof(buf), "udp dst port 53 and not src %s",
-- libnet_host_lookup(lnet_ip, 0));
-+ libnet_addr2name4(lnet_ip, LIBNET_DONT_RESOLVE));
-
- if ((pcap_pd = pcap_init(dev, buf, 128)) == NULL)
- errx(1, "couldn't initialize sniffing");
-@@ -314,10 +314,10 @@
- if ((pcap_off = pcap_dloff(pcap_pd)) < 0)
- errx(1, "couldn't determine link layer offset");
-
-- if ((lnet_sock = libnet_open_raw_sock(IPPROTO_RAW)) == -1)
-+ if ((l = libnet_init(LIBNET_RAW4, dev, ebuf)) == NULL)
- errx(1, "couldn't initialize sending");
-
-- libnet_seed_prand();
-+ libnet_seed_prand(l);
-
- signal(SIGHUP, cleanup);
- signal(SIGINT, cleanup);
---- a/filesnarf.c 2011-06-19 17:15:01.075999376 -0500
-+++ b/filesnarf.c 2011-06-19 17:15:10.519999375 -0500
-@@ -134,8 +134,8 @@
- int fd;
-
- warnx("%s.%d > %s.%d: %s (%d@%d)",
-- libnet_host_lookup(addr->daddr, 0), addr->dest,
-- libnet_host_lookup(addr->saddr, 0), addr->source,
-+ libnet_addr2name4(addr->daddr, LIBNET_DONT_RESOLVE), addr->dest,
-+ libnet_addr2name4(addr->saddr, LIBNET_DONT_RESOLVE), addr->source,
- ma->filename, len, ma->offset);
-
- if ((fd = open(ma->filename, O_WRONLY|O_CREAT, 0644)) >= 0) {
-@@ -353,7 +353,7 @@
- }
-
- static void
--decode_udp_nfs(struct libnet_ip_hdr *ip)
-+decode_udp_nfs(struct libnet_ipv4_hdr *ip)
- {
- static struct tuple4 addr;
- struct libnet_udp_hdr *udp;
---- a/macof.c 2011-06-19 17:14:04.959999389 -0500
-+++ b/macof.c 2011-06-19 17:15:10.523999375 -0500
-@@ -48,8 +48,8 @@
- static void
- gen_mac(u_char *mac)
- {
-- *((in_addr_t *)mac) = libnet_get_prand(PRu32);
-- *((u_short *)(mac + 4)) = libnet_get_prand(PRu16);
-+ *((in_addr_t *)mac) = libnet_get_prand(LIBNET_PRu32);
-+ *((u_short *)(mac + 4)) = libnet_get_prand(LIBNET_PRu16);
- }
-
- int
-@@ -59,22 +59,23 @@
- extern int optind;
- int c, i;
- struct libnet_link_int *llif;
-- char ebuf[PCAP_ERRBUF_SIZE];
-+ char pcap_ebuf[PCAP_ERRBUF_SIZE];
-+ char libnet_ebuf[LIBNET_ERRBUF_SIZE];
- u_char sha[ETHER_ADDR_LEN], tha[ETHER_ADDR_LEN];
- in_addr_t src, dst;
- u_short sport, dport;
- u_int32_t seq;
-- u_char pkt[ETH_H + IP_H + TCP_H];
-+ libnet_t *l;
-
- while ((c = getopt(argc, argv, "vs:d:e:x:y:i:n:h?V")) != -1) {
- switch (c) {
- case 'v':
- break;
- case 's':
-- Src = libnet_name_resolve(optarg, 0);
-+ Src = libnet_name2addr4(l, optarg, 0);
- break;
- case 'd':
-- Dst = libnet_name_resolve(optarg, 0);
-+ Dst = libnet_name2addr4(l, optarg, 0);
- break;
- case 'e':
- Tha = (u_char *)ether_aton(optarg);
-@@ -101,13 +102,13 @@
- if (argc != 0)
- usage();
-
-- if (!Intf && (Intf = pcap_lookupdev(ebuf)) == NULL)
-- errx(1, "%s", ebuf);
-+ if (!Intf && (Intf = pcap_lookupdev(pcap_ebuf)) == NULL)
-+ errx(1, "%s", pcap_ebuf);
-
-- if ((llif = libnet_open_link_interface(Intf, ebuf)) == 0)
-- errx(1, "%s", ebuf);
-+ if ((l = libnet_init(LIBNET_LINK, Intf, libnet_ebuf)) == NULL)
-+ errx(1, "%s", libnet_ebuf);
-
-- libnet_seed_prand();
-+ libnet_seed_prand(l);
-
- for (i = 0; i != Repeat; i++) {
-
-@@ -117,39 +118,39 @@
- else memcpy(tha, Tha, sizeof(tha));
-
- if (Src != 0) src = Src;
-- else src = libnet_get_prand(PRu32);
-+ else src = libnet_get_prand(LIBNET_PRu32);
-
- if (Dst != 0) dst = Dst;
-- else dst = libnet_get_prand(PRu32);
-+ else dst = libnet_get_prand(LIBNET_PRu32);
-
- if (Sport != 0) sport = Sport;
-- else sport = libnet_get_prand(PRu16);
-+ else sport = libnet_get_prand(LIBNET_PRu16);
-
- if (Dport != 0) dport = Dport;
-- else dport = libnet_get_prand(PRu16);
-+ else dport = libnet_get_prand(LIBNET_PRu16);
-
-- seq = libnet_get_prand(PRu32);
--
-- libnet_build_ethernet(tha, sha, ETHERTYPE_IP, NULL, 0, pkt);
--
-- libnet_build_ip(TCP_H, 0, libnet_get_prand(PRu16), 0, 64,
-- IPPROTO_TCP, src, dst, NULL, 0, pkt + ETH_H);
-+ seq = libnet_get_prand(LIBNET_PRu32);
-
- libnet_build_tcp(sport, dport, seq, 0, TH_SYN, 512,
-- 0, NULL, 0, pkt + ETH_H + IP_H);
-+ 0, 0, LIBNET_TCP_H, NULL, 0, l, 0);
-
-- libnet_do_checksum(pkt + ETH_H, IPPROTO_IP, IP_H);
-- libnet_do_checksum(pkt + ETH_H, IPPROTO_TCP, TCP_H);
-+ libnet_build_ipv4(LIBNET_TCP_H, 0,
-+ libnet_get_prand(LIBNET_PRu16), 0, 64,
-+ IPPROTO_TCP, 0, src, dst, NULL, 0, l, 0);
-
-- if (libnet_write_link_layer(llif, Intf, pkt, sizeof(pkt)) < 0)
-+ libnet_build_ethernet(tha, sha, ETHERTYPE_IP, NULL, 0, l, 0);
-+
-+ if (libnet_write(l) < 0)
- errx(1, "write");
-
-+ libnet_clear_packet(l);
-+
- fprintf(stderr, "%s ",
- ether_ntoa((struct ether_addr *)sha));
- fprintf(stderr, "%s %s.%d > %s.%d: S %u:%u(0) win 512\n",
- ether_ntoa((struct ether_addr *)tha),
-- libnet_host_lookup(Src, 0), sport,
-- libnet_host_lookup(Dst, 0), dport, seq, seq);
-+ libnet_addr2name4(Src, 0), sport,
-+ libnet_addr2name4(Dst, 0), dport, seq, seq);
- }
- exit(0);
- }
---- a/record.c 2011-06-19 17:14:06.627999389 -0500
-+++ b/record.c 2011-06-19 17:15:10.523999375 -0500
-@@ -65,8 +65,8 @@
- tm = localtime(&rec->time);
- strftime(tstr, sizeof(tstr), "%x %X", tm);
-
-- srcp = libnet_host_lookup(rec->src, Opt_dns);
-- dstp = libnet_host_lookup(rec->dst, Opt_dns);
-+ srcp = libnet_addr2name4(rec->src, Opt_dns);
-+ dstp = libnet_addr2name4(rec->dst, Opt_dns);
-
- if ((pr = getprotobynumber(rec->proto)) == NULL)
- protop = "unknown";
---- a/sshmitm.c 2011-06-19 17:14:05.687999389 -0500
-+++ b/sshmitm.c 2011-06-19 17:15:10.527999375 -0500
-@@ -389,7 +389,7 @@
- if (argc < 1)
- usage();
-
-- if ((ip = libnet_name_resolve(argv[0], 1)) == -1)
-+ if ((ip = libnet_name2addr4(NULL, argv[0], LIBNET_RESOLVE)) == -1)
- usage();
-
- if (argc == 2 && (rport = atoi(argv[1])) == 0)
---- a/tcpkill.c 2011-06-19 17:14:05.823999389 -0500
-+++ b/tcpkill.c 2011-06-19 17:15:10.535999375 -0500
-@@ -39,17 +39,18 @@
- static void
- tcp_kill_cb(u_char *user, const struct pcap_pkthdr *pcap, const u_char *pkt)
- {
-- struct libnet_ip_hdr *ip;
-+ struct libnet_ipv4_hdr *ip;
- struct libnet_tcp_hdr *tcp;
-- u_char ctext[64], buf[IP_H + TCP_H];
-+ u_char ctext[64];
- u_int32_t seq, win;
-- int i, *sock, len;
-+ int i, len;
-+ libnet_t *l;
-
-- sock = (int *)user;
-+ l = (libnet_t *)user;
- pkt += pcap_off;
- len = pcap->caplen - pcap_off;
-
-- ip = (struct libnet_ip_hdr *)pkt;
-+ ip = (struct libnet_ipv4_hdr *)pkt;
- if (ip->ip_p != IPPROTO_TCP)
- return;
-
-@@ -57,34 +58,31 @@
- if (tcp->th_flags & (TH_SYN|TH_FIN|TH_RST))
- return;
-
-- libnet_build_ip(TCP_H, 0, 0, 0, 64, IPPROTO_TCP,
-- ip->ip_dst.s_addr, ip->ip_src.s_addr,
-- NULL, 0, buf);
--
-- libnet_build_tcp(ntohs(tcp->th_dport), ntohs(tcp->th_sport),
-- 0, 0, TH_RST, 0, 0, NULL, 0, buf + IP_H);
--
- seq = ntohl(tcp->th_ack);
- win = ntohs(tcp->th_win);
-
- snprintf(ctext, sizeof(ctext), "%s:%d > %s:%d:",
-- libnet_host_lookup(ip->ip_src.s_addr, 0),
-+ libnet_addr2name4(ip->ip_src.s_addr, LIBNET_DONT_RESOLVE),
- ntohs(tcp->th_sport),
-- libnet_host_lookup(ip->ip_dst.s_addr, 0),
-+ libnet_addr2name4(ip->ip_dst.s_addr, LIBNET_DONT_RESOLVE),
- ntohs(tcp->th_dport));
-
-- ip = (struct libnet_ip_hdr *)buf;
-- tcp = (struct libnet_tcp_hdr *)(ip + 1);
--
- for (i = 0; i < Opt_severity; i++) {
-- ip->ip_id = libnet_get_prand(PRu16);
- seq += (i * win);
-- tcp->th_seq = htonl(seq);
-
-- libnet_do_checksum(buf, IPPROTO_TCP, TCP_H);
-+ libnet_clear_packet(l);
-+
-+ libnet_build_tcp(ntohs(tcp->th_dport), ntohs(tcp->th_sport),
-+ seq, 0, TH_RST, 0, 0, 0, LIBNET_TCP_H,
-+ NULL, 0, l, 0);
-+
-+ libnet_build_ipv4(LIBNET_IPV4_H + LIBNET_TCP_H, 0,
-+ libnet_get_prand(LIBNET_PRu16), 0, 64,
-+ IPPROTO_TCP, 0, ip->ip_dst.s_addr,
-+ ip->ip_src.s_addr, NULL, 0, l, 0);
-
-- if (libnet_write_ip(*sock, buf, sizeof(buf)) < 0)
-- warn("write_ip");
-+ if (libnet_write(l) < 0)
-+ warn("write");
-
- fprintf(stderr, "%s R %lu:%lu(0) win 0\n", ctext, seq, seq);
- }
-@@ -95,8 +93,10 @@
- {
- extern char *optarg;
- extern int optind;
-- int c, sock;
-+ int c;
- char *p, *intf, *filter, ebuf[PCAP_ERRBUF_SIZE];
-+ char libnet_ebuf[LIBNET_ERRBUF_SIZE];
-+ libnet_t *l;
- pcap_t *pd;
-
- intf = NULL;
-@@ -136,14 +136,14 @@
- if ((pcap_off = pcap_dloff(pd)) < 0)
- errx(1, "couldn't determine link layer offset");
-
-- if ((sock = libnet_open_raw_sock(IPPROTO_RAW)) == -1)
-+ if ((l = libnet_init(LIBNET_RAW4, intf, libnet_ebuf)) == NULL)
- errx(1, "couldn't initialize sending");
-
-- libnet_seed_prand();
-+ libnet_seed_prand(l);
-
- warnx("listening on %s [%s]", intf, filter);
-
-- pcap_loop(pd, -1, tcp_kill_cb, (u_char *)&sock);
-+ pcap_loop(pd, -1, tcp_kill_cb, (u_char *)l);
-
- /* NOTREACHED */
-
---- a/tcpnice.c 2011-06-19 17:14:04.547999389 -0500
-+++ b/tcpnice.c 2011-06-19 17:15:10.539999375 -0500
-@@ -41,107 +41,106 @@
- }
-
- static void
--send_tcp_window_advertisement(int sock, struct libnet_ip_hdr *ip,
-+send_tcp_window_advertisement(libnet_t *l, struct libnet_ipv4_hdr *ip,
- struct libnet_tcp_hdr *tcp)
- {
- int len;
-
- ip->ip_hl = 5;
-- ip->ip_len = htons(IP_H + TCP_H);
-- ip->ip_id = libnet_get_prand(PRu16);
-- memcpy(buf, (u_char *)ip, IP_H);
-+ ip->ip_len = htons(LIBNET_IPV4_H + LIBNET_TCP_H);
-+ ip->ip_id = libnet_get_prand(LIBNET_PRu16);
-+ memcpy(buf, (u_char *)ip, LIBNET_IPV4_H);
-
- tcp->th_off = 5;
- tcp->th_win = htons(MIN_WIN);
-- memcpy(buf + IP_H, (u_char *)tcp, TCP_H);
-+ memcpy(buf + LIBNET_IPV4_H, (u_char *)tcp, LIBNET_TCP_H);
-
-- libnet_do_checksum(buf, IPPROTO_TCP, TCP_H);
-+ libnet_do_checksum(l, buf, IPPROTO_TCP, LIBNET_TCP_H);
-
-- len = IP_H + TCP_H;
-+ len = LIBNET_IPV4_H + LIBNET_TCP_H;
-
-- if (libnet_write_ip(sock, buf, len) != len)
-+ if (libnet_write_raw_ipv4(l, buf, len) != len)
- warn("write");
-
- fprintf(stderr, "%s:%d > %s:%d: . ack %lu win %d\n",
-- libnet_host_lookup(ip->ip_src.s_addr, 0), ntohs(tcp->th_sport),
-- libnet_host_lookup(ip->ip_dst.s_addr, 0), ntohs(tcp->th_dport),
-+ libnet_addr2name4(ip->ip_src.s_addr, 0), ntohs(tcp->th_sport),
-+ libnet_addr2name4(ip->ip_dst.s_addr, 0), ntohs(tcp->th_dport),
- ntohl(tcp->th_ack), 1);
- }
-
- static void
--send_icmp_source_quench(int sock, struct libnet_ip_hdr *ip)
-+send_icmp_source_quench(libnet_t *l, struct libnet_ipv4_hdr *ip)
- {
-- struct libnet_icmp_hdr *icmp;
-+ struct libnet_icmpv4_hdr *icmp;
- int len;
-
- len = (ip->ip_hl * 4) + 8;
-
-- libnet_build_ip(ICMP_ECHO_H + len, 0, libnet_get_prand(PRu16),
-- 0, 64, IPPROTO_ICMP, ip->ip_dst.s_addr,
-- ip->ip_src.s_addr, NULL, 0, buf);
--
-- icmp = (struct libnet_icmp_hdr *)(buf + IP_H);
-+ icmp = (struct libnet_icmpv4_hdr *)(buf + LIBNET_IPV4_H);
- icmp->icmp_type = ICMP_SOURCEQUENCH;
- icmp->icmp_code = 0;
-- memcpy((u_char *)icmp + ICMP_ECHO_H, (u_char *)ip, len);
-+ memcpy((u_char *)icmp + LIBNET_ICMPV4_ECHO_H, (u_char *)ip, len);
-
-- libnet_do_checksum(buf, IPPROTO_ICMP, ICMP_ECHO_H + len);
-+ len += LIBNET_ICMPV4_ECHO_H;
-
-- len += (IP_H + ICMP_ECHO_H);
-+ libnet_build_ipv4(LIBNET_IPV4_H + len, 0,
-+ libnet_get_prand(LIBNET_PRu16), 0, 64, IPPROTO_ICMP,
-+ 0, ip->ip_dst.s_addr, ip->ip_src.s_addr,
-+ (u_int8_t *) icmp, len, l, 0);
-
-- if (libnet_write_ip(sock, buf, len) != len)
-+ if (libnet_write(l) != len)
- warn("write");
-
- fprintf(stderr, "%s > %s: icmp: source quench\n",
-- libnet_host_lookup(ip->ip_dst.s_addr, 0),
-- libnet_host_lookup(ip->ip_src.s_addr, 0));
-+ libnet_addr2name4(ip->ip_dst.s_addr, 0),
-+ libnet_addr2name4(ip->ip_src.s_addr, 0));
- }
-
- static void
--send_icmp_frag_needed(int sock, struct libnet_ip_hdr *ip)
-+send_icmp_frag_needed(libnet_t *l, struct libnet_ipv4_hdr *ip)
- {
-- struct libnet_icmp_hdr *icmp;
-+ struct libnet_icmpv4_hdr *icmp;
- int len;
-
- len = (ip->ip_hl * 4) + 8;
-
-- libnet_build_ip(ICMP_MASK_H + len, 4, libnet_get_prand(PRu16),
-- 0, 64, IPPROTO_ICMP, ip->ip_dst.s_addr,
-- ip->ip_src.s_addr, NULL, 0, buf);
--
-- icmp = (struct libnet_icmp_hdr *)(buf + IP_H);
-+ icmp = (struct libnet_icmpv4_hdr *)(buf + LIBNET_IPV4_H);
- icmp->icmp_type = ICMP_UNREACH;
- icmp->icmp_code = ICMP_UNREACH_NEEDFRAG;
- icmp->hun.frag.pad = 0;
- icmp->hun.frag.mtu = htons(MIN_MTU);
-- memcpy((u_char *)icmp + ICMP_MASK_H, (u_char *)ip, len);
-+ memcpy((u_char *)icmp + LIBNET_ICMPV4_MASK_H, (u_char *)ip, len);
-
-- libnet_do_checksum(buf, IPPROTO_ICMP, ICMP_MASK_H + len);
--
-- len += (IP_H + ICMP_MASK_H);
-+ len += LIBNET_ICMPV4_MASK_H;
-+
-+ libnet_build_ipv4(LIBNET_IPV4_H + len, 4,
-+ libnet_get_prand(LIBNET_PRu16), 0, 64, IPPROTO_ICMP,
-+ 0, ip->ip_dst.s_addr, ip->ip_src.s_addr,
-+ (u_int8_t *) icmp, len, l, 0);
-
-- if (libnet_write_ip(sock, buf, len) != len)
-+ if (libnet_write(l) != len)
- warn("write");
-
- fprintf(stderr, "%s > %s: icmp: ",
-- libnet_host_lookup(ip->ip_dst.s_addr, 0),
-- libnet_host_lookup(ip->ip_src.s_addr, 0));
-+ libnet_addr2name4(ip->ip_dst.s_addr, 0),
-+ libnet_addr2name4(ip->ip_src.s_addr, 0));
- fprintf(stderr, "%s unreachable - need to frag (mtu %d)\n",
-- libnet_host_lookup(ip->ip_src.s_addr, 0), MIN_MTU);
-+ libnet_addr2name4(ip->ip_src.s_addr, 0), MIN_MTU);
- }
-
- static void
- tcp_nice_cb(u_char *user, const struct pcap_pkthdr *pcap, const u_char *pkt)
- {
-- struct libnet_ip_hdr *ip;
-+ struct libnet_ipv4_hdr *ip;
- struct libnet_tcp_hdr *tcp;
-- int *sock, len;
-+ int len;
-+ libnet_t *l;
-
-- sock = (int *)user;
-+ l = (libnet_t *)user;
- pkt += pcap_off;
- len = pcap->caplen - pcap_off;
-
-- ip = (struct libnet_ip_hdr *)pkt;
-+ ip = (struct libnet_ipv4_hdr *)pkt;
- if (ip->ip_p != IPPROTO_TCP)
- return;
-
-@@ -151,11 +150,11 @@
-
- if (ntohs(ip->ip_len) > (ip->ip_hl << 2) + (tcp->th_off << 2)) {
- if (Opt_icmp)
-- send_icmp_source_quench(*sock, ip);
-+ send_icmp_source_quench(l, ip);
- if (Opt_win)
-- send_tcp_window_advertisement(*sock, ip, tcp);
-+ send_tcp_window_advertisement(l, ip, tcp);
- if (Opt_pmtu)
-- send_icmp_frag_needed(*sock, ip);
-+ send_icmp_frag_needed(l, ip);
- }
- }
-
-@@ -164,8 +163,10 @@
- {
- extern char *optarg;
- extern int optind;
-- int c, sock;
-+ int c;
- char *intf, *filter, ebuf[PCAP_ERRBUF_SIZE];
-+ char libnet_ebuf[LIBNET_ERRBUF_SIZE];
-+ libnet_t *l;
- pcap_t *pd;
-
- intf = NULL;
-@@ -209,14 +210,14 @@
- if ((pcap_off = pcap_dloff(pd)) < 0)
- errx(1, "couldn't determine link layer offset");
-
-- if ((sock = libnet_open_raw_sock(IPPROTO_RAW)) == -1)
-+ if ((l = libnet_init(LIBNET_RAW4, intf, libnet_ebuf)) == NULL)
- errx(1, "couldn't initialize sending");
-
-- libnet_seed_prand();
-+ libnet_seed_prand(l);
-
- warnx("listening on %s [%s]", intf, filter);
-
-- pcap_loop(pd, -1, tcp_nice_cb, (u_char *)&sock);
-+ pcap_loop(pd, -1, tcp_nice_cb, (u_char *)l);
-
- /* NOTREACHED */
-
---- a/tcp_raw.c 2011-06-19 17:14:06.375999389 -0500
-+++ b/tcp_raw.c 2011-06-19 17:15:10.543999375 -0500
-@@ -119,7 +119,7 @@
- }
-
- struct iovec *
--tcp_raw_input(struct libnet_ip_hdr *ip, struct libnet_tcp_hdr *tcp, int len)
-+tcp_raw_input(struct libnet_ipv4_hdr *ip, struct libnet_tcp_hdr *tcp, int len)
- {
- struct tha tha;
- struct tcp_conn *conn;
-@@ -131,7 +131,7 @@
-
- /* Verify TCP checksum. */
- cksum = tcp->th_sum;
-- libnet_do_checksum((u_char *) ip, IPPROTO_TCP, len);
-+ libnet_do_checksum(NULL, (u_char *) ip, IPPROTO_TCP, len);
-
- if (cksum != tcp->th_sum)
- return (NULL);
---- a/tcp_raw.h 2011-06-19 17:14:05.079999389 -0500
-+++ b/tcp_raw.h 2011-06-19 17:15:10.547999375 -0500
-@@ -15,7 +15,7 @@
- u_short sport, u_short dport,
- u_char *buf, int len);
-
--struct iovec *tcp_raw_input(struct libnet_ip_hdr *ip,
-+struct iovec *tcp_raw_input(struct libnet_ipv4_hdr *ip,
- struct libnet_tcp_hdr *tcp, int len);
-
- void tcp_raw_timeout(int timeout, tcp_raw_callback_t callback);
---- a/trigger.c 2011-06-19 17:14:05.483999389 -0500
-+++ b/trigger.c 2011-06-19 17:15:10.551999375 -0500
-@@ -276,7 +276,7 @@
- }
-
- void
--trigger_ip(struct libnet_ip_hdr *ip)
-+trigger_ip(struct libnet_ipv4_hdr *ip)
- {
- struct trigger *t, tr;
- u_char *buf;
-@@ -305,7 +305,7 @@
-
- /* libnids needs a nids_register_udp()... */
- void
--trigger_udp(struct libnet_ip_hdr *ip)
-+trigger_udp(struct libnet_ipv4_hdr *ip)
- {
- struct trigger *t, tr;
- struct libnet_udp_hdr *udp;
-@@ -437,7 +437,7 @@
- }
-
- void
--trigger_tcp_raw(struct libnet_ip_hdr *ip)
-+trigger_tcp_raw(struct libnet_ipv4_hdr *ip)
- {
- struct trigger *t, tr;
- struct libnet_tcp_hdr *tcp;
---- a/trigger.h 2011-06-19 17:14:04.371999389 -0500
-+++ b/trigger.h 2011-06-19 17:15:10.555999375 -0500
-@@ -24,10 +24,10 @@
- int trigger_set_tcp(int port, char *name);
- int trigger_set_rpc(int program, char *name);
-
--void trigger_ip(struct libnet_ip_hdr *ip);
--void trigger_udp(struct libnet_ip_hdr *ip);
-+void trigger_ip(struct libnet_ipv4_hdr *ip);
-+void trigger_udp(struct libnet_ipv4_hdr *ip);
- void trigger_tcp(struct tcp_stream *ts, void **conn_save);
--void trigger_tcp_raw(struct libnet_ip_hdr *ip);
-+void trigger_tcp_raw(struct libnet_ipv4_hdr *ip);
- void trigger_tcp_raw_timeout(int signal);
- void trigger_rpc(int program, int proto, int port);
-
---- a/urlsnarf.c 2011-06-19 17:15:08.631999375 -0500
-+++ b/urlsnarf.c 2011-06-19 17:15:10.559999375 -0500
-@@ -145,14 +145,14 @@
- if (user == NULL)
- user = "-";
- if (vhost == NULL)
-- vhost = libnet_host_lookup(addr->daddr, Opt_dns);
-+ vhost = libnet_addr2name4(addr->daddr, Opt_dns);
- if (referer == NULL)
- referer = "-";
- if (agent == NULL)
- agent = "-";
-
- printf("%s - %s [%s] \"%s http://%s%s\" - - \"%s\" \"%s\"\n",
-- libnet_host_lookup(addr->saddr, Opt_dns),
-+ libnet_addr2name4(addr->saddr, Opt_dns),
- user, timestamp(), req, vhost, uri, referer, agent);
- }
- fflush(stdout);
---- a/webmitm.c 2011-06-19 17:14:07.231999387 -0500
-+++ b/webmitm.c 2011-06-19 17:15:10.559999375 -0500
-@@ -242,7 +242,7 @@
- word = buf_tok(&msg, "/", 1);
- vhost = buf_strdup(word);
- }
-- ssin.sin_addr.s_addr = libnet_name_resolve(vhost, 1);
-+ ssin.sin_addr.s_addr = libnet_name2addr4(NULL, vhost, 1);
- free(vhost);
-
- if (ssin.sin_addr.s_addr == ntohl(INADDR_LOOPBACK) ||
-@@ -510,7 +510,7 @@
- argv += optind;
-
- if (argc == 1) {
-- if ((static_host = libnet_name_resolve(argv[0], 1)) == -1)
-+ if ((static_host = libnet_name2addr4(NULL, argv[0], 1)) == -1)
- usage();
- }
- else if (argc != 0) usage();
---- a/webspy.c 2011-06-19 17:15:01.111999376 -0500
-+++ b/webspy.c 2011-06-19 17:15:10.563999375 -0500
-@@ -126,7 +126,7 @@
- if (auth == NULL)
- auth = "";
- if (vhost == NULL)
-- vhost = libnet_host_lookup(addr->daddr, 0);
-+ vhost = libnet_addr2name4(addr->daddr, 0);
-
- snprintf(cmd, sizeof(cmd), "openURL(http://%s%s%s%s)",
- auth, *auth ? "@" : "", vhost, uri);
-@@ -205,7 +205,7 @@
- cmdtab[0] = cmd;
- cmdtab[1] = NULL;
-
-- if ((host = libnet_name_resolve(argv[0], 1)) == -1)
-+ if ((host = libnet_name2addr4(NULL, argv[0], 1)) == -1)
- errx(1, "unknown host");
-
- if ((dpy = XOpenDisplay(NULL)) == NULL)