[2/3,v3] allow changing remote syslog protocol to TCP

Message ID 20171119174033.3dc70013.peter.mueller@link38.eu
State Superseded
Headers
Series [1/3,v3] allow remote syslog via TCP in syslogdctrl.c |

Commit Message

Peter Müller Nov. 20, 2017, 3:40 a.m. UTC
  Add option to change remote syslog protocol to TCP, which
is more reliable than UDP, but might be unsupported  on
older syslog servers.

Signed-off-by: Peter Müller <peter.mueller@link38.eu>
---
 html/cgi-bin/logs.cgi/config.dat | 16 ++++++++++++++
 1 file changed, 16 insertions(+)
  

Comments

Michael Tremer Nov. 21, 2017, 2:45 a.m. UTC | #1
On Sun, 2017-11-19 at 17:40 +0100, Peter Müller wrote:
> Add option to change remote syslog protocol to TCP, which
> is more reliable than UDP, but might be unsupported  on
> older syslog servers.
> 
> Signed-off-by: Peter Müller <peter.mueller@link38.eu>
> ---
>  html/cgi-bin/logs.cgi/config.dat | 16 ++++++++++++++
>  1 file changed, 16 insertions(+)
> 
> diff --git a/html/cgi-bin/logs.cgi/config.dat b/html/cgi-
> bin/logs.cgi/config.dat
> index 789341dbe..ec3c2a92d 100644
> --- a/html/cgi-bin/logs.cgi/config.dat
> +++ b/html/cgi-bin/logs.cgi/config.dat
> @@ -33,6 +33,7 @@ $logsettings{'LOGWATCH_KEEP'} = '56';
>  my @VS = ('15','50','100','150','250','500');
>  $logsettings{'ENABLE_REMOTELOG'} = 'off';
>  $logsettings{'REMOTELOG_ADDR'} = '';
> +$logsettings{'REMOTELOG_PROTOCOL'} = 'udp';
>  $logsettings{'ACTION'} = '';
>  &Header::getcgihash(\%logsettings);
>  
> @@ -45,6 +46,10 @@ if ($logsettings{'ACTION'} eq $Lang::tr{'save'})
>      {
>        $errormessage = $Lang::tr{'invalid logserver address'};
>      }
> +    unless ($logsettings{'REMOTELOG_PROTOCOL'} =~ /^udp|tcp$/)
> +    {
> +
> +    }

So what was going to happen here?

>    }
>    unless ($logsettings{'LOGWATCH_KEEP'} =~ /^\d+$/)
>    {
> @@ -69,6 +74,10 @@ $checked{'ENABLE_REMOTELOG'}{'off'} = '';
>  $checked{'ENABLE_REMOTELOG'}{'on'} = '';
>  $checked{'ENABLE_REMOTELOG'}{$logsettings{'ENABLE_REMOTELOG'}} =
> "checked='checked'";
>  
> +$selected{'REMOTELOG_PROTOCOL'}{'udp'} = '';
> +$selected{'REMOTELOG_PROTOCOL'}{'tcp'} == '';
> +$selected{'REMOTELOG_PROTOCOL'}{$logsettings{'REMOTELOG_PROTOCOL'}} =
> "selected='selected'";
> +
>  $checked{'LOGVIEW_REVERSE'}{'off'} = '';
>  $checked{'LOGVIEW_REVERSE'}{'on'} = '';
>  $checked{'LOGVIEW_REVERSE'}{$logsettings{'LOGVIEW_REVERSE'}} =
> "checked='checked'";
> @@ -139,6 +148,11 @@ print <<END
>  <tr>
>    <td class='base'>$Lang::tr{'enabled'}</td><td><input type='checkbox'
> name='ENABLE_REMOTELOG' $checked{'ENABLE_REMOTELOG'}{'on'} /></td>
>    <td>$Lang::tr{'log server address'}</td><td><input type='text'
> name='REMOTELOG_ADDR' value='$logsettings{'REMOTELOG_ADDR'}' /></td>
> +  <td>$Lang::tr{'log server protocol'}</td><td>
> +  <select name='REMOTELOG_PROTOCOL'>
> +  <option value='udp' $selected{'REMOTELOG_PROTOCOL'}{'udp'}>$Lang::tr{'udp
> less overhead'}</option>
> +  <option value='tcp' $selected{'REMOTELOG_PROTOCOL'}{'tcp'}>$Lang::tr{'tcp
> more reliable'}</option>
> +  </select></td>
>  </tr>
>  </table>
>  END
  
Peter Müller Nov. 21, 2017, 5:37 a.m. UTC | #2
Hello,

> On Sun, 2017-11-19 at 17:40 +0100, Peter Müller wrote:
> > Add option to change remote syslog protocol to TCP, which
> > is more reliable than UDP, but might be unsupported  on
> > older syslog servers.
> > 
> > Signed-off-by: Peter Müller <peter.mueller@link38.eu>
> > ---
> >  html/cgi-bin/logs.cgi/config.dat | 16 ++++++++++++++
> >  1 file changed, 16 insertions(+)
> > 
> > diff --git a/html/cgi-bin/logs.cgi/config.dat b/html/cgi-
> > bin/logs.cgi/config.dat
> > index 789341dbe..ec3c2a92d 100644
> > --- a/html/cgi-bin/logs.cgi/config.dat
> > +++ b/html/cgi-bin/logs.cgi/config.dat
> > @@ -33,6 +33,7 @@ $logsettings{'LOGWATCH_KEEP'} = '56';
> >  my @VS = ('15','50','100','150','250','500');
> >  $logsettings{'ENABLE_REMOTELOG'} = 'off';
> >  $logsettings{'REMOTELOG_ADDR'} = '';
> > +$logsettings{'REMOTELOG_PROTOCOL'} = 'udp';
> >  $logsettings{'ACTION'} = '';
> >  &Header::getcgihash(\%logsettings);
> >  
> > @@ -45,6 +46,10 @@ if ($logsettings{'ACTION'} eq $Lang::tr{'save'})
> >      {
> >        $errormessage = $Lang::tr{'invalid logserver address'};
> >      }
> > +    unless ($logsettings{'REMOTELOG_PROTOCOL'} =~ /^udp|tcp$/)
> > +    {
> > +
> > +    }  
> 
> So what was going to happen here?
There should be an error message in case invalid formula data was
received. Forgot the line, will send in another version of this. *sigh*

Sorry for all the noise here.

Best regards,
Peter Müller
> 
> >    }
> >    unless ($logsettings{'LOGWATCH_KEEP'} =~ /^\d+$/)
> >    {
> > @@ -69,6 +74,10 @@ $checked{'ENABLE_REMOTELOG'}{'off'} = '';
> >  $checked{'ENABLE_REMOTELOG'}{'on'} = '';
> >  $checked{'ENABLE_REMOTELOG'}{$logsettings{'ENABLE_REMOTELOG'}} =
> > "checked='checked'";
> >  
> > +$selected{'REMOTELOG_PROTOCOL'}{'udp'} = '';
> > +$selected{'REMOTELOG_PROTOCOL'}{'tcp'} == '';
> > +$selected{'REMOTELOG_PROTOCOL'}{$logsettings{'REMOTELOG_PROTOCOL'}} =
> > "selected='selected'";
> > +
> >  $checked{'LOGVIEW_REVERSE'}{'off'} = '';
> >  $checked{'LOGVIEW_REVERSE'}{'on'} = '';
> >  $checked{'LOGVIEW_REVERSE'}{$logsettings{'LOGVIEW_REVERSE'}} =
> > "checked='checked'";
> > @@ -139,6 +148,11 @@ print <<END
> >  <tr>
> >    <td class='base'>$Lang::tr{'enabled'}</td><td><input type='checkbox'
> > name='ENABLE_REMOTELOG' $checked{'ENABLE_REMOTELOG'}{'on'} /></td>
> >    <td>$Lang::tr{'log server address'}</td><td><input type='text'
> > name='REMOTELOG_ADDR' value='$logsettings{'REMOTELOG_ADDR'}' /></td>
> > +  <td>$Lang::tr{'log server protocol'}</td><td>
> > +  <select name='REMOTELOG_PROTOCOL'>
> > +  <option value='udp' $selected{'REMOTELOG_PROTOCOL'}{'udp'}>$Lang::tr{'udp
> > less overhead'}</option>
> > +  <option value='tcp' $selected{'REMOTELOG_PROTOCOL'}{'tcp'}>$Lang::tr{'tcp
> > more reliable'}</option>
> > +  </select></td>
> >  </tr>
> >  </table>
> >  END
  
Michael Tremer Nov. 21, 2017, 11:26 p.m. UTC | #3
On Mon, 2017-11-20 at 19:37 +0100, Peter Müller wrote:
> Hello,
> 
> > On Sun, 2017-11-19 at 17:40 +0100, Peter Müller wrote:
> > > Add option to change remote syslog protocol to TCP, which
> > > is more reliable than UDP, but might be unsupported  on
> > > older syslog servers.
> > > 
> > > Signed-off-by: Peter Müller <peter.mueller@link38.eu>
> > > ---
> > >  html/cgi-bin/logs.cgi/config.dat | 16 ++++++++++++++
> > >  1 file changed, 16 insertions(+)
> > > 
> > > diff --git a/html/cgi-bin/logs.cgi/config.dat b/html/cgi-
> > > bin/logs.cgi/config.dat
> > > index 789341dbe..ec3c2a92d 100644
> > > --- a/html/cgi-bin/logs.cgi/config.dat
> > > +++ b/html/cgi-bin/logs.cgi/config.dat
> > > @@ -33,6 +33,7 @@ $logsettings{'LOGWATCH_KEEP'} = '56';
> > >  my @VS = ('15','50','100','150','250','500');
> > >  $logsettings{'ENABLE_REMOTELOG'} = 'off';
> > >  $logsettings{'REMOTELOG_ADDR'} = '';
> > > +$logsettings{'REMOTELOG_PROTOCOL'} = 'udp';
> > >  $logsettings{'ACTION'} = '';
> > >  &Header::getcgihash(\%logsettings);
> > >  
> > > @@ -45,6 +46,10 @@ if ($logsettings{'ACTION'} eq $Lang::tr{'save'})
> > >      {
> > >        $errormessage = $Lang::tr{'invalid logserver address'};
> > >      }
> > > +    unless ($logsettings{'REMOTELOG_PROTOCOL'} =~ /^udp|tcp$/)
> > > +    {
> > > +
> > > +    }  
> > 
> > So what was going to happen here?
> 
> There should be an error message in case invalid formula data was
> received. Forgot the line, will send in another version of this. *sigh*

Spotted this before but must have forgotten to comment on it.

> 
> Sorry for all the noise here.
> 
> Best regards,
> Peter Müller
> > 
> > >    }
> > >    unless ($logsettings{'LOGWATCH_KEEP'} =~ /^\d+$/)
> > >    {
> > > @@ -69,6 +74,10 @@ $checked{'ENABLE_REMOTELOG'}{'off'} = '';
> > >  $checked{'ENABLE_REMOTELOG'}{'on'} = '';
> > >  $checked{'ENABLE_REMOTELOG'}{$logsettings{'ENABLE_REMOTELOG'}} =
> > > "checked='checked'";
> > >  
> > > +$selected{'REMOTELOG_PROTOCOL'}{'udp'} = '';
> > > +$selected{'REMOTELOG_PROTOCOL'}{'tcp'} == '';
> > > +$selected{'REMOTELOG_PROTOCOL'}{$logsettings{'REMOTELOG_PROTOCOL'}} =
> > > "selected='selected'";
> > > +
> > >  $checked{'LOGVIEW_REVERSE'}{'off'} = '';
> > >  $checked{'LOGVIEW_REVERSE'}{'on'} = '';
> > >  $checked{'LOGVIEW_REVERSE'}{$logsettings{'LOGVIEW_REVERSE'}} =
> > > "checked='checked'";
> > > @@ -139,6 +148,11 @@ print <<END
> > >  <tr>
> > >    <td class='base'>$Lang::tr{'enabled'}</td><td><input type='checkbox'
> > > name='ENABLE_REMOTELOG' $checked{'ENABLE_REMOTELOG'}{'on'} /></td>
> > >    <td>$Lang::tr{'log server address'}</td><td><input type='text'
> > > name='REMOTELOG_ADDR' value='$logsettings{'REMOTELOG_ADDR'}' /></td>
> > > +  <td>$Lang::tr{'log server protocol'}</td><td>
> > > +  <select name='REMOTELOG_PROTOCOL'>
> > > +  <option value='udp'
> > > $selected{'REMOTELOG_PROTOCOL'}{'udp'}>$Lang::tr{'udp
> > > less overhead'}</option>
> > > +  <option value='tcp'
> > > $selected{'REMOTELOG_PROTOCOL'}{'tcp'}>$Lang::tr{'tcp
> > > more reliable'}</option>
> > > +  </select></td>
> > >  </tr>
> > >  </table>
> > >  END  
> 
>
  

Patch

diff --git a/html/cgi-bin/logs.cgi/config.dat b/html/cgi-bin/logs.cgi/config.dat
index 789341dbe..ec3c2a92d 100644
--- a/html/cgi-bin/logs.cgi/config.dat
+++ b/html/cgi-bin/logs.cgi/config.dat
@@ -33,6 +33,7 @@  $logsettings{'LOGWATCH_KEEP'} = '56';
 my @VS = ('15','50','100','150','250','500');
 $logsettings{'ENABLE_REMOTELOG'} = 'off';
 $logsettings{'REMOTELOG_ADDR'} = '';
+$logsettings{'REMOTELOG_PROTOCOL'} = 'udp';
 $logsettings{'ACTION'} = '';
 &Header::getcgihash(\%logsettings);
 
@@ -45,6 +46,10 @@  if ($logsettings{'ACTION'} eq $Lang::tr{'save'})
     {
       $errormessage = $Lang::tr{'invalid logserver address'};
     }
+    unless ($logsettings{'REMOTELOG_PROTOCOL'} =~ /^udp|tcp$/)
+    {
+
+    }
   }
   unless ($logsettings{'LOGWATCH_KEEP'} =~ /^\d+$/)
   {
@@ -69,6 +74,10 @@  $checked{'ENABLE_REMOTELOG'}{'off'} = '';
 $checked{'ENABLE_REMOTELOG'}{'on'} = '';
 $checked{'ENABLE_REMOTELOG'}{$logsettings{'ENABLE_REMOTELOG'}} = "checked='checked'";
 
+$selected{'REMOTELOG_PROTOCOL'}{'udp'} = '';
+$selected{'REMOTELOG_PROTOCOL'}{'tcp'} == '';
+$selected{'REMOTELOG_PROTOCOL'}{$logsettings{'REMOTELOG_PROTOCOL'}} = "selected='selected'";
+
 $checked{'LOGVIEW_REVERSE'}{'off'} = '';
 $checked{'LOGVIEW_REVERSE'}{'on'} = '';
 $checked{'LOGVIEW_REVERSE'}{$logsettings{'LOGVIEW_REVERSE'}} = "checked='checked'";
@@ -139,6 +148,11 @@  print <<END
 <tr>
   <td class='base'>$Lang::tr{'enabled'}</td><td><input type='checkbox' name='ENABLE_REMOTELOG' $checked{'ENABLE_REMOTELOG'}{'on'} /></td>
   <td>$Lang::tr{'log server address'}</td><td><input type='text' name='REMOTELOG_ADDR' value='$logsettings{'REMOTELOG_ADDR'}' /></td>
+  <td>$Lang::tr{'log server protocol'}</td><td>
+  <select name='REMOTELOG_PROTOCOL'>
+  <option value='udp' $selected{'REMOTELOG_PROTOCOL'}{'udp'}>$Lang::tr{'udp less overhead'}</option>
+  <option value='tcp' $selected{'REMOTELOG_PROTOCOL'}{'tcp'}>$Lang::tr{'tcp more reliable'}</option>
+  </select></td>
 </tr>
 </table>
 END