MEDIUM: init: DeviceAtlas initialization

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.
diff --git a/src/haproxy.c b/src/haproxy.c
index 1b77475..a8ea22e 100644
--- a/src/haproxy.c
+++ b/src/haproxy.c
@@ -111,6 +111,10 @@
 #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 @@
 	.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 @@
 
 	/* 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 @@
 
 	/* 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 @@
 
 	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;