MINOR: config: Parse the string of the log-format config keyword
parse_logformat_string: parse the string, detect the type: text,
separator or variable
parse_logformat_var: dectect variable name
parse_logformat_var_args: parse arguments and flags
add_to_logformat_list: add to the logformat linked list
diff --git a/include/types/log.h b/include/types/log.h
index 9b700b0..0e78024 100644
--- a/include/types/log.h
+++ b/include/types/log.h
@@ -32,6 +32,75 @@
#define NB_LOG_LEVELS 8
#define SYSLOG_PORT 514
+/* lists of fields that can be logged */
+enum {
+
+ LOG_TEXT = 0, /* raw text */
+
+ LOG_SEPARATOR, /* separator replaced by one space */
+ LOG_VARIABLE,
+
+ /* information fields */
+ LOG_GLOBAL,
+ LOG_CLIENTIP,
+ LOG_CLIENTPORT,
+ LOG_DATE,
+ LOG_DATEGMT,
+ LOG_MS,
+ LOG_FRONTEND,
+ LOG_BACKEND,
+ LOG_SERVER,
+ LOG_BYTES,
+ LOG_T,
+ LOG_TQ,
+ LOG_TW,
+ LOG_TC,
+ LOG_TR,
+ LOG_TT,
+ LOG_STATUS,
+ LOG_CCLIENT,
+ LOG_CSERVER,
+ LOG_TERMSTATE,
+ LOG_CONN,
+ LOG_ACTCONN,
+ LOG_FECONN,
+ LOG_BECONN,
+ LOG_SRVCONN,
+ LOG_RETRIES,
+ LOG_QUEUES,
+ LOG_SRVQUEUE,
+ LOG_BCKQUEUE,
+ LOG_HDRREQUEST,
+ LOG_HDRRESPONS,
+ LOG_HDRREQUESTLIST,
+ LOG_HDRRESPONSLIST,
+ LOG_REQ,
+};
+
+/* enum for parse_logformat */
+enum {
+ LF_TEXT = 0,
+ LF_SEPARATOR,
+ LF_VAR, // after %
+
+ LF_STARTVAR, // %
+ LF_STARG, // { and within { }
+ LF_EDARG, // end arg }
+};
+
+
+struct logformat_node {
+ struct list list;
+ int type;
+ int options;
+ char *arg;
+};
+
+#define LOG_OPT_WRITTEN 0x00000001
+#define LOG_OPT_MANDATORY 0x00000002
+#define LOG_OPT_QUOTE 0x00000004
+
+
/* fields that need to be logged. They appear as flags in session->logs.logwait */
#define LW_DATE 1 /* date */