[MEDIUM] stick_table: add room for extra data types

The stick_tables will now be able to store extra data for a same key.
A limited set of extra data types will be defined and for each of them
an offset in the sticky session will be assigned at startup time. All
of this information will be stored in the stick table.

The extra data types will have to be specified after the new "store"
keyword of the "stick-table" directive, which will reserve some space
for them.
diff --git a/src/stick_table.c b/src/stick_table.c
index fa46925..158056e 100644
--- a/src/stick_table.c
+++ b/src/stick_table.c
@@ -2,6 +2,7 @@
  * Stick tables management functions.
  *
  * Copyright 2009-2010 EXCELIANCE, Emeric Brun <ebrun@exceliance.fr>
+ * Copyright (C) 2010 Willy Tarreau <w@1wt.eu>
  *
  * This program is free software; you can redistribute it and/or
  * modify it under the terms of the GNU General Public License
@@ -474,3 +475,22 @@
 	return 1;
 }
 
+/* Extra data types processing */
+struct stktable_data_type stktable_data_types[STKTABLE_DATA_TYPES] = {
+};
+
+/*
+ * Returns the data type number for the stktable_data_type whose name is <name>,
+ * or <0 if not found.
+ */
+int stktable_get_data_type(char *name)
+{
+	int type;
+
+	for (type = 0; type < STKTABLE_DATA_TYPES; type++) {
+		if (strcmp(name, stktable_data_types[type].name) == 0)
+			return type;
+	}
+	return -1;
+}
+