syslog-ng source
afsnmpdest.h
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2017 Balabit
3  * Copyright (c) 2002-2011 BalaBit IT Ltd, Budapest, Hungary
4  *
5  * This program is free software; you can redistribute it and/or modify it
6  * under the terms of the GNU General Public License version 2 as published
7  * by the Free Software Foundation, or (at your option) any later version.
8  *
9  * This program is distributed in the hope that it will be useful,
10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12  * GNU General Public License for more details.
13  *
14  * You should have received a copy of the GNU General Public License
15  * along with this program; if not, write to the Free Software
16  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
17  *
18  * As an additional exemption you are allowed to compile & link against the
19  * OpenSSL libraries as published by the OpenSSL project. See the file
20  * COPYING for details.
21  *
22  */
23 
24 #ifndef AFSNMPDEST_H_INCLUDED
25 #define AFSNMPDEST_H_INCLUDED
26 
27 #pragma GCC diagnostic push
28 #pragma GCC diagnostic ignored "-Wshadow"
29 #include <net-snmp/net-snmp-config.h>
30 #include <net-snmp/net-snmp-includes.h>
31 #pragma GCC diagnostic pop
32 
33 #include "driver.h"
34 #include "mainloop-worker.h"
36 
37 #define ENGINE_ID_MAX_LENGTH 32
38 #define ENGINE_ID_MIN_LENGTH 5
39 
40 extern const gchar *s_v2c,
41  *s_v3;
42 
43 typedef struct
44 {
45  LogThreadedDestDriver super;
46 
47  gchar *version;
48  gchar *host;
49  GString *host_port;
50  gint port;
51  GList *snmp_objs; /* the values are stored as string triplets (oid, type, value) - the list size is always dividable by 3 */
53  GList *snmp_codes;
54  gchar *trap_oid,
57  gchar *community;
58  gchar *engine_id;
59  gchar *auth_username;
61  gchar *auth_password;
62  gchar *enc_algorithm;
63  gchar *enc_password;
64  gchar *transport;
65 
66  netsnmp_session session,
67  *ss;
69  LogQueue *queue;
70  LogTemplate *message;
71  LogTemplateOptions template_options;
73 
74 LogDriver *snmpdest_dd_new(GlobalConfig *cfg);
75 
76 void snmpdest_dd_set_version(LogDriver *d, const gchar *version);
77 void snmpdest_dd_set_host(LogDriver *d, const gchar *host);
78 void snmpdest_dd_set_port(LogDriver *d, gint port);
79 gboolean snmpdest_dd_set_snmp_obj(LogDriver *d, GlobalConfig *cfg, const gchar *objectid, const gchar *type,
80  const gchar *value);
81 void snmpdest_dd_set_trap_obj(LogDriver *d, GlobalConfig *cfg, const gchar *objectid, const gchar *type,
82  const gchar *value);
83 void snmpdest_dd_set_community(LogDriver *d, const gchar *community);
84 gboolean snmpdest_dd_set_engine_id(LogDriver *d, const gchar *eid);
85 void snmpdest_dd_set_auth_username(LogDriver *d, const gchar *auth_username);
86 void snmpdest_dd_set_auth_algorithm(LogDriver *d, const gchar *auth_algo);
87 void snmpdest_dd_set_auth_password(LogDriver *d, const gchar *auth_pwd);
88 void snmpdest_dd_set_enc_algorithm(LogDriver *d, const gchar *enc_algo);
89 void snmpdest_dd_set_enc_password(LogDriver *d, const gchar *epwd);
90 void snmpdest_dd_set_transport(LogDriver *d, const gchar *transport);
91 void snmpdest_dd_set_time_zone(LogDriver *d, const gchar *Time_zone);
92 
93 gboolean snmpdest_check_required_params(LogDriver *, gchar *err_msg);
94 gchar *snmpdest_dd_get_version(LogDriver *);
95 const LogTemplateOptions *snmpdest_dd_get_template_options(LogDriver *d);
96 gboolean snmpdest_dd_check_auth_algorithm(gchar *algo);
97 gboolean snmpdest_dd_check_enc_algorithm(gchar *algo);
98 
99 #endif
void snmpdest_dd_set_port(LogDriver *d, gint port)
Definition: afsnmpdest.c:133
void snmpdest_dd_set_auth_username(LogDriver *d, const gchar *auth_username)
Definition: afsnmpdest.c:269
const gchar * s_v2c
Definition: afsnmpdest.c:50
void snmpdest_dd_set_version(LogDriver *d, const gchar *version)
Definition: afsnmpdest.c:117
const LogTemplateOptions * snmpdest_dd_get_template_options(LogDriver *d)
Definition: afsnmpdest.c:817
void snmpdest_dd_set_enc_algorithm(LogDriver *d, const gchar *enc_algo)
Definition: afsnmpdest.c:293
void snmpdest_dd_set_auth_algorithm(LogDriver *d, const gchar *auth_algo)
Definition: afsnmpdest.c:277
void snmpdest_dd_set_transport(LogDriver *d, const gchar *transport)
Definition: afsnmpdest.c:309
gchar * snmpdest_dd_get_version(LogDriver *)
Definition: afsnmpdest.c:809
gboolean snmpdest_dd_check_auth_algorithm(gchar *algo)
Definition: afsnmpdest.c:824
gboolean snmpdest_dd_set_snmp_obj(LogDriver *d, GlobalConfig *cfg, const gchar *objectid, const gchar *type, const gchar *value)
Definition: afsnmpdest.c:147
void snmpdest_dd_set_community(LogDriver *d, const gchar *community)
Definition: afsnmpdest.c:216
gboolean snmpdest_check_required_params(LogDriver *, gchar *err_msg)
Definition: afsnmpdest.c:770
void snmpdest_dd_set_trap_obj(LogDriver *d, GlobalConfig *cfg, const gchar *objectid, const gchar *type, const gchar *value)
Definition: afsnmpdest.c:200
void snmpdest_dd_set_enc_password(LogDriver *d, const gchar *epwd)
Definition: afsnmpdest.c:301
LogDriver * snmpdest_dd_new(GlobalConfig *cfg)
Definition: afsnmpdest.c:733
gboolean snmpdest_dd_set_engine_id(LogDriver *d, const gchar *eid)
Definition: afsnmpdest.c:244
const gchar * s_v3
Definition: afsnmpdest.h:41
gboolean snmpdest_dd_check_enc_algorithm(gchar *algo)
Definition: afsnmpdest.c:832
void snmpdest_dd_set_time_zone(LogDriver *d, const gchar *Time_zone)
Definition: afsnmpdest.c:317
void snmpdest_dd_set_host(LogDriver *d, const gchar *host)
Definition: afsnmpdest.c:125
void snmpdest_dd_set_auth_password(LogDriver *d, const gchar *auth_pwd)
Definition: afsnmpdest.c:285
void version(void)
Definition: dqtool.c:719
Definition: afsnmpdest.h:44
gchar * transport
Definition: afsnmpdest.h:64
gboolean session_initialized
Definition: afsnmpdest.h:68
gint port
Definition: afsnmpdest.h:50
GList * snmp_codes
Definition: afsnmpdest.h:53
gchar * host
Definition: afsnmpdest.h:48
netsnmp_session session
Definition: afsnmpdest.h:66
LogTemplate * message
Definition: afsnmpdest.h:70
GList * snmp_templates
Definition: afsnmpdest.h:52
gchar * trap_value
Definition: afsnmpdest.h:56
gchar * version
Definition: afsnmpdest.h:47
LogQueue * queue
Definition: afsnmpdest.h:69
netsnmp_session * ss
Definition: afsnmpdest.h:67
gchar * engine_id
Definition: afsnmpdest.h:58
gchar * enc_password
Definition: afsnmpdest.h:63
gchar * auth_password
Definition: afsnmpdest.h:61
gchar * auth_algorithm
Definition: afsnmpdest.h:60
gchar * community
Definition: afsnmpdest.h:57
LogTemplateOptions template_options
Definition: afsnmpdest.h:71
GString * host_port
Definition: afsnmpdest.h:49
GList * snmp_objs
Definition: afsnmpdest.h:51
gchar * auth_username
Definition: afsnmpdest.h:59
LogThreadedDestDriver super
Definition: afsnmpdest.h:45
gchar * enc_algorithm
Definition: afsnmpdest.h:62
gchar * trap_type
Definition: afsnmpdest.h:55
gchar * trap_oid
Definition: afsnmpdest.h:54
GlobalConfig * cfg
Definition: test_batched_ack_tracker.c:34
GString * value
Definition: test_decode.c:28