This was entirely free-standing. haproxy/api-t.h was added for size_t.
--- /dev/null
+/*
+ * include/haproxy/dict-t.h
+ * Dictionaries - types definitions
+ *
+ * Copyright 2019 Frédéric Lécaille <flecaille@haproxy.com>
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining
+ * a copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute, sublicense, and/or sell copies of the Software, and to
+ * permit persons to whom the Software is furnished to do so, subject to
+ * the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be
+ * included in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
+ * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+ * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+ * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+ * OTHER DEALINGS IN THE SOFTWARE.
+ */
+#ifndef _HAPROXY_DICT_T_H
+#define _HAPROXY_DICT_T_H
+
+#include <import/ebpttree.h>
+#include <haproxy/api-t.h>
+#include <haproxy/thread.h>
+
+struct dict_entry {
+ struct ebpt_node value;
+ unsigned int refcount;
+ size_t len;
+};
+
+struct dict {
+ const char *name;
+ struct eb_root values;
+ __decl_thread(HA_RWLOCK_T rwlock);
+};
+
+#endif /* _HAPROXY_DICT_T_H */
--- /dev/null
+/*
+ * include/haproxy/dict.h
+ * Dictionaries - functions prototypes
+ *
+ * Copyright 2019 Frédéric Lécaille <flecaille@haproxy.com>
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining
+ * a copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute, sublicense, and/or sell copies of the Software, and to
+ * permit persons to whom the Software is furnished to do so, subject to
+ * the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be
+ * included in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
+ * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+ * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+ * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+ * OTHER DEALINGS IN THE SOFTWARE.
+ */
+#ifndef _HAPROXY_DICT_H
+#define _HAPROXY_DICT_H
+
+#include <haproxy/dict-t.h>
+
+struct dict *new_dict(const char *name);
+struct dict_entry *dict_insert(struct dict *d, char *str);
+
+#endif /* _HAPROXY_DICT_H */
+++ /dev/null
-#ifndef _PROTO_DICT_H
-#define _PROTO_DICT_H
-
-#include <types/dict.h>
-
-struct dict *new_dict(const char *name);
-struct dict_entry *dict_insert(struct dict *d, char *str);
-
-#endif /* _PROTO_DICT_H */
#ifndef _PROTO_STICK_TABLE_H
#define _PROTO_STICK_TABLE_H
+#include <haproxy/dict-t.h>
#include <haproxy/errors.h>
#include <haproxy/tools.h>
#include <haproxy/ticks.h>
#include <haproxy/time.h>
#include <types/stick_table.h>
-#include <types/dict.h>
extern struct stktable *stktables_list;
+++ /dev/null
-#ifndef _TYPES_DICT_H
-#define _TYPES_DICT_H
-
-#include <haproxy/thread.h>
-#include <import/ebpttree.h>
-
-struct dict_entry {
- struct ebpt_node value;
- unsigned int refcount;
- size_t len;
-};
-
-struct dict {
- const char *name;
- struct eb_root values;
- __decl_thread(HA_RWLOCK_T rwlock);
-};
-
-#endif /* _TYPES_DICT_H */
#include <netinet/in.h>
#include <arpa/inet.h>
+#include <haproxy/dict-t.h>
#include <haproxy/api-t.h>
#include <haproxy/list-t.h>
#include <import/eb32tree.h>
-#include <types/dict.h>
struct shared_table {
struct stktable *table; /* stick table to sync */
#include <import/ebtree.h>
#include <import/ebmbtree.h>
#include <import/eb32tree.h>
+#include <haproxy/dict-t.h>
#include <haproxy/pool-t.h>
-#include <types/dict.h>
#include <haproxy/freq_ctr-t.h>
#include <types/peers.h>
#include <types/sample.h>
#include <string.h>
-#include <proto/dict.h>
-
#include <import/eb32tree.h>
#include <import/ebistree.h>
+#include <haproxy/dict.h>
struct dict *new_dict(const char *name)
{
#include <sys/types.h>
#include <haproxy/api.h>
+#include <haproxy/dict.h>
#include <haproxy/net_helper.h>
#include <haproxy/time.h>
#include <haproxy/tools.h>
#include <proto/applet.h>
#include <proto/channel.h>
#include <proto/cli.h>
-#include <proto/dict.h>
#include <proto/fd.h>
#include <proto/frontend.h>
#include <proto/log.h>
#include <import/xxhash.h>
#include <common/cfgparse.h>
+#include <haproxy/dict-t.h>
#include <haproxy/errors.h>
#include <haproxy/namespace.h>
#include <haproxy/time.h>
#include <types/applet.h>
#include <types/cli.h>
-#include <types/dict.h>
#include <types/global.h>
#include <types/cli.h>
#include <types/dns.h>
#include <haproxy/api.h>
#include <common/cfgparse.h>
+#include <haproxy/dict.h>
#include <haproxy/dynbuf.h>
#include <haproxy/istbuf.h>
#include <haproxy/thread.h>
#include <proto/checks.h>
#include <proto/cli.h>
#include <proto/connection.h>
-#include <proto/dict.h>
#include <proto/dns.h>
#include <proto/stats.h>
#include <proto/fd.h>