Port dhcp-forwarder to -ng

git-svn-id: svn://svn.openwrt.org/openwrt/packages@4371 3c298f89-4303-0410-b956-a3cf2f4a3e73
This commit is contained in:
florian 2006-08-01 16:40:03 +00:00
parent 04b7f0d3b6
commit a328176fc6
4 changed files with 122 additions and 0 deletions

View File

@ -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:=dhcp-forwarder
PKG_VERSION:=0.7
PKG_RELEASE:=4
PKG_MD5SUM:=e7f876e615ebc3f96418f6477b4451e2
PKG_SOURCE_URL:=http://savannah.nongnu.org/download/dhcp-fwd
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
PKG_CAT:=bzcat
PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)
PKG_INSTALL_DIR:=$(PKG_BUILD_DIR)/ipkg-install
include $(INCLUDE_DIR)/package.mk
define Package/dhcp-forwarder
SECTION:=net
CATEGORY:=Network
TITLE:=DHCP relay agent
DESCRIPTION:=DHCP relay agent
URL:=http://www.nongnu.org/dhcp-fwd/
endef
define Build/Configure
$(call Build/Configure/Default,,ac_cv_func_malloc_0_nonnull="yes")
endef
define Build/Compile
rm -rf $(PKG_INSTALL_DIR)
mkdir -p $(PKG_INSTALL_DIR)
$(MAKE) -C $(PKG_BUILD_DIR) \
cfg_filename="/etc/dhcp-fwd.conf" \
DESTDIR="$(PKG_INSTALL_DIR)" \
all install
endef
define Package/dhcp-forwarder/install
install -m0755 -d $(1)/etc
install -m0644 $(PKG_BUILD_DIR)/contrib/dhcp-fwd.conf $(1)/etc/
install -m0755 -d $(1)/etc/init.d
install -m0755 ./files/dhcp-fwd.init $(1)/etc/init.d/dhcp-fwd
install -m0755 -d $(1)/usr/bin
$(CP) $(PKG_INSTALL_DIR)/usr/sbin/dhcp-fwd $(1)/usr/bin/
endef
$(eval $(call BuildPackage,dhcp-forwarder))

View File

@ -0,0 +1,21 @@
#!/bin/sh
LOG_D=/var/log
RUN_D=/var/run
PID_F=$RUN_D/dhcpd-fwd.pid
case $1 in
start)
[ -d $LOG_D ] || mkdir -p $LOG_D
[ -d $RUN_D ] || mkdir -p $RUN_D
dhcp-fwd
;;
stop)
[ -f $PID_F ] && kill $(cat $PID_F)
;;
*)
echo "usage: $0 (start|stop)"
exit 1
esac
exit $?

View File

@ -0,0 +1,11 @@
--- dhcp-forwarder-0.7/src/dhcp.h 2004-06-22 03:46:56.000000000 -0700
+++ dhcp-forwarder-0.7-x/src/dhcp.h 2005-10-06 17:04:14.000000000 -0700
@@ -89,7 +89,7 @@
optDHCP_COOKIE = 0x63538263u,
flgDHCP_BCAST = 0x0080u
#else
- DHCP_COOKIE = 0x63825363u,
+ optDHCP_COOKIE = 0x63825363u,
flgDHCP_BCAST = 0x8000u
#endif
};

View File

@ -0,0 +1,35 @@
diff -pur dhcp-forwarder-0.7-orig/src/wrappers.h dhcp-forwarder-0.7-patched/src/wrappers.h
--- dhcp-forwarder-0.7-orig/src/wrappers.h 2004-06-22 12:46:56.000000000 +0200
+++ dhcp-forwarder-0.7-patched/src/wrappers.h 2005-12-27 12:28:10.464289435 +0100
@@ -65,7 +65,14 @@ Egetgrnam(char const *name)
/*@*/
{
/*@observer@*/struct group const *res = getgrnam(name);
- FatalErrnoError(res==0, 1, "getgrnam()");
+
+ FatalErrnoError((res == NULL) && (errno != 0), 1, "getgrnam()");
+
+ if (res == NULL)
+ {
+ fprintf (stderr, "No such group: `%s'\n", name);
+ exit (1);
+ }
/*@-freshtrans@*/
/*@-mustfreefresh@*/
@@ -80,7 +87,14 @@ Egetpwnam(char const *name)
/*@*/
{
struct passwd const *res = getpwnam(name);
- FatalErrnoError(res==0, 1, "getpwnam()");
+
+ FatalErrnoError((res == NULL) && (errno != 0), 1, "getpwnam()");
+
+ if (res == NULL)
+ {
+ fprintf (stderr, "No such user: `%s'\n", name);
+ exit (1);
+ }
return res;
}