]> git.ipfire.org Git - thirdparty/haproxy.git/commitdiff
CLEANUP: da: move the converter registration to da.c
authorWilly Tarreau <w@1wt.eu>
Mon, 1 Jun 2015 13:39:50 +0000 (15:39 +0200)
committerWilly Tarreau <w@1wt.eu>
Tue, 2 Jun 2015 11:42:12 +0000 (13:42 +0200)
There's no reason to put it into sample.c, it's better to register it
locally in da.c, it removes a number of ifdefs and exports.

include/import/da.h
src/da.c
src/sample.c

index d990188ca790ff7d46b0853fd0da2788a68e551c..1c110d0745c827ab8c7270d60a24a3eddd08e6c6 100644 (file)
@@ -8,6 +8,5 @@
 void da_register_cfgkeywords(void);
 int init_deviceatlas(void);
 void deinit_deviceatlas(void);
-int da_haproxy(const struct arg *, struct sample *, void *);
 #endif
 #endif
index 0f3a86187c19aa581f36778edc67641c79c99fa3..03b4b3e89f4248cd44bbd7146d70287ec615e57f 100644 (file)
--- a/src/da.c
+++ b/src/da.c
@@ -3,7 +3,9 @@
 #include <stdio.h>
 
 #include <common/cfgparse.h>
+#include <proto/arg.h>
 #include <proto/log.h>
+#include <proto/sample.h>
 #include <import/da.h>
 
 static int da_json_file(char **args, int section_type, struct proxy *curpx,
@@ -141,7 +143,7 @@ void deinit_deviceatlas(void)
        da_fini();
 }
 
-int da_haproxy(const struct arg *args, struct sample *smp, void *private)
+static int da_haproxy(const struct arg *args, struct sample *smp, void *private)
 {
        struct chunk *tmp;
        da_deviceinfo_t devinfo;
@@ -229,4 +231,16 @@ int da_haproxy(const struct arg *args, struct sample *smp, void *private)
        return 1;
 }
 
+/* Note: must not be declared <const> as its list will be overwritten */
+static struct sample_conv_kw_list conv_kws = {ILH, {
+       { "da-csv", da_haproxy, ARG5(1,STR,STR,STR,STR,STR), NULL, SMP_T_STR, SMP_T_STR },
+       { NULL, NULL, 0, 0, 0 },
+}};
+
+__attribute__((constructor))
+static void __da_init(void)
+{
+       /* register sample fetch and format conversion keywords */
+       sample_register_convs(&conv_kws);
+}
 #endif
index 59fa15812a2ec7c8e51527c1d18279c7dcd7a066..47d48c8ba9e526bc1f605b3f2d5b1b61e2d07e01 100644 (file)
 #include <proto/sample.h>
 #include <proto/stick_table.h>
 
-#ifdef USE_DEVICEATLAS
-#include <import/da.h>
-#endif
-
 /* sample type names */
 const char *smp_to_type[SMP_TYPES] = {
        [SMP_T_BOOL] = "bool",
@@ -2282,9 +2278,6 @@ static struct sample_conv_kw_list sample_conv_kws = {ILH, {
        { "div",    sample_conv_arith_div,  ARG1(1,UINT), NULL, SMP_T_UINT, SMP_T_UINT },
        { "mod",    sample_conv_arith_mod,  ARG1(1,UINT), NULL, SMP_T_UINT, SMP_T_UINT },
        { "neg",    sample_conv_arith_neg,             0, NULL, SMP_T_UINT, SMP_T_UINT },
-#ifdef USE_DEVICEATLAS
-       { "da-csv", da_haproxy,             ARG5(1,STR,STR,STR,STR,STR), NULL, SMP_T_STR, SMP_T_STR },
-#endif
 
        { NULL, NULL, 0, 0, 0 },
 }};