Initial commit
This commit is contained in:
		
							
								
								
									
										42
									
								
								package/network/services/relayd/Makefile
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										42
									
								
								package/network/services/relayd/Makefile
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,42 @@ | ||||
| # | ||||
| # Copyright (C) 2010-2011 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:=relayd | ||||
| PKG_RELEASE:=1 | ||||
|  | ||||
| PKG_SOURCE_URL=$(PROJECT_GIT)/project/relayd.git | ||||
| PKG_SOURCE_PROTO:=git | ||||
| PKG_SOURCE_DATE:=2020-04-25 | ||||
| PKG_SOURCE_VERSION:=f4d759be54ceb37714e9a6ca320d5b50c95e9ce9 | ||||
| PKG_MIRROR_HASH:=b1ff6e99072867be0975ba0be52ba9da3a876c8b8da893d68301e8238243a51e | ||||
|  | ||||
| PKG_MAINTAINER:=Felix Fietkau <nbd@nbd.name> | ||||
| PKG_LICENSE:=GPL-2.0 | ||||
|  | ||||
| include $(INCLUDE_DIR)/package.mk | ||||
| include $(INCLUDE_DIR)/cmake.mk | ||||
|  | ||||
| define Package/relayd | ||||
|   SECTION:=net | ||||
|   CATEGORY:=Network | ||||
|   SUBMENU:=Routing and Redirection | ||||
|   TITLE:=Transparent routing / relay daemon | ||||
|   DEPENDS:=+libubox | ||||
| endef | ||||
|  | ||||
| TARGET_CFLAGS += -I$(STAGING_DIR)/usr/include | ||||
|  | ||||
| define Package/relayd/install | ||||
| 	$(INSTALL_DIR) $(1)/usr/sbin | ||||
| 	$(INSTALL_BIN) $(PKG_BUILD_DIR)/relayd $(1)/usr/sbin/relayd | ||||
| 	$(INSTALL_DIR) $(1)/etc/init.d | ||||
| 	$(INSTALL_BIN) ./files/relay.init $(1)/etc/init.d/relayd | ||||
| endef | ||||
|  | ||||
| $(eval $(call BuildPackage,relayd)) | ||||
							
								
								
									
										109
									
								
								package/network/services/relayd/files/relay.init
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										109
									
								
								package/network/services/relayd/files/relay.init
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,109 @@ | ||||
| #!/bin/sh /etc/rc.common | ||||
| # Copyright (c) 2011-2012 OpenWrt.org | ||||
|  | ||||
| START=80 | ||||
|  | ||||
| USE_PROCD=1 | ||||
| PROG=/usr/sbin/relayd | ||||
|  | ||||
| validate_proto_relayd() | ||||
| { | ||||
| 	uci_validate_section network "interface" "${1}" \ | ||||
| 		'network:list(string)' \ | ||||
| 		'expiry:uinteger:30' \ | ||||
| 		'retry:uinteger:5' \ | ||||
| 		'table:range(0, 65535):16800' \ | ||||
| 		'forward_bcast:bool:1' \ | ||||
| 		'forward_dhcp:bool:1' | ||||
| } | ||||
|  | ||||
| resolve_ifname() { | ||||
| 	grep -qs "^ *$1:" /proc/net/dev && { | ||||
| 		append resolved_ifnames "$1" | ||||
| 	} | ||||
| } | ||||
|  | ||||
| resolve_network() { | ||||
| 	local ifn | ||||
| 	fixup_interface "$1" | ||||
| 	config_get ifn "$1" ifname | ||||
| 	[ -z "$ifn" ] && return 1 | ||||
| 	resolve_ifname "$ifn" | ||||
| } | ||||
|  | ||||
| start_relay() { | ||||
| 	local cfg="$1" | ||||
| 	local proto disabled | ||||
|  | ||||
| 	config_get proto "$cfg" proto | ||||
| 	[ "$proto" = "relay" ] || return 0 | ||||
|  | ||||
| 	config_get_bool disabled "$cfg" disabled 0 | ||||
| 	[ "$disabled" -gt 0 ] && return 0 | ||||
|  | ||||
| 	local resolved_ifnames | ||||
| 	local net networks | ||||
| 	config_get networks "$cfg" network | ||||
| 	for net in $networks; do | ||||
| 		resolve_network "$net" || { | ||||
| 			return 1 | ||||
| 		} | ||||
| 	done | ||||
|  | ||||
| 	local ifn ifnames | ||||
| 	config_get ifnames "$cfg" ifname | ||||
| 	for ifn in $ifnames; do | ||||
| 		resolve_ifname "$ifn" || { | ||||
| 			return 1 | ||||
| 		} | ||||
| 	done | ||||
|  | ||||
| 	procd_open_instance | ||||
| 	procd_set_param command "$PROG" | ||||
|  | ||||
| 	for ifn in $resolved_ifnames; do | ||||
| 		procd_append_param command -I "$ifn" | ||||
| 		procd_append_param netdev "$ifn" | ||||
| 	done | ||||
| 	local ipaddr | ||||
| 	config_get ipaddr "$cfg" ipaddr | ||||
| 	[ -n "$ipaddr" ] && procd_append_param command -L "$ipaddr" | ||||
|  | ||||
| 	local gateway | ||||
| 	config_get gateway "$cfg" gateway | ||||
| 	[ -n "$gateway" ] && procd_append_param command -G "$gateway" | ||||
|  | ||||
| 	local expiry # = 30 | ||||
| 	config_get expiry "$cfg" expiry | ||||
| 	[ -n "$expiry" ] && procd_append_param command -t "$expiry" | ||||
|  | ||||
| 	local retry # = 5 | ||||
| 	config_get retry "$cfg" retry | ||||
| 	[ -n "$retry" ] && procd_append_param command -p "$retry" | ||||
|  | ||||
| 	local table # = 16800 | ||||
| 	config_get table "$cfg" table | ||||
| 	[ -n "$table" ] && procd_append_param command -T "$table" | ||||
|  | ||||
| 	local fwd_bcast # = 1 | ||||
| 	config_get_bool fwd_bcast "$cfg" forward_bcast 1 | ||||
| 	[ $fwd_bcast -eq 1 ] && procd_append_param command "-B" | ||||
|  | ||||
| 	local fwd_dhcp # = 1 | ||||
| 	config_get_bool fwd_dhcp "$cfg" forward_dhcp 1 | ||||
| 	[ $fwd_dhcp -eq 1 ] && procd_append_param command "-D" | ||||
|  | ||||
| 	procd_close_instance | ||||
| } | ||||
|  | ||||
| service_triggers() | ||||
| { | ||||
| 	procd_add_reload_trigger "network" | ||||
| 	procd_add_raw_trigger "interface.*" 2000 /etc/init.d/relayd reload | ||||
| } | ||||
|  | ||||
| start_service() { | ||||
| 	include /lib/network | ||||
| 	config_load network | ||||
| 	config_foreach start_relay interface | ||||
| } | ||||
		Reference in New Issue
	
	Block a user
	 domenico
					domenico