syslog-ng source
mqtt-options.h
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2021 One Identity
3  *
4  * This program is free software; you can redistribute it and/or modify it
5  * under the terms of the GNU General Public License version 2 as published
6  * by the Free Software Foundation, or (at your option) any later version.
7  *
8  * This program is distributed in the hope that it will be useful,
9  * but WITHOUT ANY WARRANTY; without even the implied warranty of
10  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11  * GNU General Public License for more details.
12  *
13  * You should have received a copy of the GNU General Public License
14  * along with this program; if not, write to the Free Software
15  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
16  *
17  * As an additional exemption you are allowed to compile & link against the
18  * OpenSSL libraries as published by the OpenSSL project. See the file
19  * COPYING for details.
20  *
21  */
22 
23 #ifndef MQTT_CLIENT_OPTIONS_INCLUDED
24 #define MQTT_CLIENT_OPTIONS_INCLUDED
25 
26 #include "driver.h"
27 #include <MQTTClient.h>
28 
29 #define MQTT_DISCONNECT_TIMEOUT 10000
30 
31 typedef struct _MQTTClientOptions MQTTClientOptions;
32 
34 {
35  gint keepalive;
36  gchar *address;
37  gint qos;
38  gchar *client_id;
39  gboolean cleansession;
40 
41  gchar *username;
42  gchar *password;
43  gchar *http_proxy;
44 
45  gchar *ca_dir;
46  gchar *ca_file;
47  gchar *cert_file;
48  gchar *key_file;
49  gchar *ciphers;
51  gboolean peer_verify;
53  gpointer context;
54  gint(*log_error) (const gchar *str, gsize len, gpointer u);
55 };
56 
57 void mqtt_client_options_defaults(MQTTClientOptions *self);
58 void mqtt_client_options_destroy(MQTTClientOptions *self);
59 
60 void mqtt_client_options_set_keepalive (MQTTClientOptions *self, const gint keepalive);
61 gboolean mqtt_client_options_set_address(MQTTClientOptions *self, const gchar *address);
62 void mqtt_client_options_set_qos (MQTTClientOptions *self, const gint qos);
63 gboolean mqtt_client_options_set_client_id(MQTTClientOptions *self, const gchar *client_id);
64 void mqtt_client_options_set_cleansession(MQTTClientOptions *self, gboolean cleansession);
65 
66 void mqtt_client_options_set_username(MQTTClientOptions *self, const gchar *username);
67 void mqtt_client_options_set_password(MQTTClientOptions *self, const gchar *password);
68 void mqtt_client_options_set_http_proxy(MQTTClientOptions *self, const gchar *http_proxy);
69 
70 void mqtt_client_options_set_ca_dir(MQTTClientOptions *self, const gchar *ca_dir);
71 void mqtt_client_options_set_ca_file(MQTTClientOptions *self, const gchar *ca_file);
72 void mqtt_client_options_set_cert_file(MQTTClientOptions *self, const gchar *cert_file);
73 void mqtt_client_options_set_key_file(MQTTClientOptions *self, const gchar *key_file);
74 void mqtt_client_options_set_cipher_suite(MQTTClientOptions *self, const gchar *ciphers);
75 gboolean mqtt_client_options_set_ssl_version(MQTTClientOptions *self, const gchar *value);
76 void mqtt_client_options_set_peer_verify(MQTTClientOptions *self, gboolean verify);
77 void mqtt_client_options_use_system_cert_store(MQTTClientOptions *self, gboolean use_system_cert_store);
78 
79 void mqtt_client_options_set_log_ssl_error_fn(MQTTClientOptions *self, gpointer context,
80  gint(*log_error)(const gchar *str, gsize len, gpointer u));
81 
82 gchar *mqtt_client_options_get_address(MQTTClientOptions *self);
83 gint mqtt_client_options_get_qos(MQTTClientOptions *self);
84 gchar *mqtt_client_options_get_client_id(MQTTClientOptions *self);
85 
86 void mqtt_client_options_to_mqtt_client_connection_option(MQTTClientOptions *self, MQTTClient_connectOptions *conn_opts,
87  MQTTClient_SSLOptions *ssl_opts);
88 
89 gboolean mqtt_client_options_checker(MQTTClientOptions *self);
90 
91 #endif /* MQTT_CLIENT_OPTIONS_INCLUDED */
gboolean mqtt_client_options_set_ssl_version(MQTTClientOptions *self, const gchar *value)
Definition: mqtt-options.c:190
void mqtt_client_options_set_log_ssl_error_fn(MQTTClientOptions *self, gpointer context, gint(*log_error)(const gchar *str, gsize len, gpointer u))
Definition: mqtt-options.c:220
void mqtt_client_options_set_cipher_suite(MQTTClientOptions *self, const gchar *ciphers)
Definition: mqtt-options.c:183
void mqtt_client_options_defaults(MQTTClientOptions *self)
Definition: mqtt-options.c:63
void mqtt_client_options_set_cleansession(MQTTClientOptions *self, gboolean cleansession)
Definition: mqtt-options.c:127
void mqtt_client_options_set_key_file(MQTTClientOptions *self, const gchar *key_file)
Definition: mqtt-options.c:176
gboolean mqtt_client_options_set_address(MQTTClientOptions *self, const gchar *address)
Definition: mqtt-options.c:98
void mqtt_client_options_set_password(MQTTClientOptions *self, const gchar *password)
Definition: mqtt-options.c:140
void mqtt_client_options_set_qos(MQTTClientOptions *self, const gint qos)
Definition: mqtt-options.c:109
void mqtt_client_options_set_keepalive(MQTTClientOptions *self, const gint keepalive)
Definition: mqtt-options.c:92
void mqtt_client_options_use_system_cert_store(MQTTClientOptions *self, gboolean use_system_cert_store)
Definition: mqtt-options.c:213
gboolean mqtt_client_options_checker(MQTTClientOptions *self)
Definition: mqtt-options.c:298
gint mqtt_client_options_get_qos(MQTTClientOptions *self)
Definition: mqtt-options.c:234
void mqtt_client_options_set_peer_verify(MQTTClientOptions *self, gboolean verify)
Definition: mqtt-options.c:207
void mqtt_client_options_set_http_proxy(MQTTClientOptions *self, const gchar *http_proxy)
Definition: mqtt-options.c:147
gboolean mqtt_client_options_set_client_id(MQTTClientOptions *self, const gchar *client_id)
Definition: mqtt-options.c:115
gchar * mqtt_client_options_get_address(MQTTClientOptions *self)
Definition: mqtt-options.c:228
gchar * mqtt_client_options_get_client_id(MQTTClientOptions *self)
Definition: mqtt-options.c:240
void mqtt_client_options_set_ca_file(MQTTClientOptions *self, const gchar *ca_file)
Definition: mqtt-options.c:162
void mqtt_client_options_destroy(MQTTClientOptions *self)
Definition: mqtt-options.c:75
void mqtt_client_options_set_ca_dir(MQTTClientOptions *self, const gchar *ca_dir)
Definition: mqtt-options.c:155
void mqtt_client_options_to_mqtt_client_connection_option(MQTTClientOptions *self, MQTTClient_connectOptions *conn_opts, MQTTClient_SSLOptions *ssl_opts)
Definition: mqtt-options.c:263
void mqtt_client_options_set_cert_file(MQTTClientOptions *self, const gchar *cert_file)
Definition: mqtt-options.c:169
void mqtt_client_options_set_username(MQTTClientOptions *self, const gchar *username)
Definition: mqtt-options.c:133
Definition: mqtt-options.h:34
gchar * ca_file
Definition: mqtt-options.h:46
gchar * password
Definition: mqtt-options.h:42
gchar * address
Definition: mqtt-options.h:36
gchar * ciphers
Definition: mqtt-options.h:49
gint ssl_version
Definition: mqtt-options.h:50
gchar * cert_file
Definition: mqtt-options.h:47
gchar * username
Definition: mqtt-options.h:41
gint keepalive
Definition: mqtt-options.h:35
gpointer context
Definition: mqtt-options.h:53
gint qos
Definition: mqtt-options.h:37
gchar * client_id
Definition: mqtt-options.h:38
gboolean use_system_cert_store
Definition: mqtt-options.h:52
gchar * http_proxy
Definition: mqtt-options.h:43
gboolean cleansession
Definition: mqtt-options.h:39
gchar * ca_dir
Definition: mqtt-options.h:45
gint(* log_error)(const gchar *str, gsize len, gpointer u)
Definition: mqtt-options.h:54
gboolean peer_verify
Definition: mqtt-options.h:51
gchar * key_file
Definition: mqtt-options.h:48
GString * value
Definition: test_decode.c:28