#include <haproxy/global.h>
#include <haproxy/hlua.h>
+#include <haproxy/log.h>
#include <haproxy/time.h>
#include <types/stream.h>
#include <haproxy/arg.h>
-#include <proto/log.h>
#include <proto/spoe.h>
#include <api.h>
#include <haproxy/api.h>
#include <haproxy/list-t.h>
-
-#include <proto/log.h>
+#include <haproxy/log.h>
#include <proto/proxy.h>
/* configuration sections */
#include <haproxy/api.h>
#include <haproxy/connection-t.h>
#include <haproxy/fd.h>
+#include <haproxy/http_ana.h>
#include <haproxy/listener-t.h>
#include <haproxy/obj_type.h>
#include <haproxy/pool.h>
#define MAX_SYSLOG_LEN 1024
#endif
+/* 64kB to archive startup-logs seems way more than enough */
+#ifndef STARTUP_LOG_SIZE
+#define STARTUP_LOG_SIZE 65536
+#endif
+
// maximum line size when parsing config
#ifndef LINESIZE
#define LINESIZE 2048
/*
- include/types/log.h
- This file contains definitions of log-related structures and macros.
-
- Copyright (C) 2000-2006 Willy Tarreau - w@1wt.eu
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation, version 2.1
- exclusively.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with this library; if not, write to the Free Software
- Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
-*/
+ * include/haproxy/log-t.h
+ * This file contains definitions of log-related structures and macros.
+ *
+ * Copyright (C) 2000-2020 Willy Tarreau - w@1wt.eu
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation, version 2.1
+ * exclusively.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ */
-#ifndef _TYPES_LOG_H
-#define _TYPES_LOG_H
+#ifndef _HAPROXY_LOG_T_H
+#define _HAPROXY_LOG_T_H
#include <sys/socket.h>
#include <sys/un.h>
#include <netinet/in.h>
-#include <haproxy/api-t.h>
-#include <haproxy/thread.h>
+
#include <haproxy/list-t.h>
#include <haproxy/ring-t.h>
+#include <haproxy/thread-t.h>
+#include <haproxy/api-t.h>
+
#define NB_LOG_FACILITIES 24
#define NB_LOG_LEVELS 8
#define SYSLOG_PORT 514
#define UNIQUEID_LEN 128
-/* 64kB to archive startup-logs seems way more than enough */
-#ifndef STARTUP_LOG_SIZE
-#define STARTUP_LOG_SIZE 65536
-#endif
+/* flags used in logformat_node->options */
+#define LOG_OPT_HEXA 0x00000001
+#define LOG_OPT_MANDATORY 0x00000002
+#define LOG_OPT_QUOTE 0x00000004
+#define LOG_OPT_REQ_CAP 0x00000008
+#define LOG_OPT_RES_CAP 0x00000010
+#define LOG_OPT_HTTP 0x00000020
+#define LOG_OPT_ESC 0x00000040
+
+
+/* Fields that need to be extracted from the incoming connection or request for
+ * logging or for sending specific header information. They're set in px->to_log
+ * and appear as flags in session->logs.logwait, which are removed once the
+ * required information has been collected.
+ */
+#define LW_INIT 1 /* anything */
+#define LW_CLIP 2 /* CLient IP */
+#define LW_SVIP 4 /* SerVer IP */
+#define LW_SVID 8 /* server ID */
+#define LW_REQ 16 /* http REQuest */
+#define LW_RESP 32 /* http RESPonse */
+#define LW_BYTES 256 /* bytes read from server */
+#define LW_COOKIE 512 /* captured cookie */
+#define LW_REQHDR 1024 /* request header(s) */
+#define LW_RSPHDR 2048 /* response header(s) */
+#define LW_BCKIP 4096 /* backend IP */
+#define LW_FRTIP 8192 /* frontend IP */
+#define LW_XPRT 16384 /* transport layer information (eg: SSL) */
-/* The array containing the names of the log levels. */
-extern const char *log_levels[];
/* enum for log format */
enum {
LOG_TARGET_BUFFER, // ring buffer
};
-/* lists of fields that can be logged */
+/* lists of fields that can be logged, for logformat_node->type */
enum {
LOG_FMT_TEXT = 0, /* raw text */
void *expr; // for use with LOG_FMT_EXPR
};
-#define LOG_OPT_HEXA 0x00000001
-#define LOG_OPT_MANDATORY 0x00000002
-#define LOG_OPT_QUOTE 0x00000004
-#define LOG_OPT_REQ_CAP 0x00000008
-#define LOG_OPT_RES_CAP 0x00000010
-#define LOG_OPT_HTTP 0x00000020
-#define LOG_OPT_ESC 0x00000040
-
-
-/* Fields that need to be extracted from the incoming connection or request for
- * logging or for sending specific header information. They're set in px->to_log
- * and appear as flags in session->logs.logwait, which are removed once the
- * required information has been collected.
- */
-#define LW_INIT 1 /* anything */
-#define LW_CLIP 2 /* CLient IP */
-#define LW_SVIP 4 /* SerVer IP */
-#define LW_SVID 8 /* server ID */
-#define LW_REQ 16 /* http REQuest */
-#define LW_RESP 32 /* http RESPonse */
-#define LW_BYTES 256 /* bytes read from server */
-#define LW_COOKIE 512 /* captured cookie */
-#define LW_REQHDR 1024 /* request header(s) */
-#define LW_RSPHDR 2048 /* response header(s) */
-#define LW_BCKIP 4096 /* backend IP */
-#define LW_FRTIP 8192 /* frontend IP */
-#define LW_XPRT 16384 /* transport layer information (eg: SSL) */
-
/* Range of indexes for log sampling. */
struct smp_log_range {
unsigned int low; /* Low limit of the indexes of this range. */
__decl_thread(HA_SPINLOCK_T lock);
};
-#endif /* _TYPES_LOG_H */
+#endif /* _HAPROXY_LOG_T_H */
/*
* Local variables:
/*
- include/proto/log.h
- This file contains definitions of log-related functions, structures,
- and macros.
-
- Copyright (C) 2000-2008 Willy Tarreau - w@1wt.eu
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation, version 2.1
- exclusively.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with this library; if not, write to the Free Software
- Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
-*/
-
-#ifndef _PROTO_LOG_H
-#define _PROTO_LOG_H
-
-#include <stdio.h>
+ * include/haproxy/log.h
+ * This file contains definitions of log-related functions.
+ *
+ * Copyright (C) 2000-2020 Willy Tarreau - w@1wt.eu
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation, version 2.1
+ * exclusively.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+#ifndef _HAPROXY_LOG_H
+#define _HAPROXY_LOG_H
+
#include <syslog.h>
#include <haproxy/api.h>
-#include <haproxy/pool.h>
+#include <haproxy/log-t.h>
+#include <haproxy/pool-t.h>
#include <haproxy/thread-t.h>
-
-#include <types/log.h>
-#include <types/proxy.h>
-#include <types/stream.h>
-
#include <proto/stream.h>
+#include <types/proxy.h>
extern struct pool_head *pool_head_requri;
extern struct pool_head *pool_head_uniqueid;
+extern const char *log_levels[];
extern char *log_format;
extern char default_tcp_log_format[];
extern char default_http_log_format[];
extern THREAD_LOCAL char *logline_rfc5424;
-/*
- * Test if <idx> index numbered from 0 is in <rg> range with low and high
- * limits of indexes numbered from 1.
- */
-static inline int in_smp_log_range(struct smp_log_range *rg, unsigned int idx)
-{
- if (idx + 1 <= rg->high && idx + 1 >= rg->low)
- return 1;
- return 0;
-}
-
/* Initialize/Deinitialize log buffers used for syslog messages */
int init_log_buffers();
void deinit_log_buffers();
-/*
- * Builds a log line.
- */
+/* build a log line for the session and an optional stream */
int sess_build_logline(struct session *sess, struct stream *s, char *dst, size_t maxsize, struct list *list_format);
-static inline int build_logline(struct stream *s, char *dst, size_t maxsize, struct list *list_format)
-{
- return sess_build_logline(strm_sess(s), s, dst, maxsize, list_format);
-}
-
-
/*
* send a log for the stream when we have enough info about it.
* Will not log if the frontend has no log defined.
char * get_format_pid_sep1(int format, size_t *len);
char * get_format_pid_sep2(int format, size_t *len);
-#endif /* _PROTO_LOG_H */
+/*
+ * Test if <idx> index numbered from 0 is in <rg> range with low and high
+ * limits of indexes numbered from 1.
+ */
+static inline int in_smp_log_range(struct smp_log_range *rg, unsigned int idx)
+{
+ if (idx + 1 <= rg->high && idx + 1 >= rg->low)
+ return 1;
+ return 0;
+}
+
+/*
+ * Builds a log line for the stream (must be valid).
+ */
+static inline int build_logline(struct stream *s, char *dst, size_t maxsize, struct list *list_format)
+{
+ return sess_build_logline(strm_sess(s), s, dst, maxsize, list_format);
+}
+
+#endif /* _HAPROXY_LOG_H */
/*
* Local variables:
#include <haproxy/thread-t.h>
#include <haproxy/tools.h>
#include <haproxy/trace-t.h>
-#include <types/log.h>
/* Make a string from the location of the trace producer as "file:line" */
#define TRC_LOC _TRC_LOC(__FILE__, __LINE__)
#include <haproxy/applet-t.h>
#include <haproxy/api.h>
#include <haproxy/dns-t.h>
+#include <haproxy/task.h>
#include <haproxy/time.h>
#include <types/proxy.h>
#include <types/queue.h>
#include <types/server.h>
#include <proto/queue.h>
-#include <proto/log.h>
#include <haproxy/freq_ctr.h>
#include <haproxy/acl-t.h>
#include <types/backend.h>
#include <haproxy/freq_ctr-t.h>
-#include <types/log.h>
#include <haproxy/sample-t.h>
#include <types/server.h>
#include <haproxy/stick_table-t.h>
#include <haproxy/thread.h>
#include <haproxy/freq_ctr-t.h>
-#include <types/log.h>
#include <types/proxy.h>
#include <haproxy/sample-t.h>
#include <types/stream.h>
#include <haproxy/http_ana.h>
#include <haproxy/http_fetch.h>
#include <haproxy/http_htx.h>
+#include <haproxy/log.h>
#include <haproxy/thread.h>
#include <haproxy/global.h>
#include <haproxy/arg.h>
-#include <proto/log.h>
#include <haproxy/sample.h>
#include <import/xxhash.h>
#include <import/lru.h>
#include <haproxy/auth.h>
#include <haproxy/api.h>
#include <haproxy/list.h>
+#include <haproxy/log.h>
#include <haproxy/pattern.h>
#include <haproxy/tools.h>
#include <haproxy/global.h>
#include <haproxy/arg.h>
-#include <proto/log.h>
#include <proto/proxy.h>
#include <haproxy/sample.h>
#include <haproxy/stick_table.h>
#include <haproxy/obj_type.h>
#include <haproxy/pool.h>
#include <haproxy/list.h>
+#include <haproxy/log.h>
#include <haproxy/task.h>
#include <haproxy/tools.h>
-#include <proto/log.h>
#include <proto/proxy.h>
#include <haproxy/stick_table.h>
#include <haproxy/api.h>
#include <haproxy/global.h>
#include <haproxy/errors.h>
+#include <haproxy/log.h>
#include <haproxy/pattern-t.h>
#include <haproxy/thread.h>
-#include <proto/log.h>
-
struct userlist *userlist = NULL; /* list of all existing userlists */
#ifdef USE_LIBCRYPT
#include <haproxy/lb_fwlc.h>
#include <haproxy/lb_fwrr.h>
#include <haproxy/lb_map.h>
+#include <haproxy/log.h>
#include <haproxy/obj_type.h>
#include <haproxy/payload.h>
#include <haproxy/session.h>
#include <haproxy/arg.h>
#include <proto/backend.h>
-#include <proto/log.h>
#include <haproxy/protocol.h>
#include <haproxy/proto_tcp.h>
#include <proto/proxy.h>
#include <haproxy/http_ana.h>
#include <haproxy/http_htx.h>
#include <haproxy/http_rules.h>
+#include <haproxy/log.h>
#include <haproxy/shctx.h>
#include <haproxy/stream_interface.h>
#include <import/eb32tree.h>
#include <types/proxy.h>
#include <proto/proxy.h>
-#include <proto/log.h>
#include <proto/stream.h>
#include <haproxy/lb_fwrr.h>
#include <haproxy/lb_map.h>
#include <haproxy/listener.h>
+#include <haproxy/log.h>
#include <haproxy/mailers-t.h>
#include <haproxy/obj_type-t.h>
#include <haproxy/peers-t.h>
#include <haproxy/global.h>
#include <proto/backend.h>
-#include <proto/log.h>
#include <haproxy/protocol.h>
#include <proto/proxy.h>
#include <haproxy/peers.h>
#include <haproxy/http_htx.h>
#include <haproxy/h1.h>
#include <haproxy/htx.h>
+#include <haproxy/log.h>
#include <haproxy/signal.h>
#include <haproxy/ssl_sock.h>
#include <haproxy/stats-t.h>
#include <haproxy/arg.h>
#include <proto/backend.h>
#include <haproxy/fd.h>
-#include <proto/log.h>
#include <proto/queue.h>
#include <haproxy/port_range.h>
#include <haproxy/proto_tcp.h>
#include <haproxy/protocol.h>
#include <proto/proxy.h>
#include <proto/server.h>
-#include <proto/log.h>
#include <haproxy/proto_udp.h>
#include <haproxy/sample.h>
#include <haproxy/frontend.h>
#include <haproxy/list.h>
#include <haproxy/listener.h>
+#include <haproxy/log.h>
#include <haproxy/mworker-t.h>
#include <haproxy/pattern-t.h>
#include <haproxy/peers.h>
#include <haproxy/compression.h>
#include <haproxy/fd.h>
#include <haproxy/freq_ctr.h>
-#include <proto/log.h>
#include <haproxy/pipe.h>
#include <haproxy/protocol.h>
#include <proto/proxy.h>
#include <haproxy/http_fetch.h>
#include <haproxy/http_htx.h>
#include <haproxy/htx.h>
+#include <haproxy/log.h>
#include <haproxy/global.h>
#include <haproxy/arg.h>
-#include <proto/log.h>
#include <haproxy/sample.h>
#include <dac.h>
#include <time.h>
#include <stdio.h>
#include <stdlib.h>
+#include <syslog.h>
#include <sys/types.h>
#include <sys/wait.h>
#include <haproxy/cli.h>
#include <haproxy/debug.h>
#include <haproxy/hlua.h>
+#include <haproxy/log.h>
#include <haproxy/stream_interface.h>
#include <haproxy/task.h>
#include <haproxy/thread.h>
#include <haproxy/dns.h>
#include <haproxy/errors.h>
#include <haproxy/http_rules.h>
+#include <haproxy/log.h>
#include <haproxy/sample.h>
#include <haproxy/stats-t.h>
#include <haproxy/stream_interface.h>
#include <haproxy/global.h>
#include <haproxy/fd.h>
-#include <proto/log.h>
#include <proto/server.h>
#include <haproxy/proto_udp.h>
#include <proto/proxy.h>
#include <haproxy/activity.h>
#include <haproxy/fd.h>
-#include <proto/log.h>
/*
* Private data:
#include <haproxy/filters.h>
#include <haproxy/http_fetch.h>
#include <haproxy/http_htx.h>
+#include <haproxy/log.h>
#include <haproxy/regex.h>
#include <haproxy/sample.h>
#include <haproxy/session.h>
#include <haproxy/global.h>
-#include <proto/log.h>
#include <proto/proxy.h>
#include <proto/server.h>
#include <haproxy/global.h>
#include <haproxy/fd.h>
-#include <proto/log.h>
#include <haproxy/port_range.h>
struct fdtab *fdtab = NULL; /* array of all the file descriptors */
#include <haproxy/filters.h>
#include <haproxy/frontend.h>
#include <haproxy/http_rules.h>
+#include <haproxy/log.h>
#include <haproxy/sample.h>
#include <haproxy/signal.h>
#include <haproxy/thread.h>
#include <haproxy/arg.h>
#include <proto/backend.h>
#include <haproxy/freq_ctr.h>
-#include <proto/log.h>
#include <proto/proxy.h>
#include <proto/spoe.h>
#include <proto/stream.h>
#include <haproxy/http_ana-t.h>
#include <haproxy/http_htx.h>
#include <haproxy/htx.h>
+#include <haproxy/log.h>
#include <haproxy/tools.h>
#include <haproxy/time.h>
#include <types/proxy.h>
#include <types/stream.h>
-#include <proto/log.h>
#include <proto/stream.h>
const char *trace_flt_id = "trace filter";
#include <haproxy/chunk.h>
#include <haproxy/frontend.h>
#include <haproxy/http_ana.h>
+#include <haproxy/log.h>
#include <haproxy/sample.h>
#include <haproxy/stream_interface.h>
#include <haproxy/task.h>
#include <haproxy/arg.h>
#include <haproxy/fd.h>
-#include <proto/log.h>
#include <haproxy/proto_tcp.h>
#include <proto/proxy.h>
#include <proto/stream.h>
#include <haproxy/pool.h>
#include <haproxy/list.h>
#include <haproxy/listener.h>
+#include <haproxy/log.h>
#include <haproxy/mworker.h>
#include <haproxy/namespace.h>
#include <haproxy/net_helper.h>
#include <haproxy/arg.h>
#include <proto/backend.h>
#include <haproxy/fd.h>
-#include <proto/log.h>
#include <haproxy/protocol.h>
#include <proto/proxy.h>
#include <proto/queue.h>
#include <haproxy/cli-t.h>
#include <haproxy/hlua-t.h>
#include <haproxy/http.h>
+#include <haproxy/log.h>
#include <haproxy/net_helper.h>
#include <haproxy/regex.h>
#include <haproxy/stats.h>
#include <haproxy/capture-t.h>
#include <haproxy/arg.h>
-#include <proto/log.h>
/* Release memory allocated by most of HTTP actions. Concretly, it releases
* <arg.http>.
#include <haproxy/http_ana.h>
#include <haproxy/http_htx.h>
#include <haproxy/htx.h>
+#include <haproxy/log.h>
#include <haproxy/net_helper.h>
#include <haproxy/regex.h>
#include <haproxy/stats.h>
#include <haproxy/capture-t.h>
-#include <proto/log.h>
#include <proto/proxy.h>
#include <proto/server.h>
#include <proto/stream.h>
#include <haproxy/version.h>
#include <haproxy/arg.h>
-#include <proto/log.h>
#include <proto/stream.h>
#include <haproxy/global.h>
#include <haproxy/list.h>
#include <haproxy/listener.h>
+#include <haproxy/log.h>
#include <haproxy/task.h>
#include <haproxy/tools.h>
#include <haproxy/time.h>
#include <haproxy/fd.h>
#include <haproxy/freq_ctr.h>
-#include <proto/log.h>
#include <haproxy/protocol.h>
#include <haproxy/proto_sockpair.h>
#include <haproxy/sample.h>
#include <haproxy/cli.h>
#include <haproxy/frontend.h>
#include <haproxy/http.h>
+#include <haproxy/log.h>
#include <haproxy/ssl_sock.h>
#include <haproxy/stream_interface.h>
#include <haproxy/tools.h>
#include <haproxy/version.h>
#include <haproxy/global.h>
-#include <types/log.h>
#include <haproxy/fd.h>
-#include <proto/log.h>
#include <haproxy/ring.h>
#include <haproxy/sample.h>
#include <haproxy/sink.h>
#include <haproxy/tools.h>
#include <haproxy/arg.h>
-#include <proto/log.h>
#include <haproxy/sample.h>
/* Parse an IPv4 or IPv6 address and store it into the sample.
#include <haproxy/htx.h>
#include <import/ist.h>
#include <haproxy/list.h>
+#include <haproxy/log.h>
#include <haproxy/net_helper.h>
#include <haproxy/regex.h>
#include <haproxy/session-t.h>
#include <types/proxy.h>
-#include <proto/log.h>
#include <proto/stream.h>
#include <haproxy/trace.h>
#include <types/proxy.h>
#include <haproxy/http_htx.h>
-#include <proto/log.h>
+#include <haproxy/log.h>
#include <haproxy/session-t.h>
#include <proto/stream.h>
#include <haproxy/stream_interface.h>
#include <haproxy/api.h>
#include <common/cfgparse.h>
#include <haproxy/errors.h>
+#include <haproxy/log.h>
#include <haproxy/mworker.h>
-#include <proto/log.h>
static int use_program = 0; /* do we use the program section ? */
#include <haproxy/cli.h>
#include <haproxy/list.h>
#include <haproxy/listener.h>
+#include <haproxy/log.h>
#include <haproxy/mworker.h>
#include <haproxy/peers.h>
#include <haproxy/signal.h>
#include <haproxy/global.h>
#include <haproxy/fd.h>
-#include <proto/log.h>
#include <proto/proxy.h>
#include <proto/stream.h>
#include <haproxy/namespace.h>
#include <haproxy/hash.h>
#include <haproxy/errors.h>
+#include <haproxy/log.h>
#include <haproxy/signal.h>
-#include <proto/log.h>
/* Opens the namespace <ns_name> and returns the FD or -1 in case of error
* (check errno).
#include <haproxy/api.h>
#include <haproxy/global.h>
+#include <haproxy/log.h>
#include <haproxy/net_helper.h>
#include <haproxy/pattern.h>
#include <haproxy/regex.h>
#include <haproxy/tools.h>
-#include <proto/log.h>
#include <haproxy/sample.h>
#include <import/ebsttree.h>
#include <haproxy/cli.h>
#include <haproxy/dict.h>
#include <haproxy/frontend.h>
+#include <haproxy/log.h>
#include <haproxy/net_helper.h>
#include <haproxy/obj_type-t.h>
#include <haproxy/peers.h>
#include <haproxy/thread.h>
#include <haproxy/fd.h>
-#include <proto/log.h>
#include <proto/proxy.h>
#include <proto/stream.h>
#include <haproxy/stick_table.h>
#include <haproxy/thread.h>
#include <haproxy/pool.h>
#include <haproxy/list.h>
+#include <haproxy/log.h>
#include <haproxy/stats-t.h>
#include <haproxy/stream_interface.h>
#include <haproxy/tools.h>
#include <haproxy/activity-t.h>
-#include <proto/log.h>
#ifdef CONFIG_HAP_LOCAL_POOLS
/* These are the most common pools, expected to be initialized first. These
#include <haproxy/global.h>
#include <haproxy/list.h>
#include <haproxy/listener.h>
+#include <haproxy/log.h>
#include <haproxy/tools.h>
#include <haproxy/time.h>
#include <haproxy/version.h>
#include <haproxy/fd.h>
#include <haproxy/freq_ctr.h>
-#include <proto/log.h>
#include <haproxy/protocol.h>
static void sockpair_add_listener(struct listener *listener, int port);
#include <haproxy/http_rules.h>
#include <haproxy/list.h>
#include <haproxy/listener.h>
+#include <haproxy/log.h>
#include <haproxy/sample.h>
#include <haproxy/tools.h>
#include <haproxy/namespace.h>
#include <haproxy/arg.h>
#include <haproxy/fd.h>
-#include <proto/log.h>
#include <haproxy/port_range.h>
#include <haproxy/protocol.h>
#include <haproxy/proto_tcp.h>
#include <haproxy/global.h>
#include <haproxy/list.h>
#include <haproxy/listener.h>
+#include <haproxy/log.h>
#include <haproxy/tools.h>
#include <haproxy/time.h>
#include <haproxy/version.h>
#include <haproxy/fd.h>
-#include <proto/log.h>
#include <haproxy/protocol.h>
static int uxst_bind_listener(struct listener *listener, char *errmsg, int errlen);
#include <haproxy/global.h>
#include <haproxy/http_ana.h>
#include <haproxy/listener.h>
+#include <haproxy/log.h>
#include <haproxy/obj_type-t.h>
#include <haproxy/peers.h>
#include <haproxy/pool.h>
#include <proto/backend.h>
#include <haproxy/fd.h>
-#include <proto/log.h>
#include <haproxy/proto_tcp.h>
#include <proto/proxy.h>
#include <proto/server.h>
#include <haproxy/buf.h>
#include <haproxy/connection.h>
#include <haproxy/global.h>
+#include <haproxy/log.h>
#include <haproxy/stream_interface.h>
#include <haproxy/tools.h>
#include <haproxy/ticks.h>
#include <haproxy/fd.h>
#include <haproxy/freq_ctr.h>
-#include <proto/log.h>
#include <haproxy/pipe.h>
#include <string.h>
#include <haproxy/api.h>
+#include <haproxy/log.h>
#include <haproxy/regex.h>
#include <haproxy/tools.h>
-#include <proto/log.h>
/* regex trash buffer used by various regex tests */
THREAD_LOCAL regmatch_t pmatch[MAX_MATCH]; /* rm_so, rm_eo for regular expressions */
#include <haproxy/global.h>
#include <haproxy/hash.h>
#include <haproxy/http.h>
+#include <haproxy/log.h>
#include <haproxy/net_helper.h>
#include <haproxy/protobuf.h>
#include <haproxy/regex.h>
#include <haproxy/base64.h>
#include <haproxy/arg.h>
-#include <proto/log.h>
#include <proto/proxy.h>
#include <haproxy/sink.h>
#include <haproxy/stick_table.h>
#include <haproxy/global.h>
#include <haproxy/http.h>
#include <haproxy/listener.h>
+#include <haproxy/log.h>
#include <haproxy/pool.h>
#include <haproxy/session.h>
#include <haproxy/tcp_rules.h>
#include <haproxy/vars.h>
-#include <proto/log.h>
#include <proto/proxy.h>
#include <proto/stream.h>
#include <signal.h>
#include <string.h>
+#include <haproxy/log.h>
#include <haproxy/task.h>
#include <haproxy/signal.h>
-#include <proto/log.h>
/* Principle : we keep an in-order list of the first occurrence of all received
* signals. All occurrences of a same signal are grouped though. The signal
#include <haproxy/cli.h>
#include <import/ist.h>
#include <haproxy/list.h>
+#include <haproxy/log.h>
#include <haproxy/time.h>
-#include <proto/log.h>
#include <haproxy/ring.h>
#include <haproxy/signal.h>
#include <haproxy/sink.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
+#include <syslog.h>
#include <unistd.h>
#include <sys/stat.h>
#include <errno.h>
#include <stdlib.h>
#include <string.h>
+#include <syslog.h>
#include <sys/stat.h>
#include <sys/types.h>
#include <haproxy/frontend.h>
#include <haproxy/global.h>
#include <haproxy/http_rules.h>
+#include <haproxy/log.h>
#include <haproxy/openssl-compat.h>
#include <haproxy/pattern-t.h>
#include <haproxy/shctx.h>
#include <haproxy/freq_ctr.h>
#include <haproxy/proto_tcp.h>
#include <proto/server.h>
-#include <proto/log.h>
#include <proto/proxy.h>
#include <proto/stream.h>
#include <haproxy/pool.h>
#include <haproxy/list.h>
#include <haproxy/listener.h>
+#include <haproxy/log.h>
#include <haproxy/map-t.h>
#include <haproxy/pattern-t.h>
#include <haproxy/session.h>
#include <proto/backend.h>
#include <haproxy/fd.h>
#include <haproxy/freq_ctr.h>
-#include <proto/log.h>
#include <haproxy/pipe.h>
#include <proto/proxy.h>
#include <proto/stream.h>
#include <haproxy/http_rules.h>
#include <haproxy/pool.h>
#include <haproxy/list.h>
+#include <haproxy/log.h>
#include <haproxy/net_helper.h>
#include <haproxy/peers.h>
#include <haproxy/stats-t.h>
#include <import/ebsttree.h>
#include <haproxy/arg.h>
-#include <proto/log.h>
#include <haproxy/proto_tcp.h>
#include <proto/proxy.h>
#include <haproxy/sample.h>
#include <haproxy/istbuf.h>
#include <haproxy/thread.h>
#include <haproxy/htx.h>
+#include <haproxy/log.h>
#include <haproxy/pool.h>
#include <haproxy/session.h>
#include <haproxy/stats-t.h>
#include <proto/backend.h>
#include <haproxy/fd.h>
#include <haproxy/freq_ctr.h>
-#include <proto/log.h>
#include <proto/stream.h>
#include <haproxy/pipe.h>
#include <proto/proxy.h>
#include <haproxy/connection.h>
#include <haproxy/global.h>
#include <haproxy/list.h>
+#include <haproxy/log.h>
#include <haproxy/sample.h>
#include <haproxy/stream_interface.h>
#include <haproxy/tcp_rules.h>
#include <haproxy/arg-t.h>
-#include <proto/log.h>
#include <proto/proxy.h>
#include <haproxy/stick_table.h>
#include <proto/stream.h>
#include <haproxy/cli.h>
#include <haproxy/istbuf.h>
#include <haproxy/list.h>
-#include <proto/log.h>
+#include <haproxy/log.h>
#include <haproxy/sink.h>
#include <haproxy/trace.h>
#include <haproxy/api.h>
#include <haproxy/base64.h>
+#include <haproxy/log.h>
#include <haproxy/stats-t.h>
#include <haproxy/uri_auth.h>
-#include <proto/log.h>
/*
* Initializes a basic uri_auth structure header and returns a pointer to it.
#include <haproxy/api.h>
#include <haproxy/debug.h>
#include <haproxy/global.h>
+#include <haproxy/log.h>
#include <haproxy/thread.h>
#include <haproxy/tools.h>
-#include <proto/log.h>
/*
#include <haproxy/http_ana.h>
#include <haproxy/http_fetch.h>
#include <haproxy/http_htx.h>
+#include <haproxy/log.h>
#include <haproxy/arg.h>
-#include <proto/log.h>
#include <haproxy/sample.h>
#include <import/ebsttree.h>
#include <import/ebmbtree.h>