VERSION=0.1
-all: ${MODULE} noipv6
+all: ${MODULE} noipv6 noipv4
noipv6: noipv6.m4 Makefile
m4 -Dpkglibdir="${pkglibdir}" \
mv noipv6.tmp noipv6
chmod 755 noipv6
+noipv4: noipv4.m4 Makefile
+ m4 -Dpkglibdir="${pkglibdir}" \
+ -DVERSION="${VERSION}" \
+ -D__module__=${MODULE} \
+ -D__variable__=${VARIABLE} \
+ noipv4.m4 > noipv4.tmp
+ mv noipv4.tmp noipv4
+ chmod 755 noipv4
+
$(MODULE): gaise.lo
$(CC) $(CFLAGS) $(SHAREFLAGS) -o $@ $^ $(LIBS)
install: installdirs
$(INSTALL) -m 755 noipv6 $(bindir)/noipv6
+ $(INSTALL) -m 755 noipv4 $(bindir)/noipv4
$(INSTALL) -m 644 ${MODULE} $(libdir)/gaise/${MODULE}
#$(INSTALL) -m 644 noipv6.1 $(man1dir)/noipv6
+ #$(INSTALL) -m 644 noipv4.1 $(man1dir)/noipv4
install-strip: install
uninstall:
rm -f $(bindir)/noipv6
+ rm -f $(bindir)/noipv4
rm -f $(libdir)/gaise/${MODULE}
rm -f $(man1dir)/noipv6.1
+ rm -f $(man1dir)/noipv4.1
-rmdir $(libdir)/gaise
installdirs:
rm -f *.lo
rm -f *.dylib
rm -f noipv6
+ rm -f noipv4
dist:
rm -rf gaise-${VERSION}
mkdir gaise-${VERSION}
- cp COPYING Makefile README *.c noipv6.m4 noipv6.1 gaise-${VERSION}
+ cp COPYING Makefile README *.c gaise-${VERSION}
+ cp noipv6.m4 noipv6.1 gaise-${VERSION}
+ cp noipv4.m4 noipv4.1 gaise-${VERSION}
cp defs.Linux gaise-${VERSION}
mkdir gaise-${VERSION}/debian
cp debian/changelog gaise-${VERSION}/debian
#define _GNU_SOURCE
#include <netdb.h>
#include <dlfcn.h>
+#include <stdlib.h>
#ifndef LIBC_GETADDRINFO
# define LIBC_GETADDRINFO "getaddrinfo"
int rc;
real_getaddrinfo = dlsym(RTLD_NEXT, LIBC_GETADDRINFO);
rc = real_getaddrinfo(node, service, hints, res);
- if(!rc)
- addrinfo_remove(AF_INET6, res);
+ if(!rc) {
+ if(getenv("GAISE_REMOVE_IPV6"))
+ addrinfo_remove(AF_INET6, res);
+ if(getenv("GAISE_REMOVE_IPV4"))
+ addrinfo_remove(AF_INET, res);
+ }
return rc;
}
--- /dev/null
+#! /bin/sh
+
+set -e
+
+case "$1" in
+-h | --help )
+ echo "Gaise VERSION"
+ echo
+ echo "Usage:"
+ echo
+ echo " noipv4 [--] COMMAND ARGS..."
+ echo
+ exit 0
+ ;;
+-V | --version )
+ echo "Gaise VERSION"
+ exit 0
+ ;;
+-- )
+ shift
+ ;;
+-* )
+ echo "unknown option '$1'" 1>&2
+ exit 1
+ ;;
+esac
+
+if test "x$__variable__" = "x"; then
+ __variable__=pkglibdir/__module__
+else
+ __variable__="pkglibdir/__module__:$__VARIABLE__"
+fi
+export __variable__
+DYLD_FORCE_FLAT_NAMESPACE=yes
+export DYLD_FORCE_FLAT_NAMESPACE
+export GAISE_REMOVE_IPV4=yes
+exec "$@"