<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html><head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <meta name="generator" content="Osso Notes">
    <title></title></head>
<body>
<p>
<br>Hi,
<br>
<br>I haven't forgotten about this, I just wanted to refactor the transport selection logic out of the source/destination driver.
<br>
<br>The patch otherwise looks ok, and I'll either fold it into the refactor stuff or merge on its own if I can't do the refactor.
<br>
<br>Thanks.
<br>
<br>----- Original message -----
<br>&gt; To make it easy to set up IPv6 sources or destinations, the network()
<br>&gt; driver should have an option to select the IP protocol. This patch
<br>&gt; does just that, in the form of an ip-protocol() option, which allows
<br>&gt; one to select either IPv4 or IPv6.
<br>&gt; 
<br>&gt; In the end, this allows us to have a source as follows:
<br>&gt; 
<br>&gt; source s_v6_syslog {
<br>&gt;&nbsp; &nbsp; &#32;network(port(12345)
<br>&gt;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &#32;transport(framed)
<br>&gt;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &#32;ip-protocol(6));
<br>&gt; };
<br>&gt; 
<br>&gt; The option is available for both the source and destination version of
<br>&gt; network().
<br>&gt; 
<br>&gt; Signed-off-by: Gergely Nagy &lt;<a href="mailto:algernon@balabit.hu">algernon@balabit.hu</a>&gt;
<br>&gt; ---
<br>&gt;&nbsp; &#32;modules/afsocket/afsocket-grammar.ym |&nbsp; &nbsp; &#32;29
<br>&gt; ++++++++++++++++++++++++++++- modules/afsocket/afsocket-parser.c&nbsp; &nbsp; &#32;|&nbsp; &nbsp; &#32;
<br>&gt; 1 + 2 files changed, 29 insertions(+), 1 deletion(-)
<br>&gt; 
<br>&gt; diff --git a/modules/afsocket/afsocket-grammar.ym
<br>&gt; b/modules/afsocket/afsocket-grammar.ym index 7beb6e8..464d5d8 100644
<br>&gt; --- a/modules/afsocket/afsocket-grammar.ym
<br>&gt; +++ b/modules/afsocket/afsocket-grammar.ym
<br>&gt; @@ -79,6 +79,7 @@ TLSContext *last_tls_context;
<br>&gt;&nbsp; &#32;%token KW_UDP6
<br>&gt;&nbsp; &#32;%token KW_NETWORK
<br>&gt;&nbsp; &#32;%token KW_TRANSPORT
<br>&gt; +%token KW_IP_PROTOCOL
<br>&gt;&nbsp; &#32;
<br>&gt;&nbsp; &#32;%token KW_IP_TTL
<br>&gt;&nbsp; &#32;%token KW_SO_BROADCAST
<br>&gt; @@ -136,6 +137,8 @@ TLSContext *last_tls_context;
<br>&gt;&nbsp; &#32;%type&nbsp; &nbsp; &#32;&lt;ptr&gt; dest_afnetwork
<br>&gt;&nbsp; &#32;%type&nbsp; &nbsp; &#32;&lt;ptr&gt; dest_afnetwork_params
<br>&gt;&nbsp; &#32;
<br>&gt; +%type&nbsp; &nbsp; &#32;&lt;num&gt; afinet_ip_protocol_option
<br>&gt; +
<br>&gt;&nbsp; &#32;%%
<br>&gt;&nbsp; &#32;
<br>&gt;&nbsp; &#32;start
<br>&gt; @@ -149,6 +152,25 @@ start
<br>&gt;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &#32;| LL_CONTEXT_DESTINATION dest_afnetwork&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &#32;{
<br>&gt; YYACCEPT; }&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &#32;;
<br>&gt;&nbsp; &#32;
<br>&gt; +afinet_ip_protocol_option
<br>&gt; +&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &#32;: LL_NUMBER
<br>&gt; +&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &#32;{
<br>&gt; +&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &#32;CHECK_ERROR($1 == 4 || $1 == 6, @1, "ip-protocol option can
<br>&gt; only be 4 or 6!"); +&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &#32;if ($1 == 4)
<br>&gt; +&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &#32;{
<br>&gt; +&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &#32;$$ = AF_INET;
<br>&gt; +&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &#32;}
<br>&gt; +&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &#32;else
<br>&gt; +&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &#32;{
<br>&gt; +&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &#32;$$ = AF_INET6;
<br>&gt; +&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &#32;}
<br>&gt; +&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &#32;}
<br>&gt; +&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &#32;;
<br>&gt; +
<br>&gt; +source_afinet_ip_protocol
<br>&gt; +&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &#32;: KW_IP_PROTOCOL '(' afinet_ip_protocol_option ')' {
<br>&gt; ((AFSocketSourceDriver *)last_driver)-&gt;address_family = $3; } +&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &#32;;
<br>&gt; +&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &#32;
<br>&gt;&nbsp; &#32;source_afunix
<br>&gt;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &#32;: KW_UNIX_DGRAM '(' source_afunix_dgram_params ')'&nbsp;&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &#32;
<br>&gt;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &#32;{ $$ = $3; } &nbsp;&nbsp;&nbsp; | KW_UNIX_STREAM '('
<br>&gt; source_afunix_stream_params ')' &nbsp;&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &#32;{ $$ =
<br>&gt; $3; } @@ -314,6 +336,7 @@ source_afnetwork_option&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &#32;:
<br>&gt; source_afinet_option&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &#32;| source_afsocket_transport
<br>&gt;&nbsp; &#32;&nbsp;&nbsp;&nbsp; | source_afsocket_stream_params&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; {}
<br>&gt; +&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &#32;| source_afinet_ip_protocol
<br>&gt;&nbsp; &#32;&nbsp;&nbsp;&nbsp; ;
<br>&gt;&nbsp; &#32;
<br>&gt;&nbsp; &#32;source_afsocket_transport
<br>&gt; @@ -335,7 +358,10 @@ source_afsocket_transport
<br>&gt;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &#32;}
<br>&gt;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &#32;;
<br>&gt;&nbsp; &#32;
<br>&gt; -
<br>&gt; +dest_afinet_ip_protocol
<br>&gt; +&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &#32;: KW_IP_PROTOCOL '(' afinet_ip_protocol_option ')' {
<br>&gt; ((AFSocketDestDriver *)last_driver)-&gt;address_family = $3; } +&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &#32;;
<br>&gt; +&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &#32;
<br>&gt;&nbsp; &#32;dest_afunix
<br>&gt;&nbsp; &#32;&nbsp;&nbsp;&nbsp; : KW_UNIX_DGRAM '(' dest_afunix_dgram_params ')'&nbsp;&nbsp;&nbsp; { $$ = $3; }
<br>&gt;&nbsp; &#32;&nbsp;&nbsp;&nbsp; | KW_UNIX_STREAM '(' dest_afunix_stream_params ')'&nbsp;&nbsp;&nbsp; { $$ = $3; }
<br>&gt; @@ -500,6 +526,7 @@ dest_afnetwork_options
<br>&gt;&nbsp; &#32;dest_afnetwork_option
<br>&gt;&nbsp; &#32;&nbsp;&nbsp;&nbsp; : dest_afinet_option
<br>&gt;&nbsp; &#32;&nbsp;&nbsp;&nbsp; | dest_afsocket_transport
<br>&gt; +&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &#32;| dest_afinet_ip_protocol
<br>&gt;&nbsp; &#32;&nbsp;&nbsp;&nbsp; ;
<br>&gt;&nbsp; &#32;
<br>&gt;&nbsp; &#32;dest_afsocket_transport
<br>&gt; diff --git a/modules/afsocket/afsocket-parser.c
<br>&gt; b/modules/afsocket/afsocket-parser.c index 4065d31..f9e14a4 100644
<br>&gt; --- a/modules/afsocket/afsocket-parser.c
<br>&gt; +++ b/modules/afsocket/afsocket-parser.c
<br>&gt; @@ -72,6 +72,7 @@ static CfgLexerKeyword afsocket_keywords[] = {
<br>&gt;&nbsp; &nbsp; &nbsp; &#32;{ "tcp_keepalive_intvl", KW_TCP_KEEPALIVE_INTVL, 0x0304 },
<br>&gt;&nbsp; &nbsp; &nbsp; &#32;{ "spoof_source",&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &#32;KW_SPOOF_SOURCE },
<br>&gt;&nbsp; &nbsp; &nbsp; &#32;{ "transport",&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &#32;KW_TRANSPORT },
<br>&gt; +&nbsp; &#32;{ "ip_protocol",&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &#32;KW_IP_PROTOCOL },
<br>&gt;&nbsp; &nbsp; &nbsp; &#32;{ "max_connections",&nbsp; &nbsp; &nbsp; &#32;KW_MAX_CONNECTIONS },
<br>&gt;&nbsp; &nbsp; &nbsp; &#32;{ "keep_alive",&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &#32;KW_KEEP_ALIVE },
<br>&gt;&nbsp; &nbsp; &nbsp; &#32;{ NULL }
<br>&gt; -- 
<br>&gt; 1.7.10.4
<br>&gt; 
<br>&gt; 
<br>&gt; ______________________________________________________________________________
<br>&gt; Member info: <a href="https://lists.balabit.hu/mailman/listinfo/syslog-ng">https://lists.balabit.hu/mailman/listinfo/syslog-ng</a>
<br>&gt; Documentation:
<br>&gt; <a href="http://www.balabit.com/support/documentation/?product=syslog-ng">http://www.balabit.com/support/documentation/?product=syslog-ng</a> FAQ:
<br>&gt; <a href="http://www.balabit.com/wiki/syslog-ng-faq">http://www.balabit.com/wiki/syslog-ng-faq</a>
<br>&gt; 
<br><br></p>
</body>
</html>