On 3/31/19 10:54 AM, Brian J. Murrell wrote:
> On Sun, 2019-03-31 at 10:04 -0700, Tom Eastep wrote:
>>
>> Brian,
>
> Hi Tom,
>
>> The lack of macro support for a particular application scenario
>> generally means that no one with the ability to test that scenario
>> has
>> stepped up to produce such a macro.
>
> Fair enough.
>
>> If you want to test, then:
>>
>> a) Modify /etc/shorewall[6]/conntrack to specify both udp and tcp in
>> the
>> PROTO column of the SIP entry.
>
> Roger.
>
> b) Modify macro.SIP to similarly specify both udp and tcp in the
>> PROTO
>> column.
>
> It should be sufficient to copy and modify the macro in the shorewall
> configuration dir, yes? That's what I did at least and it had the
> desired results.
>
> #
> # Shorewall -- /usr/share/shorewall/macro.SIP
> #
> # This macro handles SIP traffic.
> #
> ###############################################################################
> #ACTION SOURCE DEST PROTO DPORT SPORT ORIGDEST RATE
> USER
>
> ?if ( __CT_TARGET && ! $AUTOHELPERS && __SIP_HELPER )
> PARAM - - udp 5060 { helper=sip }
> PARAM - - tcp 5060 { helper=sip }
> ?else
> PARAM - - udp 5060
> PARAM - - tcp 5060
> ?endif
>
>>
>> If it works satisfactorily, let us know and we will modify the
>> release
>> versions accordingly.
>>
>
> ERROR: The sip helper requires PROTO=udp /etc/shorewall6/gw-CC/conntrack
> (line 5)Hmmm -- compiler too smart for that simple change... > > Seems that helpers can only use tcp or udp but not both. I already > tried adding a "sip => TCP" to %helpers in > /usr/share/perl5/vendor_perl/Shorewall/Config.pm. > Please reverse your change and apply the attached patch. Thanks, -Tom -- Tom Eastep \ Q: What do you get when you cross a mobster with Shoreline, \ an international standard? Washington, USA \ A: Someone who makes you an offer you can't http://shorewall.org \ understand \_______________________________________________
diff --git a/Shorewall/Perl/Shorewall/Chains.pm b/Shorewall/Perl/Shorewall/Chains.pm
index d2b76f3bf..84573b5e8 100644
--- a/Shorewall/Perl/Shorewall/Chains.pm
+++ b/Shorewall/Perl/Shorewall/Chains.pm
@@ -5749,8 +5749,18 @@ sub validate_helper( $;$ ) {
fatal_error "Unknown PROTO ($proto)" unless defined ( $protonum = resolve_proto( $proto ) );
- unless ( $protonum == $helper_proto ) {
- fatal_error "The $helper_base helper requires PROTO=" . (proto_name $helper_proto );
+ if ( reftype( $helper_proto ) ) {
+ my $found;
+
+ for ( @$helper_proto ) {
+ $found = 1 if $protonum == $_;
+ }
+
+ fatal_error "The $helper_base helper requires PROTO be one of '@$helper_proto'" unless $found;
+ } else {
+ unless ( $protonum == $helper_proto ) {
+ fatal_error "The $helper_base helper requires PROTO=" . (proto_name $helper_proto );
+ }
}
}
} else {
diff --git a/Shorewall/Perl/Shorewall/Config.pm b/Shorewall/Perl/Shorewall/Config.pm
index 03f0bc9ee..b59c89c2b 100644
--- a/Shorewall/Perl/Shorewall/Config.pm
+++ b/Shorewall/Perl/Shorewall/Config.pm
@@ -565,7 +565,7 @@ our %helpers = ( amanda => UDP,
'Q.931' => TCP,
RAS => UDP,
sane => TCP,
- sip => UDP,
+ sip => [UDP,TCP],
snmp => UDP,
tftp => UDP,
);
signature.asc
Description: OpenPGP digital signature
_______________________________________________ Shorewall-users mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/shorewall-users
