Port l2tpns to -ng
authorFlorian Fainelli <florian@openwrt.org>
Thu, 3 Aug 2006 11:49:46 +0000 (11:49 +0000)
committerFlorian Fainelli <florian@openwrt.org>
Thu, 3 Aug 2006 11:49:46 +0000 (11:49 +0000)
SVN-Revision: 4418

net/l2tpns/Makefile [new file with mode: 0644]
net/l2tpns/patches/01-honor_includes_remove_backtrace.patch [new file with mode: 0644]

diff --git a/net/l2tpns/Makefile b/net/l2tpns/Makefile
new file mode 100644 (file)
index 0000000..fc8d547
--- /dev/null
@@ -0,0 +1,55 @@
+# Copyright (C) 2006 OpenWrt.org
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+# $Id$
+
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=l2tpns
+PKG_VERSION:=2.1.14
+PKG_RELEASE:=1
+PKG_MD5SUM:=2a0ee2a3678160c335f1d68c17c4f871
+
+PKG_SOURCE_URL:=@SF/l2tpns
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
+PKG_CAT:=zcat
+
+PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)
+PKG_INSTALL_DIR:=$(PKG_BUILD_DIR)/ipkg-install
+
+include $(INCLUDE_DIR)/package.mk
+
+define Package/l2tpns
+  SECTION:=net
+  CATEGORY:=Network
+  DEPENDS:=+libcli
+  TITLE:=An L2TP enhanced server
+  DESCRIPTION:=l2tpns is a layer 2 tunneling protocol network server (LNS).\\\
+it supports up to 65535 concurrent sessions per server/cluster\\\
+plus ISP features such as rate limiting, walled garden, usage\\\
+accounting, and more.\\\
+  URL:=http://sourceforge.net/projects/l2tpns
+endef
+       
+define Build/Compile
+       $(MAKE) -C $(PKG_BUILD_DIR) \
+               CC=$(TARGET_CC) \
+               LD=$(TARGET_CC) \
+               OPTIM="$(TARGET_CFLAGS)" \
+               DESTDIR=$(PKG_INSTALL_DIR) \
+               STAGING_DIR=$(STAGING_DIR) \
+               all install
+endef
+
+define Package/l2tpns/install  
+       install -d -m0755 $(1)/etc/l2tpns
+       $(CP) $(PKG_INSTALL_DIR)/etc/l2tpns/* $(1)/etc/l2tpns/
+       install -d -m0755 $(1)/usr/lib/l2tpns
+       $(CP) $(PKG_INSTALL_DIR)/usr/lib/l2tpns/* $(1)/usr/lib/l2tpns/
+       install -d -m0755 $(1)/usr/sbin
+       $(CP) $(PKG_INSTALL_DIR)/usr/sbin/* $(1)/usr/sbin/
+endef
+
+$(eval $(call BuildPackage,l2tpns))
diff --git a/net/l2tpns/patches/01-honor_includes_remove_backtrace.patch b/net/l2tpns/patches/01-honor_includes_remove_backtrace.patch
new file mode 100644 (file)
index 0000000..a8e4d75
--- /dev/null
@@ -0,0 +1,128 @@
+diff -urN orig/l2tpns-2.1.14/Makefile l2tpns-2.1.14/Makefile
+--- orig/l2tpns-2.1.14/Makefile        2005-12-07 06:21:37.000000000 +0100
++++ l2tpns-2.1.14/Makefile     2005-12-14 12:50:49.000000000 +0100
+@@ -11,17 +11,14 @@
+ DEFINES += -DETCDIR='"$(etcdir)"'
+ OPTIM =
+-OPTIM += -g
+ OPTIM += -O3
+-CC = gcc
+-LD = gcc
+-INCLUDES = -I.
++INCLUDES = -I. -I$(STAGING_DIR)/usr/include
+ CPPFLAGS = $(INCLUDES) $(DEFINES)
+ CFLAGS = -Wall -Wformat-security -Wno-format-zero-length $(OPTIM)
+-LDFLAGS =
++LDFLAGS = -L$(STAGING_DIR)/usr/lib
+ LDLIBS =
+-INSTALL = install -c -D -o root -g root
++INSTALL = install -c -D
+ l2tpns.LIBS = -lm -lcli -ldl
+diff -urN orig/l2tpns-2.1.14/l2tpns.c l2tpns-2.1.14/l2tpns.c
+--- orig/l2tpns-2.1.14/l2tpns.c        2005-12-07 06:21:37.000000000 +0100
++++ l2tpns-2.1.14/l2tpns.c     2005-12-14 12:50:36.000000000 +0100
+@@ -940,18 +940,14 @@
+       if (!t)
+       {
+-              static int backtrace_count = 0;
+               LOG(0, 0, t, "tunnelsend called with 0 as tunnel id\n");
+               STAT(tunnel_tx_errors);
+-              log_backtrace(backtrace_count, 5)
+               return;
+       }
+       if (!tunnel[t].ip)
+       {
+-              static int backtrace_count = 0;
+               LOG(1, 0, t, "Error sending data out tunnel: no remote endpoint (tunnel not set up)\n");
+-              log_backtrace(backtrace_count, 5)
+               STAT(tunnel_tx_errors);
+               return;
+       }
+@@ -4125,23 +4121,8 @@
+               struct sched_param params = {0};
+               params.sched_priority = 1;
+-              if (get_nprocs() < 2)
+-              {
+-                      LOG(0, 0, 0, "Not using FIFO scheduler, there is only 1 processor in the system.\n");
+-                      config->scheduler_fifo = 0;
+-              }
+-              else
+-              {
+-                      if ((ret = sched_setscheduler(0, SCHED_FIFO, &params)) == 0)
+-                      {
+-                              LOG(1, 0, 0, "Using FIFO scheduler.  Say goodbye to any other processes running\n");
+-                      }
+-                      else
+-                      {
+-                              LOG(0, 0, 0, "Error setting scheduler to FIFO: %s\n", strerror(errno));
+-                              config->scheduler_fifo = 0;
+-                      }
+-              }
++              LOG(0, 0, 0, "Not using FIFO scheduler, there is only 1 processor in the system.\n");
++              config->scheduler_fifo = 0;
+       }
+       /* Set up the cluster communications port. */
+diff -urN orig/l2tpns-2.1.14/l2tpns.h l2tpns-2.1.14/l2tpns.h
+--- orig/l2tpns-2.1.14/l2tpns.h        2005-12-09 01:43:17.000000000 +0100
++++ l2tpns-2.1.14/l2tpns.h     2005-12-14 07:43:51.000000000 +0100
+@@ -5,7 +5,6 @@
+ #define __L2TPNS_H__
+ #include <netinet/in.h>
+-#include <execinfo.h>
+ #include <stdio.h>
+ #include <signal.h>
+ #include <stdlib.h>
+@@ -766,21 +765,6 @@
+ extern ippoolt *ip_address_pool;
+ #define sessionfree (session[0].next)
+-#define log_backtrace(count, max) \
+-if (count++ < max) { \
+-      void *array[20]; \
+-      char **strings; \
+-      int size, i; \
+-      LOG(0, 0, t, "Backtrace follows:\n"); \
+-      size = backtrace(array, 10); \
+-      strings = backtrace_symbols(array, size); \
+-      if (strings) for (i = 0; i < size; i++) \
+-      { \
+-              LOG(0, 0, t, " %s\n", strings[i]); \
+-      } \
+-      free(strings); \
+-}
+-
+ extern configt *config;
+ extern time_t basetime;               // Time when this process started.
+diff -urN orig/l2tpns-2.1.14/ppp.c l2tpns-2.1.14/ppp.c
+--- orig/l2tpns-2.1.14/ppp.c   2005-12-07 06:21:37.000000000 +0100
++++ l2tpns-2.1.14/ppp.c        2005-12-14 07:43:08.000000000 +0100
+@@ -1755,9 +1755,7 @@
+ {
+       if (size < 12) // Need more space than this!!
+       {
+-              static int backtrace_count = 0;
+               LOG(0, s, t, "makeppp buffer too small for L2TP header (size=%d)\n", size);
+-              log_backtrace(backtrace_count, 5)
+               return NULL;
+       }
+@@ -1780,9 +1778,7 @@
+       if (l + 12 > size)
+       {
+-              static int backtrace_count = 0;
+               LOG(2, s, t, "makeppp would overflow buffer (size=%d, header+payload=%d)\n", size, l + 12);
+-              log_backtrace(backtrace_count, 5)
+               return NULL;
+       }