summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--plugins/check_ide_smart.c6
-rw-r--r--plugins/check_ldap.c42
-rw-r--r--plugins/check_mysql.c42
-rw-r--r--plugins/check_nt.c39
-rw-r--r--plugins/check_ntp.c8
-rw-r--r--plugins/check_nwstat.c48
-rw-r--r--plugins/check_overcr.c31
-rw-r--r--plugins/check_procs.c58
-rw-r--r--plugins/check_radius.c28
-rw-r--r--plugins/check_smtp.c98
-rw-r--r--plugins/check_ups.c10
11 files changed, 201 insertions, 209 deletions
diff --git a/plugins/check_ide_smart.c b/plugins/check_ide_smart.c
index 381dbd8..9640ef7 100644
--- a/plugins/check_ide_smart.c
+++ b/plugins/check_ide_smart.c
@@ -113,12 +113,10 @@ typedef struct values_s {
113 __u8 checksum; 113 __u8 checksum;
114} __attribute__((packed)) values_t; 114} __attribute__((packed)) values_t;
115 115
116struct { 116static struct {
117 __u8 value; 117 __u8 value;
118 char *text; 118 char *text;
119} 119} offline_status_text[] = {{0x00, "NeverStarted"}, {0x02, "Completed"}, {0x04, "Suspended"},
120
121static offline_status_text[] = {{0x00, "NeverStarted"}, {0x02, "Completed"}, {0x04, "Suspended"},
122 {0x05, "Aborted"}, {0x06, "Failed"}, {0, 0}}; 120 {0x05, "Aborted"}, {0x06, "Failed"}, {0, 0}};
123 121
124static struct { 122static struct {
diff --git a/plugins/check_ldap.c b/plugins/check_ldap.c
index 1c72829..87818da 100644
--- a/plugins/check_ldap.c
+++ b/plugins/check_ldap.c
@@ -47,37 +47,37 @@ enum {
47 DEFAULT_PORT = 389 47 DEFAULT_PORT = 389
48}; 48};
49 49
50int process_arguments (int, char **); 50static int process_arguments (int, char **);
51int validate_arguments (void); 51static int validate_arguments (void);
52void print_help (void); 52static void print_help (void);
53void print_usage (void); 53void print_usage (void);
54 54
55char ld_defattr[] = "(objectclass=*)"; 55static char ld_defattr[] = "(objectclass=*)";
56char *ld_attr = ld_defattr; 56static char *ld_attr = ld_defattr;
57char *ld_host = NULL; 57static char *ld_host = NULL;
58char *ld_base = NULL; 58static char *ld_base = NULL;
59char *ld_passwd = NULL; 59static char *ld_passwd = NULL;
60char *ld_binddn = NULL; 60static char *ld_binddn = NULL;
61int ld_port = -1; 61static int ld_port = -1;
62#ifdef HAVE_LDAP_SET_OPTION 62#ifdef HAVE_LDAP_SET_OPTION
63int ld_protocol = DEFAULT_PROTOCOL; 63static int ld_protocol = DEFAULT_PROTOCOL;
64#endif 64#endif
65#ifndef LDAP_OPT_SUCCESS 65#ifndef LDAP_OPT_SUCCESS
66# define LDAP_OPT_SUCCESS LDAP_SUCCESS 66# define LDAP_OPT_SUCCESS LDAP_SUCCESS
67#endif 67#endif
68double warn_time = UNDEFINED; 68static double warn_time = UNDEFINED;
69double crit_time = UNDEFINED; 69static double crit_time = UNDEFINED;
70thresholds *entries_thresholds = NULL; 70static thresholds *entries_thresholds = NULL;
71struct timeval tv; 71static struct timeval tv;
72char* warn_entries = NULL; 72static char* warn_entries = NULL;
73char* crit_entries = NULL; 73static char* crit_entries = NULL;
74bool starttls = false; 74static bool starttls = false;
75bool ssl_on_connect = false; 75static bool ssl_on_connect = false;
76bool verbose = false; 76static bool verbose = false;
77 77
78/* for ldap tls */ 78/* for ldap tls */
79 79
80char *SERVICE = "LDAP"; 80static char *SERVICE = "LDAP";
81 81
82int 82int
83main (int argc, char *argv[]) 83main (int argc, char *argv[])
diff --git a/plugins/check_mysql.c b/plugins/check_mysql.c
index 1f0b709..8a73772 100644
--- a/plugins/check_mysql.c
+++ b/plugins/check_mysql.c
@@ -45,23 +45,23 @@ const char *email = "devel@monitoring-plugins.org";
45#include <mysqld_error.h> 45#include <mysqld_error.h>
46#include <errmsg.h> 46#include <errmsg.h>
47 47
48char *db_user = NULL; 48static char *db_user = NULL;
49char *db_host = NULL; 49static char *db_host = NULL;
50char *db_socket = NULL; 50static char *db_socket = NULL;
51char *db_pass = NULL; 51static char *db_pass = NULL;
52char *db = NULL; 52static char *db = NULL;
53char *ca_cert = NULL; 53static char *ca_cert = NULL;
54char *ca_dir = NULL; 54static char *ca_dir = NULL;
55char *cert = NULL; 55static char *cert = NULL;
56char *key = NULL; 56static char *key = NULL;
57char *ciphers = NULL; 57static char *ciphers = NULL;
58bool ssl = false; 58static bool ssl = false;
59char *opt_file = NULL; 59static char *opt_file = NULL;
60char *opt_group = NULL; 60static char *opt_group = NULL;
61unsigned int db_port = MYSQL_PORT; 61static unsigned int db_port = MYSQL_PORT;
62bool check_slave = false; 62static bool check_slave = false;
63bool ignore_auth = false; 63static bool ignore_auth = false;
64int verbose = 0; 64static int verbose = 0;
65 65
66static double warning_time = 0; 66static double warning_time = 0;
67static double critical_time = 0; 67static double critical_time = 0;
@@ -91,11 +91,11 @@ static const char *metric_counter[LENGTH_METRIC_COUNTER] = {
91 91
92#define MYSQLDUMP_THREADS_QUERY "SELECT COUNT(1) mysqldumpThreads FROM information_schema.processlist WHERE info LIKE 'SELECT /*!40001 SQL_NO_CACHE */%'" 92#define MYSQLDUMP_THREADS_QUERY "SELECT COUNT(1) mysqldumpThreads FROM information_schema.processlist WHERE info LIKE 'SELECT /*!40001 SQL_NO_CACHE */%'"
93 93
94thresholds *my_threshold = NULL; 94static thresholds *my_threshold = NULL;
95 95
96int process_arguments (int, char **); 96static int process_arguments (int, char **);
97int validate_arguments (void); 97static int validate_arguments (void);
98void print_help (void); 98static void print_help (void);
99void print_usage (void); 99void print_usage (void);
100 100
101int 101int
diff --git a/plugins/check_nt.c b/plugins/check_nt.c
index 413aad6..dec0b66 100644
--- a/plugins/check_nt.c
+++ b/plugins/check_nt.c
@@ -59,26 +59,25 @@ enum {
59 PORT = 1248 59 PORT = 1248
60}; 60};
61 61
62char *server_address = NULL; 62static char *server_address = NULL;
63char *volume_name = NULL; 63static int server_port = PORT;
64int server_port = PORT; 64static char *value_list = NULL;
65char *value_list = NULL; 65static char *req_password = NULL;
66char *req_password = NULL; 66static unsigned long lvalue_list[MAX_VALUE_LIST];
67unsigned long lvalue_list[MAX_VALUE_LIST]; 67static unsigned long warning_value = 0L;
68unsigned long warning_value = 0L; 68static unsigned long critical_value = 0L;
69unsigned long critical_value = 0L; 69static bool check_warning_value = false;
70bool check_warning_value = false; 70static bool check_critical_value = false;
71bool check_critical_value = false; 71static enum checkvars vars_to_check = CHECK_NONE;
72enum checkvars vars_to_check = CHECK_NONE; 72static bool show_all = false;
73bool show_all = false; 73
74 74static char recv_buffer[MAX_INPUT_BUFFER];
75char recv_buffer[MAX_INPUT_BUFFER]; 75
76 76static void fetch_data(const char *address, int port, const char *sendb);
77void fetch_data(const char *address, int port, const char *sendb); 77static int process_arguments(int /*argc*/, char ** /*argv*/);
78int process_arguments(int, char **); 78static void preparelist(char *string);
79void preparelist(char *string); 79static bool strtoularray(unsigned long *array, char *string, const char *delim);
80bool strtoularray(unsigned long *array, char *string, const char *delim); 80static void print_help(void);
81void print_help(void);
82void print_usage(void); 81void print_usage(void);
83 82
84int main(int argc, char **argv) { 83int main(int argc, char **argv) {
diff --git a/plugins/check_ntp.c b/plugins/check_ntp.c
index 55a4946..d33f878 100644
--- a/plugins/check_ntp.c
+++ b/plugins/check_ntp.c
@@ -47,10 +47,10 @@ static bool do_jitter = false;
47static char *jwarn="5000"; 47static char *jwarn="5000";
48static char *jcrit="10000"; 48static char *jcrit="10000";
49 49
50int process_arguments (int, char **); 50static int process_arguments (int /*argc*/, char ** /*argv*/);
51thresholds *offset_thresholds = NULL; 51static thresholds *offset_thresholds = NULL;
52thresholds *jitter_thresholds = NULL; 52static thresholds *jitter_thresholds = NULL;
53void print_help (void); 53static void print_help (void);
54void print_usage (void); 54void print_usage (void);
55 55
56/* number of times to perform each request to get a good average. */ 56/* number of times to perform each request to get a good average. */
diff --git a/plugins/check_nwstat.c b/plugins/check_nwstat.c
index 3af6360..176dfbc 100644
--- a/plugins/check_nwstat.c
+++ b/plugins/check_nwstat.c
@@ -89,30 +89,30 @@ enum {
89 PORT = 9999 89 PORT = 9999
90}; 90};
91 91
92char *server_address = NULL; 92static char *server_address = NULL;
93char *volume_name = NULL; 93static char *volume_name = NULL;
94char *nlm_name = NULL; 94static char *nlm_name = NULL;
95char *nrmp_name = NULL; 95static char *nrmp_name = NULL;
96char *nrmm_name = NULL; 96static char *nrmm_name = NULL;
97char *nrms_name = NULL; 97static char *nrms_name = NULL;
98char *nss1_name = NULL; 98static char *nss1_name = NULL;
99char *nss2_name = NULL; 99static char *nss2_name = NULL;
100char *nss3_name = NULL; 100static char *nss3_name = NULL;
101char *nss4_name = NULL; 101static char *nss4_name = NULL;
102char *nss5_name = NULL; 102static char *nss5_name = NULL;
103char *nss6_name = NULL; 103static char *nss6_name = NULL;
104char *nss7_name = NULL; 104static char *nss7_name = NULL;
105int server_port = PORT; 105static int server_port = PORT;
106unsigned long warning_value = 0L; 106static unsigned long warning_value = 0L;
107unsigned long critical_value = 0L; 107static unsigned long critical_value = 0L;
108bool check_warning_value = false; 108static bool check_warning_value = false;
109bool check_critical_value = false; 109static bool check_critical_value = false;
110bool check_netware_version = false; 110static bool check_netware_version = false;
111enum checkvar vars_to_check = NONE; 111static enum checkvar vars_to_check = NONE;
112int sap_number = -1; 112static int sap_number = -1;
113 113
114int process_arguments(int, char **); 114static int process_arguments(int /*argc*/, char ** /*argv*/);
115void print_help(void); 115static void print_help(void);
116void print_usage(void); 116void print_usage(void);
117 117
118int main(int argc, char **argv) { 118int main(int argc, char **argv) {
diff --git a/plugins/check_overcr.c b/plugins/check_overcr.c
index e80d477..599540b 100644
--- a/plugins/check_overcr.c
+++ b/plugins/check_overcr.c
@@ -52,23 +52,22 @@ enum {
52 PORT = 2000 52 PORT = 2000
53}; 53};
54 54
55char *server_address = NULL; 55static char *server_address = NULL;
56int server_port = PORT; 56static int server_port = PORT;
57double warning_value = 0L; 57static double warning_value = 0L;
58double critical_value = 0L; 58static double critical_value = 0L;
59bool check_warning_value = false; 59static bool check_warning_value = false;
60bool check_critical_value = false; 60static bool check_critical_value = false;
61enum checkvar vars_to_check = NONE; 61static enum checkvar vars_to_check = NONE;
62int cmd_timeout = 1; 62
63 63static int netstat_port = 0;
64int netstat_port = 0; 64static char *disk_name = NULL;
65char *disk_name = NULL; 65static char *process_name = NULL;
66char *process_name = NULL; 66static char send_buffer[MAX_INPUT_BUFFER];
67char send_buffer[MAX_INPUT_BUFFER]; 67
68 68static int process_arguments(int, char **);
69int process_arguments(int, char **);
70void print_usage(void); 69void print_usage(void);
71void print_help(void); 70static void print_help(void);
72 71
73int main(int argc, char **argv) { 72int main(int argc, char **argv) {
74 int result = STATE_UNKNOWN; 73 int result = STATE_UNKNOWN;
diff --git a/plugins/check_procs.c b/plugins/check_procs.c
index 5777ba0..1d78cce 100644
--- a/plugins/check_procs.c
+++ b/plugins/check_procs.c
@@ -51,17 +51,17 @@ const char *email = "devel@monitoring-plugins.org";
51#include <sys/stat.h> 51#include <sys/stat.h>
52#endif 52#endif
53 53
54int process_arguments (int, char **); 54static int process_arguments (int /*argc*/, char ** /*argv*/);
55int validate_arguments (void); 55static int validate_arguments (void);
56int convert_to_seconds (char *); 56static int convert_to_seconds (char * /*etime*/);
57void print_help (void); 57static void print_help (void);
58void print_usage (void); 58void print_usage (void);
59 59
60char *warning_range = NULL; 60static char *warning_range = NULL;
61char *critical_range = NULL; 61static char *critical_range = NULL;
62thresholds *procs_thresholds = NULL; 62static thresholds *procs_thresholds = NULL;
63 63
64int options = 0; /* bitmask of filter criteria to test against */ 64static int options = 0; /* bitmask of filter criteria to test against */
65#define ALL 1 65#define ALL 1
66#define STAT 2 66#define STAT 2
67#define PPID 4 67#define PPID 4
@@ -89,27 +89,25 @@ enum metric {
89}; 89};
90enum metric metric = METRIC_PROCS; 90enum metric metric = METRIC_PROCS;
91 91
92int verbose = 0; 92static int verbose = 0;
93int uid; 93static int uid;
94pid_t ppid; 94static pid_t ppid;
95int vsz; 95static int vsz;
96int rss; 96static int rss;
97float pcpu; 97static float pcpu;
98char *statopts; 98static char *statopts;
99char *prog; 99static char *prog;
100char *exclude_progs; 100static char *exclude_progs;
101char **exclude_progs_arr = NULL; 101static char **exclude_progs_arr = NULL;
102char exclude_progs_counter = 0; 102static char exclude_progs_counter = 0;
103char *args; 103static char *args;
104char *input_filename = NULL; 104static char *input_filename = NULL;
105regex_t re_args; 105static regex_t re_args;
106char *fmt; 106static char *fmt;
107char *fails; 107static char *fails;
108char tmp[MAX_INPUT_BUFFER]; 108static char tmp[MAX_INPUT_BUFFER];
109int kthread_filter = 0; 109static int kthread_filter = 0;
110int usepid = 0; /* whether to test for pid or /proc/pid/exe */ 110static int usepid = 0; /* whether to test for pid or /proc/pid/exe */
111
112FILE *ps_input = NULL;
113 111
114static int 112static int
115stat_exe (const pid_t pid, struct stat *buf) { 113stat_exe (const pid_t pid, struct stat *buf) {
@@ -834,7 +832,7 @@ be the total number of running processes\n\n"));
834 printf (" %s\n", "check_procs -w 50000 -c 100000 --metric=VSZ"); 832 printf (" %s\n", "check_procs -w 50000 -c 100000 --metric=VSZ");
835 printf (" %s\n\n", _("Alert if VSZ of any processes over 50K or 100K")); 833 printf (" %s\n\n", _("Alert if VSZ of any processes over 50K or 100K"));
836 printf (" %s\n", "check_procs -w 10 -c 20 --metric=CPU"); 834 printf (" %s\n", "check_procs -w 10 -c 20 --metric=CPU");
837 printf (" %s\n", _("Alert if CPU of any processes over 10\% or 20\%")); 835 printf (" %s\n", _("Alert if CPU of any processes over 10%% or 20%%"));
838 836
839 printf (UT_SUPPORT); 837 printf (UT_SUPPORT);
840} 838}
diff --git a/plugins/check_radius.c b/plugins/check_radius.c
index 8ed19e5..d9ff8fa 100644
--- a/plugins/check_radius.c
+++ b/plugins/check_radius.c
@@ -46,8 +46,8 @@ const char *email = "devel@monitoring-plugins.org";
46#include <radiusclient.h> 46#include <radiusclient.h>
47#endif 47#endif
48 48
49int process_arguments (int, char **); 49static int process_arguments (int /*argc*/, char ** /*argv*/);
50void print_help (void); 50static void print_help (void);
51void print_usage (void); 51void print_usage (void);
52 52
53#if defined(HAVE_LIBFREERADIUS_CLIENT) || defined(HAVE_LIBRADIUSCLIENT_NG) || defined(HAVE_LIBRADCLI) 53#if defined(HAVE_LIBFREERADIUS_CLIENT) || defined(HAVE_LIBRADIUSCLIENT_NG) || defined(HAVE_LIBRADCLI)
@@ -78,22 +78,22 @@ void print_usage (void);
78#define REJECT_RC BADRESP_RC 78#define REJECT_RC BADRESP_RC
79#endif 79#endif
80 80
81int my_rc_read_config(char *); 81static int my_rc_read_config(char * /*a*/);
82 82
83#if defined(HAVE_LIBFREERADIUS_CLIENT) || defined(HAVE_LIBRADIUSCLIENT_NG) || defined(HAVE_LIBRADCLI) 83#if defined(HAVE_LIBFREERADIUS_CLIENT) || defined(HAVE_LIBRADIUSCLIENT_NG) || defined(HAVE_LIBRADCLI)
84rc_handle *rch = NULL; 84static rc_handle *rch = NULL;
85#endif 85#endif
86 86
87char *server = NULL; 87static char *server = NULL;
88char *username = NULL; 88static char *username = NULL;
89char *password = NULL; 89static char *password = NULL;
90char *nasid = NULL; 90static char *nasid = NULL;
91char *nasipaddress = NULL; 91static char *nasipaddress = NULL;
92char *expect = NULL; 92static char *expect = NULL;
93char *config_file = NULL; 93static char *config_file = NULL;
94unsigned short port = PW_AUTH_UDP_PORT; 94static unsigned short port = PW_AUTH_UDP_PORT;
95int retries = 1; 95static int retries = 1;
96bool verbose = false; 96static bool verbose = false;
97 97
98/****************************************************************************** 98/******************************************************************************
99 99
diff --git a/plugins/check_smtp.c b/plugins/check_smtp.c
index bc17528..e6369e6 100644
--- a/plugins/check_smtp.c
+++ b/plugins/check_smtp.c
@@ -40,8 +40,8 @@ const char *email = "devel@monitoring-plugins.org";
40#include <ctype.h> 40#include <ctype.h>
41 41
42#ifdef HAVE_SSL 42#ifdef HAVE_SSL
43bool check_cert = false; 43static bool check_cert = false;
44int days_till_exp_warn, days_till_exp_crit; 44static int days_till_exp_warn, days_till_exp_crit;
45# define my_recv(buf, len) (((use_starttls || use_ssl) && ssl_established) ? np_net_ssl_read(buf, len) : read(sd, buf, len)) 45# define my_recv(buf, len) (((use_starttls || use_ssl) && ssl_established) ? np_net_ssl_read(buf, len) : read(sd, buf, len))
46# define my_send(buf, len) (((use_starttls || use_ssl) && ssl_established) ? np_net_ssl_write(buf, len) : send(sd, buf, len, 0)) 46# define my_send(buf, len) (((use_starttls || use_ssl) && ssl_established) ? np_net_ssl_write(buf, len) : send(sd, buf, len, 0))
47#else /* ifndef HAVE_SSL */ 47#else /* ifndef HAVE_SSL */
@@ -64,61 +64,59 @@ enum {
64 64
65#define EHLO_SUPPORTS_STARTTLS 1 65#define EHLO_SUPPORTS_STARTTLS 1
66 66
67int process_arguments (int, char **); 67static int process_arguments (int, char **);
68int validate_arguments (void); 68static int validate_arguments (void);
69void print_help (void); 69static void print_help (void);
70void print_usage (void); 70void print_usage (void);
71void smtp_quit(void); 71static void smtp_quit(void);
72int recvline(char *, size_t); 72static int recvline(char *, size_t);
73int recvlines(char *, size_t); 73static int recvlines(char *, size_t);
74int my_close(void); 74static int my_close(void);
75 75
76#include "regex.h" 76#include "regex.h"
77char regex_expect[MAX_INPUT_BUFFER] = ""; 77static regex_t preg;
78regex_t preg; 78static regmatch_t pmatch[10];
79regmatch_t pmatch[10]; 79static char errbuf[MAX_INPUT_BUFFER];
80char timestamp[20] = ""; 80static int cflags = REG_EXTENDED | REG_NOSUB | REG_NEWLINE;
81char errbuf[MAX_INPUT_BUFFER]; 81static int eflags = 0;
82int cflags = REG_EXTENDED | REG_NOSUB | REG_NEWLINE; 82static int errcode, excode;
83int eflags = 0; 83
84int errcode, excode; 84static int server_port = SMTP_PORT;
85 85static int server_port_option = 0;
86int server_port = SMTP_PORT; 86static char *server_address = NULL;
87int server_port_option = 0; 87static char *server_expect = NULL;
88char *server_address = NULL; 88static char *mail_command = NULL;
89char *server_expect = NULL; 89static char *from_arg = NULL;
90char *mail_command = NULL; 90static int send_mail_from=0;
91char *from_arg = NULL; 91static int ncommands=0;
92int send_mail_from=0; 92static int command_size=0;
93int ncommands=0; 93static int nresponses=0;
94int command_size=0; 94static int response_size=0;
95int nresponses=0; 95static char **commands = NULL;
96int response_size=0; 96static char **responses = NULL;
97char **commands = NULL; 97static char *authtype = NULL;
98char **responses = NULL; 98static char *authuser = NULL;
99char *authtype = NULL; 99static char *authpass = NULL;
100char *authuser = NULL; 100static double warning_time = 0;
101char *authpass = NULL; 101static bool check_warning_time = false;
102double warning_time = 0; 102static double critical_time = 0;
103bool check_warning_time = false; 103static bool check_critical_time = false;
104double critical_time = 0; 104static int verbose = 0;
105bool check_critical_time = false; 105static bool use_ssl = false;
106int verbose = 0; 106static bool use_starttls = false;
107bool use_ssl = false; 107static bool use_sni = false;
108bool use_starttls = false; 108static bool use_proxy_prefix = false;
109bool use_sni = false; 109static bool use_ehlo = false;
110bool use_proxy_prefix = false; 110static bool use_lhlo = false;
111bool use_ehlo = false; 111static bool ssl_established = false;
112bool use_lhlo = false; 112static char *localhostname = NULL;
113bool ssl_established = false; 113static int sd;
114char *localhostname = NULL; 114static char buffer[MAX_INPUT_BUFFER];
115int sd;
116char buffer[MAX_INPUT_BUFFER];
117enum { 115enum {
118 TCP_PROTOCOL = 1, 116 TCP_PROTOCOL = 1,
119 UDP_PROTOCOL = 2, 117 UDP_PROTOCOL = 2,
120}; 118};
121bool ignore_send_quit_failure = false; 119static bool ignore_send_quit_failure = false;
122 120
123 121
124int 122int
diff --git a/plugins/check_ups.c b/plugins/check_ups.c
index adb7ab8..526a29d 100644
--- a/plugins/check_ups.c
+++ b/plugins/check_ups.c
@@ -97,12 +97,12 @@ ups_config ups_config_init(void) {
97} 97}
98 98
99// Forward declarations 99// Forward declarations
100int determine_status(ups_config *, int *supported_options); 100static int determine_status(ups_config * /*config*/, int *supported_options);
101int get_ups_variable(const char *, char *, const ups_config config); 101static int get_ups_variable(const char * /*varname*/, char * /*buf*/, ups_config config);
102 102
103int process_arguments(int, char **, ups_config *); 103static int process_arguments(int /*argc*/, char ** /*argv*/, ups_config * /*config*/);
104int validate_arguments(ups_config); 104static int validate_arguments(ups_config /*config*/);
105void print_help(void); 105static void print_help(void);
106void print_usage(void); 106void print_usage(void);
107 107
108int main(int argc, char **argv) { 108int main(int argc, char **argv) {