* Packaging updates
* Move to 3.0 (native) source format
* Bump DH compat level to 8
* Fix ordering of stdio.h/syslog.h includes (closes: #707385)
* Create accounting_dir in init script if necessary (closes: #418156)
* Bump Standards-Version to 3.9.4.0
* Add build-arch/build-indep targets to debian/rules
* Fix: compiling Warning
DEFINES += -DLIBDIR='"$(libdir)"'
DEFINES += -DETCDIR='"$(etcdir)"'
DEFINES += -DLIBDIR='"$(libdir)"'
DEFINES += -DETCDIR='"$(etcdir)"'
-OPTIM =
-OPTIM += -g
-OPTIM += -O3
+DEB_CFLAGS_MAINT_APPEND=-Wall -O3 -Wno-format-zero-length
CC = gcc
LD = gcc
INCLUDES = -I.
CC = gcc
LD = gcc
INCLUDES = -I.
-CPPFLAGS = $(INCLUDES) $(DEFINES)
-CFLAGS = -Wall -Wformat-security -Wno-format-zero-length $(OPTIM)
-LDFLAGS =
+CPPFLAGS = `dpkg-buildflags --get CPPFLAGS` $(INCLUDES) $(DEFINES)
+CFLAGS = `dpkg-buildflags --get CFLAGS`
+LDFLAGS = `dpkg-buildflags --get LDFLAGS`
LDLIBS =
INSTALL = install -c -D -o root -g root
LDLIBS =
INSTALL = install -c -D -o root -g root
-l2tpns.LIBS = -lm -lcli -ldl
+l2tpns.LIBS = -lcli -ldl
OBJS = arp.o cli.o cluster.o constants.o control.o icmp.o l2tpns.o \
ll.o md5.o ppp.o radius.o tbf.o util.o pppoe.o l2tplac.o
OBJS = arp.o cli.o cluster.o constants.o control.o icmp.o l2tpns.o \
ll.o md5.o ppp.o radius.o tbf.o util.o pppoe.o l2tplac.o
GET_STAT(tun_tx_bytes),
GET_STAT(tun_tx_packets),
GET_STAT(tun_tx_errors));
GET_STAT(tun_tx_bytes),
GET_STAT(tun_tx_packets),
GET_STAT(tun_tx_errors));
cli_print(cli, "%-10s %10s %10s %10s %10s", "Tunnel", "Bytes", "Packets", "Errors", "Retries");
cli_print(cli, "%-10s %10u %10u %10u", "RX",
cli_print(cli, "%-10s %10s %10s %10s %10s", "Tunnel", "Bytes", "Packets", "Errors", "Retries");
cli_print(cli, "%-10s %10u %10u %10u", "RX",
GET_STAT(tunnel_tx_packets),
GET_STAT(tunnel_tx_errors),
GET_STAT(tunnel_retries));
GET_STAT(tunnel_tx_packets),
GET_STAT(tunnel_tx_errors),
GET_STAT(tunnel_retries));
cli_print(cli, "%-30s%-10s", "Counter", "Value");
cli_print(cli, "-----------------------------------------");
cli_print(cli, "%-30s%-10s", "Counter", "Value");
cli_print(cli, "-----------------------------------------");
char *p = strchr(t, '\n');
if (p) *p = 0;
char *p = strchr(t, '\n');
if (p) *p = 0;
cli_print(cli, "Last counter reset %s", t);
}
cli_print(cli, "Last counter reset %s", t);
}
return CLI_HELP_NO_ARGS;
fh = fopen("/proc/loadavg", "r");
return CLI_HELP_NO_ARGS;
fh = fopen("/proc/loadavg", "r");
+ p = fgets(buf, 100, fh);
fclose(fh);
for (i = 0; i < 3; i++)
fclose(fh);
for (i = 0; i < 3; i++)
cli_print(cli, "Peer AS Address "
"State Retries Retry in Route Pend Timers");
cli_print(cli, "------------------ ----- --------------- "
cli_print(cli, "Peer AS Address "
"State Retries Retry in Route Pend Timers");
cli_print(cli, "------------------ ----- --------------- "
Section: net
Priority: optional
Maintainer: Jonathan McDowell <noodles@earth.li>
Section: net
Priority: optional
Maintainer: Jonathan McDowell <noodles@earth.li>
-Build-Depends: debhelper (>> 4), libcli-dev (>> 1.8.5)
-Standards-Version: 3.7.2.0
+Build-Depends: debhelper (>> 8), libcli-dev (>> 1.8.5)
+Standards-Version: 3.9.4.0
Package: l2tpns
Architecture: any
Package: l2tpns
Architecture: any
-Depends: ${shlibs:Depends}
+Depends: ${shlibs:Depends}, ${misc:Depends}
Description: layer 2 tunnelling protocol network server (LNS)
l2tpns is a daemon designed to terminate large volumes of layer 2
tunnelling protocol (RFC 2661: L2TP) sessions.
Description: layer 2 tunnelling protocol network server (LNS)
l2tpns is a daemon designed to terminate large volumes of layer 2
tunnelling protocol (RFC 2661: L2TP) sessions.
NAME=l2tpns
DESC=l2tpns
ARGS="-d"
NAME=l2tpns
DESC=l2tpns
ARGS="-d"
+ACCTDIR=$(grep "set accounting_dir" /etc/l2tpns/startup-config | sed -e 's/.* "//' -e 's/".*//')
test -f $DAEMON || exit 0
test -f $DAEMON || exit 0
case "$1" in
start)
echo -n "Starting $DESC: "
case "$1" in
start)
echo -n "Starting $DESC: "
+ if [ ! -d "$ACCTDIR" ]; then
+ mkdir -p "$ACCTDIR"
+ fi
start-stop-daemon --start --quiet --pidfile /var/run/$NAME.pid \
--exec $DAEMON -- $ARGS
echo "$NAME."
start-stop-daemon --start --quiet --pidfile /var/run/$NAME.pid \
--exec $DAEMON -- $ARGS
echo "$NAME."
+++ /dev/null
-#! /bin/sh
-# preinst script for l2tpns
-
-set -e
-
-# dh_installdeb will replace this with shell code automatically
-# generated by other debhelper scripts.
-
-#DEBHELPER#
-
-exit 0
-
-
# Sample debian/rules that uses debhelper.
# GNU copyright 1997 to 1999 by Joey Hess.
# Sample debian/rules that uses debhelper.
# GNU copyright 1997 to 1999 by Joey Hess.
-ifneq (,$(findstring debug,$(DEB_BUILD_OPTIONS)))
- CFLAGS += -g
-endif
ifeq (,$(findstring nostrip,$(DEB_BUILD_OPTIONS)))
INSTALL_PROGRAM += -s
endif
ifeq (,$(findstring nostrip,$(DEB_BUILD_OPTIONS)))
INSTALL_PROGRAM += -s
endif
+build: build-arch build-indep
+build-arch: build-stamp
+build-indep: build-stamp
build-stamp: configure-stamp
dh_testdir
build-stamp: configure-stamp
dh_testdir
rm -f build-stamp configure-stamp
# Add here commands to clean up after the build process.
rm -f build-stamp configure-stamp
# Add here commands to clean up after the build process.
+ [ ! -f Makefile ] || $(MAKE) clean
dh_clean
install: build
dh_testdir
dh_testroot
dh_clean
install: build
dh_testdir
dh_testroot
dh_installdirs
$(MAKE) install DESTDIR=$(CURDIR)/debian/l2tpns
dh_installdirs
$(MAKE) install DESTDIR=$(CURDIR)/debian/l2tpns
for (i = 0; up_commands[i] && *up_commands[i]; i++)
{
f->log(3, 0, 0, "Running %s\n", up_commands[i]);
for (i = 0; up_commands[i] && *up_commands[i]; i++)
{
f->log(3, 0, 0, "Running %s\n", up_commands[i]);
- system(up_commands[i]);
+ int status = system(up_commands[i]);
{
char cmd[2048];
sessionidt sess;
{
char cmd[2048];
sessionidt sess;
if (!s) return 0;
if (!s->opened) return 0;
if (!s) return 0;
if (!s->opened) return 0;
f->fmtaddr(htonl(s->ip), 0));
f->log(3, sess, s->tunnel, "%s\n", cmd);
f->fmtaddr(htonl(s->ip), 0));
f->log(3, sess, s->tunnel, "%s\n", cmd);
s->walled_garden = 1;
}
else
s->walled_garden = 1;
}
else
f->log(3, sess, s->tunnel, "%s\n", cmd);
while (--count)
{
f->log(3, sess, s->tunnel, "%s\n", cmd);
while (--count)
{
- int status = system(cmd);
if (WEXITSTATUS(status) != 0) break;
}
if (WEXITSTATUS(status) != 0) break;
}
for (i = 0; down_commands[i] && *down_commands[i]; i++)
{
f->log(3, 0, 0, "Running %s\n", down_commands[i]);
for (i = 0; down_commands[i] && *down_commands[i]; i++)
{
f->log(3, 0, 0, "Running %s\n", down_commands[i]);
- system(down_commands[i]);
+ int status = system(down_commands[i]);
for (i = 0; down_commands[i] && *down_commands[i]; i++)
{
f->log(3, 0, 0, "Running %s\n", down_commands[i]);
for (i = 0; down_commands[i] && *down_commands[i]; i++)
{
f->log(3, 0, 0, "Running %s\n", down_commands[i]);
- system(down_commands[i]);
+ int status = system(down_commands[i]);
#include <fcntl.h>
#include <linux/if_tun.h>
#define SYSLOG_NAMES
#include <fcntl.h>
#include <linux/if_tun.h>
#define SYSLOG_NAMES
#include <syslog.h>
#include <malloc.h>
#include <net/route.h>
#include <syslog.h>
#include <malloc.h>
#include <net/route.h>
#include <netinet/ip6.h>
#include <stdarg.h>
#include <stdlib.h>
#include <netinet/ip6.h>
#include <stdarg.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>
#include <sys/ioctl.h>
#include <string.h>
#include <ctype.h>
#include <sys/ioctl.h>
case 'd':
if (fork()) exit(0);
setsid();
case 'd':
if (fork()) exit(0);
setsid();
- freopen("/dev/null", "r", stdin);
- freopen("/dev/null", "w", stdout);
- freopen("/dev/null", "w", stderr);
+ FILE *in = freopen("/dev/null", "r", stdin);
+ FILE *out = freopen("/dev/null", "w", stdout);
+ FILE *err = freopen("/dev/null", "w", stderr);
break;
case 'v':
optdebug++;
break;
case 'v':
optdebug++;
LOG(0, 0, 0, "Can't set ulimit: %s\n", strerror(errno));
// Make core dumps go to /tmp
LOG(0, 0, 0, "Can't set ulimit: %s\n", strerror(errno));
// Make core dumps go to /tmp
+ int ret = chdir("/tmp");
}
if (config->scheduler_fifo)
}
if (config->scheduler_fifo)