MEDIUM: init: DeviceAtlas initialization
authorDavid Carlier <dcarlier@afilias.info>
Mon, 1 Jun 2015 11:57:22 +0000 (13:57 +0200)
committerWilly Tarreau <w@1wt.eu>
Tue, 2 Jun 2015 11:24:50 +0000 (13:24 +0200)
This diff initialises few DeviceAtlas struct fields member with
their inherent default values.
Furthermore, the specific DeviceAtlas configuration keywords are
registered and the module is initialised and all necessary
resources are freed during the deinit phase.

src/haproxy.c

index 1b77475..a8ea22e 100644 (file)
 #include <proto/ssl_sock.h>
 #endif
 
+#ifdef USE_DEVICEATLAS
+#include <import/da.h>
+#endif
+
 /*********************************************************************/
 
 extern const struct comp_algo comp_algos[];
@@ -170,6 +174,14 @@ struct global global = {
        .maxsslconn = DEFAULT_MAXSSLCONN,
 #endif
 #endif
+#ifdef USE_DEVICEATLAS
+       .deviceatlas = {
+               .loglevel = DA_SEV_INFO,
+               .useragentid = 0,
+               .jsonpath = 0,
+               .separator = '|',
+       },
+#endif
        /* others NULL OK */
 };
 
@@ -571,6 +583,10 @@ void init(int argc, char **argv)
 
        /* Initialise lua. */
        hlua_init();
+#if defined(USE_DEVICEATLAS)
+       /* Register deviceatlas config keywords */
+       da_register_cfgkeywords();
+#endif
 
        global.tune.options |= GTUNE_USE_SELECT;  /* select() is always available */
 #if defined(ENABLE_POLL)
@@ -785,6 +801,9 @@ void init(int argc, char **argv)
 
        /* now we know the buffer size, we can initialize the channels and buffers */
        init_buffer();
+#if defined(USE_DEVICEATLAS)
+       init_deviceatlas();
+#endif
 
        if (have_appsession)
                appsession_init();
@@ -1415,6 +1434,10 @@ void deinit(void)
 
        protocol_unbind_all();
 
+#if defined(USE_DEVICEATLAS)
+       deinit_deviceatlas();
+#endif
+
        free(global.log_send_hostname); global.log_send_hostname = NULL;
        free(global.log_tag); global.log_tag = NULL;
        free(global.chroot);  global.chroot = NULL;