Bug#398356: nstx: Patch to source package
Package: nstx
Version: 1.1-beta6-5
Tags: patch
Followup-For: Bug #398356
A patch is attached. Apply to source package.
It adds a "-n" option to name tun device. Init.d script uses if_tun as name.
-- System Information:
Debian Release: 5.0.1
APT prefers stable
APT policy: (500, 'stable')
Architecture: i386 (i686)
Kernel: Linux 2.6.26-2-686 (SMP w/2 CPU cores)
Locale: LANG=en_GB.UTF-8, LC_CTYPE=en_GB.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/bash
Versions of packages nstx depends on:
ii adduser 3.110 add and remove users and groups
ii libc6 2.7-18 GNU C Library: Shared libraries
nstx recommends no packages.
nstx suggests no packages.
-- no debconf information
diff -aur nstx-1.1-beta6.orig/debian/changelog nstx-1.1-beta6/debian/changelog
--- nstx-1.1-beta6.orig/debian/changelog 2009-05-23 13:43:05.000000000 +0200
+++ nstx-1.1-beta6/debian/changelog 2009-05-24 00:11:54.476099823 +0200
@@ -1,3 +1,9 @@
+nstx (1.1-beta6-5.1~dmanso) unstable; urgency=low
+
+ * Add option -n to name tun devices (Closes: #398356).
+
+ -- David Manso <david.manso@epistolae.com> Sat, 23 May 2008 15:02:03 +0200
+
nstx (1.1-beta6-5) unstable; urgency=low
* Non-maintainer upload to solve release goal.
diff -aur nstx-1.1-beta6.orig/debian/nstx.default nstx-1.1-beta6/debian/nstx.default
--- nstx-1.1-beta6.orig/debian/nstx.default 2009-05-23 14:59:47.000000000 +0200
+++ nstx-1.1-beta6/debian/nstx.default 2009-05-24 00:13:14.776119728 +0200
@@ -18,8 +18,8 @@
# uncomment to start nstxcd on system startup
#start_nstxcd=yes
-# uncomment to bring up tun0 automatically
-#ifup_tun=tun0
+# uncomment to bring up tun-nstx automatically
+#ifup_tun=tun-nstx
# uncomment to tell nstx to bind to a specific interface
#NSTX_IFACE="1.2.3.4"
diff -aur nstx-1.1-beta6.orig/debian/nstx.nstxcd.init nstx-1.1-beta6/debian/nstx.nstxcd.init
--- nstx-1.1-beta6.orig/debian/nstx.nstxcd.init 2009-05-23 14:59:47.000000000 +0200
+++ nstx-1.1-beta6/debian/nstx.nstxcd.init 2009-05-24 00:11:54.480116582 +0200
@@ -39,8 +39,9 @@
start)
if check_start_nstxcd_option; then
echo -n "Starting $DESC: "
+ OPTIONS="${NSTX_IFACE:+-i $NSTX_IFACE} ${ifup_tun:+-n $ifup_tun} $NSTX_DOMAIN $NSTX_DNS_SERVER"
start-stop-daemon --start -b -m --quiet --pidfile /var/run/$NAME.pid \
- --exec $DAEMON -- $NSTX_DOMAIN $NSTX_DNS_SERVER
+ --exec $DAEMON -- $OPTIONS
sleep 1;
if [ -n "$ifup_tun" ]; then
ifup "$ifup_tun"
diff -aur nstx-1.1-beta6.orig/debian/nstx.nstxd.init nstx-1.1-beta6/debian/nstx.nstxd.init
--- nstx-1.1-beta6.orig/debian/nstx.nstxd.init 2009-05-23 14:59:47.000000000 +0200
+++ nstx-1.1-beta6/debian/nstx.nstxd.init 2009-05-24 00:11:54.480116582 +0200
@@ -38,11 +38,7 @@
start)
if check_start_nstxd_option; then
echo -n "Starting $DESC: "
- if [ -n "$NSTX_IFACE" ]; then
- OPTIONS="-i $NSTX_IFACE $NSTX_OPTIONS $NSTX_DOMAIN"
- else
- OPTIONS="$NSTX_OPTIONS $NSTX_DOMAIN"
- fi
+ OPTIONS="${NSTX_IFACE:+-i $NSTX_IFACE} ${ifup_tun:+-n $ifup_tun} $NSTX_OPTIONS $NSTX_DOMAIN"
start-stop-daemon --start -b -m --quiet --pidfile /var/run/$NAME.pid \
--exec $DAEMON -- $OPTIONS
sleep 1;
diff -aur nstx-1.1-beta6.orig/nstxcd.8 nstx-1.1-beta6/nstxcd.8
--- nstx-1.1-beta6.orig/nstxcd.8 2009-05-23 14:59:47.000000000 +0200
+++ nstx-1.1-beta6/nstxcd.8 2009-05-24 00:11:54.480116582 +0200
@@ -3,7 +3,7 @@
nstxcd \- IP over DNS tunneling client
.SH SYNOPSIS
-.B "nstxcd \fIDOMAIN\fR \fIIPADDRESS\fR"
+.B "nstxcd \fIOPTIONS\fR \fIDOMAIN\fR \fIIPADDRESS\fR"
.SH DESCRIPTION
.B nstxcd
@@ -13,6 +13,10 @@
.SH OPTIONS
.B nstxcd
takes the following options:
+.IP \-d tun-device
+Use this tun device instead of /dev/net/tun
+.IP \-n tun-name
+Use this tun name instead of tun0
.IP "domain"
The domain that nstxcd will send requests to. This domain must be delegated
to a machine that is running nstxd.
diff -aur nstx-1.1-beta6.orig/nstxcd.c nstx-1.1-beta6/nstxcd.c
--- nstx-1.1-beta6.orig/nstxcd.c 2009-05-23 14:59:47.000000000 +0200
+++ nstx-1.1-beta6/nstxcd.c 2009-05-24 00:11:54.480116582 +0200
@@ -55,14 +55,14 @@
static void
usage(const char *prog, int code)
{
- fprintf(stderr, "Usage: %s [-d tun-device] <domainname> <dns-server>\n"
+ fprintf(stderr, "Usage: %s [-d tun-device] [-n tun-name] <domainname> <dns-server>\n"
"Example: %s tun.yomama.com 125.23.53.12\n", prog, prog);
exit(code);
}
int main (int argc, char * argv[]) {
struct nstxmsg *msg;
- const char *device = NULL;
+ const char *device = NULL, *name = NULL;
int ch;
nsid = time(NULL);
@@ -70,11 +70,14 @@
if (argc < 3)
usage(argv[0], EX_USAGE);
- while ((ch = getopt(argc, argv, "hd:")) != -1) {
+ while ((ch = getopt(argc, argv, "hd:n:")) != -1) {
switch (ch) {
case 'd':
device = optarg;
break;
+ case 'n':
+ name = optarg;
+ break;
case 'h':
usage(argv[0], 0);
default:
@@ -85,7 +88,7 @@
dns_setsuffix(argv[optind]);
qsettimeout(10);
- open_tuntap(device);
+ open_tuntap(device, name);
open_ns(argv[optind + 1]);
for (;;) {
diff -aur nstx-1.1-beta6.orig/nstxd.8 nstx-1.1-beta6/nstxd.8
--- nstx-1.1-beta6.orig/nstxd.8 2009-05-23 14:59:47.000000000 +0200
+++ nstx-1.1-beta6/nstxd.8 2009-05-24 00:11:54.480116582 +0200
@@ -15,7 +15,9 @@
.B nstxd
takes the following option:
.IP \-d tun-device
-Use this tun device instead of tun0
+Use this tun device instead of /dev/net/tun
+.IP \-n tun-name
+Use this tun name instead of tun0
.IP \-i ipaddr
Bind to this IP address rather than every available address
.IP \-C dir
diff -aur nstx-1.1-beta6.orig/nstxd.c nstx-1.1-beta6/nstxd.c
--- nstx-1.1-beta6.orig/nstxd.c 2009-05-23 14:59:47.000000000 +0200
+++ nstx-1.1-beta6/nstxd.c 2009-05-24 00:11:54.484098001 +0200
@@ -55,7 +55,8 @@
{
fprintf (stderr, "usage: %s [options] <domainname>\n"
"Where options are:\n"
- "\t-d tun-device (use this tun/tap device instead of default\n"
+ "\t-d tun-device (use this tun/tap device instead of default)\n"
+ "\t-n tun-name (use this tun/tap name instead of default)\n"
"\t-i ip.to.bi.nd (bind to port 53 on this IP only)\n"
"\t-C dir (chroot() to this directory after initialization)\n"
"\t-D (call daemon(3) to detach from terminal)\n"
@@ -68,13 +69,13 @@
int main (int argc, char *argv[]) {
signed char ch;
- const char *device = NULL, *dir = NULL;
+ const char *device = NULL, *name = NULL, *dir = NULL;
in_addr_t bindto = INADDR_ANY;
uid_t uid = 0;
int daemonize = 0;
int logmask = LOG_UPTO(LOG_INFO);
- while ((ch = getopt(argc, argv, "gDC:u:hd:i:")) != -1) {
+ while ((ch = getopt(argc, argv, "gDC:u:hd:n:i:")) != -1) {
switch(ch) {
case 'i':
bindto = inet_addr(optarg);
@@ -87,6 +88,9 @@
case 'd':
device = optarg;
break;
+ case 'n':
+ name = optarg;
+ break;
case 'D':
daemonize = 1;
break;
@@ -121,7 +125,7 @@
dns_setsuffix(argv[optind]);
- open_tuntap(device);
+ open_tuntap(device, name);
open_ns_bind(bindto);
if (dir) {
diff -aur nstx-1.1-beta6.orig/nstxfun.h nstx-1.1-beta6/nstxfun.h
--- nstx-1.1-beta6.orig/nstxfun.h 2004-06-27 23:43:34.000000000 +0200
+++ nstx-1.1-beta6/nstxfun.h 2009-05-24 00:11:54.484098001 +0200
@@ -52,7 +52,7 @@
/* DNS */
-void open_tuntap (const char *device);
+void open_tuntap (const char *device, const char *name);
void open_ns (const char *ip);
void open_ns_bind(in_addr_t ip);
diff -aur nstx-1.1-beta6.orig/nstx_tuntap.c nstx-1.1-beta6/nstx_tuntap.c
--- nstx-1.1-beta6.orig/nstx_tuntap.c 2009-05-23 14:59:47.000000000 +0200
+++ nstx-1.1-beta6/nstx_tuntap.c 2009-05-24 00:11:54.484098001 +0200
@@ -44,7 +44,7 @@
#endif
void
-open_tuntap(const char *device)
+open_tuntap(const char *device, const char *name)
{
int tunerr;
#ifdef linux
@@ -52,6 +52,8 @@
#endif
fprintf(stderr, "Opening tun/tap-device... ");
+ if (name)
+ strncpy(dev, name, IFNAMSIZ);
if ((tunerr = tun_alloc(device ? device : TUNDEV))
#ifdef linux
&& (taperr = tap_alloc(device ? device : TAPDEV))
@@ -120,7 +122,10 @@
memset(&ifr, 0, sizeof(ifr));
ifr.ifr_flags = IFF_TUN|IFF_NO_PI;
-
+
+ if (*dev)
+ strncpy(ifr.ifr_name, dev, IFNAMSIZ);
+
if (ioctl(tfd, TUNSETIFF, (void *) &ifr) < 0)
{
close(tfd);
Reply to: