parent
11549e1b73
commit
47ea3c7fee
@ -0,0 +1,56 @@ |
||||
#
|
||||
# Copyright (C) 2008-2012 OpenWrt.org
|
||||
#
|
||||
# This is free software, licensed under the GNU General Public License v2.
|
||||
# See /LICENSE for more information.
|
||||
#
|
||||
|
||||
include $(TOPDIR)/rules.mk |
||||
|
||||
PKG_NAME:=lldpd
|
||||
PKG_VERSION:=0.6.0
|
||||
PKG_RELEASE:=1
|
||||
|
||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
|
||||
PKG_SOURCE_URL:=http://media.luffy.cx/files/lldpd
|
||||
PKG_MD5SUM:=77279577e3b6d85a33dc0afe7c960b27
|
||||
|
||||
PKG_MAINTAINER:=Jo-Philipp Wich <jow@openwrt.org>
|
||||
|
||||
PKG_FIXUP:=autoreconf
|
||||
PKG_INSTALL:=1
|
||||
|
||||
include $(INCLUDE_DIR)/package.mk |
||||
|
||||
define Package/lldpd |
||||
SECTION:=net
|
||||
CATEGORY:=Network
|
||||
SUBMENU:=Routing and Redirection
|
||||
TITLE:=Link Layer Discovery Protocol daemon
|
||||
URL:=https://github.com/vincentbernat/lldpd/wiki
|
||||
DEPENDS:=+libevent2
|
||||
endef |
||||
|
||||
define Package/lldpd/description |
||||
LLDP (Link Layer Discovery Protocol) is an industry standard protocol designed
|
||||
to supplant proprietary Link-Layer protocols such as
|
||||
Extreme's EDP (Extreme Discovery Protocol) and
|
||||
CDP (Cisco Discovery Protocol).
|
||||
The goal of LLDP is to provide an inter-vendor compatible mechanism to deliver
|
||||
Link-Layer notifications to adjacent network devices.
|
||||
endef |
||||
|
||||
define Package/lldpd/install |
||||
$(INSTALL_DIR) $(1)/etc/init.d
|
||||
$(INSTALL_DIR) $(1)/etc/config
|
||||
$(INSTALL_DIR) $(1)/usr/sbin
|
||||
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/lldp{ctl,d} $(1)/usr/sbin/
|
||||
$(INSTALL_BIN) ./files/lldpd.init $(1)/etc/init.d/lldpd
|
||||
$(INSTALL_DATA) ./files/lldpd.config $(1)/etc/config/lldpd
|
||||
endef |
||||
|
||||
define Package/lldpd/conffiles |
||||
/etc/config/lldpd |
||||
endef |
||||
|
||||
$(eval $(call BuildPackage,lldpd)) |
@ -0,0 +1,8 @@ |
||||
config lldpd config |
||||
option enable_cdp 1 |
||||
option enable_fdp 1 |
||||
option enable_sonmp 1 |
||||
option enable_edp 1 |
||||
|
||||
option lldp_class 4 |
||||
option lldp_location "2:FR:6:Commercial Rd:3:Roseville:19:4" |
@ -0,0 +1,40 @@ |
||||
#!/bin/sh /etc/rc.common |
||||
# Copyright (C) 2008-2012 OpenWrt.org |
||||
|
||||
START=90 |
||||
|
||||
SERVICE_USE_PID=1 |
||||
|
||||
start() { |
||||
local enable_cdp |
||||
local enable_fdp |
||||
local enable_sonmp |
||||
local enable_edp |
||||
local lldp_class |
||||
local lldp_location |
||||
|
||||
config_load 'lldpd' |
||||
config_get_bool enable_cdp 'config' 'enable_cdp' 0 |
||||
config_get_bool enable_fdp 'config' 'enable_fdp' 0 |
||||
config_get_bool enable_sonmp 'config' 'enable_sonmp' 0 |
||||
config_get_bool enable_edp 'config' 'enable_edp' 0 |
||||
config_get lldp_class 'config' 'lldp_class' |
||||
config_get lldp_location 'config' 'lldp_location' |
||||
|
||||
[ $enable_cdp -gt 0 ] && append args '-c' |
||||
[ $enable_fdp -gt 0 ] && append args '-f' |
||||
[ $enable_sonmp -gt 0 ] && append args '-s' |
||||
[ $enable_edp -gt 0 ] && append args '-e' |
||||
|
||||
service_start /usr/sbin/lldpd $args \ |
||||
${lldp_class:+ -M $lldp_class} |
||||
|
||||
[ -n "$lldp_location" ] && { |
||||
sleep 1 |
||||
/usr/sbin/lldpctl -L "$lldp_location" > /dev/null 2>&1 |
||||
} |
||||
} |
||||
|
||||
stop() { |
||||
service_stop /usr/sbin/lldpd |
||||
} |
@ -0,0 +1,40 @@ |
||||
--- a/src/priv.c
|
||||
+++ b/src/priv.c
|
||||
@@ -518,12 +518,14 @@ priv_init(char *chrootdir)
|
||||
fatal("[priv]: unable to create socket pair for privilege separation");
|
||||
|
||||
/* Get users */
|
||||
+ /*
|
||||
if ((user = getpwnam(PRIVSEP_USER)) == NULL)
|
||||
fatal("[priv]: no " PRIVSEP_USER " user for privilege separation");
|
||||
uid = user->pw_uid;
|
||||
if ((group = getgrnam(PRIVSEP_GROUP)) == NULL)
|
||||
fatal("[priv]: no " PRIVSEP_GROUP " group for privilege separation");
|
||||
gid = group->gr_gid;
|
||||
+ */
|
||||
|
||||
/* Spawn off monitor */
|
||||
if ((monitored = fork()) < 0)
|
||||
@@ -534,17 +536,17 @@ priv_init(char *chrootdir)
|
||||
if (RUNNING_ON_VALGRIND)
|
||||
LLOG_WARNX("[priv]: running on valgrind, keep privileges");
|
||||
else {
|
||||
- if (chroot(chrootdir) == -1)
|
||||
- fatal("[priv]: unable to chroot");
|
||||
- if (chdir("/") != 0)
|
||||
+ /*if (chroot(chrootdir) == -1)
|
||||
+ fatal("[priv]: unable to chroot");*/
|
||||
+ if (chdir("/tmp") != 0)
|
||||
fatal("[priv]: unable to chdir");
|
||||
gidset[0] = gid;
|
||||
- if (setresgid(gid, gid, gid) == -1)
|
||||
+ /*if (setresgid(gid, gid, gid) == -1)
|
||||
fatal("[priv]: setresgid() failed");
|
||||
if (setgroups(1, gidset) == -1)
|
||||
fatal("[priv]: setgroups() failed");
|
||||
if (setresuid(uid, uid, uid) == -1)
|
||||
- fatal("[priv]: setresuid() failed");
|
||||
+ fatal("[priv]: setresuid() failed");*/
|
||||
}
|
||||
remote = pair[0];
|
||||
close(pair[1]);
|
@ -0,0 +1,10 @@ |
||||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -48,7 +48,6 @@ AX_CFLAGS_GCC_OPTION([-Wformat])
|
||||
AX_CFLAGS_GCC_OPTION([-Wformat-security])
|
||||
AX_CFLAGS_GCC_OPTION([-Wcast-align])
|
||||
AX_CFLAGS_GCC_OPTION([-Winline])
|
||||
-AX_CFLAGS_GCC_OPTION([-fstack-protector])
|
||||
AX_CFLAGS_GCC_OPTION([-D_FORTIFY_SOURCE=2])
|
||||
AX_CFLAGS_GCC_OPTION([-Wdeclaration-after-statement])
|
||||
AX_CFLAGS_GCC_OPTION([-Wno-unused-parameter])
|
Loading…
Reference in new issue