Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/trunk]: src/external/bsd/libpcap/dist make the patch compile on NetBSD



details:   https://anonhg.NetBSD.org/src/rev/fead6a8303e4
branches:  trunk
changeset: 1008643:fead6a8303e4
user:      christos <christos%NetBSD.org@localhost>
date:      Sun Mar 29 19:50:23 2020 +0000

description:
make the patch compile on NetBSD

diffstat:

 external/bsd/libpcap/dist/pcap-rpcap-unix.c |  64 +++++++++++++---------------
 1 files changed, 30 insertions(+), 34 deletions(-)

diffs (236 lines):

diff -r 1af4cda46c6b -r fead6a8303e4 external/bsd/libpcap/dist/pcap-rpcap-unix.c
--- a/external/bsd/libpcap/dist/pcap-rpcap-unix.c       Sun Mar 29 19:49:26 2020 +0000
+++ b/external/bsd/libpcap/dist/pcap-rpcap-unix.c       Sun Mar 29 19:50:23 2020 +0000
@@ -51,7 +51,7 @@
 #include <time.h>
 #include <sys/time.h>
 #include <netinet/in.h>
-#include <linux/types.h>
+#include <sys/types.h>
 
 #include "pcap-rpcap-unix.h"
 
@@ -113,17 +113,17 @@
 }
 
 static int
-rpcap_recv_pkt(pcap_t *p, int fd, char *recv_buf, unsigned int buflen)
+rpcap_recv_pkt(pcap_t *p, int fd, unsigned char *recv_buf, unsigned int buflen)
 {
-       static char discard[1024];
+       static unsigned char discard[1024];
 
        size_t mlen;
        int ret;
-       char *buf;
+       unsigned char *buf;
        unsigned int len;
        unsigned int pkt_len;
 
-       char hdr[8];
+       unsigned char hdr[8];
        int pkt_type;
 
 /* read header loop */
@@ -162,7 +162,7 @@
        pkt_len  = get32(&hdr[4]);
 
        if (pkt_type == RPCAP_MSG_ERROR) {
-               recv_buf = p->errbuf;
+               recv_buf = (unsigned char *)p->errbuf;
                buflen = PCAP_ERRBUF_SIZE-1;
        }
 
@@ -216,10 +216,8 @@
 }
 
 static int
-rpcap_send_pkt(pcap_t *p, const char *send_buf, unsigned int len)
+rpcap_send_pkt(pcap_t *p, const unsigned char *send_buf, unsigned int len)
 {
-       char *buf;
-
        size_t mlen;
        int ret;
 
@@ -252,7 +250,7 @@
 }
 
 static int
-rpcap_send_request(pcap_t *p, char type, char *buf, unsigned int payload_len)
+rpcap_send_request(pcap_t *p, char type, unsigned char *buf, unsigned int payload_len)
 {
        buf[0] = RPCAP_VERSION_EXPERIMENTAL;
        buf[1] = type;
@@ -265,14 +263,13 @@
 static int
 rpcap_send_request_auth(pcap_t *p, const char *username, const char *password)
 {
-       int res;
 
        if (username || password) {
                snprintf(p->errbuf, PCAP_ERRBUF_SIZE, "rpcap: auth not supported (yet!)");
                return -1;
 
        } else {
-               static const char login_null_pkt[16] = { 
+               static const unsigned char login_null_pkt[16] = { 
                        RPCAP_VERSION_EXPERIMENTAL,
                        RPCAP_MSG_AUTH_REQ, 
                        0, 0, 
@@ -293,14 +290,14 @@
 {
        const size_t interface_len = strlen(interface);
 
-       char buf_open[8+255] = { 
+       unsigned char buf_open[8+255] = { 
                RPCAP_VERSION_EXPERIMENTAL, 
                RPCAP_MSG_OPEN_REQ, 
                0, 0, 
                0, 0, 0, interface_len
        };
 
-       char reply_buf[8];
+       unsigned char reply_buf[8];
        int reply_len;
 
        if (interface_len > 255) {
@@ -328,7 +325,7 @@
 static int
 rpcap_send_request_start(pcap_t *p, struct in_addr *server_ip)
 {
-       char buf_start[8+12+8+8] = { 
+       unsigned char buf_start[8+12+8+8] = { 
                RPCAP_VERSION_EXPERIMENTAL, 
                RPCAP_MSG_STARTCAP_REQ, 
                0, 0, 
@@ -350,15 +347,14 @@
        };
 
        struct sockaddr_in sin;
-       char reply_buf[8];
+       unsigned char reply_buf[8];
        int reply_len;
        int fd;
 
-       unsigned int buf_size;
        unsigned short portdata;
 
        put32(&buf_start[8], p->snapshot);      /* snaplen */
-       put32(&buf_start[12], p->md.timeout/2); /* read_timeout */
+       put32(&buf_start[12], p->opt.timeout/2); /* read_timeout */
 
        if (rpcap_send_pkt(p, buf_start, sizeof(buf_start)))
                return -1;
@@ -370,7 +366,7 @@
                return -1;
        }
 
-       buf_size = get32(&reply_buf[0]);
+       get32(&reply_buf[0]);
        portdata = get16(&reply_buf[4]);
 
        fd = socket(AF_INET, SOCK_STREAM, 0);
@@ -405,14 +401,14 @@
 static int
 rpcap_stats_common(pcap_t *handle, struct pcap_stat *stats)
 {
-       static const char buf_stats[8] = {
+       static const unsigned char buf_stats[8] = {
                RPCAP_VERSION_EXPERIMENTAL, 
                RPCAP_MSG_STATS_REQ, 
                0, 0, 
                0, 0, 0, 0
        };
 
-       char reply_buf[16];
+       unsigned char reply_buf[16];
        int reply_len;
 
 /* local */
@@ -442,7 +438,7 @@
 static int 
 rpcap_setfilter_common(pcap_t *handle, struct bpf_program *prog)
 {
-       char *buf_setfilter;
+       unsigned char *buf_setfilter;
 
        /* update local filter */
        if (install_bpf_program(handle, prog) == -1)
@@ -451,9 +447,9 @@
        /* update remote filter */
        if (prog->bf_len < 0xfffff) {
                unsigned int data_size = 8 + 8 * prog->bf_len;
-               char *buf_filter;
-               char *buf_insn;
-               int i;
+               unsigned char *buf_filter;
+               unsigned char *buf_insn;
+               size_t i;
 
                buf_setfilter = malloc(8 + data_size);
                if (!buf_setfilter) {
@@ -469,7 +465,7 @@
                put32(&buf_filter[4], prog->bf_len);
 
                for (i = 0; i < prog->bf_len; i++) {
-                       char *data = &buf_insn[i * 8];
+                       unsigned char *data = &buf_insn[i * 8];
 
                        put16(&data[0], prog->bf_insns[i].code);
                        data[2] = prog->bf_insns[i].jt;
@@ -493,14 +489,14 @@
 rpcap_read_unix(pcap_t *handle, int max_packets, pcap_handler callback, u_char *user)
 {
        struct pcap_pkthdr pkth;
-       const char *pkt;
-       const char *buf;
-       int pkt_len;
+       const unsigned char *pkt;
+       const unsigned char *buf;
+       unsigned int pkt_len;
        int count = 0;
 
        pkt_len = rpcap_recv_pkt(handle, handle->selectable_fd, handle->buffer, handle->bufsize);
        if (pkt_len < 20) {
-               if (pkt_len >= 0) {
+               if (pkt_len == 0) {
                        snprintf(handle->errbuf, PCAP_ERRBUF_SIZE, "pkt_len check failed (%u < 20)", pkt_len);
                        return -1;
                }
@@ -531,7 +527,7 @@
        if (handle->fcode.bf_insns == NULL ||
                        bpf_filter(handle->fcode.bf_insns, pkt, pkth.len, pkth.caplen)) 
        {
-               handle->md.packets_read++;
+//             handle->md.packets_read++;
                callback(user, &pkth, pkt);
                count++;
        }
@@ -555,7 +551,7 @@
 static int
 rpcap_activate(pcap_t *handle)
 {
-       const char *dev = handle->opt.source;
+       const char *dev = handle->opt.device;
        const char *tmp;
 
        char *host;
@@ -652,7 +648,7 @@
        sin.sin_family = AF_INET;
        sin.sin_addr.s_addr = inet_addr(host);
        sin.sin_port = htons(port);
-       if (sin.sin_addr.s_addr == -1) {
+       if (sin.sin_addr.s_addr == INADDR_NONE) {
                snprintf(handle->errbuf, PCAP_ERRBUF_SIZE, "rpcap: not ipv4 address");
                goto free_fail;
        }
@@ -756,7 +752,7 @@
 
        *is_ours = 1;
 
-       p = pcap_create_common(device, err_str);
+       p = pcap_create_common(__UNCONST(device), 16384);
        if (p == NULL)
                return NULL;
 



Home | Main Index | Thread Index | Old Index