]> source.dussan.org Git - rspamd.git/commitdiff
Add support of uptime command to rspamc. 0.3.8
authorVsevolod Stakhov <vsevolod@rambler-co.ru>
Tue, 15 Mar 2011 13:32:58 +0000 (16:32 +0300)
committerVsevolod Stakhov <vsevolod@rambler-co.ru>
Tue, 15 Mar 2011 13:32:58 +0000 (16:32 +0300)
Update manpages.
Add script for generating manpages from pod.

doc/makeman.sh [new file with mode: 0755]
doc/rspamc.1
doc/rspamc.pod
doc/rspamd.8
lib/librspamdclient.c
lib/librspamdclient.h
src/client/rspamc.c

diff --git a/doc/makeman.sh b/doc/makeman.sh
new file mode 100755 (executable)
index 0000000..176f37b
--- /dev/null
@@ -0,0 +1,17 @@
+#!/bin/sh
+# Makes manual pages from pods
+
+POD2MAN="pod2man"
+VERSION="unknown"
+CMAKEFILE="../CMakeLists.txt"
+
+# Extract release version
+if [ -f ${CMAKEFILE} ] ; then
+       _mjver=`fgrep 'SET(RSPAMD_VERSION_MAJOR' ${CMAKEFILE} | sed -e 's/^.*RSPAMD_VERSION_MAJOR \([0-9]\).*/\1/'`
+       _miver=`fgrep 'SET(RSPAMD_VERSION_MINOR' ${CMAKEFILE} | sed -e 's/^.*RSPAMD_VERSION_MINOR \([0-9]\).*/\1/'`
+       _pver=`fgrep 'SET(RSPAMD_VERSION_PATCH' ${CMAKEFILE} | sed -e 's/^.*RSPAMD_VERSION_PATCH \([0-9]\).*/\1/'`
+       VERSION="${_mjver}.${_miver}.${_pver}"
+fi
+
+pod2man -c "Rspamd documentation" -n rspamd -s 8 -r "rspamd-${VERSION}" < rspamd.pod > rspamd.8
+pod2man -c "Rspamd documentation" -n rspamc -s 1 -r "rspamd-${VERSION}" < rspamc.pod > rspamc.1
index f4e5cf2efe2961b91614e14aad44b6809c57000c..549899c917b7c5f8c49d31919779e03f315aa393 100644 (file)
 .\" ========================================================================
 .\"
 .IX Title "rspamc 1"
-.TH rspamc 1 "2011-02-25" "rspamd-0.3.7_1" "Rspamd documentation"
+.TH rspamc 1 "2011-03-15" "rspamd-0.3.8" "Rspamd documentation"
 .\" For nroff, turn off justification.  Always turn off hyphenation; it makes
 .\" way too many mistakes in technical documents.
 .if n .ad l
 rspamc \- a simple client for rspamd spam filtering system
 .SH "SYNOPSIS"
 .IX Header "SYNOPSIS"
-rspamc [\fB\-h\fR \fIhost[:port]\fR] [\fB\-p\fR]
+rspamc [\fB\-h\fR \fIhost[:port]\fR] [\fB\-p\fR] [\fB\-v\fR]
 [\fB\-i\fR \fIip\fR] [\fB\-s\fR \fIstatfile\fR] [\fB\-w\fR \fIweight\fR]
-[\fB\-P\fR \fIpassword\fR] [\fB\-f\fR \fIflag\fR] [command] [file [file ...]]
+[\fB\-P\fR \fIpassword\fR] [\fB\-f\fR \fIflag\fR] [\fB\-t\fR \fItimeout\fR] [command] [file [file ...]]
 .PP
 rspamc [\fB\-\-help\fR]
 .SH "DESCRIPTION"
@@ -152,6 +152,9 @@ default port is \fI11333\fR for checking messages and \fI11334\fR for learning a
 .IP "\fB\-p\fR, \fB\-\-pass\-all\fR" 4
 .IX Item "-p, --pass-all"
 Pass all filters when checking messages. Ignored in case of learning.
+.IP "\fB\-v\fR, \fB\-\-verbose\fR" 4
+.IX Item "-v, --verbose"
+Be more verbose while displaying results. For example show descriptions of symbols.
 .IP "\fB\-P\fR \fIpassword\fR, \fB\-\-password\fR \fIpassword\fR" 4
 .IX Item "-P password, --password password"
 Specify controller's password. Mandatory option for learning.
@@ -167,7 +170,10 @@ specific \s-1IP\s0 address.
 Weight of message for fuzzy operations.
 .IP "\fB\-f\fR \fIflag\fR, \fB\-\-flag\fR \fIflag\fR" 4
 .IX Item "-f flag, --flag flag"
-Weight of message for fuzzy operations.
+Flag of list for fuzzy operations.
+.IP "\fB\-t\fR \fItimeout\fR, \fB\-\-timeout\fR \fItimeout\fR" 4
+.IX Item "-t timeout, --timeout timeout"
+Timeout in seconds for all operations. Default value is 5 seconds.
 .SH "RETURN VALUE"
 .IX Header "RETURN VALUE"
 On exit \fBrspamc\fR returns 0 if operation was successfull and error code otherwise.
@@ -208,6 +214,12 @@ Get statistics:
 .Vb 1
 \&        rspamc stat
 .Ve
+.PP
+Get uptime:
+.PP
+.Vb 1
+\&        rspamc uptime
+.Ve
 .SH "AUTHOR"
 .IX Header "AUTHOR"
 Vsevolod Stakhov <vsevolod@highsecure.ru>
index 14de89b9295c6cab7a3cf9883fc5315ef609b353..ebb452b4da4a9cf66feb192b2445dc38ab4bb2c5 100644 (file)
@@ -4,9 +4,9 @@ rspamc - a simple client for rspamd spam filtering system
 
 =head1 SYNOPSIS
 
-rspamc [B<-h> I<host[:port]>] [B<-p>]
+rspamc [B<-h> I<host[:port]>] [B<-p>] [B<-v>]
 [B<-i> I<ip>] [B<-s> I<statfile>] [B<-w> I<weight>]
-[B<-P> I<password>] [B<-f> I<flag>] [command] [file [file ...]] 
+[B<-P> I<password>] [B<-f> I<flag>] [B<-t> I<timeout>] [command] [file [file ...]] 
 
 rspamc [B<--help>]
 
@@ -28,6 +28,10 @@ default port is I<11333> for checking messages and I<11334> for learning and sta
 
 Pass all filters when checking messages. Ignored in case of learning.
 
+=item B<-v>, B<--verbose>
+
+Be more verbose while displaying results. For example show descriptions of symbols.
+
 =item B<-P> I<password>, B<--password> I<password>
 
 Specify controller's password. Mandatory option for learning.
@@ -47,8 +51,11 @@ Weight of message for fuzzy operations.
 
 =item B<-f> I<flag>, B<--flag> I<flag>
 
-Weight of message for fuzzy operations.
+Flag of list for fuzzy operations.
 
+=item B<-t> I<timeout>, B<--timeout> I<timeout>
+
+Timeout in seconds for all operations. Default value is 5 seconds.
 
 =back
 
@@ -82,6 +89,10 @@ Get statistics:
        
        rspamc stat
 
+Get uptime:
+       
+       rspamc uptime
+
 =head1 AUTHOR
 
 Vsevolod Stakhov <vsevolod@highsecure.ru>
@@ -93,4 +104,4 @@ Copyright 2011 by Vsevolod Stakhov <vsevolod@highsecure.ru>.
 This program is free software; you may redistribute it and/or modify it
 under the terms of BSD license.
 
-=cut
\ No newline at end of file
+=cut
index 6e7e6e6f7d559564c477df1a48a8b32d599d0976..ea8e0b2b57d0aa427cfb60e74c9b67f8e076f142 100644 (file)
 .\" ========================================================================
 .\"
 .IX Title "rspamd 8"
-.TH rspamd 8 "2011-02-25" "rspamd-0.3.7_1" "Rspamd documentation"
+.TH rspamd 8 "2011-03-15" "rspamd-0.3.8" "Rspamd documentation"
 .\" For nroff, turn off justification.  Always turn off hyphenation; it makes
 .\" way too many mistakes in technical documents.
 .if n .ad l
index c1143d0be0d52c887d3230462b8a21b9ac585578..fa92df208ec00d99937d66c1515c08c54fca49c9 100644 (file)
@@ -1535,6 +1535,27 @@ rspamd_get_stat (GError **err)
        return res;
 }
 
+GString *
+rspamd_get_uptime (GError **err)
+{
+       struct rspamd_connection             *c;
+       GString                              *res;
+       static const gchar                    outcmd[] = "uptime\r\n";
+
+       g_assert (client != NULL);
+
+       /* Connect to server */
+       c = rspamd_connect_random_server (TRUE, err);
+
+       if (c == NULL) {
+               return NULL;
+       }
+
+       res = rspamd_send_controller_command (c, outcmd, strlen (outcmd), -1, err);
+
+       return res;
+}
+
 /*
  * Free results
  */
index 1e7f70187b464099ea56500e4f986bf9d2ec2101..72b7311a77cfd1448d357e1f3f50b645e362a204 100644 (file)
@@ -102,6 +102,11 @@ gboolean rspamd_fuzzy_fd (int fd, const gchar *password, gint weight, gint flag,
  */
 GString *rspamd_get_stat (GError **err);
 
+/*
+ * Get uptime from server
+ */
+GString *rspamd_get_uptime (GError **err);
+
 /*
  * Free results
  */
index f7ce4e9bc42061ad10011c263da8b2e29ab2307e..155db86c6fff705612c084eda22fe00c41d9c72b 100644 (file)
@@ -61,7 +61,8 @@ enum rspamc_command {
        RSPAMC_COMMAND_LEARN,
        RSPAMC_COMMAND_FUZZY_ADD,
        RSPAMC_COMMAND_FUZZY_DEL,
-       RSPAMC_COMMAND_STAT
+       RSPAMC_COMMAND_STAT,
+       RSPAMC_COMMAND_UPTIME
 };
 
 /*
@@ -111,6 +112,9 @@ check_rspamc_command (const gchar *cmd)
        else if (g_ascii_strcasecmp (cmd, "STAT") == 0) {
                return RSPAMC_COMMAND_STAT;
        }
+       else if (g_ascii_strcasecmp (cmd, "UPTIME") == 0) {
+               return RSPAMC_COMMAND_UPTIME;
+       }
 
        return RSPAMC_COMMAND_UNKNOWN;
 }
@@ -526,10 +530,40 @@ rspamd_do_stat ()
        res = rspamd_get_stat (&err);
        if (res == NULL) {
                if (err != NULL) {
-                       fprintf (stderr, "cannot learn message: %s\n", err->message);
+                       fprintf (stderr, "cannot stat: %s\n", err->message);
                }
                else {
-                       fprintf (stderr, "cannot learn message\n");
+                       fprintf (stderr, "cannot stat\n");
+               }
+               exit (EXIT_FAILURE);
+       }
+       if (tty) {
+               printf ("\033[1m");
+       }
+       PRINT_FUNC ("Results for host: %s\n\n", connect_str);
+       if (tty) {
+               printf ("\033[0m");
+       }
+       res = g_string_append_c (res, '\0');
+       printf ("%s\n", res->str);
+}
+
+static void
+rspamd_do_uptime ()
+{
+       GError                          *err = NULL;
+       GString                         *res;
+
+       /* Add server */
+       add_rspamd_server (TRUE);
+
+       res = rspamd_get_uptime (&err);
+       if (res == NULL) {
+               if (err != NULL) {
+                       fprintf (stderr, "cannot uptime: %s\n", err->message);
+               }
+               else {
+                       fprintf (stderr, "cannot uptime\n");
                }
                exit (EXIT_FAILURE);
        }
@@ -580,6 +614,9 @@ main (gint argc, gchar **argv, gchar **env)
                        case RSPAMC_COMMAND_STAT:
                                rspamd_do_stat ();
                                break;
+                       case RSPAMC_COMMAND_UPTIME:
+                               rspamd_do_uptime ();
+                               break;
                        default:
                                fprintf (stderr, "invalid arguments\n");
                                exit (EXIT_FAILURE);