pkgsrc-wip/ftpsesame/patches/patch-ab

95 lines
2.1 KiB
Plaintext

$NetBSD: patch-ab,v 1.2 2006/08/16 12:50:23 jsonn Exp $
--- ftpsesame.c.orig 2004-10-05 12:07:24.000000000 +0000
+++ ftpsesame.c
@@ -19,14 +19,25 @@
#include <sys/ioctl.h>
#include <net/if.h>
-#include <net/pfvar.h>
+#if defined(__DragonFly__)
+#include <net/ppp_layer/ppp_defs.h>
+#else
#include <net/ppp_defs.h>
-#include <netinet/if_ether.h>
+#endif
+
#include <netinet/in.h>
#include <netinet/in_systm.h>
#include <netinet/ip.h>
+#include <netinet/if_ether.h>
#include <netinet/tcp.h>
#include <netinet/tcp_fsm.h>
+
+#if defined(__DragonFly__)
+#include <net/pf/pfvar.h>
+#else
+#include <net/pfvar.h>
+#endif
+
#include <arpa/inet.h>
#include <ctype.h>
@@ -34,6 +45,7 @@
#include <errno.h>
#include <pcap.h>
#include <pwd.h>
+#include <signal.h>
#include <stdarg.h>
#include <stdio.h>
#include <stdlib.h>
@@ -46,7 +58,7 @@
#include "state.h"
#define NOPRIV_USER "proxy"
-#define CHROOT_DIR "/var/empty"
+#define CHROOT_DIR "/var/chroot/proxy"
#define PCAP_TO_MS 500
#define PURGE_INTERVAL 60
@@ -515,14 +527,18 @@ main(int argc, char **argv)
errx(1, "filter '%s': %s", filter, pcap_geterr(hpcap));
immediate = 1;
+#ifdef BIOCIMMEDIATE
if (ioctl(pcap_fileno(hpcap), BIOCIMMEDIATE, &immediate) < 0)
err(1, "BIOCIMMEDIATE");
+#endif
wfilter.bf_len = 1;
wfilter.bf_insns = blockall;
+#ifdef __OpenBSD__
if (ioctl(pcap_fileno(hpcap), BIOCSETWF, &wfilter) < 0)
err(1, "BIOCSETWF");
if (ioctl(pcap_fileno(hpcap), BIOCLOCK) < 0)
err(1, "BIOCLOCK");
+#endif
if (daemonize) {
if (daemon(0, 0) == -1)
@@ -626,10 +642,16 @@ drop_privs(void)
chdir("/");
gidset[0] = pw->pw_gid;
+#ifdef __OpenBSD__
if (setgroups(1, gidset) == -1 || setegid(pw->pw_gid) == -1 ||
setgid(pw->pw_gid) == -1 || seteuid(pw->pw_uid) == -1 ||
setuid(pw->pw_uid) == -1)
return (0);
+#else
+ if (setgroups(1, gidset) == -1 || setgid(pw->pw_gid) == -1 ||
+ setuid(pw->pw_uid) == -1)
+ return (0);
+#endif
return (1);
}
@@ -663,7 +685,7 @@ sig_close(int sig)
gotsig_close = 1;
}
-__dead void
+void
usage(void)
{
fprintf(stderr, "usage: %s [-d] [-D level] [-i interface] " \