shorewall_code/Shorewall
Matt Darfeuille cd4e9654d8
(Fwd) [Shorewall-users] Shorewall-lite on OpenWRT
------- Forwarded message follows -------
From:	istvan@istvan.org
To:	shorewall-users@lists.sourceforge.net
Date sent:	Thu, 19 May 2016 09:10:21 +0200
Subject:	[Shorewall-users] Shorewall-lite on OpenWRT
Send reply to:	Shorewall Users <shorewall-users@lists.sourceforge.net>
	<mailto:shorewall-users-request@lists.sourceforge.net?subject=unsubscribe>
	<mailto:shorewall-users-request@lists.sourceforge.net?subject=subscribe>

Hi there,

I use Shorewall on an OpenWRT distribution and I experience 2
problems.
I have solved them myself and report them here to help others with
it.

Shorewall version: shorewall[6]-lite 5.0.4
OpenWRT version: Chaos Calmer 15.05, r46767

Problem 1:
Shorewall uses the lock utility from openwrt. I believe it is used in

the wrong way. File lib.common line 775
First it passes arguments which the utility doesn't use/know. The
util
accepts them dumbly and continues to create a lockfile. It has no
time-out functionality. I do not know the meaning of the r1 argument.
Second the mutex_off simply deletes the lockfile by using the utility

rm. This way a stale lock process keeps running. After a while the
router is running a high number of stale processes which has impact
on
the load of the router. The correct way is to use "lock -u
/lib/shorewall-lite/lock". This way the lockfile will be removed and
the
process will be terminated accordingly. To make it work for me, I no
more let shorewall use the lock utility by using an ugly hack.

Problem 2:
An fgrep on the output of the type utility is wrongly coded. The
output
of the type command probably has been changed. File lib.cli line 4343
It is coded: "if type $1 2> /dev/null | fgrep -q 'is a function';
then"
To make it work for me, it should be coded: "if type $1 2> /dev/null
|
fgrep -q 'is a shell function'; then"

With regards,

Stefan
------- End of forwarded message -------

Tom, attached as code.patch, are the patches that I  believe will
correct those issues

In addition to those patches I've also added 3 patches:
- Patch 1 will emulate the -p flag of the ps utility which is not
available on openwrt.
- The last two patches will add "file" to the progress message of
SYSCONFFILE to make it more consistent among the installers.

In shorewall-init/install.sh the else clause between  the line 586
and 597 will only work for a sysvinit script.
Should I make it also work for a systemd service script or can't we
simply remove that else clause?

In the compiled firewall script the comments before and after the
functions imported from lib.common have two slashes in the path:
$ grep -H lib.common firewall
firewall:#   Functions imported from /usr/share/shorewall//lib.common
firewall:#   End of imports from /usr/share/shorewall//lib.common

-Matt

-------------- Enclosure number 1 ----------------
>From 6ff651108df33ab8be4562caef03a8582e9eac5e Mon Sep 17 00:00:00 2001
From: Matt Darfeuille <matdarf@gmail.com>
Date: Tue, 24 May 2016 13:10:28 +0200
Subject: [PATCH 1/8] Emulate 'ps -p' using grep to work on openwrt

Signed-off-by: Matt Darfeuille <matdarf@gmail.com>
Signed-off-by: Tom Eastep <teastep@shorewall.net>
2016-06-08 15:40:36 -07:00
..
configfiles Add VERBOSE_MESSAGES option 2016-04-30 08:00:56 -07:00
Contrib Periodic elimination of trailing white space 2010-09-27 11:16:18 -07:00
Macros questions 2016-04-17 13:50:17 -07:00
manpages Add NFLOG as a supported mangle action 2016-05-03 11:27:34 -07:00
Perl Allow more than 9 interfaces with Simple TC 2016-06-07 14:43:37 -07:00
Samples Turn on AUTOMAKE in the sample configurations 2016-05-06 08:46:11 -07:00
action.A_Drop Reverse the order of ICMP and Broadcast checking in the default actions 2016-04-12 10:12:29 +03:00
action.A_REJECT Add A_REJECT action 2016-04-05 16:38:39 -07:00
action.A_REJECT! Add A_REJECT action 2016-04-05 16:38:39 -07:00
action.A_Reject.deprecated questions 2016-04-17 13:50:17 -07:00
action.allowInvalid action.allowInvalid: reformat to new header style 2016-04-05 20:13:55 +03:00
action.AutoBL action.AutoBL: reformat to new header style 2016-04-05 20:13:55 +03:00
action.AutoBLL action.AutoBLL: reformat to new header style 2016-04-05 20:13:55 +03:00
action.Broadcast action.Broadcast: reformat to new header style 2016-04-05 20:13:55 +03:00
action.DNSAmp action.DNSAmp: reformat to new header style 2016-04-05 20:13:55 +03:00
action.Drop Reverse the order of ICMP and Broadcast checking in the default actions 2016-04-11 11:16:46 -07:00
action.dropInvalid action.dropInvalid: reformat to new header style 2016-04-05 20:13:55 +03:00
action.DropSmurfs action.DropSmurfs: reformat to new header style 2016-04-05 20:13:55 +03:00
action.Established action.Established: reformat to new header style 2016-04-05 20:13:55 +03:00
action.GlusterFS action.GlusterFS: reformat to new header style 2016-04-05 20:13:55 +03:00
action.IfEvent action.IfEvent: reformat to new header style 2016-04-05 20:13:55 +03:00
action.Invalid action.Invalid: reformat to new header style 2016-04-05 20:13:55 +03:00
action.mangletemplate action.mangletemplate: reformat to new header style 2016-04-05 20:13:55 +03:00
action.New action.New: reformat to new header style 2016-04-05 20:13:55 +03:00
action.NotSyn action.NotSyn: reformat to new header style 2016-04-05 20:13:55 +03:00
action.Reject Reverse the order of ICMP and Broadcast checking in the default actions 2016-04-11 11:16:46 -07:00
action.Related action.Related: reformat to new header style 2016-04-05 20:13:55 +03:00
action.ResetEvent action.ResetEvent: reformat to new header style 2016-04-05 20:13:55 +03:00
action.RST action.RST: reformat to new header style 2016-04-05 20:13:55 +03:00
action.SetEvent action.SetEvent: reformat to new header style 2016-04-05 20:13:55 +03:00
action.TCPFlags action.TCPFlags: reformat to new header style 2016-04-05 20:13:55 +03:00
action.template action.template: reformat to new header style 2016-04-05 20:13:55 +03:00
action.Untracked action.Untracked: reformat to new header style 2016-04-05 20:13:55 +03:00
actions.std Add A_REJECT action 2016-04-05 16:38:39 -07:00
configpath More version changes 2015-07-28 10:59:11 -07:00
COPYING Correct address of the FSF 2011-06-06 06:55:40 -07:00
default.debian New 'reload' and 'restart' semantics 2015-07-26 09:59:49 -07:00
helpers More version changes 2015-07-28 10:59:11 -07:00
init.debian.sh New 'reload' and 'restart' semantics 2015-07-26 09:59:49 -07:00
init.fedora.sh New 'reload' and 'restart' semantics 2015-07-26 09:59:49 -07:00
init.sh New 'reload' and 'restart' semantics 2015-07-26 09:59:49 -07:00
init.slackware.shorewall.sh New 'reload' and 'restart' semantics 2015-07-26 09:59:49 -07:00
init.suse.sh New 'reload' and 'restart' semantics 2015-07-26 09:59:49 -07:00
INSTALL More version changes 2015-07-28 10:59:11 -07:00
install.sh (Fwd) [Shorewall-users] Shorewall-lite on OpenWRT 2016-06-08 15:40:36 -07:00
lib.cli-std Report versions as Shorewall's rather than Shorewall6's 2016-05-05 15:41:46 -07:00
logrotate Add logrotate files to packages 2009-11-03 10:06:10 -08:00
Makefile Shorewall[6]/Makefile: remove extra restore, shorewall does that automatically 2016-02-12 18:17:46 +02:00
Makefile-lite More periodic removal of trailing white space 2010-06-07 09:16:56 -07:00
modules More version changes 2015-07-28 10:59:11 -07:00
modules.essential modules.essential: reformat to new header style 2016-04-05 20:31:36 +03:00
modules.extensions modules.extensions: reformat to new header style 2016-04-05 20:31:36 +03:00
modules.ipset modules.ipset: reformat to new header style 2016-04-05 20:31:36 +03:00
modules.tc modules.tc: reformat to new header style 2016-04-05 20:31:36 +03:00
modules.xtables modules.xtables: reformat to new header style 2016-04-05 20:31:36 +03:00
shorewall More version changes 2015-07-28 10:59:11 -07:00
shorewall.service systemd: add reload to unit files 2015-09-10 14:15:16 +03:00
shorewall.service.debian Merge branch 'master' into 5.0.0 2015-10-12 10:55:36 -07:00
sysconfig Corrected sysconfig files 2016-01-19 09:25:37 -08:00
uninstall.sh Rename lib.core to lib.runtime 2016-04-21 08:12:41 -07:00