aboutsummaryrefslogtreecommitdiffstats
path: root/unmaintained/dsniff/15_checksum_libnids.patch
diff options
context:
space:
mode:
Diffstat (limited to 'unmaintained/dsniff/15_checksum_libnids.patch')
-rw-r--r--unmaintained/dsniff/15_checksum_libnids.patch94
1 files changed, 0 insertions, 94 deletions
diff --git a/unmaintained/dsniff/15_checksum_libnids.patch b/unmaintained/dsniff/15_checksum_libnids.patch
deleted file mode 100644
index adaa67c9f0..0000000000
--- a/unmaintained/dsniff/15_checksum_libnids.patch
+++ /dev/null
@@ -1,94 +0,0 @@
-Author: Gleb Paharenko <gpaharenko@gmail.com>
-Description: Workaround to #420129.
---- a/dsniff.c 2011-06-19 17:15:01.071999376 -0500
-+++ b/dsniff.c 2011-06-19 17:15:33.707999369 -0500
-@@ -70,6 +70,80 @@
- {
- }
-
-+
-+static int get_all_ifaces(struct ifreq **, int *);
-+static unsigned int get_addr_from_ifreq(struct ifreq *);
-+
-+int all_local_ipaddrs_chksum_disable()
-+{
-+ struct ifreq *ifaces;
-+ int ifaces_count;
-+ int i, ind = 0;
-+ struct nids_chksum_ctl *ctlp;
-+ unsigned int tmp;
-+
-+ if (!get_all_ifaces(&ifaces, &ifaces_count))
-+ return -1;
-+ ctlp =
-+ (struct nids_chksum_ctl *) malloc(ifaces_count *
-+ sizeof(struct
-+ nids_chksum_ctl));
-+ if (!ctlp)
-+ return -1;
-+ for (i = 0; i < ifaces_count; i++) {
-+ tmp = get_addr_from_ifreq(ifaces + i);
-+ if (tmp) {
-+ ctlp[ind].netaddr = tmp;
-+ ctlp[ind].mask = inet_addr("255.255.255.255");
-+ ctlp[ind].action = NIDS_DONT_CHKSUM;
-+ ind++;
-+ }
-+ }
-+ free(ifaces);
-+ nids_register_chksum_ctl(ctlp, ind);
-+}
-+
-+/* helper functions for Example 2 */
-+unsigned int get_addr_from_ifreq(struct ifreq *iface)
-+{
-+ if (iface->ifr_addr.sa_family == AF_INET)
-+ return ((struct sockaddr_in *) &(iface->ifr_addr))->
-+ sin_addr.s_addr;
-+ return 0;
-+}
-+
-+static int get_all_ifaces(struct ifreq **ifaces, int *count)
-+{
-+ int ifaces_size = 8 * sizeof(struct ifreq);
-+ struct ifconf param;
-+ int sock;
-+ unsigned int i;
-+
-+ *ifaces = malloc(ifaces_size);
-+ sock = socket(PF_INET, SOCK_DGRAM, IPPROTO_IP);
-+ if (sock <= 0)
-+ return 0;
-+ for (;;) {
-+ param.ifc_len = ifaces_size;
-+ param.ifc_req = *ifaces;
-+ if (ioctl(sock, SIOCGIFCONF, &param))
-+ goto err;
-+ if (param.ifc_len < ifaces_size)
-+ break;
-+ free(*ifaces);
-+ ifaces_size *= 2;
-+ ifaces = malloc(ifaces_size);
-+ }
-+ *count = param.ifc_len / sizeof(struct ifreq);
-+ close(sock);
-+ return 1;
-+ err:
-+ close(sock);
-+ return 0;
-+}
-+
-+
-+
- int
- main(int argc, char *argv[])
- {
-@@ -189,6 +263,8 @@
- warnx("using %s", nids_params.filename);
- }
- }
-+
-+ all_local_ipaddrs_chksum_disable();
-
- nids_run();
-