diff options
Diffstat (limited to 'unmaintained/dsniff/15_checksum_libnids.patch')
-rw-r--r-- | unmaintained/dsniff/15_checksum_libnids.patch | 94 |
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, ¶m)) -+ 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(); - |