Hello community, here is the log from the commit of package haproxy for openSUSE:Factory checked in at 2013-10-15 10:42:00 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/haproxy (Old) and /work/SRC/openSUSE:Factory/.haproxy.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "haproxy" Changes: -------- New Changes file: --- /dev/null 2013-10-11 12:16:15.204037506 +0200 +++ /work/SRC/openSUSE:Factory/.haproxy.new/haproxy.changes 2013-10-15 10:42:00.000000000 +0200 @@ -0,0 +1,591 @@ +------------------------------------------------------------------- +Thu Oct 10 15:16:32 UTC 2013 - [email protected] + +- license update: GPL-2.0+ and LGPL-2.1+ + only header files are LGPL, the rest is still GPL + +------------------------------------------------------------------- +Tue Jun 18 09:14:13 UTC 2013 - [email protected] + +- update to 1.4.24 (bnc#825412) + - BUG/MAJOR: backend: consistent hash can loop forever in certain + circumstances + - BUG/MEDIUM: checks: disable TCP quickack when pure TCP checks + are used + - MEDIUM: protocol: implement a "drain" function in protocol + layers + - BUG/CRITICAL: fix a possible crash when using negative header + occurrences CVE-2013-2175 + +------------------------------------------------------------------- +Wed Apr 3 14:47:43 UTC 2013 - [email protected] + +- update to 1.4.23 CVE-2013-1912 + - CONTRIB: halog: sort URLs by avg bytes_read or total bytes_read + - BUG: fix garbage data when http-send-name-header replaces an + existing header + - BUG/MEDIUM: remove supplementary groups when changing gid + - BUG/MINOR: Correct logic in cut_crlf() + - BUG/MINOR: config: use a copy of the file name in proxy + configurations + - BUG/MINOR: epoll: correctly disable FD polling in fd_rem() + - MINOR: halog: sort output by cookie code + - BUG/MINOR: halog: -ad/-ac report the correct number of output + lines + - BUG/MINOR: halog: fix help message for -ut/-uto + - BUG/MEDIUM: http: set DONTWAIT on data when switching to tunnel + mode + - BUG/MEDIUM: command-line option -D must have precedence over + "debug" + - OPTIM: halog: keep a fast path for the lines-count only + - MINOR: halog: add a parameter to limit output line count + - BUG: halog: fix broken output limitation + - MEDIUM: checks: avoid accumulating TIME_WAITs during checks + - MEDIUM: checks: prevent TIME_WAITs from appearing also on + timeouts + - BUG/MAJOR: cli: show sess <id> may randomly corrupt the + back-ref list + - BUG/MINOR: http: don't report client aborts as server errors + - BUG/MINOR: http: don't log a 503 on client errors while waiting + for requests + - BUG/MEDIUM: tcp: process could theorically crash on lack of + source ports + - BUG/MINOR: http: don't abort client connection on premature + responses + - BUILD: no need to clean up when making git-tar + - MINOR: http: always report PR-- flags for redirect rules + - BUG/MINOR: time: frequency counters are not totally accurate + - BUG/MINOR: http: don't process abortonclose when request was + sent + - BUG/MINOR: epoll: use a fix maxevents argument in epoll_wait() + - BUG/MINOR: config: fix improper check for failed memory alloc + in ACL parser + - BUG/MEDIUM: checks: ensure the health_status is always within + bounds + - CLEANUP: http: remove a useless null check + - BUG/MEDIUM: signal: signal handler does not properly check for + signal bounds + - BUG/MEDIUM: uri_auth: missing NULL check and memory leak on + memory shortage + - CLEANUP: config: slowstart is never negative + - BUILD: improve the makefile's support for libpcre + - BUG/MINOR: checks: fix an warning introduced by commit 2f61455a + - MEDIUM: halog: add support for counting per source address + (-ic) + - DOC: mention the new HTTP 307 and 308 redirect statues + (cherry picked from commit + b67fdc4cd8bde202f2805d98683ddab929469a05) + - MEDIUM: poll: do not use FD_* macros anymore + - BUG/MAJOR: ev_select: disable the select() poller if maxsock > + FD_SETSIZE + - BUILD: enable poll() by default in the makefile + - BUILD: add explicit support for Mac OS/X + - BUG/CRITICAL: using HTTP information in tcp-request content may + crash the process CVE-2013-1912 + - MEDIUM: http: implement redirect 307 and 308 + - MINOR: http: status 301 should not be marked non-cacheable +- adapt haproxy-makefile_lib.patch to the rewritten Makefile + +------------------------------------------------------------------- +Mon Nov 12 14:10:33 UTC 2012 - [email protected] + +- switch license tag to spdx format. + +------------------------------------------------------------------- +Mon Nov 12 13:50:46 UTC 2012 - [email protected] + +- update to 1.4.22 + - BUG/MEDIUM: option forwardfor if-none doesn't work with some + configurations + - MINOR: balance uri: added 'whole' parameter to include query + string in hash calculation + - DOC: specify the default value for maxconn in the context of a + proxy + - BUG/MINOR: checks: expire on timeout.check if smaller than + timeout.connect + - REORG/MINOR: use dedicated proxy flags for the cookie handling + - BUG/MINOR: config: do not report twice the incompatibility + between cookie and non-http + - MINOR: http: add support for "httponly" and "secure" cookie + attributes + - MEDIUM: stats: add support for soft stop/soft start in the + admin interface + - BUILD: add support for linux kernels >= 2.6.28 + - MINOR: contrib/iprange: add a network IP range to mask + converter + - BUILD: add an AIX 5.2 (and later) target. + - MINOR: halog: use the more recent dual-mode fgets2 + implementation + - BUG/MEDIUM: ebtree: ebmb_insert() must not call cmp_bits on + full-length matches + - CLEANUP: halog: make clean should also remove .o files + (cherry picked from commit + 8ad4193100aafa19f04929670371bf823dbe11d0) + - OPTIM: halog: make use of memchr() on platforms which provide a + fast one + - OPTIM: halog: improve cold-cache behaviour when loading a file + - [MINOR] config: make it possible to specify a cookie even + without a server + - MINOR: config: tolerate server "cookie" setting in non-HTTP + mode + - BUG/MINOR: tarpit: fix condition to return the HTTP 500 message + +------------------------------------------------------------------- +Tue Oct 30 16:02:03 UTC 2012 - [email protected] + +- fix description in the init script + +------------------------------------------------------------------- +Tue May 22 16:47:45 UTC 2012 - [email protected] + +- update to 1.4.21 (bnc#763833) CVE-2012-2391 + - MINOR: patch for minor typo (ressources/resources) + - CLEANUP: fix typo in findserver() log message + - DOC: cleanup indentation, alignment, columns and chapters + - DOC: fix some keywords arguments documentation + - MINOR: stats admin: allow unordered parameters in POST requests + - MINOR: stats admin: use the backend id instead of its name in + the form + - BUG/MAJOR: trash must always be the size of a buffer + - DOC: fix minor regex example issue and improve doc on stats + - BUG/MAJOR: possible crash when using capture headers on TCP + frontends + - MINOR: config: disable header captures in TCP mode and complain + - BUG/MEDIUM: balance source did not properly hash IPv6 addresses + - CLEANUP: http: message parser must ignore HTTP_MSG_ERROR + - CLEANUP: remove a few warning about unchecked return values in + debug code + - CLEANUP: http: remove unused http_msg->col + - BUG/MINOR: http: error snapshots are wrong if buffer wraps + - BUG/MAJOR: checks: don't call set_server_status_* when no LB + algo is set + - MINOR: proxy: make findproxy() return proxies from numeric IDs + too + - BUILD: http: stop gcc-4.1.2 from complaining about possibly + uninitialized values + - BUG/MINOR: stop connect timeout when connect succeeds + +------------------------------------------------------------------- +Sun Mar 11 19:16:20 UTC 2012 - [email protected] + +- update to 1.4.20: + - BUG/MINOR: fix typo in processing of http-send-name-header + - BUG/MEDIUM: correctly disable servers tracking another disabled servers. + - BUG/MEDIUM: zero-weight servers must not dequeue requests from the backend + - MINOR: halog: add some help on the command line (cherry picked from + commit 615674cdec067066a42f53f5d55628ab7b207e6c) + - BUG: queue: fix dequeueing sequence on HTTP keep-alive sessions + - BUG: http: disable TCP delayed ACKs when forwarding content-length data + - BUG: checks: fix server maintenance exit sequence + - BUG/MINOR: stream_sock: don't remove BF_EXPECT_MORE and BF_SEND_DONTWAIT on + partial writes + - DOC: enumerate valid status codes for "observe layer7" + +------------------------------------------------------------------- +Wed Feb 8 15:30:58 UTC 2012 - [email protected] + +- update to 1.4.19 + - MEDIUM: http: add support for sending the server's name in the + outgoing request + - BUG/MINOR: fix options forwardfor if-none when an alternative + header name is specified + - MINOR: task: new function task_schedule() to schedule a wake up + - BUG/MEDIUM: checks: fix slowstart behaviour when server + tracking is in use + - BUG: tcp: option nolinger does not work on backends + - BUG: ebtree: ebst_lookup() could return the wrong entry + - BUG: http: re-enable TCP quick-ack upon incomplete HTTP ++++ 394 more lines (skipped) ++++ between /dev/null ++++ and /work/SRC/openSUSE:Factory/.haproxy.new/haproxy.changes New: ---- haproxy-1.2.16_config_haproxy_user.patch haproxy-1.4.24.tar.gz haproxy-makefile_lib.patch haproxy-rpmlintrc haproxy.changes haproxy.init haproxy.spec haproxy.vim ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ haproxy.spec ++++++ # # spec file for package haproxy # # Copyright (c) 2012 SUSE LINUX Products GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed # upon. The license for this file, and modifications and additions to the # file, is the same license as for the pristine package itself (unless the # license for the pristine package is not an Open Source License, in which # case the license is the MIT License). An "Open Source License" is a # license that conforms to the Open Source Definition (Version 1.9) # published by the Open Source Initiative. # Please submit bugfixes or comments via http://bugs.opensuse.org/ Name: haproxy Version: 1.4.24 Release: 0 # License: GPL-2.0+ and LGPL-2.1+ Group: Productivity/Networking/Web/Proxy # BuildRoot: %{_tmppath}/%{name}-%{version}-build BuildRequires: pcre-devel libgcrypt-devel BuildRequires: udev %define pkg_name haproxy %define pkg_home /var/lib/%{pkg_name} # Url: http://haproxy.1wt.eu/ Source: http://haproxy.1wt.eu/download/1.4/src/haproxy-%{version}.tar.gz Source1: %{pkg_name}.init Source2: http://haproxy.1wt.eu/download/contrib/haproxy.vim Patch1: haproxy-1.2.16_config_haproxy_user.patch Patch2: haproxy-makefile_lib.patch Source99: haproxy-rpmlintrc # Summary: The Reliable, High Performance TCP/HTTP Load Balancer Provides: %{name}-doc = %{version} Obsoletes: %{name}-doc < %{version} %description HAProxy implements an event-driven, mono-process model which enables support for very high number of simultaneous connections at very high speeds. Multi-process or multi-threaded models can rarely cope with thousands of connections because of memory limits, system scheduler limits, and lock contention everywhere. Event-driven models do not have these problems because implementing all the tasks in user-space allows a finer resource and time management. The down side is that those programs generally don't scale well on multi-processor systems. That's the reason why they must be optimized to get the most work done from every CPU cycle. %prep %setup -q %patch1 %patch2 %build %{__make} \ TARGET=linux26 \ CPU="%{_target_cpu}" \ USE_PCRE=1 \ USE_LIBCRYPT=1 \ LIB="%{_lib}" \ DEBUG="%{optflags} -fno-strict-aliasing" %install %{__install} -D -m 0755 %{pkg_name} %{buildroot}%{_sbindir}/%{pkg_name} %{__install} -D -m 0644 examples/%{pkg_name}.cfg %{buildroot}%{_sysconfdir}/%{pkg_name}/%{pkg_name}.cfg %{__install} -D -m 0755 %{S:1} %{buildroot}%{_sysconfdir}/init.d/%{pkg_name} %{__ln_s} -f %{_sysconfdir}/init.d/%{pkg_name} %{buildroot}%{_sbindir}/rc%{pkg_name} %{__install} -d -m 0755 %{buildroot}%{pkg_home} %{__install} -D -m 0644 %{S:2} %{buildroot}%{_datadir}/%{pkg_name}/%{pkg_name}.vim %{__install} -D -m 0644 doc/%{pkg_name}.1 %{buildroot}%{_mandir}/man1/%{pkg_name}.1 gzip %{buildroot}%{_mandir}/man1/%{pkg_name}.1 %clean %{?buildroot:%{__rm} -rf %{buildroot}} %pre /usr/sbin/groupadd -r %{pkg_name} &>/dev/null ||: /usr/sbin/useradd -g %{pkg_name} -s /bin/false -r -c "user for %{pkg_name}" -d %{pkg_home} %{pkg_name} &>/dev/null ||: %post %fillup_and_insserv %{pkg_name} %preun %stop_on_removal %{pkg_name} %postun %restart_on_update %{pkg_name} %{insserv_cleanup} %files %defattr(-,root,root,-) %doc CHANGELOG README LICENSE %doc ROADMAP TODO doc/* examples %dir %{_sysconfdir}/%{pkg_name} %config(noreplace) %{_sysconfdir}/%{pkg_name}/%{pkg_name}.cfg %config(noreplace) %{_sysconfdir}/init.d/%{pkg_name} %{_sbindir}/haproxy %{_sbindir}/rchaproxy %{pkg_home} %doc %{_mandir}/man1/%{pkg_name}.1.gz %{_datadir}/%{pkg_name} %changelog ++++++ haproxy-1.2.16_config_haproxy_user.patch ++++++ Index: examples/examples.cfg =================================================================== --- examples/examples.cfg.orig +++ examples/examples.cfg @@ -3,8 +3,8 @@ # log 127.0.0.1 local1 maxconn 4000 ulimit-n 8000 - uid 0 - gid 0 + user haproxy + group haproxy # chroot /tmp # nbproc 2 # daemon Index: examples/haproxy.cfg =================================================================== --- examples/haproxy.cfg.orig +++ examples/haproxy.cfg @@ -5,9 +5,9 @@ log 127.0.0.1 local1 notice #log loghost local0 info maxconn 4096 - chroot /usr/share/haproxy - uid 99 - gid 99 + chroot /var/lib/haproxy + user haproxy + group haproxy daemon #debug #quiet ++++++ haproxy-makefile_lib.patch ++++++ Index: Makefile =================================================================== --- Makefile.orig +++ Makefile @@ -460,7 +460,7 @@ ifneq ($(USE_PCRE)$(USE_STATIC_PCRE),) PCREDIR := $(shell pcre-config --prefix 2>/dev/null || echo /usr/local) ifneq ($(PCREDIR),) PCRE_INC := $(PCREDIR)/include -PCRE_LIB := $(PCREDIR)/lib +PCRE_LIB := $(PCREDIR)/$(LIB) endif ifeq ($(USE_STATIC_PCRE),) ++++++ haproxy-rpmlintrc ++++++ addFilter('wrong-file-end-of-line-encoding .*/examples/errorfiles/.*\.http$') addFilter('file-contains-current-date /usr/share/doc/packages/haproxy/examples/haproxy.spec') ++++++ haproxy.init ++++++ #!/bin/sh # ### BEGIN INIT INFO # Provides: haproxy # Required-Start: $syslog $remote_fs # Should-Start: $time ypbind sendmail # Required-Stop: $syslog $remote_fs # Should-Stop: $time ypbind sendmail # Default-Start: 3 5 # Default-Stop: 0 1 2 6 # Short-Description: haproxy # Description: Start haproxy a reliable, high performance TCP/HTTP load balancer ### END INIT INFO # # Any extensions to the keywords given above should be preceeded by # X-VendorTag- (X-UnitedLinux- X-SuSE- for us) according to LSB. # # Notes on Required-Start/Should-Start: # * There are two different issues that are solved by Required-Start # and Should-Start # (a) Hard dependencies: This is used by the runlevel editor to determine # which services absolutely need to be started to make the start of # this service make sense. Example: nfsserver should have # Required-Start: $portmap # Also, required services are started before the dependent ones. # The runlevel editor will warn about such missing hard dependencies # and suggest enabling. During system startup, you may expect an error, # if the dependency is not fulfilled. # (b) Specifying the init script ordering, not real (hard) dependencies. # This is needed by insserv to determine which service should be # started first (and at a later stage what services can be started # in parallel). The tag Should-Start: is used for this. # It tells, that if a service is available, it should be started # before. If not, never mind. # * When specifying hard dependencies or ordering requirements, you can # use names of services (contents of their Provides: section) # or pseudo names starting with a $. The following ones are available # according to LSB (1.1): # $local_fs all local file systems are mounted # (most services should need this!) # $remote_fs all remote file systems are mounted # (note that /usr may be remote, so # many services should Require this!) # $syslog system logging facility up # $network low level networking (eth card, ...) # $named hostname resolution available # $netdaemons all network daemons are running # The $netdaemons pseudo service has been removed in LSB 1.2. # For now, we still offer it for backward compatibility. # These are new (LSB 1.2): # $time the system time has been set correctly # $portmap SunRPC portmapping service available # UnitedLinux extensions: # $ALL indicates that a script should be inserted # at the end # * The services specified in the stop tags # (Required-Stop/Should-Stop) # specify which services need to be still running when this service # is shut down. Often the entries there are just copies or a subset # from the respective start tag. # * Should-Start/Stop are now part of LSB as of 2.0, # formerly SUSE/Unitedlinux used X-UnitedLinux-Should-Start/-Stop. # insserv does support both variants. # * X-UnitedLinux-Default-Enabled: yes/no is used at installation time # (%fillup_and_insserv macro in %post of many RPMs) to specify whether # a startup script should default to be enabled after installation. # It's not used by insserv. # # Note on runlevels: # 0 - halt/poweroff 6 - reboot # 1 - single user 2 - multiuser without network exported # 3 - multiuser w/ network (text mode) 5 - multiuser w/ network and X11 (xdm) # # Note on script names: # http://www.linuxbase.org/spec/refspecs/LSB_1.3.0/gLSB/gLSB/scrptnames.html # A registry has been set up to manage the init script namespace. # http://www.lanana.org/ # Please use the names already registered or register one or use a # vendor prefix. # Check for missing binaries (stale symlinks should not happen) # Note: Special treatment of stop for LSB conformance HAPROXY_BIN=/usr/sbin/haproxy test -x $HAPROXY_BIN || { echo "$HAPROXY_BIN not installed"; if [ "$1" = "stop" ]; then exit 0; else exit 5; fi; } HAPROXY_PID="/var/run/haproxy.pid" HAPROXY_CONF="/etc/haproxy/haproxy.cfg" ## Check for existence of needed config file and read it #HAPROXY_CONFIG=/etc/sysconfig/haproxy #test -r $HAPROXY_CONFIG || { echo "$HAPROXY_CONFIG not existing"; # if [ "$1" = "stop" ]; then exit 0; # else exit 6; fi; } # ## Read config #. $HAPROXY_CONFIG # Source LSB init functions # providing start_daemon, killproc, pidofproc, # log_success_msg, log_failure_msg and log_warning_msg. # This is currently not used by UnitedLinux based distributions and # not needed for init scripts for UnitedLinux only. If it is used, # the functions from rc.status should not be sourced or used. #. /lib/lsb/init-functions # Shell functions sourced from /etc/rc.status: # rc_check check and set local and overall rc status # rc_status check and set local and overall rc status # rc_status -v be verbose in local rc status and clear it afterwards # rc_status -v -r ditto and clear both the local and overall rc status # rc_status -s display "skipped" and exit with status 3 # rc_status -u display "unused" and exit with status 3 # rc_failed set local and overall rc status to failed # rc_failed <num> set local and overall rc status to <num> # rc_reset clear both the local and overall rc status # rc_exit exit appropriate to overall rc status # rc_active checks whether a service is activated by symlinks . /etc/rc.status # Reset status of this service rc_reset # Return values acc. to LSB for all commands but status: # 0 - success # 1 - generic or unspecified error # 2 - invalid or excess argument(s) # 3 - unimplemented feature (e.g. "reload") # 4 - user had insufficient privileges # 5 - program is not installed # 6 - program is not configured # 7 - program is not running # 8--199 - reserved (8--99 LSB, 100--149 distrib, 150--199 appl) # # Note that starting an already running service, stopping # or restarting a not-running service as well as the restart # with force-reload (in case signaling is not supported) are # considered a success. function haproxy_check() { HAPROXY_CONFIG_CHECK="$($HAPROXY_BIN -c -q -f $HAPROXY_CONF 2>&1)" if [ $? -ne 0 ] ; then echo "" >&2 echo "$HAPROXY_CONFIG_CHECK" >&2 rc_failed rc_status -v exit 1 else return 0 fi } case "$1" in start) echo -n "Starting haproxy " ## Start daemon with startproc(8). If this fails ## the return value is set appropriately by startproc. haproxy_check /sbin/startproc $HAPROXY_BIN -D -f $HAPROXY_CONF -p $HAPROXY_PID # Remember status and be verbose rc_status -v ;; stop) echo -n "Shutting down haproxy " ## Stop daemon with killproc(8) and if this fails ## killproc sets the return value according to LSB. /sbin/killproc -TERM $HAPROXY_BIN # Remember status and be verbose rc_status -v ;; try-restart|condrestart) ## Do a restart only if the service was active before. ## Note: try-restart is now part of LSB (as of 1.9). ## RH has a similar command named condrestart. if test "$1" = "condrestart"; then echo "${attn} Use try-restart ${done}(LSB)${attn} rather than condrestart ${warn}(RH)${norm}" fi $0 status if test $? = 0; then # we us reload here for a graceful restart during update $0 reload else rc_reset # Not running is not a failure. fi # Remember status and be quiet rc_status ;; restart) ## Stop the service and regardless of whether it was ## running or not, start it again. haproxy_check $0 stop $0 start # Remember status and be quiet rc_status ;; check) ## Stop the service and regardless of whether it was ## running or not, start it again. echo -n "Checking config of haproxy " haproxy_check rc_status -v ;; reload|force-reload) ## Like force-reload, but if daemon does not support ## signaling, do nothing (!) haproxy_check # If it supports signaling: echo -n "Reload service haproxy " $HAPROXY_BIN -p $HAPROXY_PID -D -f $HAPROXY_CONF -sf $(cat $HAPROXY_PID) rc_status -v ;; status) echo -n "Checking for service haproxy " ## Check status with checkproc(8), if process is running ## checkproc will return with exit status 0. # Return value is slightly different for the status command: # 0 - service up and running # 1 - service dead, but /var/run/ pid file exists # 2 - service dead, but /var/lock/ lock file exists # 3 - service not running (unused) # 4 - service status unknown :-( # 5--199 reserved (5--99 LSB, 100--149 distro, 150--199 appl.) # NOTE: checkproc returns LSB compliant status values. /sbin/checkproc $HAPROXY_BIN # NOTE: rc_status knows that we called this init script with # "status" option and adapts its messages accordingly. rc_status -v ;; probe) ## Optional: Probe for the necessity of a reload, print out the ## argument to this init script which is required for a reload. ## Note: probe is not (yet) part of LSB (as of 1.9) test $HAPROXY_CONF -nt $HAPROXY_PID && echo reload ;; *) echo "Usage: $0 {start|stop|status|try-restart|restart|force-reload|reload|probe}" exit 1 ;; esac rc_exit ++++++ haproxy.vim ++++++ " Vim syntax file " Language: HAproxy " Maintainer: Bruno Michel <[email protected]> " Last Change: Mar 30, 2007 " Version: 0.3 " URL: http://haproxy.1wt.eu/ " URL: http://vim.sourceforge.net/scripts/script.php?script_id=1845 " It is suggested to add the following line to $HOME/.vimrc : " au BufRead,BufNewFile haproxy* set ft=haproxy " For version 5.x: Clear all syntax items " For version 6.x: Quit when a syntax file was already loaded if version < 600 syntax clear elseif exists("b:current_syntax") finish endif if version >= 600 setlocal iskeyword=_,-,a-z,A-Z,48-57 else set iskeyword=_,-,a-z,A-Z,48-57 endif " Escaped chars syn match hapEscape +\\\(\\\| \|n\|r\|t\|#\|x\x\x\)+ " Comments syn match hapComment /#.*$/ contains=hapTodo syn keyword hapTodo contained TODO FIXME XXX syn case ignore " Sections syn match hapSection /^\s*\(global\|defaults\)/ syn match hapSection /^\s*\(listen\|frontend\|backend\|ruleset\)/ skipwhite nextgroup=hapSectLabel syn match hapSectLabel /\S\+/ skipwhite nextgroup=hapIp1 contained syn match hapIp1 /\(\d\{1,3}\.\d\{1,3}\.\d\{1,3}\.\d\{1,3}\)\?:\d\{1,5}/ nextgroup=hapIp2 contained syn match hapIp2 /,\(\d\{1,3}\.\d\{1,3}\.\d\{1,3}\.\d\{1,3}\)\?:\d\{1,5}/hs=s+1 nextgroup=hapIp2 contained " Parameters syn keyword hapParam chroot cliexp clitimeout contimeout syn keyword hapParam daemon debug disabled syn keyword hapParam enabled syn keyword hapParam fullconn syn keyword hapParam gid grace syn keyword hapParam maxconn monitor-uri syn keyword hapParam nbproc noepoll nopoll syn keyword hapParam pidfile syn keyword hapParam quiet syn keyword hapParam redispatch retries syn keyword hapParam reqallow reqdel reqdeny reqpass reqtarpit skipwhite nextgroup=hapRegexp syn keyword hapParam reqiallow reqidel reqideny reqipass reqitarpit skipwhite nextgroup=hapRegexp syn keyword hapParam rspdel rspdeny skipwhite nextgroup=hapRegexp syn keyword hapParam rspidel rspideny skipwhite nextgroup=hapRegexp syn keyword hapParam reqsetbe reqisetbe skipwhite nextgroup=hapRegexp2 syn keyword hapParam reqadd reqiadd rspadd rspiadd syn keyword hapParam server source srvexp srvtimeout syn keyword hapParam uid ulimit-n syn keyword hapParam reqrep reqirep rsprep rspirep skipwhite nextgroup=hapRegexp syn keyword hapParam errorloc errorloc302 errorloc303 skipwhite nextgroup=hapStatus syn keyword hapParam default_backend skipwhite nextgroup=hapSectLabel syn keyword hapParam appsession skipwhite nextgroup=hapAppSess syn keyword hapParam bind skipwhite nextgroup=hapIp1 syn keyword hapParam balance skipwhite nextgroup=hapBalance syn keyword hapParam cookie skipwhite nextgroup=hapCookieNam syn keyword hapParam capture skipwhite nextgroup=hapCapture syn keyword hapParam dispatch skipwhite nextgroup=hapIpPort syn keyword hapParam source skipwhite nextgroup=hapIpPort syn keyword hapParam mode skipwhite nextgroup=hapMode syn keyword hapParam monitor-net skipwhite nextgroup=hapIPv4Mask syn keyword hapParam option skipwhite nextgroup=hapOption syn keyword hapParam stats skipwhite nextgroup=hapStats syn keyword hapParam server skipwhite nextgroup=hapServerN syn keyword hapParam source skipwhite nextgroup=hapServerEOL syn keyword hapParam log skipwhite nextgroup=hapGLog,hapLogIp " Options and additional parameters syn keyword hapAppSess contained len timeout syn keyword hapBalance contained roundrobin source syn keyword hapLen contained len syn keyword hapGLog contained global syn keyword hapMode contained http tcp health syn keyword hapOption contained abortonclose allbackups checkcache clitcpka dontlognull forceclose forwardfor syn keyword hapOption contained httpchk httpclose httplog keepalive logasap persist srvtcpka ssl-hello-chk syn keyword hapOption contained tcplog tcpka tcpsplice syn keyword hapOption contained except skipwhite nextgroup=hapIPv4Mask syn keyword hapStats contained uri realm auth scope enable syn keyword hapLogFac contained kern user mail daemon auth syslog lpr news nextgroup=hapLogLvl skipwhite syn keyword hapLogFac contained uucp cron auth2 ftp ntp audit alert cron2 nextgroup=hapLogLvl skipwhite syn keyword hapLogFac contained local0 local1 local2 local3 local4 local5 local6 local7 nextgroup=hapLogLvl skipwhite syn keyword hapLogLvl contained emerg alert crit err warning notice info debug syn keyword hapCookieKey contained rewrite insert nocache postonly indirect prefix nextgroup=hapCookieKey skipwhite syn keyword hapCapture contained cookie nextgroup=hapNameLen skipwhite syn keyword hapCapture contained request response nextgroup=hapHeader skipwhite syn keyword hapHeader contained header nextgroup=hapNameLen skipwhite syn keyword hapSrvKey contained backup cookie check inter rise fall port source minconn maxconn weight usesrc syn match hapStatus contained /\d\{3}/ syn match hapIPv4Mask contained /\d\{1,3}\.\d\{1,3}\.\d\{1,3}\.\d\{1,3}\(\/\d\{1,2}\)\?/ syn match hapLogIp contained /\d\{1,3}\.\d\{1,3}\.\d\{1,3}\.\d\{1,3}/ nextgroup=hapLogFac skipwhite syn match hapIpPort contained /\d\{1,3}\.\d\{1,3}\.\d\{1,3}\.\d\{1,3}:\d\{1,5}/ syn match hapServerAd contained /\d\{1,3}\.\d\{1,3}\.\d\{1,3}\.\d\{1,3}\(:[+-]\?\d\{1,5}\)\?/ nextgroup=hapSrvEOL skipwhite syn match hapNameLen contained /\S\+/ nextgroup=hapLen skipwhite syn match hapCookieNam contained /\S\+/ nextgroup=hapCookieKey skipwhite syn match hapServerN contained /\S\+/ nextgroup=hapServerAd skipwhite syn region hapSrvEOL contained start=/\S/ end=/$/ contains=hapSrvKey syn region hapRegexp contained start=/\S/ end=/\(\s\|$\)/ skip=/\\ / nextgroup=hapRegRepl skipwhite syn region hapRegRepl contained start=/\S/ end=/$/ contains=hapComment,hapEscape,hapBackRef syn region hapRegexp2 contained start=/\S/ end=/\(\s\|$\)/ skip=/\\ / nextgroup=hapSectLabel skipwhite syn match hapBackref contained /\\\d/ " Transparent is a Vim keyword, so we need a regexp to match it syn match hapParam +transparent+ syn match hapOption +transparent+ contained " Define the default highlighting. " For version 5.7 and earlier: only when not done already " For version 5.8 and later: only when an item doesn't have highlighting yet if version < 508 command -nargs=+ HiLink hi link <args> else command -nargs=+ HiLink hi def link <args> endif HiLink hapEscape SpecialChar HiLink hapBackRef Special HiLink hapComment Comment HiLink hapTodo Todo HiLink hapSection Constant HiLink hapSectLabel Identifier HiLink hapParam Keyword HiLink hapRegexp String HiLink hapRegexp2 hapRegexp HiLink hapIp1 Number HiLink hapIp2 hapIp1 HiLink hapLogIp hapIp1 HiLink hapIpPort hapIp1 HiLink hapIPv4Mask hapIp1 HiLink hapServerAd hapIp1 HiLink hapStatus Number HiLink hapOption Operator HiLink hapAppSess hapOption HiLink hapBalance hapOption HiLink hapCapture hapOption HiLink hapCookieKey hapOption HiLink hapHeader hapOption HiLink hapGLog hapOption HiLink hapLogFac hapOption HiLink hapLogLvl hapOption HiLink hapMode hapOption HiLink hapStats hapOption HiLink hapLen hapOption HiLink hapSrvKey hapOption delcommand HiLink let b:current_syntax = "haproxy" " vim: ts=8 -- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
