commit 876509ed901eacfcd3fa103d76a6e09148f8c62a parent b6fffabd30de3ae97822ef102455dfe929b70f3b Author: finwo <finwo@pm.me> Date: Sat, 3 Jan 2026 19:34:32 +0100 1.71 Diffstat:
123 files changed, 1082 insertions(+), 1269 deletions(-)
diff --git a/ChangeLog b/ChangeLog @@ -1,6 +1,9 @@ ChangeLog for Crossroads ------------------------------------------------------------------------------ +1.71 [KK 2008-01-12] + - Bugfix in 1.70 related to HTTP body copy-thru mode. + 1.70 [KK 2008-01-11] - Bugfix in 1.69 (yeah that was fast).. diff --git a/doc/crossroads.html b/doc/crossroads.html @@ -1,12 +1,12 @@ <a name="../crossroads-defs"></a><a name="defs"></a><html><head> -<title>Crossroads 1.70</title> +<title>Crossroads 1.71</title> <link rel="stylesheet" type="text/css" href="http://www.e-tunity.com/css/yodl.css"> <link rel="stylesheet" type="text/css" href="http://www.e-tunity.com/css/yodl.css"> <link rev="made" href="mailto:info@e-tunity.com"> </head> <body> <hr> -<h1>Crossroads 1.70</h1> +<h1>Crossroads 1.71</h1> <h2>Karel Kubat <br> Maintained by Karel Kubat (karel@kubat.nl)</h2> diff --git a/doc/crossroads.pdf b/doc/crossroads.pdf Binary files differ. diff --git a/etc/Makefile.def b/etc/Makefile.def @@ -6,7 +6,7 @@ # Versioning. This defines the overall version ID and must match the topmost # entry in the ChangeLog. -VER = 1.70 +VER = 1.71 # Years that Crossroads has been 'round. YEARS = 2005-2007 diff --git a/etc/svnrev.txt b/etc/svnrev.txt @@ -1 +1 @@ -213 +214 diff --git a/src/crossroads-daemon/main.c b/src/crossroads-daemon/main.c @@ -1,5 +1,5 @@ /************************************************************************* - * This file is part of Crosroads 1.70, a load balancer and fail over + * This file is part of Crosroads 1.71, a load balancer and fail over * utility for TCP. Copyright (c) Karel Kubat, distributed under GPL. * Visit http://crossroads.e-tunity.com for information. *************************************************************************/ diff --git a/src/crossroads.h b/src/crossroads.h @@ -1,5 +1,5 @@ /************************************************************************* - * This file is part of Crosroads 1.70, a load balancer and fail over + * This file is part of Crosroads 1.71, a load balancer and fail over * utility for TCP. Copyright (c) Karel Kubat, distributed under GPL. * Visit http://crossroads.e-tunity.com for information. *************************************************************************/ @@ -426,7 +426,7 @@ extern int net_copy (int clientsock, int serversock, int maxbytes, extern int net_read (int sock, int maxbytes, unsigned char *buf, int is_client); extern void net_allocbufs (void); -extern unsigned char *net_buffer (CopyDirection dir, int *sz); +extern unsigned char *net_buffer (CopyDirection dir, unsigned *sz); extern unsigned char *net_bufread (int sock, int maxbytes, int *nreadp, int is_client); extern int net_write (int sock, unsigned char const *buf, int len, diff --git a/src/crossroads/main.c b/src/crossroads/main.c @@ -1,5 +1,5 @@ /************************************************************************* - * This file is part of Crosroads 1.70, a load balancer and fail over + * This file is part of Crosroads 1.71, a load balancer and fail over * utility for TCP. Copyright (c) Karel Kubat, distributed under GPL. * Visit http://crossroads.e-tunity.com for information. *************************************************************************/ diff --git a/src/lib/allocreporter.c b/src/lib/allocreporter.c @@ -1,5 +1,5 @@ /************************************************************************* - * This file is part of Crosroads 1.70, a load balancer and fail over + * This file is part of Crosroads 1.71, a load balancer and fail over * utility for TCP. Copyright (c) Karel Kubat, distributed under GPL. * Visit http://crossroads.e-tunity.com for information. *************************************************************************/ diff --git a/src/lib/ansistamp.c b/src/lib/ansistamp.c @@ -1,5 +1,5 @@ /************************************************************************* - * This file is part of Crosroads 1.70, a load balancer and fail over + * This file is part of Crosroads 1.71, a load balancer and fail over * utility for TCP. Copyright (c) Karel Kubat, distributed under GPL. * Visit http://crossroads.e-tunity.com for information. *************************************************************************/ diff --git a/src/lib/backendavailable.c b/src/lib/backendavailable.c @@ -1,5 +1,5 @@ /************************************************************************* - * This file is part of Crosroads 1.70, a load balancer and fail over + * This file is part of Crosroads 1.71, a load balancer and fail over * utility for TCP. Copyright (c) Karel Kubat, distributed under GPL. * Visit http://crossroads.e-tunity.com for information. *************************************************************************/ diff --git a/src/lib/backendconnect.c b/src/lib/backendconnect.c @@ -1,5 +1,5 @@ /************************************************************************* - * This file is part of Crosroads 1.70, a load balancer and fail over + * This file is part of Crosroads 1.71, a load balancer and fail over * utility for TCP. Copyright (c) Karel Kubat, distributed under GPL. * Visit http://crossroads.e-tunity.com for information. *************************************************************************/ diff --git a/src/lib/backendcount.c b/src/lib/backendcount.c @@ -1,5 +1,5 @@ /************************************************************************* - * This file is part of Crosroads 1.70, a load balancer and fail over + * This file is part of Crosroads 1.71, a load balancer and fail over * utility for TCP. Copyright (c) Karel Kubat, distributed under GPL. * Visit http://crossroads.e-tunity.com for information. *************************************************************************/ diff --git a/src/lib/checkservice.c b/src/lib/checkservice.c @@ -1,5 +1,5 @@ /************************************************************************* - * This file is part of Crosroads 1.70, a load balancer and fail over + * This file is part of Crosroads 1.71, a load balancer and fail over * utility for TCP. Copyright (c) Karel Kubat, distributed under GPL. * Visit http://crossroads.e-tunity.com for information. *************************************************************************/ diff --git a/src/lib/choosebackend.c b/src/lib/choosebackend.c @@ -1,5 +1,5 @@ /************************************************************************* - * This file is part of Crosroads 1.70, a load balancer and fail over + * This file is part of Crosroads 1.71, a load balancer and fail over * utility for TCP. Copyright (c) Karel Kubat, distributed under GPL. * Visit http://crossroads.e-tunity.com for information. *************************************************************************/ diff --git a/src/lib/cmdconfigtest.c b/src/lib/cmdconfigtest.c @@ -1,5 +1,5 @@ /************************************************************************* - * This file is part of Crosroads 1.70, a load balancer and fail over + * This file is part of Crosroads 1.71, a load balancer and fail over * utility for TCP. Copyright (c) Karel Kubat, distributed under GPL. * Visit http://crossroads.e-tunity.com for information. *************************************************************************/ diff --git a/src/lib/cmdrestart.c b/src/lib/cmdrestart.c @@ -1,5 +1,5 @@ /************************************************************************* - * This file is part of Crosroads 1.70, a load balancer and fail over + * This file is part of Crosroads 1.71, a load balancer and fail over * utility for TCP. Copyright (c) Karel Kubat, distributed under GPL. * Visit http://crossroads.e-tunity.com for information. *************************************************************************/ diff --git a/src/lib/cmdservices.c b/src/lib/cmdservices.c @@ -1,5 +1,5 @@ /************************************************************************* - * This file is part of Crosroads 1.70, a load balancer and fail over + * This file is part of Crosroads 1.71, a load balancer and fail over * utility for TCP. Copyright (c) Karel Kubat, distributed under GPL. * Visit http://crossroads.e-tunity.com for information. *************************************************************************/ diff --git a/src/lib/cmdstart.c b/src/lib/cmdstart.c @@ -1,5 +1,5 @@ /************************************************************************* - * This file is part of Crosroads 1.70, a load balancer and fail over + * This file is part of Crosroads 1.71, a load balancer and fail over * utility for TCP. Copyright (c) Karel Kubat, distributed under GPL. * Visit http://crossroads.e-tunity.com for information. *************************************************************************/ diff --git a/src/lib/cmdstatus.c b/src/lib/cmdstatus.c @@ -1,5 +1,5 @@ /************************************************************************* - * This file is part of Crosroads 1.70, a load balancer and fail over + * This file is part of Crosroads 1.71, a load balancer and fail over * utility for TCP. Copyright (c) Karel Kubat, distributed under GPL. * Visit http://crossroads.e-tunity.com for information. *************************************************************************/ diff --git a/src/lib/cmdstop.c b/src/lib/cmdstop.c @@ -1,5 +1,5 @@ /************************************************************************* - * This file is part of Crosroads 1.70, a load balancer and fail over + * This file is part of Crosroads 1.71, a load balancer and fail over * utility for TCP. Copyright (c) Karel Kubat, distributed under GPL. * Visit http://crossroads.e-tunity.com for information. *************************************************************************/ diff --git a/src/lib/cmdtell.c b/src/lib/cmdtell.c @@ -1,5 +1,5 @@ /************************************************************************* - * This file is part of Crosroads 1.70, a load balancer and fail over + * This file is part of Crosroads 1.71, a load balancer and fail over * utility for TCP. Copyright (c) Karel Kubat, distributed under GPL. * Visit http://crossroads.e-tunity.com for information. *************************************************************************/ diff --git a/src/lib/configread.c b/src/lib/configread.c @@ -1,5 +1,5 @@ /************************************************************************* - * This file is part of Crosroads 1.70, a load balancer and fail over + * This file is part of Crosroads 1.71, a load balancer and fail over * utility for TCP. Copyright (c) Karel Kubat, distributed under GPL. * Visit http://crossroads.e-tunity.com for information. *************************************************************************/ diff --git a/src/lib/configwrite.c b/src/lib/configwrite.c @@ -1,5 +1,5 @@ /************************************************************************* - * This file is part of Crosroads 1.70, a load balancer and fail over + * This file is part of Crosroads 1.71, a load balancer and fail over * utility for TCP. Copyright (c) Karel Kubat, distributed under GPL. * Visit http://crossroads.e-tunity.com for information. *************************************************************************/ diff --git a/src/lib/copysockets.c b/src/lib/copysockets.c @@ -1,5 +1,5 @@ /************************************************************************* - * This file is part of Crosroads 1.70, a load balancer and fail over + * This file is part of Crosroads 1.71, a load balancer and fail over * utility for TCP. Copyright (c) Karel Kubat, distributed under GPL. * Visit http://crossroads.e-tunity.com for information. *************************************************************************/ diff --git a/src/lib/createcommandlinespace.c b/src/lib/createcommandlinespace.c @@ -1,5 +1,5 @@ /************************************************************************* - * This file is part of Crosroads 1.70, a load balancer and fail over + * This file is part of Crosroads 1.71, a load balancer and fail over * utility for TCP. Copyright (c) Karel Kubat, distributed under GPL. * Visit http://crossroads.e-tunity.com for information. *************************************************************************/ diff --git a/src/lib/data.c b/src/lib/data.c @@ -1,5 +1,5 @@ /************************************************************************* - * This file is part of Crosroads 1.70, a load balancer and fail over + * This file is part of Crosroads 1.71, a load balancer and fail over * utility for TCP. Copyright (c) Karel Kubat, distributed under GPL. * Visit http://crossroads.e-tunity.com for information. *************************************************************************/ diff --git a/src/lib/deallocreporter.c b/src/lib/deallocreporter.c @@ -1,5 +1,5 @@ /************************************************************************* - * This file is part of Crosroads 1.70, a load balancer and fail over + * This file is part of Crosroads 1.71, a load balancer and fail over * utility for TCP. Copyright (c) Karel Kubat, distributed under GPL. * Visit http://crossroads.e-tunity.com for information. *************************************************************************/ diff --git a/src/lib/decrclientcount.c b/src/lib/decrclientcount.c @@ -1,5 +1,5 @@ /************************************************************************* - * This file is part of Crosroads 1.70, a load balancer and fail over + * This file is part of Crosroads 1.71, a load balancer and fail over * utility for TCP. Copyright (c) Karel Kubat, distributed under GPL. * Visit http://crossroads.e-tunity.com for information. *************************************************************************/ diff --git a/src/lib/dns.c b/src/lib/dns.c @@ -1,5 +1,5 @@ /************************************************************************* - * This file is part of Crosroads 1.70, a load balancer and fail over + * This file is part of Crosroads 1.71, a load balancer and fail over * utility for TCP. Copyright (c) Karel Kubat, distributed under GPL. * Visit http://crossroads.e-tunity.com for information. *************************************************************************/ diff --git a/src/lib/error.c b/src/lib/error.c @@ -1,5 +1,5 @@ /************************************************************************* - * This file is part of Crosroads 1.70, a load balancer and fail over + * This file is part of Crosroads 1.71, a load balancer and fail over * utility for TCP. Copyright (c) Karel Kubat, distributed under GPL. * Visit http://crossroads.e-tunity.com for information. *************************************************************************/ diff --git a/src/lib/gmtstamp.c b/src/lib/gmtstamp.c @@ -1,5 +1,5 @@ /************************************************************************* - * This file is part of Crosroads 1.70, a load balancer and fail over + * This file is part of Crosroads 1.71, a load balancer and fail over * utility for TCP. Copyright (c) Karel Kubat, distributed under GPL. * Visit http://crossroads.e-tunity.com for information. *************************************************************************/ diff --git a/src/lib/hashpjw.c b/src/lib/hashpjw.c @@ -1,5 +1,5 @@ /************************************************************************* - * This file is part of Crosroads 1.70, a load balancer and fail over + * This file is part of Crosroads 1.71, a load balancer and fail over * utility for TCP. Copyright (c) Karel Kubat, distributed under GPL. * Visit http://crossroads.e-tunity.com for information. *************************************************************************/ diff --git a/src/lib/httpcopy.c b/src/lib/httpcopy.c @@ -1,5 +1,5 @@ /************************************************************************* - * This file is part of Crosroads 1.70, a load balancer and fail over + * This file is part of Crosroads 1.71, a load balancer and fail over * utility for TCP. Copyright (c) Karel Kubat, distributed under GPL. * Visit http://crossroads.e-tunity.com for information. *************************************************************************/ @@ -9,6 +9,14 @@ static void copy (int src, int dst, int dir, int tot) { int ncopied = 0, to_copy, bytes; unsigned char *buf; + msg ("Service %s: about to copy %d bytes from %s", + activeservice->name, tot, + dir == dir_client_to_server ? "client" : "server"); + msg ("Service %s: %d bytes in client buffer, %d in server buffer", + activeservice->name, + clbufmax ? clbufmax - clbufpos : 0, + srbufmax ? srbufmax - srbufpos : 0); + while (ncopied < tot) { /* Here's how many bytes we should shuttle to and fro. * This is the remaining count, or if the buffer is too small @@ -58,7 +66,7 @@ unsigned getchunk (int sock, int dest, CopyDirection dir) { } void http_copy (HttpHeader *h, int src, int dst, CopyDirection dir) { - unsigned char const *mode; + unsigned char const *mode, *cp; unsigned nbytes; msg ("Service %s: copying HTTP body from %s", @@ -99,16 +107,17 @@ void http_copy (HttpHeader *h, int src, int dst, CopyDirection dir) { dir == dir_client_to_server ? "client to server" : "server to client"); copy (src, dst, dir, nbytes); - } else { - msg ("Service %s: Starting copy-thru on body sending", + } else if (dir == dir_server_to_client) { + msg ("Service %s: Starting copy-thru on body sending towards client", activeservice->name); - if (srbufmax) { + if ( (cp = net_buffer (dir_server_to_client, &nbytes)) ) { msg ("Service %s: Flushing server-side buffer to client, %u bytes", - activeservice->name, srbufmax - srbufpos); - http_write (src, dir_server_to_client, - srbuf + srbufpos, srbufmax - srbufpos); - srbufmax = srbufpos = 0; + activeservice->name, nbytes); + net_write (dst, cp, nbytes, 0); } copysockets (src, dst); + } else { + msg ("Service %s: Not copying body (nothing to do)", + activeservice->name); } } diff --git a/src/lib/httperror.c b/src/lib/httperror.c @@ -1,5 +1,5 @@ /************************************************************************* - * This file is part of Crosroads 1.70, a load balancer and fail over + * This file is part of Crosroads 1.71, a load balancer and fail over * utility for TCP. Copyright (c) Karel Kubat, distributed under GPL. * Visit http://crossroads.e-tunity.com for information. *************************************************************************/ diff --git a/src/lib/httpheaderaddheader.c b/src/lib/httpheaderaddheader.c @@ -1,5 +1,5 @@ /************************************************************************* - * This file is part of Crosroads 1.70, a load balancer and fail over + * This file is part of Crosroads 1.71, a load balancer and fail over * utility for TCP. Copyright (c) Karel Kubat, distributed under GPL. * Visit http://crossroads.e-tunity.com for information. *************************************************************************/ diff --git a/src/lib/httpheaderappendheader.c b/src/lib/httpheaderappendheader.c @@ -1,5 +1,5 @@ /************************************************************************* - * This file is part of Crosroads 1.70, a load balancer and fail over + * This file is part of Crosroads 1.71, a load balancer and fail over * utility for TCP. Copyright (c) Karel Kubat, distributed under GPL. * Visit http://crossroads.e-tunity.com for information. *************************************************************************/ diff --git a/src/lib/httpheaderconnectiontype.c b/src/lib/httpheaderconnectiontype.c @@ -1,5 +1,5 @@ /************************************************************************* - * This file is part of Crosroads 1.70, a load balancer and fail over + * This file is part of Crosroads 1.71, a load balancer and fail over * utility for TCP. Copyright (c) Karel Kubat, distributed under GPL. * Visit http://crossroads.e-tunity.com for information. *************************************************************************/ diff --git a/src/lib/httpheaderfree.c b/src/lib/httpheaderfree.c @@ -1,5 +1,5 @@ /************************************************************************* - * This file is part of Crosroads 1.70, a load balancer and fail over + * This file is part of Crosroads 1.71, a load balancer and fail over * utility for TCP. Copyright (c) Karel Kubat, distributed under GPL. * Visit http://crossroads.e-tunity.com for information. *************************************************************************/ diff --git a/src/lib/httpheaderhascookie.c b/src/lib/httpheaderhascookie.c @@ -1,5 +1,5 @@ /************************************************************************* - * This file is part of Crosroads 1.70, a load balancer and fail over + * This file is part of Crosroads 1.71, a load balancer and fail over * utility for TCP. Copyright (c) Karel Kubat, distributed under GPL. * Visit http://crossroads.e-tunity.com for information. *************************************************************************/ diff --git a/src/lib/httpheaderhttpver.c b/src/lib/httpheaderhttpver.c @@ -1,5 +1,5 @@ /************************************************************************* - * This file is part of Crosroads 1.70, a load balancer and fail over + * This file is part of Crosroads 1.71, a load balancer and fail over * utility for TCP. Copyright (c) Karel Kubat, distributed under GPL. * Visit http://crossroads.e-tunity.com for information. *************************************************************************/ diff --git a/src/lib/httpheadernew.c b/src/lib/httpheadernew.c @@ -1,5 +1,5 @@ /************************************************************************* - * This file is part of Crosroads 1.70, a load balancer and fail over + * This file is part of Crosroads 1.71, a load balancer and fail over * utility for TCP. Copyright (c) Karel Kubat, distributed under GPL. * Visit http://crossroads.e-tunity.com for information. *************************************************************************/ diff --git a/src/lib/httpheaderread.c b/src/lib/httpheaderread.c @@ -1,5 +1,5 @@ /************************************************************************* - * This file is part of Crosroads 1.70, a load balancer and fail over + * This file is part of Crosroads 1.71, a load balancer and fail over * utility for TCP. Copyright (c) Karel Kubat, distributed under GPL. * Visit http://crossroads.e-tunity.com for information. *************************************************************************/ diff --git a/src/lib/httpheaderremoveheader.c b/src/lib/httpheaderremoveheader.c @@ -1,5 +1,5 @@ /************************************************************************* - * This file is part of Crosroads 1.70, a load balancer and fail over + * This file is part of Crosroads 1.71, a load balancer and fail over * utility for TCP. Copyright (c) Karel Kubat, distributed under GPL. * Visit http://crossroads.e-tunity.com for information. *************************************************************************/ diff --git a/src/lib/httpheadersetheader.c b/src/lib/httpheadersetheader.c @@ -1,5 +1,5 @@ /************************************************************************* - * This file is part of Crosroads 1.70, a load balancer and fail over + * This file is part of Crosroads 1.71, a load balancer and fail over * utility for TCP. Copyright (c) Karel Kubat, distributed under GPL. * Visit http://crossroads.e-tunity.com for information. *************************************************************************/ diff --git a/src/lib/httpheaderval.c b/src/lib/httpheaderval.c @@ -1,5 +1,5 @@ /************************************************************************* - * This file is part of Crosroads 1.70, a load balancer and fail over + * This file is part of Crosroads 1.71, a load balancer and fail over * utility for TCP. Copyright (c) Karel Kubat, distributed under GPL. * Visit http://crossroads.e-tunity.com for information. *************************************************************************/ diff --git a/src/lib/httpheaderwrite.c b/src/lib/httpheaderwrite.c @@ -1,5 +1,5 @@ /************************************************************************* - * This file is part of Crosroads 1.70, a load balancer and fail over + * This file is part of Crosroads 1.71, a load balancer and fail over * utility for TCP. Copyright (c) Karel Kubat, distributed under GPL. * Visit http://crossroads.e-tunity.com for information. *************************************************************************/ diff --git a/src/lib/httpinsertheader.c b/src/lib/httpinsertheader.c @@ -1,5 +1,5 @@ /************************************************************************* - * This file is part of Crosroads 1.70, a load balancer and fail over + * This file is part of Crosroads 1.71, a load balancer and fail over * utility for TCP. Copyright (c) Karel Kubat, distributed under GPL. * Visit http://crossroads.e-tunity.com for information. *************************************************************************/ diff --git a/src/lib/httpserve.c b/src/lib/httpserve.c @@ -1,5 +1,5 @@ /************************************************************************* - * This file is part of Crosroads 1.70, a load balancer and fail over + * This file is part of Crosroads 1.71, a load balancer and fail over * utility for TCP. Copyright (c) Karel Kubat, distributed under GPL. * Visit http://crossroads.e-tunity.com for information. *************************************************************************/ @@ -98,8 +98,6 @@ void http_serve (int clientsock) { /* Copy body from client to server */ http_copy (clientreq, clientsock, serversock, dir_client_to_server); - if ( (cp = net_buffer (dir_client_to_server, &size)) ) - net_write (serversock, cp, size, 0); /* Get server response. */ serverresp = http_header_new(); @@ -157,10 +155,8 @@ void http_serve (int clientsock) { /* Send server headers to the client. */ http_header_write (serverresp, clientsock, dir_server_to_client); - /* Copy body from server to cliet and flush network buffers if any */ + /* Copy body from server to client and flush network buffers if any */ http_copy (serverresp, serversock, clientsock, dir_server_to_client); - if ( (cp = net_buffer (dir_server_to_client, &size)) ) - net_write (clientsock, cp, size, 0); /* Free up info from this request/response chat. */ http_header_free (clientreq); diff --git a/src/lib/httpserversocket.c b/src/lib/httpserversocket.c @@ -1,5 +1,5 @@ /************************************************************************* - * This file is part of Crosroads 1.70, a load balancer and fail over + * This file is part of Crosroads 1.71, a load balancer and fail over * utility for TCP. Copyright (c) Karel Kubat, distributed under GPL. * Visit http://crossroads.e-tunity.com for information. *************************************************************************/ diff --git a/src/lib/httpwrite.c b/src/lib/httpwrite.c @@ -1,5 +1,5 @@ /************************************************************************* - * This file is part of Crosroads 1.70, a load balancer and fail over + * This file is part of Crosroads 1.71, a load balancer and fail over * utility for TCP. Copyright (c) Karel Kubat, distributed under GPL. * Visit http://crossroads.e-tunity.com for information. *************************************************************************/ diff --git a/src/lib/incrclientcount.c b/src/lib/incrclientcount.c @@ -1,5 +1,5 @@ /************************************************************************* - * This file is part of Crosroads 1.70, a load balancer and fail over + * This file is part of Crosroads 1.71, a load balancer and fail over * utility for TCP. Copyright (c) Karel Kubat, distributed under GPL. * Visit http://crossroads.e-tunity.com for information. *************************************************************************/ diff --git a/src/lib/initsockaddr.c b/src/lib/initsockaddr.c @@ -1,5 +1,5 @@ /************************************************************************* - * This file is part of Crosroads 1.70, a load balancer and fail over + * This file is part of Crosroads 1.71, a load balancer and fail over * utility for TCP. Copyright (c) Karel Kubat, distributed under GPL. * Visit http://crossroads.e-tunity.com for information. *************************************************************************/ diff --git a/src/lib/interrupt.c b/src/lib/interrupt.c @@ -1,5 +1,5 @@ /************************************************************************* - * This file is part of Crosroads 1.70, a load balancer and fail over + * This file is part of Crosroads 1.71, a load balancer and fail over * utility for TCP. Copyright (c) Karel Kubat, distributed under GPL. * Visit http://crossroads.e-tunity.com for information. *************************************************************************/ diff --git a/src/lib/ipfaddallow.c b/src/lib/ipfaddallow.c @@ -1,5 +1,5 @@ /************************************************************************* - * This file is part of Crosroads 1.70, a load balancer and fail over + * This file is part of Crosroads 1.71, a load balancer and fail over * utility for TCP. Copyright (c) Karel Kubat, distributed under GPL. * Visit http://crossroads.e-tunity.com for information. *************************************************************************/ diff --git a/src/lib/ipfadddeny.c b/src/lib/ipfadddeny.c @@ -1,5 +1,5 @@ /************************************************************************* - * This file is part of Crosroads 1.70, a load balancer and fail over + * This file is part of Crosroads 1.71, a load balancer and fail over * utility for TCP. Copyright (c) Karel Kubat, distributed under GPL. * Visit http://crossroads.e-tunity.com for information. *************************************************************************/ diff --git a/src/lib/ipfallowed.c b/src/lib/ipfallowed.c @@ -1,5 +1,5 @@ /************************************************************************* - * This file is part of Crosroads 1.70, a load balancer and fail over + * This file is part of Crosroads 1.71, a load balancer and fail over * utility for TCP. Copyright (c) Karel Kubat, distributed under GPL. * Visit http://crossroads.e-tunity.com for information. *************************************************************************/ diff --git a/src/lib/ipfdenied.c b/src/lib/ipfdenied.c @@ -1,5 +1,5 @@ /************************************************************************* - * This file is part of Crosroads 1.70, a load balancer and fail over + * This file is part of Crosroads 1.71, a load balancer and fail over * utility for TCP. Copyright (c) Karel Kubat, distributed under GPL. * Visit http://crossroads.e-tunity.com for information. *************************************************************************/ diff --git a/src/lib/ipfloadfile.c b/src/lib/ipfloadfile.c @@ -1,5 +1,5 @@ /************************************************************************* - * This file is part of Crosroads 1.70, a load balancer and fail over + * This file is part of Crosroads 1.71, a load balancer and fail over * utility for TCP. Copyright (c) Karel Kubat, distributed under GPL. * Visit http://crossroads.e-tunity.com for information. *************************************************************************/ diff --git a/src/lib/ipfmatch.c b/src/lib/ipfmatch.c @@ -1,5 +1,5 @@ /************************************************************************* - * This file is part of Crosroads 1.70, a load balancer and fail over + * This file is part of Crosroads 1.71, a load balancer and fail over * utility for TCP. Copyright (c) Karel Kubat, distributed under GPL. * Visit http://crossroads.e-tunity.com for information. *************************************************************************/ diff --git a/src/lib/ipfparse.c b/src/lib/ipfparse.c @@ -1,5 +1,5 @@ /************************************************************************* - * This file is part of Crosroads 1.70, a load balancer and fail over + * This file is part of Crosroads 1.71, a load balancer and fail over * utility for TCP. Copyright (c) Karel Kubat, distributed under GPL. * Visit http://crossroads.e-tunity.com for information. *************************************************************************/ diff --git a/src/lib/ishexdigit.c b/src/lib/ishexdigit.c @@ -1,5 +1,5 @@ /************************************************************************* - * This file is part of Crosroads 1.70, a load balancer and fail over + * This file is part of Crosroads 1.71, a load balancer and fail over * utility for TCP. Copyright (c) Karel Kubat, distributed under GPL. * Visit http://crossroads.e-tunity.com for information. *************************************************************************/ diff --git a/src/lib/isspace.c b/src/lib/isspace.c @@ -1,5 +1,5 @@ /************************************************************************* - * This file is part of Crosroads 1.70, a load balancer and fail over + * This file is part of Crosroads 1.71, a load balancer and fail over * utility for TCP. Copyright (c) Karel Kubat, distributed under GPL. * Visit http://crossroads.e-tunity.com for information. *************************************************************************/ diff --git a/src/lib/lexer.c b/src/lib/lexer.c @@ -1,5 +1,5 @@ /************************************************************************* - * This file is part of Crosroads 1.70, a load balancer and fail over + * This file is part of Crosroads 1.71, a load balancer and fail over * utility for TCP. Copyright (c) Karel Kubat, distributed under GPL. * Visit http://crossroads.e-tunity.com for information. *************************************************************************/ diff --git a/src/lib/lockreporter.c b/src/lib/lockreporter.c @@ -1,5 +1,5 @@ /************************************************************************* - * This file is part of Crosroads 1.70, a load balancer and fail over + * This file is part of Crosroads 1.71, a load balancer and fail over * utility for TCP. Copyright (c) Karel Kubat, distributed under GPL. * Visit http://crossroads.e-tunity.com for information. *************************************************************************/ diff --git a/src/lib/logactivityany.c b/src/lib/logactivityany.c @@ -1,5 +1,5 @@ /************************************************************************* - * This file is part of Crosroads 1.70, a load balancer and fail over + * This file is part of Crosroads 1.71, a load balancer and fail over * utility for TCP. Copyright (c) Karel Kubat, distributed under GPL. * Visit http://crossroads.e-tunity.com for information. *************************************************************************/ diff --git a/src/lib/logactivitycontinuation.c b/src/lib/logactivitycontinuation.c @@ -1,5 +1,5 @@ /************************************************************************* - * This file is part of Crosroads 1.70, a load balancer and fail over + * This file is part of Crosroads 1.71, a load balancer and fail over * utility for TCP. Copyright (c) Karel Kubat, distributed under GPL. * Visit http://crossroads.e-tunity.com for information. *************************************************************************/ diff --git a/src/lib/logactivityend.c b/src/lib/logactivityend.c @@ -1,5 +1,5 @@ /************************************************************************* - * This file is part of Crosroads 1.70, a load balancer and fail over + * This file is part of Crosroads 1.71, a load balancer and fail over * utility for TCP. Copyright (c) Karel Kubat, distributed under GPL. * Visit http://crossroads.e-tunity.com for information. *************************************************************************/ diff --git a/src/lib/logactivitystart.c b/src/lib/logactivitystart.c @@ -1,5 +1,5 @@ /************************************************************************* - * This file is part of Crosroads 1.70, a load balancer and fail over + * This file is part of Crosroads 1.71, a load balancer and fail over * utility for TCP. Copyright (c) Karel Kubat, distributed under GPL. * Visit http://crossroads.e-tunity.com for information. *************************************************************************/ diff --git a/src/lib/makesocket.c b/src/lib/makesocket.c @@ -1,5 +1,5 @@ /************************************************************************* - * This file is part of Crosroads 1.70, a load balancer and fail over + * This file is part of Crosroads 1.71, a load balancer and fail over * utility for TCP. Copyright (c) Karel Kubat, distributed under GPL. * Visit http://crossroads.e-tunity.com for information. *************************************************************************/ diff --git a/src/lib/markactivity.c b/src/lib/markactivity.c @@ -1,5 +1,5 @@ /************************************************************************* - * This file is part of Crosroads 1.70, a load balancer and fail over + * This file is part of Crosroads 1.71, a load balancer and fail over * utility for TCP. Copyright (c) Karel Kubat, distributed under GPL. * Visit http://crossroads.e-tunity.com for information. *************************************************************************/ diff --git a/src/lib/msg.c b/src/lib/msg.c @@ -1,5 +1,5 @@ /************************************************************************* - * This file is part of Crosroads 1.70, a load balancer and fail over + * This file is part of Crosroads 1.71, a load balancer and fail over * utility for TCP. Copyright (c) Karel Kubat, distributed under GPL. * Visit http://crossroads.e-tunity.com for information. *************************************************************************/ diff --git a/src/lib/msgdumpbuf.c b/src/lib/msgdumpbuf.c @@ -1,5 +1,5 @@ /************************************************************************* - * This file is part of Crosroads 1.70, a load balancer and fail over + * This file is part of Crosroads 1.71, a load balancer and fail over * utility for TCP. Copyright (c) Karel Kubat, distributed under GPL. * Visit http://crossroads.e-tunity.com for information. *************************************************************************/ diff --git a/src/lib/netallocbufs.c b/src/lib/netallocbufs.c @@ -1,5 +1,5 @@ /************************************************************************* - * This file is part of Crosroads 1.70, a load balancer and fail over + * This file is part of Crosroads 1.71, a load balancer and fail over * utility for TCP. Copyright (c) Karel Kubat, distributed under GPL. * Visit http://crossroads.e-tunity.com for information. *************************************************************************/ diff --git a/src/lib/netbuffer.c b/src/lib/netbuffer.c @@ -1,12 +1,12 @@ /************************************************************************* - * This file is part of Crosroads 1.70, a load balancer and fail over + * This file is part of Crosroads 1.71, a load balancer and fail over * utility for TCP. Copyright (c) Karel Kubat, distributed under GPL. * Visit http://crossroads.e-tunity.com for information. *************************************************************************/ #include "../crossroads.h" -unsigned char *net_buffer (CopyDirection dir, int *sz) { +unsigned char *net_buffer (CopyDirection dir, unsigned *sz) { if (dir == dir_server_to_client) { if (srbufmax) { *sz = srbufmax - srbufpos; diff --git a/src/lib/netbufread.c b/src/lib/netbufread.c @@ -1,5 +1,5 @@ /************************************************************************* - * This file is part of Crosroads 1.70, a load balancer and fail over + * This file is part of Crosroads 1.71, a load balancer and fail over * utility for TCP. Copyright (c) Karel Kubat, distributed under GPL. * Visit http://crossroads.e-tunity.com for information. *************************************************************************/ diff --git a/src/lib/netcopy.c b/src/lib/netcopy.c @@ -1,5 +1,5 @@ /************************************************************************* - * This file is part of Crosroads 1.70, a load balancer and fail over + * This file is part of Crosroads 1.71, a load balancer and fail over * utility for TCP. Copyright (c) Karel Kubat, distributed under GPL. * Visit http://crossroads.e-tunity.com for information. *************************************************************************/ diff --git a/src/lib/netread.c b/src/lib/netread.c @@ -1,5 +1,5 @@ /************************************************************************* - * This file is part of Crosroads 1.70, a load balancer and fail over + * This file is part of Crosroads 1.71, a load balancer and fail over * utility for TCP. Copyright (c) Karel Kubat, distributed under GPL. * Visit http://crossroads.e-tunity.com for information. *************************************************************************/ diff --git a/src/lib/netwrite.c b/src/lib/netwrite.c @@ -1,5 +1,5 @@ /************************************************************************* - * This file is part of Crosroads 1.70, a load balancer and fail over + * This file is part of Crosroads 1.71, a load balancer and fail over * utility for TCP. Copyright (c) Karel Kubat, distributed under GPL. * Visit http://crossroads.e-tunity.com for information. *************************************************************************/ diff --git a/src/lib/parser.c b/src/lib/parser.c @@ -1,70 +1,71 @@ /************************************************************************* - * This file is part of Crosroads 1.70, a load balancer and fail over + * This file is part of Crosroads 1.71, a load balancer and fail over * utility for TCP. Copyright (c) Karel Kubat, distributed under GPL. * Visit http://crossroads.e-tunity.com for information. *************************************************************************/ -/* A Bison parser, made from parser.y - by GNU bison 1.35. */ + +/* A Bison parser, made from parser.y + by GNU Bison version 1.28 */ #define YYBISON 1 /* Identify Bison output. */ -# define IDENTIFIER 257 -# define NUMBER 258 -# define STRING 259 -# define SERVICE 260 -# define PORT 261 -# define VERBOSITY 262 -# define MAXCONNECTIONS 263 -# define TYPE 264 -# define ANY 265 -# define HTTP 266 -# define BACKEND 267 -# define SERVER 268 -# define BINDTO 269 -# define CONNECTIONTIMEOUT 270 -# define ON 271 -# define OFF 272 -# define DISPATCHMODE 273 -# define ROUNDROBIN 274 -# define RANDOM 275 -# define BYDURATION 276 -# define BYSIZE 277 -# define BYCONNECTIONS 278 -# define BYORDER 279 -# define BYCLIENTIP 280 -# define OVER 281 -# define DECAY 282 -# define REVIVINGINTERVAL 283 -# define CHECKINTERVAL 284 -# define RETRIES 285 -# define SHMKEY 286 -# define WEIGHT 287 -# define ONSTART 288 -# define ONFAIL 289 -# define BACKLOG 290 -# define THROUGHPUTLOG 291 -# define TRAFFICLOG 292 -# define STICKYCOOKIE 293 -# define ADDCLIENTHEADER 294 -# define SETCLIENTHEADER 295 -# define APPENDCLIENTHEADER 296 -# define ADDSERVERHEADER 297 -# define SETSERVERHEADER 298 -# define APPENDSERVERHEADER 299 -# define ALLOWFROM 300 -# define DENYFROM 301 -# define ALLOWFILE 302 -# define DENYFILE 303 -# define EXTERNALHANDLER 304 -# define USERACCOUNT 305 -# define ONEND 306 -# define HEADERINSPECTION 307 -# define DEEP 308 -# define SHALLOW 309 -# define STATE 310 -# define AVAILABLE 311 -# define UNAVAILABLE 312 -# define DOWN 313 +#define IDENTIFIER 257 +#define NUMBER 258 +#define STRING 259 +#define SERVICE 260 +#define PORT 261 +#define VERBOSITY 262 +#define MAXCONNECTIONS 263 +#define TYPE 264 +#define ANY 265 +#define HTTP 266 +#define BACKEND 267 +#define SERVER 268 +#define BINDTO 269 +#define CONNECTIONTIMEOUT 270 +#define ON 271 +#define OFF 272 +#define DISPATCHMODE 273 +#define ROUNDROBIN 274 +#define RANDOM 275 +#define BYDURATION 276 +#define BYSIZE 277 +#define BYCONNECTIONS 278 +#define BYORDER 279 +#define BYCLIENTIP 280 +#define OVER 281 +#define DECAY 282 +#define REVIVINGINTERVAL 283 +#define CHECKINTERVAL 284 +#define RETRIES 285 +#define SHMKEY 286 +#define WEIGHT 287 +#define ONSTART 288 +#define ONFAIL 289 +#define BACKLOG 290 +#define THROUGHPUTLOG 291 +#define TRAFFICLOG 292 +#define STICKYCOOKIE 293 +#define ADDCLIENTHEADER 294 +#define SETCLIENTHEADER 295 +#define APPENDCLIENTHEADER 296 +#define ADDSERVERHEADER 297 +#define SETSERVERHEADER 298 +#define APPENDSERVERHEADER 299 +#define ALLOWFROM 300 +#define DENYFROM 301 +#define ALLOWFILE 302 +#define DENYFILE 303 +#define EXTERNALHANDLER 304 +#define USERACCOUNT 305 +#define ONEND 306 +#define HEADERINSPECTION 307 +#define DEEP 308 +#define SHALLOW 309 +#define STATE 310 +#define AVAILABLE 311 +#define UNAVAILABLE 312 +#define DOWN 313 #line 3 "parser.y" @@ -197,11 +198,14 @@ static void setuseraccount (char *username) { } #ifndef YYSTYPE -# define YYSTYPE int -# define YYSTYPE_IS_TRIVIAL 1 +#define YYSTYPE int +#endif +#include <stdio.h> + +#ifndef __cplusplus +#ifndef __STDC__ +#define const #endif -#ifndef YYDEBUG -# define YYDEBUG 0 #endif @@ -210,363 +214,328 @@ static void setuseraccount (char *username) { #define YYFLAG -32768 #define YYNTBASE 63 -/* YYTRANSLATE(YYLEX) -- Bison token number corresponding to YYLEX. */ #define YYTRANSLATE(x) ((unsigned)(x) <= 313 ? yytranslate[x] : 154) -/* YYTRANSLATE[YYLEX] -- Bison token number corresponding to YYLEX. */ -static const char yytranslate[] = -{ - 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 62, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 60, 2, 61, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 1, 3, 4, 5, - 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, - 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, - 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, - 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, - 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, - 56, 57, 58, 59 +static const char yytranslate[] = { 0, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 62, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 60, 2, 61, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 1, 3, 4, 5, 6, + 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, + 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, + 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, + 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, + 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, + 57, 58, 59 }; -#if YYDEBUG -static const short yyprhs[] = -{ - 0, 0, 3, 5, 11, 14, 17, 20, 22, 25, - 27, 29, 31, 33, 35, 37, 39, 41, 43, 45, - 47, 49, 51, 53, 55, 57, 59, 61, 65, 69, - 72, 75, 78, 83, 85, 87, 92, 94, 96, 97, - 100, 103, 105, 108, 110, 112, 114, 116, 118, 120, - 122, 124, 128, 131, 136, 141, 143, 144, 147, 151, - 155, 159, 163, 167, 170, 172, 174, 178, 181, 183, - 185, 189, 193, 197, 201, 204, 210, 213, 216, 218, - 221, 223, 225, 227, 229, 231, 233, 235, 237, 239, - 241, 243, 245, 247, 249, 251, 253, 255, 257, 259, - 261, 266, 270, 274, 276, 280, 284, 287, 289, 291, - 293, 297, 301, 305, 309, 313, 316, 319, 323, 326, - 330, 334, 338, 342, 346, 350, 353, 354, 355, 356, - 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, - 367, 368, 369, 370, 371, 372 +#if YYDEBUG != 0 +static const short yyprhs[] = { 0, + 0, 3, 5, 11, 14, 17, 20, 22, 25, 27, + 29, 31, 33, 35, 37, 39, 41, 43, 45, 47, + 49, 51, 53, 55, 57, 59, 61, 65, 69, 72, + 75, 78, 83, 85, 87, 92, 94, 96, 97, 100, + 103, 105, 108, 110, 112, 114, 116, 118, 120, 122, + 124, 128, 131, 136, 141, 143, 144, 147, 151, 155, + 159, 163, 167, 170, 172, 174, 178, 181, 183, 185, + 189, 193, 197, 201, 204, 210, 213, 216, 218, 221, + 223, 225, 227, 229, 231, 233, 235, 237, 239, 241, + 243, 245, 247, 249, 251, 253, 255, 257, 259, 261, + 266, 270, 274, 276, 280, 284, 287, 289, 291, 293, + 297, 301, 305, 309, 313, 316, 319, 323, 326, 330, + 334, 338, 342, 346, 350, 353, 354, 355, 356, 357, + 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, + 368, 369, 370, 371, 372 }; -static const short yyrhs[] = -{ - 63, 64, 0, 64, 0, 65, 66, 60, 67, 61, - 0, 138, 6, 0, 146, 3, 0, 67, 68, 0, - 68, 0, 140, 69, 0, 70, 0, 71, 0, 75, - 0, 77, 0, 86, 0, 87, 0, 90, 0, 91, - 0, 92, 0, 93, 0, 94, 0, 97, 0, 100, - 0, 102, 0, 101, 0, 103, 0, 84, 0, 105, - 0, 7, 73, 74, 0, 15, 72, 74, 0, 148, - 5, 0, 136, 4, 0, 141, 62, 0, 8, 142, - 76, 74, 0, 17, 0, 18, 0, 19, 82, 78, - 74, 0, 79, 0, 81, 0, 0, 27, 80, 0, - 136, 4, 0, 123, 0, 143, 83, 0, 20, 0, - 21, 0, 22, 0, 23, 0, 25, 0, 24, 0, - 50, 0, 26, 0, 51, 85, 74, 0, 152, 5, - 0, 29, 73, 88, 74, 0, 30, 73, 88, 74, - 0, 89, 0, 0, 50, 123, 0, 36, 73, 74, - 0, 32, 73, 74, 0, 16, 73, 74, 0, 9, - 73, 74, 0, 10, 95, 74, 0, 149, 96, 0, - 11, 0, 12, 0, 53, 98, 74, 0, 150, 99, - 0, 54, 0, 55, 0, 46, 104, 74, 0, 47, - 104, 74, 0, 48, 124, 74, 0, 49, 124, 74, - 0, 151, 5, 0, 13, 106, 60, 107, 61, 0, - 147, 3, 0, 107, 108, 0, 108, 0, 139, 109, - 0, 110, 0, 70, 0, 75, 0, 118, 0, 120, - 0, 119, 0, 121, 0, 122, 0, 111, 0, 112, - 0, 93, 0, 125, 0, 127, 0, 128, 0, 129, - 0, 130, 0, 131, 0, 132, 0, 114, 0, 115, - 0, 14, 137, 113, 74, 0, 33, 73, 74, 0, - 28, 73, 74, 0, 5, 0, 31, 73, 74, 0, - 56, 116, 74, 0, 153, 117, 0, 57, 0, 58, - 0, 59, 0, 34, 123, 74, 0, 35, 123, 74, - 0, 52, 123, 74, 0, 38, 124, 74, 0, 37, - 124, 74, 0, 144, 5, 0, 145, 5, 0, 39, - 126, 74, 0, 135, 5, 0, 40, 133, 74, 0, - 41, 133, 74, 0, 42, 133, 74, 0, 43, 133, - 74, 0, 44, 133, 74, 0, 45, 133, 74, 0, - 134, 5, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0 + +static const short yyrhs[] = { 63, + 64, 0, 64, 0, 65, 66, 60, 67, 61, 0, + 138, 6, 0, 146, 3, 0, 67, 68, 0, 68, + 0, 140, 69, 0, 70, 0, 71, 0, 75, 0, + 77, 0, 86, 0, 87, 0, 90, 0, 91, 0, + 92, 0, 93, 0, 94, 0, 97, 0, 100, 0, + 102, 0, 101, 0, 103, 0, 84, 0, 105, 0, + 7, 73, 74, 0, 15, 72, 74, 0, 148, 5, + 0, 136, 4, 0, 141, 62, 0, 8, 142, 76, + 74, 0, 17, 0, 18, 0, 19, 82, 78, 74, + 0, 79, 0, 81, 0, 0, 27, 80, 0, 136, + 4, 0, 123, 0, 143, 83, 0, 20, 0, 21, + 0, 22, 0, 23, 0, 25, 0, 24, 0, 50, + 0, 26, 0, 51, 85, 74, 0, 152, 5, 0, + 29, 73, 88, 74, 0, 30, 73, 88, 74, 0, + 89, 0, 0, 50, 123, 0, 36, 73, 74, 0, + 32, 73, 74, 0, 16, 73, 74, 0, 9, 73, + 74, 0, 10, 95, 74, 0, 149, 96, 0, 11, + 0, 12, 0, 53, 98, 74, 0, 150, 99, 0, + 54, 0, 55, 0, 46, 104, 74, 0, 47, 104, + 74, 0, 48, 124, 74, 0, 49, 124, 74, 0, + 151, 5, 0, 13, 106, 60, 107, 61, 0, 147, + 3, 0, 107, 108, 0, 108, 0, 139, 109, 0, + 110, 0, 70, 0, 75, 0, 118, 0, 120, 0, + 119, 0, 121, 0, 122, 0, 111, 0, 112, 0, + 93, 0, 125, 0, 127, 0, 128, 0, 129, 0, + 130, 0, 131, 0, 132, 0, 114, 0, 115, 0, + 14, 137, 113, 74, 0, 33, 73, 74, 0, 28, + 73, 74, 0, 5, 0, 31, 73, 74, 0, 56, + 116, 74, 0, 153, 117, 0, 57, 0, 58, 0, + 59, 0, 34, 123, 74, 0, 35, 123, 74, 0, + 52, 123, 74, 0, 38, 124, 74, 0, 37, 124, + 74, 0, 144, 5, 0, 145, 5, 0, 39, 126, + 74, 0, 135, 5, 0, 40, 133, 74, 0, 41, + 133, 74, 0, 42, 133, 74, 0, 43, 133, 74, + 0, 44, 133, 74, 0, 45, 133, 74, 0, 134, + 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0 }; #endif -#if YYDEBUG -/* YYRLINE[YYN] -- source line where rule number YYN was defined. */ -static const short yyrline[] = -{ - 0, 158, 161, 165, 189, 194, 205, 208, 212, 217, - 223, 229, 235, 245, 253, 260, 266, 272, 278, 284, - 290, 296, 302, 308, 314, 320, 327, 502, 514, 526, - 535, 542, 547, 560, 564, 570, 579, 581, 583, 587, - 604, 611, 621, 630, 634, 638, 642, 646, 650, 654, - 658, 664, 676, 685, 703, 721, 723, 727, 736, 748, - 760, 772, 784, 796, 801, 805, 811, 823, 828, 832, - 838, 850, 862, 874, 886, 895, 905, 917, 925, 931, - 938, 943, 948, 953, 958, 963, 968, 973, 978, 983, - 988, 993, 998, 1003, 1008, 1013, 1018, 1023, 1028, 1033, - 1040, 1053, 1065, 1077, 1083, 1095, 1107, 1112, 1116, 1120, - 1126, 1138, 1150, 1162, 1174, 1186, 1195, 1204, 1216, 1225, - 1237, 1249, 1261, 1273, 1285, 1297, 1306, 1311, 1316, 1321, - 1326, 1331, 1336, 1341, 1346, 1351, 1356, 1361, 1366, 1371, - 1376, 1381, 1386, 1391, 1396, 1401 +#if YYDEBUG != 0 +static const short yyrline[] = { 0, + 158, 161, 165, 189, 194, 205, 208, 212, 217, 223, + 229, 235, 245, 253, 260, 266, 272, 278, 284, 290, + 296, 302, 308, 314, 320, 327, 502, 514, 526, 535, + 542, 547, 560, 564, 570, 579, 581, 583, 589, 606, + 613, 623, 632, 636, 640, 644, 648, 652, 656, 660, + 666, 678, 687, 705, 723, 725, 731, 740, 752, 764, + 776, 788, 800, 805, 809, 815, 827, 832, 836, 842, + 854, 866, 878, 890, 899, 909, 921, 929, 935, 942, + 947, 952, 957, 962, 967, 972, 977, 982, 987, 992, + 997, 1002, 1007, 1012, 1017, 1022, 1027, 1032, 1037, 1044, + 1057, 1069, 1081, 1087, 1099, 1111, 1116, 1120, 1124, 1130, + 1142, 1154, 1166, 1178, 1190, 1199, 1208, 1220, 1229, 1241, + 1253, 1265, 1277, 1289, 1301, 1310, 1315, 1320, 1325, 1330, + 1335, 1340, 1345, 1350, 1355, 1360, 1365, 1370, 1375, 1380, + 1385, 1390, 1395, 1400, 1405 }; #endif -#if (YYDEBUG) || defined YYERROR_VERBOSE - -/* YYTNAME[TOKEN_NUM] -- String name of the token TOKEN_NUM. */ -static const char *const yytname[] = -{ - "$", "error", "$undefined.", "IDENTIFIER", "NUMBER", "STRING", "SERVICE", - "PORT", "VERBOSITY", "MAXCONNECTIONS", "TYPE", "ANY", "HTTP", "BACKEND", - "SERVER", "BINDTO", "CONNECTIONTIMEOUT", "ON", "OFF", "DISPATCHMODE", - "ROUNDROBIN", "RANDOM", "BYDURATION", "BYSIZE", "BYCONNECTIONS", - "BYORDER", "BYCLIENTIP", "OVER", "DECAY", "REVIVINGINTERVAL", - "CHECKINTERVAL", "RETRIES", "SHMKEY", "WEIGHT", "ONSTART", "ONFAIL", - "BACKLOG", "THROUGHPUTLOG", "TRAFFICLOG", "STICKYCOOKIE", - "ADDCLIENTHEADER", "SETCLIENTHEADER", "APPENDCLIENTHEADER", - "ADDSERVERHEADER", "SETSERVERHEADER", "APPENDSERVERHEADER", "ALLOWFROM", - "DENYFROM", "ALLOWFILE", "DENYFILE", "EXTERNALHANDLER", "USERACCOUNT", - "ONEND", "HEADERINSPECTION", "DEEP", "SHALLOW", "STATE", "AVAILABLE", - "UNAVAILABLE", "DOWN", "'{'", "'}'", "';'", "input", "element", - "service", "servicename", "servicestatements", "servicestatement", - "servicebody", "portstatement", "bindstatement", "ipaddress", "number", - "semicol", "verbositystatement", "onoff", "dispatchmodestatement", - "dispatchtail", "dispatchover", "overnumber", "dispatchext", - "dispatchmethod", "dispatchmethodspec", "useraccountstatement", - "useraccount", "revivingintervalstatement", "checkintervalstatement", - "opt_externalhandler", "externalhandler", "backlogstatement", - "shmkeystatement", "connectiontimeoutstatement", - "maxconnectionsstatement", "typestatement", "typespec", "typespecifier", - "inspectionstatement", "shallowdeepspec", "shallowdeepspecifier", - "allowfromstatement", "denyfromstatement", "allowfilestatement", - "denyfilestatement", "ipfilters", "backendblock", "backendname", - "backenddefinitions", "backenddefinition", "backendstatement", - "serverstatement", "weightstatement", "decaystatement", "serveraddress", - "retriesstatement", "initialstatestatement", "statedef", "somestate", - "onstartstatement", "onfailstatement", "onendstatement", - "dumptrafficstatement", "throughputstatement", "commandline", - "filename", "stickycookiestatement", "cookiespecifier", - "addclientheaderstatement", "setclientheaderstatement", - "appendclientheaderstatement", "addserverheaderstatement", - "setserverheaderstatement", "appendserverheaderstatement", - "headerstring", "headerstring_expected", "cookie_expected", - "number_expected", "serveraddress_expected", "service_expected", - "backendstatement_expected", "servicebody_expected", "semicol_expected", - "onoff_expected", "dispatchmethod_expected", "commandline_expected", - "filename_expected", "servicename_expected", "backendname_expected", - "ipaddress_expected", "type_expected", "shallowdeep_expected", - "ipfilters_expected", "useraccount_expected", "statedef_expected", 0 +#if YYDEBUG != 0 || defined (YYERROR_VERBOSE) + +static const char * const yytname[] = { "$","error","$undefined.","IDENTIFIER", +"NUMBER","STRING","SERVICE","PORT","VERBOSITY","MAXCONNECTIONS","TYPE","ANY", +"HTTP","BACKEND","SERVER","BINDTO","CONNECTIONTIMEOUT","ON","OFF","DISPATCHMODE", +"ROUNDROBIN","RANDOM","BYDURATION","BYSIZE","BYCONNECTIONS","BYORDER","BYCLIENTIP", +"OVER","DECAY","REVIVINGINTERVAL","CHECKINTERVAL","RETRIES","SHMKEY","WEIGHT", +"ONSTART","ONFAIL","BACKLOG","THROUGHPUTLOG","TRAFFICLOG","STICKYCOOKIE","ADDCLIENTHEADER", +"SETCLIENTHEADER","APPENDCLIENTHEADER","ADDSERVERHEADER","SETSERVERHEADER","APPENDSERVERHEADER", +"ALLOWFROM","DENYFROM","ALLOWFILE","DENYFILE","EXTERNALHANDLER","USERACCOUNT", +"ONEND","HEADERINSPECTION","DEEP","SHALLOW","STATE","AVAILABLE","UNAVAILABLE", +"DOWN","'{'","'}'","';'","input","element","service","servicename","servicestatements", +"servicestatement","servicebody","portstatement","bindstatement","ipaddress", +"number","semicol","verbositystatement","onoff","dispatchmodestatement","dispatchtail", +"dispatchover","overnumber","dispatchext","dispatchmethod","dispatchmethodspec", +"useraccountstatement","useraccount","revivingintervalstatement","checkintervalstatement", +"opt_externalhandler","externalhandler","backlogstatement","shmkeystatement", +"connectiontimeoutstatement","maxconnectionsstatement","typestatement","typespec", +"typespecifier","inspectionstatement","shallowdeepspec","shallowdeepspecifier", +"allowfromstatement","denyfromstatement","allowfilestatement","denyfilestatement", +"ipfilters","backendblock","backendname","backenddefinitions","backenddefinition", +"backendstatement","serverstatement","weightstatement","decaystatement","serveraddress", +"retriesstatement","initialstatestatement","statedef","somestate","onstartstatement", +"onfailstatement","onendstatement","dumptrafficstatement","throughputstatement", +"commandline","filename","stickycookiestatement","cookiespecifier","addclientheaderstatement", +"setclientheaderstatement","appendclientheaderstatement","addserverheaderstatement", +"setserverheaderstatement","appendserverheaderstatement","headerstring","headerstring_expected", +"cookie_expected","number_expected","serveraddress_expected","service_expected", +"backendstatement_expected","servicebody_expected","semicol_expected","onoff_expected", +"dispatchmethod_expected","commandline_expected","filename_expected","servicename_expected", +"backendname_expected","ipaddress_expected","type_expected","shallowdeep_expected", +"ipfilters_expected","useraccount_expected","statedef_expected", NULL }; #endif -/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ -static const short yyr1[] = -{ - 0, 63, 63, 64, 65, 66, 67, 67, 68, 69, - 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, - 69, 69, 69, 69, 69, 69, 69, 70, 71, 72, - 73, 74, 75, 76, 76, 77, 78, 78, 78, 79, - 80, 81, 82, 83, 83, 83, 83, 83, 83, 83, - 83, 84, 85, 86, 87, 88, 88, 89, 90, 91, - 92, 93, 94, 95, 96, 96, 97, 98, 99, 99, - 100, 101, 102, 103, 104, 105, 106, 107, 107, 108, - 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, - 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, - 110, 111, 112, 113, 114, 115, 116, 117, 117, 117, - 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, - 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, - 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, - 148, 149, 150, 151, 152, 153 +static const short yyr1[] = { 0, + 63, 63, 64, 65, 66, 67, 67, 68, 69, 69, + 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, + 69, 69, 69, 69, 69, 69, 70, 71, 72, 73, + 74, 75, 76, 76, 77, 78, 78, 78, 79, 80, + 81, 82, 83, 83, 83, 83, 83, 83, 83, 83, + 84, 85, 86, 87, 88, 88, 89, 90, 91, 92, + 93, 94, 95, 96, 96, 97, 98, 99, 99, 100, + 101, 102, 103, 104, 105, 106, 107, 107, 108, 109, + 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, + 109, 109, 109, 109, 109, 109, 109, 109, 109, 110, + 111, 112, 113, 114, 115, 116, 117, 117, 117, 118, + 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, + 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, + 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, + 149, 150, 151, 152, 153 }; -/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */ -static const short yyr2[] = -{ - 0, 2, 1, 5, 2, 2, 2, 1, 2, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 3, 3, 2, - 2, 2, 4, 1, 1, 4, 1, 1, 0, 2, - 2, 1, 2, 1, 1, 1, 1, 1, 1, 1, - 1, 3, 2, 4, 4, 1, 0, 2, 3, 3, - 3, 3, 3, 2, 1, 1, 3, 2, 1, 1, - 3, 3, 3, 3, 2, 5, 2, 2, 1, 2, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 4, 3, 3, 1, 3, 3, 2, 1, 1, 1, - 3, 3, 3, 3, 3, 2, 2, 3, 2, 3, - 3, 3, 3, 3, 3, 2, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0 +static const short yyr2[] = { 0, + 2, 1, 5, 2, 2, 2, 1, 2, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 3, 3, 2, 2, + 2, 4, 1, 1, 4, 1, 1, 0, 2, 2, + 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, + 3, 2, 4, 4, 1, 0, 2, 3, 3, 3, + 3, 3, 2, 1, 1, 3, 2, 1, 1, 3, + 3, 3, 3, 2, 5, 2, 2, 1, 2, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 4, + 3, 3, 1, 3, 3, 2, 1, 1, 1, 3, + 3, 3, 3, 3, 2, 2, 3, 2, 3, 3, + 3, 3, 3, 3, 2, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0 }; -/* YYDEFACT[S] -- default rule to reduce with in state S when YYTABLE - doesn't specify something else to do. Zero means the default is an - error. */ -static const short yydefact[] = -{ - 130, 130, 2, 138, 0, 1, 0, 0, 4, 132, - 5, 132, 7, 0, 3, 6, 128, 134, 128, 141, - 139, 140, 128, 135, 128, 128, 128, 128, 143, 143, - 137, 137, 144, 142, 8, 9, 10, 11, 12, 25, - 13, 14, 15, 16, 17, 18, 19, 20, 21, 23, - 22, 24, 26, 133, 0, 0, 133, 133, 0, 0, - 0, 133, 0, 133, 38, 0, 56, 56, 133, 133, - 133, 0, 133, 133, 0, 133, 133, 0, 133, 0, - 27, 0, 30, 33, 34, 133, 61, 62, 64, 65, - 63, 131, 76, 28, 29, 60, 128, 133, 36, 37, - 41, 0, 43, 44, 45, 46, 48, 47, 50, 49, - 42, 136, 133, 55, 133, 59, 58, 70, 74, 71, - 72, 116, 73, 51, 52, 66, 68, 69, 67, 31, - 32, 131, 78, 0, 39, 0, 35, 115, 57, 53, - 54, 75, 77, 129, 128, 128, 128, 136, 136, 137, - 137, 127, 126, 126, 126, 126, 126, 126, 136, 145, - 81, 82, 90, 79, 80, 88, 89, 98, 99, 83, - 85, 84, 86, 87, 91, 92, 93, 94, 95, 96, - 97, 40, 0, 133, 133, 133, 133, 133, 133, 133, - 133, 0, 133, 0, 133, 133, 133, 133, 133, 133, - 133, 0, 103, 133, 102, 104, 101, 110, 111, 114, - 113, 117, 118, 119, 125, 120, 121, 122, 123, 124, - 112, 105, 107, 108, 109, 106, 100, 0, 0 +static const short yydefact[] = { 130, + 130, 2, 138, 0, 1, 0, 0, 4, 132, 5, + 132, 7, 0, 3, 6, 128, 134, 128, 141, 139, + 140, 128, 135, 128, 128, 128, 128, 143, 143, 137, + 137, 144, 142, 8, 9, 10, 11, 12, 25, 13, + 14, 15, 16, 17, 18, 19, 20, 21, 23, 22, + 24, 26, 133, 0, 0, 133, 133, 0, 0, 0, + 133, 0, 133, 38, 0, 56, 56, 133, 133, 133, + 0, 133, 133, 0, 133, 133, 0, 133, 0, 27, + 0, 30, 33, 34, 133, 61, 62, 64, 65, 63, + 131, 76, 28, 29, 60, 128, 133, 36, 37, 41, + 0, 43, 44, 45, 46, 48, 47, 50, 49, 42, + 136, 133, 55, 133, 59, 58, 70, 74, 71, 72, + 116, 73, 51, 52, 66, 68, 69, 67, 31, 32, + 131, 78, 0, 39, 0, 35, 115, 57, 53, 54, + 75, 77, 129, 128, 128, 128, 136, 136, 137, 137, + 127, 126, 126, 126, 126, 126, 126, 136, 145, 81, + 82, 90, 79, 80, 88, 89, 98, 99, 83, 85, + 84, 86, 87, 91, 92, 93, 94, 95, 96, 97, + 40, 0, 133, 133, 133, 133, 133, 133, 133, 133, + 0, 133, 0, 133, 133, 133, 133, 133, 133, 133, + 0, 103, 133, 102, 104, 101, 110, 111, 114, 113, + 117, 118, 119, 125, 120, 121, 122, 123, 124, 112, + 105, 107, 108, 109, 106, 100, 0, 0 }; -static const short yydefgoto[] = -{ - 1, 2, 3, 6, 11, 12, 34, 35, 36, 61, - 53, 80, 37, 85, 38, 97, 98, 134, 99, 64, - 110, 39, 76, 40, 41, 112, 113, 42, 43, 44, - 45, 46, 57, 90, 47, 78, 128, 48, 49, 50, - 51, 70, 52, 59, 131, 132, 163, 164, 165, 166, - 203, 167, 168, 200, 225, 169, 170, 171, 172, 173, - 100, 73, 174, 190, 175, 176, 177, 178, 179, 180, - 192, 193, 191, 54, 182, 4, 133, 13, 81, 55, - 65, 101, 74, 7, 60, 62, 58, 79, 71, 77, - 201 +static const short yydefgoto[] = { 1, + 2, 3, 6, 11, 12, 34, 35, 36, 61, 53, + 80, 37, 85, 38, 97, 98, 134, 99, 64, 110, + 39, 76, 40, 41, 112, 113, 42, 43, 44, 45, + 46, 57, 90, 47, 78, 128, 48, 49, 50, 51, + 70, 52, 59, 131, 132, 163, 164, 165, 166, 203, + 167, 168, 200, 225, 169, 170, 171, 172, 173, 100, + 73, 174, 190, 175, 176, 177, 178, 179, 180, 192, + 193, 191, 54, 182, 4, 133, 13, 81, 55, 65, + 101, 74, 7, 60, 62, 58, 79, 71, 77, 201 }; -static const short yypact[] = -{ - -32768, 11,-32768,-32768, 9,-32768, -54, 15,-32768,-32768, - -32768, -40,-32768, 146,-32768,-32768,-32768,-32768,-32768,-32768, - -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, - -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, - -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, - -32768,-32768,-32768,-32768, 19, 17,-32768,-32768, 40, -35, - 24,-32768, 37,-32768, -1, 66, 3, 3,-32768,-32768, - -32768, 44,-32768,-32768, 54,-32768,-32768, 56,-32768, 0, - -32768, 13,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, - -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, - -32768, 60,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, - -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, - -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, - -32768, 16,-32768, 29,-32768, 72,-32768,-32768,-32768,-32768, - -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, - -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, - -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, - -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, - -32768,-32768, 73,-32768,-32768,-32768,-32768,-32768,-32768,-32768, - -32768, 74,-32768, 75,-32768,-32768,-32768,-32768,-32768,-32768, - -32768, -49,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, - -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, - -32768,-32768,-32768,-32768,-32768,-32768,-32768, 82,-32768 +static const short yypact[] = {-32768, + 11,-32768,-32768, 9,-32768, -54, 15,-32768,-32768,-32768, + -40,-32768, 146,-32768,-32768,-32768,-32768,-32768,-32768,-32768, +-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, +-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, +-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, +-32768,-32768,-32768, 19, 17,-32768,-32768, 40, -35, 24, +-32768, 37,-32768, -1, 66, 3, 3,-32768,-32768,-32768, + 44,-32768,-32768, 54,-32768,-32768, 56,-32768, 0,-32768, + 13,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, +-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, + 60,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, +-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, +-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, + 16,-32768, 29,-32768, 72,-32768,-32768,-32768,-32768,-32768, +-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, +-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, +-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, +-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, +-32768, 73,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, + 74,-32768, 75,-32768,-32768,-32768,-32768,-32768,-32768,-32768, + -49,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, +-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, +-32768,-32768,-32768,-32768,-32768,-32768, 82,-32768 }; -static const short yypgoto[] = -{ - -32768, 83,-32768,-32768,-32768, 84,-32768, -50,-32768,-32768, - 6, -56, -39,-32768,-32768,-32768,-32768,-32768,-32768,-32768, - -32768,-32768,-32768,-32768,-32768, 26,-32768,-32768,-32768,-32768, - -37,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, - -32768, 68,-32768,-32768,-32768, -33,-32768,-32768,-32768,-32768, - -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, - -108, -29,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, - -109,-32768,-32768, 4,-32768,-32768,-32768,-32768,-32768,-32768, - -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, - -32768 +static const short yypgoto[] = {-32768, + 83,-32768,-32768,-32768, 84,-32768, -50,-32768,-32768, 6, + -56, -39,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, +-32768,-32768,-32768,-32768, 26,-32768,-32768,-32768,-32768, -37, +-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, + 68,-32768,-32768,-32768, -33,-32768,-32768,-32768,-32768,-32768, +-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, -108, + -29,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, -109, +-32768,-32768, 4,-32768,-32768,-32768,-32768,-32768,-32768,-32768, +-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768 }; #define YYLAST 199 -static const short yytable[] = -{ - 86, 87, 75, 138, -136, 93, 9, 95, 222, 223, - 224, 227, 115, 116, 117, 8, 119, 120, 10, 122, - 123, 14, 125, 82, 56, 91, 96, 92, 63, 130, - 66, 67, 68, 69, 83, 84, 16, 17, 18, 186, - 187, 136, 94, 143, 194, 195, 196, 197, 198, 118, - 199, 88, 89, 111, 126, 127, 139, 144, 140, 121, - 145, 124, 146, 147, 148, 137, 149, 150, 151, 152, - 153, 154, 155, 156, 157, 129, 181, 141, 202, 212, - 214, 158, 228, 160, 5, 159, 102, 103, 104, 105, - 106, 107, 108, 114, 161, 15, 162, 72, 142, 0, - 135, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 109, 0, 0, 0, - 188, 189, 0, 0, 0, 0, 0, 204, 205, 206, - 207, 208, 209, 210, 211, 0, 213, 0, 215, 216, - 217, 218, 219, 220, 221, 0, 0, 226, 0, 0, - 183, 184, 185, 16, 17, 18, 19, 0, 0, 20, - 0, 21, 22, 0, 0, 23, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 24, 25, 0, 26, 0, - 0, 0, 27, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 28, 29, 30, 31, 0, 32, 0, 33 +static const short yytable[] = { 86, + 87, 75, 138, -136, 93, 9, 95, 222, 223, 224, + 227, 115, 116, 117, 8, 119, 120, 10, 122, 123, + 14, 125, 82, 56, 91, 96, 92, 63, 130, 66, + 67, 68, 69, 83, 84, 16, 17, 18, 186, 187, + 136, 94, 143, 194, 195, 196, 197, 198, 118, 199, + 88, 89, 111, 126, 127, 139, 144, 140, 121, 145, + 124, 146, 147, 148, 137, 149, 150, 151, 152, 153, + 154, 155, 156, 157, 129, 181, 141, 202, 212, 214, + 158, 228, 160, 5, 159, 102, 103, 104, 105, 106, + 107, 108, 114, 161, 15, 162, 72, 142, 0, 135, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 109, 0, 0, 0, 188, + 189, 0, 0, 0, 0, 0, 204, 205, 206, 207, + 208, 209, 210, 211, 0, 213, 0, 215, 216, 217, + 218, 219, 220, 221, 0, 0, 226, 0, 0, 183, + 184, 185, 16, 17, 18, 19, 0, 0, 20, 0, + 21, 22, 0, 0, 23, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 24, 25, 0, 26, 0, 0, + 0, 27, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 28, 29, 30, 31, 0, 32, 0, 33 }; -static const short yycheck[] = -{ - 56, 57, 31, 111, 5, 61, 60, 63, 57, 58, - 59, 0, 68, 69, 70, 6, 72, 73, 3, 75, - 76, 61, 78, 4, 18, 60, 27, 3, 22, 85, - 24, 25, 26, 27, 17, 18, 7, 8, 9, 147, - 148, 97, 5, 14, 153, 154, 155, 156, 157, 5, - 158, 11, 12, 50, 54, 55, 112, 28, 114, 5, - 31, 5, 33, 34, 35, 5, 37, 38, 39, 40, - 41, 42, 43, 44, 45, 62, 4, 61, 5, 5, - 5, 52, 0, 133, 1, 56, 20, 21, 22, 23, - 24, 25, 26, 67, 133, 11, 133, 29, 131, -1, - 96, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 50, -1, -1, -1, - 149, 150, -1, -1, -1, -1, -1, 183, 184, 185, - 186, 187, 188, 189, 190, -1, 192, -1, 194, 195, - 196, 197, 198, 199, 200, -1, -1, 203, -1, -1, - 144, 145, 146, 7, 8, 9, 10, -1, -1, 13, - -1, 15, 16, -1, -1, 19, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 29, 30, -1, 32, -1, - -1, -1, 36, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 46, 47, 48, 49, -1, 51, -1, 53 +static const short yycheck[] = { 56, + 57, 31, 111, 5, 61, 60, 63, 57, 58, 59, + 0, 68, 69, 70, 6, 72, 73, 3, 75, 76, + 61, 78, 4, 18, 60, 27, 3, 22, 85, 24, + 25, 26, 27, 17, 18, 7, 8, 9, 147, 148, + 97, 5, 14, 153, 154, 155, 156, 157, 5, 158, + 11, 12, 50, 54, 55, 112, 28, 114, 5, 31, + 5, 33, 34, 35, 5, 37, 38, 39, 40, 41, + 42, 43, 44, 45, 62, 4, 61, 5, 5, 5, + 52, 0, 133, 1, 56, 20, 21, 22, 23, 24, + 25, 26, 67, 133, 11, 133, 29, 131, -1, 96, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 50, -1, -1, -1, 149, + 150, -1, -1, -1, -1, -1, 183, 184, 185, 186, + 187, 188, 189, 190, -1, 192, -1, 194, 195, 196, + 197, 198, 199, 200, -1, -1, 203, -1, -1, 144, + 145, 146, 7, 8, 9, 10, -1, -1, 13, -1, + 15, 16, -1, -1, 19, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 29, 30, -1, 32, -1, -1, + -1, 36, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 46, 47, 48, 49, -1, 51, -1, 53 }; /* -*-C-*- Note some compilers choke on comments on `#line' lines. */ -#line 3 "/sw/share/bison/bison.simple" +#line 3 "/usr/share/bison.simple" +/* This file comes from bison-1.28. */ /* Skeleton output parser for bison, - - Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002 Free Software - Foundation, Inc. + Copyright (C) 1984, 1989, 1990 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -588,132 +557,63 @@ static const short yycheck[] = This special exception was added by the Free Software Foundation in version 1.24 of Bison. */ -/* This is the parser code that is written into each bison parser when - the %semantic_parser declaration is not specified in the grammar. - It was written by Richard Stallman by simplifying the hairy parser - used when %semantic_parser is specified. */ - -/* All symbols defined below should begin with yy or YY, to avoid - infringing on user name space. This should be done even for local - variables, as they might otherwise be expanded by user macros. - There are some unavoidable exceptions within include files to - define necessary library symbols; they are noted "INFRINGES ON - USER NAME SPACE" below. */ - -#if ! defined (yyoverflow) || defined (YYERROR_VERBOSE) - -/* The parser invokes alloca or malloc; define the necessary symbols. */ - -# if YYSTACK_USE_ALLOCA -# define YYSTACK_ALLOC alloca -# else -# ifndef YYSTACK_USE_ALLOCA -# if defined (alloca) || defined (_ALLOCA_H) -# define YYSTACK_ALLOC alloca -# else -# ifdef __GNUC__ -# define YYSTACK_ALLOC __builtin_alloca -# endif -# endif -# endif -# endif - -# ifdef YYSTACK_ALLOC - /* Pacify GCC's `empty if-body' warning. */ -# define YYSTACK_FREE(Ptr) do { /* empty */; } while (0) -# else -# if defined (__STDC__) || defined (__cplusplus) -# include <stdlib.h> /* INFRINGES ON USER NAME SPACE */ -# define YYSIZE_T size_t -# endif -# define YYSTACK_ALLOC malloc -# define YYSTACK_FREE free -# endif -#endif /* ! defined (yyoverflow) || defined (YYERROR_VERBOSE) */ - - -#if (! defined (yyoverflow) \ - && (! defined (__cplusplus) \ - || (YYLTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL))) - -/* A type that is properly aligned for any stack member. */ -union yyalloc -{ - short yyss; - YYSTYPE yyvs; -# if YYLSP_NEEDED - YYLTYPE yyls; -# endif -}; - -/* The size of the maximum gap between one aligned stack and the next. */ -# define YYSTACK_GAP_MAX (sizeof (union yyalloc) - 1) - -/* The size of an array large to enough to hold all stacks, each with - N elements. */ -# if YYLSP_NEEDED -# define YYSTACK_BYTES(N) \ - ((N) * (sizeof (short) + sizeof (YYSTYPE) + sizeof (YYLTYPE)) \ - + 2 * YYSTACK_GAP_MAX) -# else -# define YYSTACK_BYTES(N) \ - ((N) * (sizeof (short) + sizeof (YYSTYPE)) \ - + YYSTACK_GAP_MAX) -# endif - -/* Copy COUNT objects from FROM to TO. The source and destination do - not overlap. */ -# ifndef YYCOPY -# if 1 < __GNUC__ -# define YYCOPY(To, From, Count) \ - __builtin_memcpy (To, From, (Count) * sizeof (*(From))) -# else -# define YYCOPY(To, From, Count) \ - do \ - { \ - register YYSIZE_T yyi; \ - for (yyi = 0; yyi < (Count); yyi++) \ - (To)[yyi] = (From)[yyi]; \ - } \ - while (0) -# endif -# endif - -/* Relocate STACK from its old location to the new one. The - local variables YYSIZE and YYSTACKSIZE give the old and new number of - elements in the stack, and YYPTR gives the new location of the - stack. Advance YYPTR to a properly aligned location for the next - stack. */ -# define YYSTACK_RELOCATE(Stack) \ - do \ - { \ - YYSIZE_T yynewbytes; \ - YYCOPY (&yyptr->Stack, Stack, yysize); \ - Stack = &yyptr->Stack; \ - yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAX; \ - yyptr += yynewbytes / sizeof (*yyptr); \ - } \ - while (0) - -#endif +/* This is the parser code that is written into each bison parser + when the %semantic_parser declaration is not specified in the grammar. + It was written by Richard Stallman by simplifying the hairy parser + used when %semantic_parser is specified. */ - -#if ! defined (YYSIZE_T) && defined (__SIZE_TYPE__) -# define YYSIZE_T __SIZE_TYPE__ -#endif -#if ! defined (YYSIZE_T) && defined (size_t) -# define YYSIZE_T size_t +#ifndef YYSTACK_USE_ALLOCA +#ifdef alloca +#define YYSTACK_USE_ALLOCA +#else /* alloca not defined */ +#ifdef __GNUC__ +#define YYSTACK_USE_ALLOCA +#define alloca __builtin_alloca +#else /* not GNU C. */ +#if (!defined (__STDC__) && defined (sparc)) || defined (__sparc__) || defined (__sparc) || defined (__sgi) || (defined (__sun) && defined (__i386)) +#define YYSTACK_USE_ALLOCA +#include <alloca.h> +#else /* not sparc */ +/* We think this test detects Watcom and Microsoft C. */ +/* This used to test MSDOS, but that is a bad idea + since that symbol is in the user namespace. */ +#if (defined (_MSDOS) || defined (_MSDOS_)) && !defined (__TURBOC__) +#if 0 /* No need for malloc.h, which pollutes the namespace; + instead, just don't use alloca. */ +#include <malloc.h> #endif -#if ! defined (YYSIZE_T) -# if defined (__STDC__) || defined (__cplusplus) -# include <stddef.h> /* INFRINGES ON USER NAME SPACE */ -# define YYSIZE_T size_t -# endif +#else /* not MSDOS, or __TURBOC__ */ +#if defined(_AIX) +/* I don't know what this was needed for, but it pollutes the namespace. + So I turned it off. rms, 2 May 1997. */ +/* #include <malloc.h> */ + #pragma alloca +#define YYSTACK_USE_ALLOCA +#else /* not MSDOS, or __TURBOC__, or _AIX */ +#if 0 +#ifdef __hpux /* haible@ilog.fr says this works for HPUX 9.05 and up, + and on HPUX 10. Eventually we can turn this on. */ +#define YYSTACK_USE_ALLOCA +#define alloca __builtin_alloca +#endif /* __hpux */ #endif -#if ! defined (YYSIZE_T) -# define YYSIZE_T unsigned int +#endif /* not _AIX */ +#endif /* not MSDOS, or __TURBOC__ */ +#endif /* not sparc */ +#endif /* not GNU C */ +#endif /* alloca not defined */ +#endif /* YYSTACK_USE_ALLOCA not defined */ + +#ifdef YYSTACK_USE_ALLOCA +#define YYSTACK_ALLOC alloca +#else +#define YYSTACK_ALLOC malloc #endif +/* Note: there must be only one dollar sign in this file. + It is replaced by the list of actions, each action + as one case of the switch. */ + #define yyerrok (yyerrstatus = 0) #define yyclearin (yychar = YYEMPTY) #define YYEMPTY -2 @@ -721,161 +621,131 @@ union yyalloc #define YYACCEPT goto yyacceptlab #define YYABORT goto yyabortlab #define YYERROR goto yyerrlab1 -/* Like YYERROR except do call yyerror. This remains here temporarily - to ease the transition to the new meaning of YYERROR, for GCC. +/* Like YYERROR except do call yyerror. + This remains here temporarily to ease the + transition to the new meaning of YYERROR, for GCC. Once GCC version 2 has supplanted version 1, this can go. */ #define YYFAIL goto yyerrlab #define YYRECOVERING() (!!yyerrstatus) -#define YYBACKUP(Token, Value) \ +#define YYBACKUP(token, value) \ do \ if (yychar == YYEMPTY && yylen == 1) \ - { \ - yychar = (Token); \ - yylval = (Value); \ + { yychar = (token), yylval = (value); \ yychar1 = YYTRANSLATE (yychar); \ YYPOPSTACK; \ goto yybackup; \ } \ else \ - { \ - yyerror ("syntax error: cannot back up"); \ - YYERROR; \ - } \ + { yyerror ("syntax error: cannot back up"); YYERROR; } \ while (0) #define YYTERROR 1 #define YYERRCODE 256 +#ifndef YYPURE +#define YYLEX yylex() +#endif -/* YYLLOC_DEFAULT -- Compute the default location (before the actions - are run). +#ifdef YYPURE +#ifdef YYLSP_NEEDED +#ifdef YYLEX_PARAM +#define YYLEX yylex(&yylval, &yylloc, YYLEX_PARAM) +#else +#define YYLEX yylex(&yylval, &yylloc) +#endif +#else /* not YYLSP_NEEDED */ +#ifdef YYLEX_PARAM +#define YYLEX yylex(&yylval, YYLEX_PARAM) +#else +#define YYLEX yylex(&yylval) +#endif +#endif /* not YYLSP_NEEDED */ +#endif + +/* If nonreentrant, generate the variables here */ - When YYLLOC_DEFAULT is run, CURRENT is set the location of the - first token. By default, to implement support for ranges, extend - its range to the last symbol. */ +#ifndef YYPURE -#ifndef YYLLOC_DEFAULT -# define YYLLOC_DEFAULT(Current, Rhs, N) \ - Current.last_line = Rhs[N].last_line; \ - Current.last_column = Rhs[N].last_column; +int yychar; /* the lookahead symbol */ +YYSTYPE yylval; /* the semantic value of the */ + /* lookahead symbol */ + +#ifdef YYLSP_NEEDED +YYLTYPE yylloc; /* location data for the lookahead */ + /* symbol */ #endif +int yynerrs; /* number of parse errors so far */ +#endif /* not YYPURE */ -/* YYLEX -- calling `yylex' with the right arguments. */ - -#if YYPURE -# if YYLSP_NEEDED -# ifdef YYLEX_PARAM -# define YYLEX yylex (&yylval, &yylloc, YYLEX_PARAM) -# else -# define YYLEX yylex (&yylval, &yylloc) -# endif -# else /* !YYLSP_NEEDED */ -# ifdef YYLEX_PARAM -# define YYLEX yylex (&yylval, YYLEX_PARAM) -# else -# define YYLEX yylex (&yylval) -# endif -# endif /* !YYLSP_NEEDED */ -#else /* !YYPURE */ -# define YYLEX yylex () -#endif /* !YYPURE */ - - -/* Enable debugging if requested. */ -#if YYDEBUG - -# ifndef YYFPRINTF -# include <stdio.h> /* INFRINGES ON USER NAME SPACE */ -# define YYFPRINTF fprintf -# endif - -# define YYDPRINTF(Args) \ -do { \ - if (yydebug) \ - YYFPRINTF Args; \ -} while (0) -/* Nonzero means print parse trace. It is left uninitialized so that - multiple parsers can coexist. */ -int yydebug; -#else /* !YYDEBUG */ -# define YYDPRINTF(Args) -#endif /* !YYDEBUG */ - -/* YYINITDEPTH -- initial size of the parser's stacks. */ -#ifndef YYINITDEPTH -# define YYINITDEPTH 200 +#if YYDEBUG != 0 +int yydebug; /* nonzero means print parse trace */ +/* Since this is uninitialized, it does not stop multiple parsers + from coexisting. */ #endif -/* YYMAXDEPTH -- maximum size the stacks can grow to (effective only - if the built-in stack extension method is used). +/* YYINITDEPTH indicates the initial size of the parser's stacks */ - Do not make this value too large; the results are undefined if - SIZE_MAX < YYSTACK_BYTES (YYMAXDEPTH) - evaluated with infinite-precision integer arithmetic. */ +#ifndef YYINITDEPTH +#define YYINITDEPTH 200 +#endif + +/* YYMAXDEPTH is the maximum size the stacks can grow to + (effective only if the built-in stack extension method is used). */ #if YYMAXDEPTH == 0 -# undef YYMAXDEPTH +#undef YYMAXDEPTH #endif #ifndef YYMAXDEPTH -# define YYMAXDEPTH 10000 +#define YYMAXDEPTH 10000 #endif -#ifdef YYERROR_VERBOSE - -# ifndef yystrlen -# if defined (__GLIBC__) && defined (_STRING_H) -# define yystrlen strlen -# else -/* Return the length of YYSTR. */ -static YYSIZE_T -# if defined (__STDC__) || defined (__cplusplus) -yystrlen (const char *yystr) -# else -yystrlen (yystr) - const char *yystr; -# endif -{ - register const char *yys = yystr; - - while (*yys++ != '\0') - continue; - - return yys - yystr - 1; +/* Define __yy_memcpy. Note that the size argument + should be passed with type unsigned int, because that is what the non-GCC + definitions require. With GCC, __builtin_memcpy takes an arg + of type size_t, but it can handle unsigned int. */ + +#if __GNUC__ > 1 /* GNU C and GNU C++ define this. */ +#define __yy_memcpy(TO,FROM,COUNT) __builtin_memcpy(TO,FROM,COUNT) +#else /* not GNU C or C++ */ +#ifndef __cplusplus + +/* This is the most reliable way to avoid incompatibilities + in available built-in functions on various systems. */ +static void +__yy_memcpy (to, from, count) + char *to; + char *from; + unsigned int count; +{ + register char *f = from; + register char *t = to; + register int i = count; + + while (i-- > 0) + *t++ = *f++; } -# endif -# endif - -# ifndef yystpcpy -# if defined (__GLIBC__) && defined (_STRING_H) && defined (_GNU_SOURCE) -# define yystpcpy stpcpy -# else -/* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in - YYDEST. */ -static char * -# if defined (__STDC__) || defined (__cplusplus) -yystpcpy (char *yydest, const char *yysrc) -# else -yystpcpy (yydest, yysrc) - char *yydest; - const char *yysrc; -# endif -{ - register char *yyd = yydest; - register const char *yys = yysrc; - - while ((*yyd++ = *yys++) != '\0') - continue; - - return yyd - 1; + +#else /* __cplusplus */ + +/* This is the most reliable way to avoid incompatibilities + in available built-in functions on various systems. */ +static void +__yy_memcpy (char *to, char *from, unsigned int count) +{ + register char *t = to; + register char *f = from; + register int i = count; + + while (i-- > 0) + *t++ = *f++; } -# endif -# endif + +#endif #endif -#line 315 "/sw/share/bison/bison.simple" - +#line 217 "/usr/share/bison.simple" /* The user can define YYPARSE_PARAM as the name of an argument to be passed into yyparse. The argument should have type void *. @@ -884,121 +754,76 @@ yystpcpy (yydest, yysrc) to the proper pointer type. */ #ifdef YYPARSE_PARAM -# if defined (__STDC__) || defined (__cplusplus) -# define YYPARSE_PARAM_ARG void *YYPARSE_PARAM -# define YYPARSE_PARAM_DECL -# else -# define YYPARSE_PARAM_ARG YYPARSE_PARAM -# define YYPARSE_PARAM_DECL void *YYPARSE_PARAM; -# endif -#else /* !YYPARSE_PARAM */ -# define YYPARSE_PARAM_ARG -# define YYPARSE_PARAM_DECL -#endif /* !YYPARSE_PARAM */ +#ifdef __cplusplus +#define YYPARSE_PARAM_ARG void *YYPARSE_PARAM +#define YYPARSE_PARAM_DECL +#else /* not __cplusplus */ +#define YYPARSE_PARAM_ARG YYPARSE_PARAM +#define YYPARSE_PARAM_DECL void *YYPARSE_PARAM; +#endif /* not __cplusplus */ +#else /* not YYPARSE_PARAM */ +#define YYPARSE_PARAM_ARG +#define YYPARSE_PARAM_DECL +#endif /* not YYPARSE_PARAM */ /* Prevent warning if -Wstrict-prototypes. */ #ifdef __GNUC__ -# ifdef YYPARSE_PARAM +#ifdef YYPARSE_PARAM int yyparse (void *); -# else +#else int yyparse (void); -# endif #endif - -/* YY_DECL_VARIABLES -- depending whether we use a pure parser, - variables are global, or local to YYPARSE. */ - -#define YY_DECL_NON_LSP_VARIABLES \ -/* The lookahead symbol. */ \ -int yychar; \ - \ -/* The semantic value of the lookahead symbol. */ \ -YYSTYPE yylval; \ - \ -/* Number of parse errors so far. */ \ -int yynerrs; - -#if YYLSP_NEEDED -# define YY_DECL_VARIABLES \ -YY_DECL_NON_LSP_VARIABLES \ - \ -/* Location data for the lookahead symbol. */ \ -YYLTYPE yylloc; -#else -# define YY_DECL_VARIABLES \ -YY_DECL_NON_LSP_VARIABLES #endif - -/* If nonreentrant, generate the variables here. */ - -#if !YYPURE -YY_DECL_VARIABLES -#endif /* !YYPURE */ - int -yyparse (YYPARSE_PARAM_ARG) +yyparse(YYPARSE_PARAM_ARG) YYPARSE_PARAM_DECL { - /* If reentrant, generate the variables here. */ -#if YYPURE - YY_DECL_VARIABLES -#endif /* !YYPURE */ - register int yystate; register int yyn; - int yyresult; - /* Number of tokens to shift before error messages enabled. */ - int yyerrstatus; - /* Lookahead token as an internal (translated) token number. */ - int yychar1 = 0; - - /* Three stacks and their tools: - `yyss': related to states, - `yyvs': related to semantic values, - `yyls': related to locations. - - Refer to the stacks thru separate pointers, to allow yyoverflow - to reallocate them elsewhere. */ - - /* The state stack. */ - short yyssa[YYINITDEPTH]; - short *yyss = yyssa; register short *yyssp; - - /* The semantic value stack. */ - YYSTYPE yyvsa[YYINITDEPTH]; - YYSTYPE *yyvs = yyvsa; register YYSTYPE *yyvsp; + int yyerrstatus; /* number of tokens to shift before error messages enabled */ + int yychar1 = 0; /* lookahead token as an internal (translated) token number */ + + short yyssa[YYINITDEPTH]; /* the state stack */ + YYSTYPE yyvsa[YYINITDEPTH]; /* the semantic value stack */ -#if YYLSP_NEEDED - /* The location stack. */ - YYLTYPE yylsa[YYINITDEPTH]; + short *yyss = yyssa; /* refer to the stacks thru separate pointers */ + YYSTYPE *yyvs = yyvsa; /* to allow yyoverflow to reallocate them elsewhere */ + +#ifdef YYLSP_NEEDED + YYLTYPE yylsa[YYINITDEPTH]; /* the location stack */ YYLTYPE *yyls = yylsa; YYLTYPE *yylsp; -#endif -#if YYLSP_NEEDED -# define YYPOPSTACK (yyvsp--, yyssp--, yylsp--) +#define YYPOPSTACK (yyvsp--, yyssp--, yylsp--) #else -# define YYPOPSTACK (yyvsp--, yyssp--) +#define YYPOPSTACK (yyvsp--, yyssp--) #endif - YYSIZE_T yystacksize = YYINITDEPTH; + int yystacksize = YYINITDEPTH; + int yyfree_stacks = 0; - - /* The variables used to return semantic value and location from the - action routines. */ - YYSTYPE yyval; -#if YYLSP_NEEDED - YYLTYPE yyloc; +#ifdef YYPURE + int yychar; + YYSTYPE yylval; + int yynerrs; +#ifdef YYLSP_NEEDED + YYLTYPE yylloc; +#endif #endif - /* When reducing, the number of symbols on the RHS of the reduced - rule. */ + YYSTYPE yyval; /* the variable used to return */ + /* semantic values from the action */ + /* routines */ + int yylen; - YYDPRINTF ((stderr, "Starting parse\n")); +#if YYDEBUG != 0 + if (yydebug) + fprintf(stderr, "Starting parse\n"); +#endif yystate = 0; yyerrstatus = 0; @@ -1010,110 +835,110 @@ yyparse (YYPARSE_PARAM_ARG) so that they stay on the same level as the state stack. The wasted elements are never initialized. */ - yyssp = yyss; + yyssp = yyss - 1; yyvsp = yyvs; -#if YYLSP_NEEDED +#ifdef YYLSP_NEEDED yylsp = yyls; #endif - goto yysetstate; -/*------------------------------------------------------------. -| yynewstate -- Push a new state, which is found in yystate. | -`------------------------------------------------------------*/ - yynewstate: - /* In all cases, when you get here, the value and location stacks - have just been pushed. so pushing a state here evens the stacks. - */ - yyssp++; +/* Push a new state, which is found in yystate . */ +/* In all cases, when you get here, the value and location stacks + have just been pushed. so pushing a state here evens the stacks. */ +yynewstate: - yysetstate: - *yyssp = yystate; + *++yyssp = yystate; if (yyssp >= yyss + yystacksize - 1) { + /* Give user a chance to reallocate the stack */ + /* Use copies of these so that the &'s don't force the real ones into memory. */ + YYSTYPE *yyvs1 = yyvs; + short *yyss1 = yyss; +#ifdef YYLSP_NEEDED + YYLTYPE *yyls1 = yyls; +#endif + /* Get the current used size of the three stacks, in elements. */ - YYSIZE_T yysize = yyssp - yyss + 1; + int size = yyssp - yyss + 1; #ifdef yyoverflow - { - /* Give user a chance to reallocate the stack. Use copies of - these so that the &'s don't force the real ones into - memory. */ - YYSTYPE *yyvs1 = yyvs; - short *yyss1 = yyss; - - /* Each stack pointer address is followed by the size of the - data in use in that stack, in bytes. */ -# if YYLSP_NEEDED - YYLTYPE *yyls1 = yyls; - /* This used to be a conditional around just the two extra args, - but that might be undefined if yyoverflow is a macro. */ - yyoverflow ("parser stack overflow", - &yyss1, yysize * sizeof (*yyssp), - &yyvs1, yysize * sizeof (*yyvsp), - &yyls1, yysize * sizeof (*yylsp), - &yystacksize); - yyls = yyls1; -# else - yyoverflow ("parser stack overflow", - &yyss1, yysize * sizeof (*yyssp), - &yyvs1, yysize * sizeof (*yyvsp), - &yystacksize); -# endif - yyss = yyss1; - yyvs = yyvs1; - } + /* Each stack pointer address is followed by the size of + the data in use in that stack, in bytes. */ +#ifdef YYLSP_NEEDED + /* This used to be a conditional around just the two extra args, + but that might be undefined if yyoverflow is a macro. */ + yyoverflow("parser stack overflow", + &yyss1, size * sizeof (*yyssp), + &yyvs1, size * sizeof (*yyvsp), + &yyls1, size * sizeof (*yylsp), + &yystacksize); +#else + yyoverflow("parser stack overflow", + &yyss1, size * sizeof (*yyssp), + &yyvs1, size * sizeof (*yyvsp), + &yystacksize); +#endif + + yyss = yyss1; yyvs = yyvs1; +#ifdef YYLSP_NEEDED + yyls = yyls1; +#endif #else /* no yyoverflow */ -# ifndef YYSTACK_RELOCATE - goto yyoverflowlab; -# else /* Extend the stack our own way. */ if (yystacksize >= YYMAXDEPTH) - goto yyoverflowlab; + { + yyerror("parser stack overflow"); + if (yyfree_stacks) + { + free (yyss); + free (yyvs); +#ifdef YYLSP_NEEDED + free (yyls); +#endif + } + return 2; + } yystacksize *= 2; if (yystacksize > YYMAXDEPTH) yystacksize = YYMAXDEPTH; - - { - short *yyss1 = yyss; - union yyalloc *yyptr = - (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize)); - if (! yyptr) - goto yyoverflowlab; - YYSTACK_RELOCATE (yyss); - YYSTACK_RELOCATE (yyvs); -# if YYLSP_NEEDED - YYSTACK_RELOCATE (yyls); -# endif -# undef YYSTACK_RELOCATE - if (yyss1 != yyssa) - YYSTACK_FREE (yyss1); - } -# endif +#ifndef YYSTACK_USE_ALLOCA + yyfree_stacks = 1; +#endif + yyss = (short *) YYSTACK_ALLOC (yystacksize * sizeof (*yyssp)); + __yy_memcpy ((char *)yyss, (char *)yyss1, + size * (unsigned int) sizeof (*yyssp)); + yyvs = (YYSTYPE *) YYSTACK_ALLOC (yystacksize * sizeof (*yyvsp)); + __yy_memcpy ((char *)yyvs, (char *)yyvs1, + size * (unsigned int) sizeof (*yyvsp)); +#ifdef YYLSP_NEEDED + yyls = (YYLTYPE *) YYSTACK_ALLOC (yystacksize * sizeof (*yylsp)); + __yy_memcpy ((char *)yyls, (char *)yyls1, + size * (unsigned int) sizeof (*yylsp)); +#endif #endif /* no yyoverflow */ - yyssp = yyss + yysize - 1; - yyvsp = yyvs + yysize - 1; -#if YYLSP_NEEDED - yylsp = yyls + yysize - 1; + yyssp = yyss + size - 1; + yyvsp = yyvs + size - 1; +#ifdef YYLSP_NEEDED + yylsp = yyls + size - 1; #endif - YYDPRINTF ((stderr, "Stack size increased to %lu\n", - (unsigned long int) yystacksize)); +#if YYDEBUG != 0 + if (yydebug) + fprintf(stderr, "Stack size increased to %d\n", yystacksize); +#endif if (yyssp >= yyss + yystacksize - 1) YYABORT; } - YYDPRINTF ((stderr, "Entering state %d\n", yystate)); +#if YYDEBUG != 0 + if (yydebug) + fprintf(stderr, "Entering state %d\n", yystate); +#endif goto yybackup; - - -/*-----------. -| yybackup. | -`-----------*/ -yybackup: + yybackup: /* Do appropriate processing given the current state. */ /* Read a lookahead token if we need one and don't already have one. */ @@ -1132,7 +957,10 @@ yybackup: if (yychar == YYEMPTY) { - YYDPRINTF ((stderr, "Reading a token: ")); +#if YYDEBUG != 0 + if (yydebug) + fprintf(stderr, "Reading a token: "); +#endif yychar = YYLEX; } @@ -1143,25 +971,25 @@ yybackup: yychar1 = 0; yychar = YYEOF; /* Don't call YYLEX any more */ - YYDPRINTF ((stderr, "Now at end of input.\n")); +#if YYDEBUG != 0 + if (yydebug) + fprintf(stderr, "Now at end of input.\n"); +#endif } else { - yychar1 = YYTRANSLATE (yychar); + yychar1 = YYTRANSLATE(yychar); -#if YYDEBUG - /* We have to keep this `#if YYDEBUG', since we use variables - which are defined only if `YYDEBUG' is set. */ +#if YYDEBUG != 0 if (yydebug) { - YYFPRINTF (stderr, "Next token is %d (%s", - yychar, yytname[yychar1]); - /* Give the individual parser a way to print the precise - meaning of a token, for further debugging info. */ -# ifdef YYPRINT + fprintf (stderr, "Next token is %d (%s", yychar, yytname[yychar1]); + /* Give the individual parser a way to print the precise meaning + of a token, for further debugging info. */ +#ifdef YYPRINT YYPRINT (stderr, yychar, yylval); -# endif - YYFPRINTF (stderr, ")\n"); +#endif + fprintf (stderr, ")\n"); } #endif } @@ -1193,78 +1021,56 @@ yybackup: YYACCEPT; /* Shift the lookahead token. */ - YYDPRINTF ((stderr, "Shifting token %d (%s), ", - yychar, yytname[yychar1])); + +#if YYDEBUG != 0 + if (yydebug) + fprintf(stderr, "Shifting token %d (%s), ", yychar, yytname[yychar1]); +#endif /* Discard the token being shifted unless it is eof. */ if (yychar != YYEOF) yychar = YYEMPTY; *++yyvsp = yylval; -#if YYLSP_NEEDED +#ifdef YYLSP_NEEDED *++yylsp = yylloc; #endif - /* Count tokens shifted since error; after three, turn off error - status. */ - if (yyerrstatus) - yyerrstatus--; + /* count tokens shifted since error; after three, turn off error status. */ + if (yyerrstatus) yyerrstatus--; yystate = yyn; goto yynewstate; - -/*-----------------------------------------------------------. -| yydefault -- do the default action for the current state. | -`-----------------------------------------------------------*/ +/* Do the default action for the current state. */ yydefault: + yyn = yydefact[yystate]; if (yyn == 0) goto yyerrlab; - goto yyreduce; - -/*-----------------------------. -| yyreduce -- Do a reduction. | -`-----------------------------*/ +/* Do a reduction. yyn is the number of a rule to reduce with. */ yyreduce: - /* yyn is the number of a rule to reduce with. */ yylen = yyr2[yyn]; + if (yylen > 0) + yyval = yyvsp[1-yylen]; /* implement default value of the action */ - /* If YYLEN is nonzero, implement the default value of the action: - `$$ = $1'. - - Otherwise, the following line sets YYVAL to the semantic value of - the lookahead token. This behavior is undocumented and Bison - users should not rely upon it. Assigning to YYVAL - unconditionally makes the parser a bit smaller, and it avoids a - GCC warning that YYVAL may be used uninitialized. */ - yyval = yyvsp[1-yylen]; - -#if YYLSP_NEEDED - /* Similarly for the default location. Let the user run additional - commands if for instance locations are ranges. */ - yyloc = yylsp[1-yylen]; - YYLLOC_DEFAULT (yyloc, (yylsp - yylen), yylen); -#endif - -#if YYDEBUG - /* We have to keep this `#if YYDEBUG', since we use variables which - are defined only if `YYDEBUG' is set. */ +#if YYDEBUG != 0 if (yydebug) { - int yyi; + int i; - YYFPRINTF (stderr, "Reducing via rule %d (line %d), ", - yyn, yyrline[yyn]); + fprintf (stderr, "Reducing via rule %d (line %d), ", + yyn, yyrline[yyn]); /* Print the symbols being reduced, and their result. */ - for (yyi = yyprhs[yyn]; yyrhs[yyi] > 0; yyi++) - YYFPRINTF (stderr, "%s ", yytname[yyrhs[yyi]]); - YYFPRINTF (stderr, " -> %s\n", yytname[yyr1[yyn]]); + for (i = yyprhs[yyn]; yyrhs[i] > 0; i++) + fprintf (stderr, "%s ", yytname[yyrhs[i]]); + fprintf (stderr, " -> %s\n", yytname[yyr1[yyn]]); } #endif + switch (yyn) { case 3: @@ -1678,8 +1484,14 @@ case 35: yyval = yyvsp[-2]; ; break;} +case 38: +#line 584 "parser.y" +{ + yyval.n = 0; + ; + break;} case 39: -#line 589 "parser.y" +#line 591 "parser.y" { pimsg ("dispatch mode statement:", lastnr); yyval.n = 1; @@ -1695,13 +1507,13 @@ case 39: ; break;} case 40: -#line 606 "parser.y" +#line 608 "parser.y" { setlastovernr (SYMBOL); ; break;} case 41: -#line 612 "parser.y" +#line 614 "parser.y" { psmsg ("external handler:", laststr); if (lastnr != ds_externalhandler) @@ -1711,7 +1523,7 @@ case 41: ; break;} case 42: -#line 623 "parser.y" +#line 625 "parser.y" { yyval.n = 1; yyval.set = xmalloc (sizeof(Confset)); @@ -1719,55 +1531,55 @@ case 42: ; break;} case 43: -#line 631 "parser.y" +#line 633 "parser.y" { lastnr = ds_roundrobin; ; break;} case 44: -#line 635 "parser.y" +#line 637 "parser.y" { lastnr = ds_random; ; break;} case 45: -#line 639 "parser.y" +#line 641 "parser.y" { lastnr = ds_byduration; ; break;} case 46: -#line 643 "parser.y" +#line 645 "parser.y" { lastnr = ds_bysize; ; break;} case 47: -#line 647 "parser.y" +#line 649 "parser.y" { lastnr = ds_byorder; ; break;} case 48: -#line 651 "parser.y" +#line 653 "parser.y" { lastnr = ds_byconnections; ; break;} case 49: -#line 655 "parser.y" +#line 657 "parser.y" { lastnr = ds_externalhandler; ; break;} case 50: -#line 659 "parser.y" +#line 661 "parser.y" { lastnr = ds_byclientip; ; break;} case 51: -#line 667 "parser.y" +#line 669 "parser.y" { psmsg ("user account statement:", laststr); yyval.n = 1; @@ -1777,7 +1589,7 @@ case 51: ; break;} case 52: -#line 678 "parser.y" +#line 680 "parser.y" { setlaststr (laststring); free (laststring); @@ -1785,7 +1597,7 @@ case 52: ; break;} case 53: -#line 689 "parser.y" +#line 691 "parser.y" { pimsg ("reviving interval statement:", lastnr); yyval.n = 2; @@ -1800,7 +1612,7 @@ case 53: ; break;} case 54: -#line 707 "parser.y" +#line 709 "parser.y" { pimsg ("check interval:", lastnr); yyval.n = 2; @@ -1814,8 +1626,14 @@ case 54: yyval.set[1].v.sval = 0; ; break;} +case 56: +#line 726 "parser.y" +{ + yyval.n = 0; + ; + break;} case 57: -#line 729 "parser.y" +#line 733 "parser.y" { yyval.n = 1; yyval.set = xmalloc (sizeof(Confset)); @@ -1823,7 +1641,7 @@ case 57: ; break;} case 58: -#line 739 "parser.y" +#line 743 "parser.y" { pimsg ("backlog statement:", lastnr); yyval.n = 1; @@ -1833,7 +1651,7 @@ case 58: ; break;} case 59: -#line 751 "parser.y" +#line 755 "parser.y" { pimsg ("shmkey statement:", lastnr); yyval.n = 1; @@ -1843,7 +1661,7 @@ case 59: ; break;} case 60: -#line 763 "parser.y" +#line 767 "parser.y" { pimsg ("connection timeout statement:", lastnr); yyval.n = 1; @@ -1853,7 +1671,7 @@ case 60: ; break;} case 61: -#line 775 "parser.y" +#line 779 "parser.y" { pimsg ("max clients statement (service):", lastnr); yyval.n = 1; @@ -1863,7 +1681,7 @@ case 61: ; break;} case 62: -#line 787 "parser.y" +#line 791 "parser.y" { pimsg ("service type:", lastnr); yyval.n = 1; @@ -1873,19 +1691,19 @@ case 62: ; break;} case 64: -#line 802 "parser.y" +#line 806 "parser.y" { lastnr = type_any; ; break;} case 65: -#line 806 "parser.y" +#line 810 "parser.y" { lastnr = type_http; ; break;} case 66: -#line 814 "parser.y" +#line 818 "parser.y" { pimsg ("service header inspection: ", lastnr); yyval.n = 1; @@ -1895,19 +1713,19 @@ case 66: ; break;} case 68: -#line 829 "parser.y" +#line 833 "parser.y" { lastnr = ins_deep; ; break;} case 69: -#line 833 "parser.y" +#line 837 "parser.y" { lastnr = ins_shallow; ; break;} case 70: -#line 841 "parser.y" +#line 845 "parser.y" { psmsg ("allow from: ", laststr); yyval.n = 1; @@ -1917,7 +1735,7 @@ case 70: ; break;} case 71: -#line 853 "parser.y" +#line 857 "parser.y" { psmsg ("allow from: ", laststr); yyval.n = 1; @@ -1927,7 +1745,7 @@ case 71: ; break;} case 72: -#line 865 "parser.y" +#line 869 "parser.y" { psmsg ("allow file: ", laststr); yyval.n = 1; @@ -1937,7 +1755,7 @@ case 72: ; break;} case 73: -#line 877 "parser.y" +#line 881 "parser.y" { psmsg ("allow file: ", laststr); yyval.n = 1; @@ -1947,7 +1765,7 @@ case 73: ; break;} case 74: -#line 888 "parser.y" +#line 892 "parser.y" { setlaststr (laststring); free (laststring); @@ -1955,13 +1773,13 @@ case 74: ; break;} case 75: -#line 900 "parser.y" +#line 904 "parser.y" { yyval = yyvsp[-1]; ; break;} case 76: -#line 907 "parser.y" +#line 911 "parser.y" { psmsg ("backend name:", SYMBOL); for (i = 0; i < cur_service.nbackend; i++) @@ -1972,7 +1790,7 @@ case 76: ; break;} case 77: -#line 919 "parser.y" +#line 923 "parser.y" { yyvsp[-1].n++; yyvsp[-1].set = xrealloc (yyvsp[-1].set, yyvsp[-1].n * sizeof(Confset)); @@ -1981,159 +1799,159 @@ case 77: ; break;} case 78: -#line 926 "parser.y" +#line 930 "parser.y" { yyval = yyvsp[0]; ; break;} case 79: -#line 933 "parser.y" +#line 937 "parser.y" { yyval = yyvsp[0]; ; break;} case 80: -#line 939 "parser.y" +#line 943 "parser.y" { psmsg ("backend server:", yyvsp[0].set[0].v.sval); yyval = yyvsp[0]; ; break;} case 81: -#line 944 "parser.y" +#line 948 "parser.y" { pimsg ("backend port:", yyvsp[0].set[0].v.ival); yyval = yyvsp[0]; ; break;} case 82: -#line 949 "parser.y" +#line 953 "parser.y" { pimsg ("backend verbosity:", yyvsp[0].set[0].v.ival); yyval = yyvsp[0]; ; break;} case 83: -#line 954 "parser.y" +#line 958 "parser.y" { psmsg ("backend onstart:", yyvsp[0].set[0].v.sval); yyval = yyvsp[0]; ; break;} case 84: -#line 959 "parser.y" +#line 963 "parser.y" { psmsg ("backend onend:", yyvsp[0].set[0].v.sval); yyval = yyvsp[0]; ; break;} case 85: -#line 964 "parser.y" +#line 968 "parser.y" { psmsg ("backend onfail:", yyvsp[0].set[0].v.sval); yyval = yyvsp[0]; ; break;} case 86: -#line 969 "parser.y" +#line 973 "parser.y" { psmsg ("backend trafficlog:", yyvsp[0].set[0].v.sval); yyval = yyvsp[0]; ; break;} case 87: -#line 974 "parser.y" +#line 978 "parser.y" { psmsg ("backend trafficlog:", yyvsp[0].set[0].v.sval); yyval = yyvsp[0]; ; break;} case 88: -#line 979 "parser.y" +#line 983 "parser.y" { pimsg ("backend weight:", yyvsp[0].set[0].v.ival); yyval = yyvsp[0]; ; break;} case 89: -#line 984 "parser.y" +#line 988 "parser.y" { pimsg ("backend decay:", yyvsp[0].set[0].v.ival); yyval = yyvsp[0]; ; break;} case 90: -#line 989 "parser.y" +#line 993 "parser.y" { pimsg ("backend maxconnections:", yyvsp[0].set[0].v.ival); yyval = yyvsp[0]; ; break;} case 91: -#line 994 "parser.y" +#line 998 "parser.y" { psmsg ("backend sticky cookie:", yyvsp[0].set[0].v.sval); yyval = yyvsp[0]; ; break;} case 92: -#line 999 "parser.y" +#line 1003 "parser.y" { psmsg ("addclientheader:", yyvsp[0].set[0].v.sval); yyval = yyvsp[0]; ; break;} case 93: -#line 1004 "parser.y" +#line 1008 "parser.y" { psmsg ("setclientheader:", yyvsp[0].set[0].v.sval); yyval = yyvsp[0]; ; break;} case 94: -#line 1009 "parser.y" +#line 1013 "parser.y" { psmsg ("appendclientheader:", yyvsp[0].set[0].v.sval); yyval = yyvsp[0]; ; break;} case 95: -#line 1014 "parser.y" +#line 1018 "parser.y" { psmsg ("addserverheader:", yyvsp[0].set[0].v.sval); yyval = yyvsp[0]; ; break;} case 96: -#line 1019 "parser.y" +#line 1023 "parser.y" { psmsg ("setserverheader:", yyvsp[0].set[0].v.sval); yyval = yyvsp[0]; ; break;} case 97: -#line 1024 "parser.y" +#line 1028 "parser.y" { psmsg ("appendserverheader:", yyvsp[0].set[0].v.sval); yyval = yyvsp[0]; ; break;} case 98: -#line 1029 "parser.y" +#line 1033 "parser.y" { pimsg ("backend retries:", yyvsp[0].set[0].v.ival); yyval = yyvsp[0]; ; break;} case 99: -#line 1034 "parser.y" +#line 1038 "parser.y" { pimsg ("backend state:", yyvsp[0].set[0].v.ival); yyval = yyvsp[0]; ; break;} case 100: -#line 1044 "parser.y" +#line 1048 "parser.y" { psmsg ("server statement:", laststr); yyval.n = 1; @@ -2143,7 +1961,7 @@ case 100: ; break;} case 101: -#line 1056 "parser.y" +#line 1060 "parser.y" { pimsg ("weight statement", lastnr); yyval.n = 1; @@ -2153,7 +1971,7 @@ case 101: ; break;} case 102: -#line 1068 "parser.y" +#line 1072 "parser.y" { pimsg ("decay statement", lastnr); yyval.n = 1; @@ -2163,13 +1981,13 @@ case 102: ; break;} case 103: -#line 1078 "parser.y" +#line 1082 "parser.y" { setlaststr (laststring); ; break;} case 104: -#line 1086 "parser.y" +#line 1090 "parser.y" { pimsg ("retries:", lastnr); yyval.n = 1; @@ -2179,7 +1997,7 @@ case 104: ; break;} case 105: -#line 1098 "parser.y" +#line 1102 "parser.y" { pimsg ("state:", lastnr); yyval.n = 1; @@ -2189,25 +2007,25 @@ case 105: ; break;} case 107: -#line 1113 "parser.y" +#line 1117 "parser.y" { lastnr = st_available; ; break;} case 108: -#line 1117 "parser.y" +#line 1121 "parser.y" { lastnr = st_unavailable; ; break;} case 109: -#line 1121 "parser.y" +#line 1125 "parser.y" { lastnr = st_down; ; break;} case 110: -#line 1129 "parser.y" +#line 1133 "parser.y" { psmsg ("onstart statement:", laststr); yyval.n = 1; @@ -2217,7 +2035,7 @@ case 110: ; break;} case 111: -#line 1141 "parser.y" +#line 1145 "parser.y" { psmsg ("onfail statement:", laststr); yyval.n = 1; @@ -2227,7 +2045,7 @@ case 111: ; break;} case 112: -#line 1153 "parser.y" +#line 1157 "parser.y" { psmsg ("onend statement:", laststr); yyval.n = 1; @@ -2237,7 +2055,7 @@ case 112: ; break;} case 113: -#line 1165 "parser.y" +#line 1169 "parser.y" { psmsg ("trafficlog statement:", laststr); yyval.n = 1; @@ -2247,7 +2065,7 @@ case 113: ; break;} case 114: -#line 1177 "parser.y" +#line 1181 "parser.y" { psmsg ("throughputlog statement:", laststr); yyval.n = 1; @@ -2257,7 +2075,7 @@ case 114: ; break;} case 115: -#line 1188 "parser.y" +#line 1192 "parser.y" { setlaststr (laststring); free (laststring); @@ -2265,7 +2083,7 @@ case 115: ; break;} case 116: -#line 1197 "parser.y" +#line 1201 "parser.y" { setlaststr (laststring); free (laststring); @@ -2273,7 +2091,7 @@ case 116: ; break;} case 117: -#line 1207 "parser.y" +#line 1211 "parser.y" { psmsg ("insertcookie statement:", laststr); yyval.n = 1; @@ -2283,7 +2101,7 @@ case 117: ; break;} case 118: -#line 1218 "parser.y" +#line 1222 "parser.y" { setlaststr (laststring); free (laststring); @@ -2291,7 +2109,7 @@ case 118: ; break;} case 119: -#line 1228 "parser.y" +#line 1232 "parser.y" { psmsg ("addclientheader statement:", laststr); yyval.n = 1; @@ -2301,7 +2119,7 @@ case 119: ; break;} case 120: -#line 1240 "parser.y" +#line 1244 "parser.y" { psmsg ("setclientheader statement:", laststr); yyval.n = 1; @@ -2311,7 +2129,7 @@ case 120: ; break;} case 121: -#line 1252 "parser.y" +#line 1256 "parser.y" { psmsg ("appendclientheader statement:", laststr); yyval.n = 1; @@ -2321,7 +2139,7 @@ case 121: ; break;} case 122: -#line 1264 "parser.y" +#line 1268 "parser.y" { psmsg ("addserverheader statement:", laststr); yyval.n = 1; @@ -2331,7 +2149,7 @@ case 122: ; break;} case 123: -#line 1276 "parser.y" +#line 1280 "parser.y" { psmsg ("setserverheader statement:", laststr); yyval.n = 1; @@ -2341,7 +2159,7 @@ case 123: ; break;} case 124: -#line 1288 "parser.y" +#line 1292 "parser.y" { psmsg ("appendserverheader statement:", laststr); yyval.n = 1; @@ -2351,7 +2169,7 @@ case 124: ; break;} case 125: -#line 1299 "parser.y" +#line 1303 "parser.y" { setlaststr (laststring); free (laststring); @@ -2359,155 +2177,169 @@ case 125: ; break;} case 126: -#line 1306 "parser.y" +#line 1310 "parser.y" { yyerrmsg = "HTTP header specifier expected"; ; break;} case 127: -#line 1311 "parser.y" +#line 1315 "parser.y" { yyerrmsg = "cookie specifier expected"; ; break;} case 128: -#line 1316 "parser.y" +#line 1320 "parser.y" { yyerrmsg = "number expected"; ; break;} case 129: -#line 1321 "parser.y" +#line 1325 "parser.y" { yyerrmsg = "hostname or IP address expected"; ; break;} case 130: -#line 1326 "parser.y" +#line 1330 "parser.y" { yyerrmsg = "'service' expected"; ; break;} case 131: -#line 1331 "parser.y" +#line 1335 "parser.y" { yyerrmsg = "backend definition statement expected"; ; break;} case 132: -#line 1336 "parser.y" +#line 1340 "parser.y" { yyerrmsg = "service body statement expected"; ; break;} case 133: -#line 1341 "parser.y" +#line 1345 "parser.y" { yyerrmsg = "semicolon (;) expected"; ; break;} case 134: -#line 1346 "parser.y" +#line 1350 "parser.y" { yyerrmsg = "'on' or 'off' expetcted"; ; break;} case 135: -#line 1351 "parser.y" +#line 1355 "parser.y" { yyerrmsg = "dispatch method expected"; ; break;} case 136: -#line 1356 "parser.y" +#line 1360 "parser.y" { yyerrmsg = "command line expected"; ; break;} case 137: -#line 1361 "parser.y" +#line 1365 "parser.y" { yyerrmsg = "file name expected"; ; break;} case 138: -#line 1366 "parser.y" +#line 1370 "parser.y" { yyerrmsg = "service name (identifier) expected"; ; break;} case 139: -#line 1371 "parser.y" +#line 1375 "parser.y" { yyerrmsg = "backend name (identifier) expected"; ; break;} case 140: -#line 1376 "parser.y" +#line 1380 "parser.y" { yyerrmsg = "IP address such as 1.2.3.4 or 'any' expected"; ; break;} case 141: -#line 1381 "parser.y" +#line 1385 "parser.y" { yyerrmsg = "Service type expected ('any', 'stickyhttp', ...)"; ; break;} case 142: -#line 1386 "parser.y" +#line 1390 "parser.y" { yyerrmsg = "Header inspection mode mode expected ('shallow' or 'deep')"; ; break;} case 143: -#line 1391 "parser.y" +#line 1395 "parser.y" { yyerrmsg = "IP filter(s) expected"; ; break;} case 144: -#line 1396 "parser.y" +#line 1400 "parser.y" { yyerrmsg = "username expected"; ; break;} case 145: -#line 1401 "parser.y" +#line 1405 "parser.y" { yyerrmsg = "state definition expected"; ; break;} } - -#line 705 "/sw/share/bison/bison.simple" - + /* the action file gets copied in in place of this dollarsign */ +#line 543 "/usr/share/bison.simple" yyvsp -= yylen; yyssp -= yylen; -#if YYLSP_NEEDED +#ifdef YYLSP_NEEDED yylsp -= yylen; #endif -#if YYDEBUG +#if YYDEBUG != 0 if (yydebug) { - short *yyssp1 = yyss - 1; - YYFPRINTF (stderr, "state stack now"); - while (yyssp1 != yyssp) - YYFPRINTF (stderr, " %d", *++yyssp1); - YYFPRINTF (stderr, "\n"); + short *ssp1 = yyss - 1; + fprintf (stderr, "state stack now"); + while (ssp1 != yyssp) + fprintf (stderr, " %d", *++ssp1); + fprintf (stderr, "\n"); } #endif *++yyvsp = yyval; -#if YYLSP_NEEDED - *++yylsp = yyloc; + +#ifdef YYLSP_NEEDED + yylsp++; + if (yylen == 0) + { + yylsp->first_line = yylloc.first_line; + yylsp->first_column = yylloc.first_column; + yylsp->last_line = (yylsp-1)->last_line; + yylsp->last_column = (yylsp-1)->last_column; + yylsp->text = 0; + } + else + { + yylsp->last_line = (yylsp+yylen-1)->last_line; + yylsp->last_column = (yylsp+yylen-1)->last_column; + } #endif - /* Now `shift' the result of the reduction. Determine what state - that goes to, based on the state we popped back to and the rule - number reduced by. */ + /* Now "shift" the result of the reduction. + Determine what state that goes to, + based on the state we popped back to + and the rule number reduced by. */ yyn = yyr1[yyn]; @@ -2519,13 +2351,10 @@ case 145: goto yynewstate; +yyerrlab: /* here on detecting error */ -/*------------------------------------. -| yyerrlab -- here on detecting error | -`------------------------------------*/ -yyerrlab: - /* If not already recovering from an error, report this error. */ - if (!yyerrstatus) + if (! yyerrstatus) + /* If not already recovering from an error, report this error. */ { ++yynerrs; @@ -2534,121 +2363,102 @@ yyerrlab: if (yyn > YYFLAG && yyn < YYLAST) { - YYSIZE_T yysize = 0; - char *yymsg; - int yyx, yycount; - - yycount = 0; - /* Start YYX at -YYN if negative to avoid negative indexes in - YYCHECK. */ - for (yyx = yyn < 0 ? -yyn : 0; - yyx < (int) (sizeof (yytname) / sizeof (char *)); yyx++) - if (yycheck[yyx + yyn] == yyx) - yysize += yystrlen (yytname[yyx]) + 15, yycount++; - yysize += yystrlen ("parse error, unexpected ") + 1; - yysize += yystrlen (yytname[YYTRANSLATE (yychar)]); - yymsg = (char *) YYSTACK_ALLOC (yysize); - if (yymsg != 0) + int size = 0; + char *msg; + int x, count; + + count = 0; + /* Start X at -yyn if nec to avoid negative indexes in yycheck. */ + for (x = (yyn < 0 ? -yyn : 0); + x < (sizeof(yytname) / sizeof(char *)); x++) + if (yycheck[x + yyn] == x) + size += strlen(yytname[x]) + 15, count++; + msg = (char *) malloc(size + 15); + if (msg != 0) { - char *yyp = yystpcpy (yymsg, "parse error, unexpected "); - yyp = yystpcpy (yyp, yytname[YYTRANSLATE (yychar)]); + strcpy(msg, "parse error"); - if (yycount < 5) + if (count < 5) { - yycount = 0; - for (yyx = yyn < 0 ? -yyn : 0; - yyx < (int) (sizeof (yytname) / sizeof (char *)); - yyx++) - if (yycheck[yyx + yyn] == yyx) + count = 0; + for (x = (yyn < 0 ? -yyn : 0); + x < (sizeof(yytname) / sizeof(char *)); x++) + if (yycheck[x + yyn] == x) { - const char *yyq = ! yycount ? ", expecting " : " or "; - yyp = yystpcpy (yyp, yyq); - yyp = yystpcpy (yyp, yytname[yyx]); - yycount++; + strcat(msg, count == 0 ? ", expecting `" : " or `"); + strcat(msg, yytname[x]); + strcat(msg, "'"); + count++; } } - yyerror (yymsg); - YYSTACK_FREE (yymsg); + yyerror(msg); + free(msg); } else - yyerror ("parse error; also virtual memory exhausted"); + yyerror ("parse error; also virtual memory exceeded"); } else -#endif /* defined (YYERROR_VERBOSE) */ - yyerror ("parse error"); +#endif /* YYERROR_VERBOSE */ + yyerror("parse error"); } - goto yyerrlab1; + goto yyerrlab1; +yyerrlab1: /* here on error raised explicitly by an action */ -/*--------------------------------------------------. -| yyerrlab1 -- error raised explicitly by an action | -`--------------------------------------------------*/ -yyerrlab1: if (yyerrstatus == 3) { - /* If just tried and failed to reuse lookahead token after an - error, discard it. */ + /* if just tried and failed to reuse lookahead token after an error, discard it. */ /* return failure if at end of input */ if (yychar == YYEOF) YYABORT; - YYDPRINTF ((stderr, "Discarding token %d (%s).\n", - yychar, yytname[yychar1])); + +#if YYDEBUG != 0 + if (yydebug) + fprintf(stderr, "Discarding token %d (%s).\n", yychar, yytname[yychar1]); +#endif + yychar = YYEMPTY; } - /* Else will try to reuse lookahead token after shifting the error - token. */ + /* Else will try to reuse lookahead token + after shifting the error token. */ yyerrstatus = 3; /* Each real token shifted decrements this */ goto yyerrhandle; +yyerrdefault: /* current state does not do anything special for the error token. */ -/*-------------------------------------------------------------------. -| yyerrdefault -- current state does not do anything special for the | -| error token. | -`-------------------------------------------------------------------*/ -yyerrdefault: #if 0 /* This is wrong; only states that explicitly want error tokens should shift them. */ - - /* If its default is to accept any token, ok. Otherwise pop it. */ - yyn = yydefact[yystate]; - if (yyn) - goto yydefault; + yyn = yydefact[yystate]; /* If its default is to accept any token, ok. Otherwise pop it.*/ + if (yyn) goto yydefault; #endif +yyerrpop: /* pop the current state because it cannot handle the error token */ -/*---------------------------------------------------------------. -| yyerrpop -- pop the current state because it cannot handle the | -| error token | -`---------------------------------------------------------------*/ -yyerrpop: - if (yyssp == yyss) - YYABORT; + if (yyssp == yyss) YYABORT; yyvsp--; yystate = *--yyssp; -#if YYLSP_NEEDED +#ifdef YYLSP_NEEDED yylsp--; #endif -#if YYDEBUG +#if YYDEBUG != 0 if (yydebug) { - short *yyssp1 = yyss - 1; - YYFPRINTF (stderr, "Error: state stack now"); - while (yyssp1 != yyssp) - YYFPRINTF (stderr, " %d", *++yyssp1); - YYFPRINTF (stderr, "\n"); + short *ssp1 = yyss - 1; + fprintf (stderr, "Error: state stack now"); + while (ssp1 != yyssp) + fprintf (stderr, " %d", *++ssp1); + fprintf (stderr, "\n"); } #endif -/*--------------. -| yyerrhandle. | -`--------------*/ yyerrhandle: + yyn = yypact[yystate]; if (yyn == YYFLAG) goto yyerrdefault; @@ -2671,44 +2481,41 @@ yyerrhandle: if (yyn == YYFINAL) YYACCEPT; - YYDPRINTF ((stderr, "Shifting error token, ")); +#if YYDEBUG != 0 + if (yydebug) + fprintf(stderr, "Shifting error token, "); +#endif *++yyvsp = yylval; -#if YYLSP_NEEDED +#ifdef YYLSP_NEEDED *++yylsp = yylloc; #endif yystate = yyn; goto yynewstate; + yyacceptlab: + /* YYACCEPT comes here. */ + if (yyfree_stacks) + { + free (yyss); + free (yyvs); +#ifdef YYLSP_NEEDED + free (yyls); +#endif + } + return 0; -/*-------------------------------------. -| yyacceptlab -- YYACCEPT comes here. | -`-------------------------------------*/ -yyacceptlab: - yyresult = 0; - goto yyreturn; - -/*-----------------------------------. -| yyabortlab -- YYABORT comes here. | -`-----------------------------------*/ -yyabortlab: - yyresult = 1; - goto yyreturn; - -/*---------------------------------------------. -| yyoverflowab -- parser overflow comes here. | -`---------------------------------------------*/ -yyoverflowlab: - yyerror ("parser stack overflow"); - yyresult = 2; - /* Fall through. */ - -yyreturn: -#ifndef yyoverflow - if (yyss != yyssa) - YYSTACK_FREE (yyss); + yyabortlab: + /* YYABORT comes here. */ + if (yyfree_stacks) + { + free (yyss); + free (yyvs); +#ifdef YYLSP_NEEDED + free (yyls); #endif - return yyresult; + } + return 1; } -#line 1405 "parser.y" +#line 1409 "parser.y" diff --git a/src/lib/parser.h b/src/lib/parser.h @@ -1,69 +1,63 @@ -#ifndef BISON_PARSER_H -# define BISON_PARSER_H - -# ifndef YYSTYPE -# define YYSTYPE int -# define YYSTYPE_IS_TRIVIAL 1 -# endif -# define IDENTIFIER 257 -# define NUMBER 258 -# define STRING 259 -# define SERVICE 260 -# define PORT 261 -# define VERBOSITY 262 -# define MAXCONNECTIONS 263 -# define TYPE 264 -# define ANY 265 -# define HTTP 266 -# define BACKEND 267 -# define SERVER 268 -# define BINDTO 269 -# define CONNECTIONTIMEOUT 270 -# define ON 271 -# define OFF 272 -# define DISPATCHMODE 273 -# define ROUNDROBIN 274 -# define RANDOM 275 -# define BYDURATION 276 -# define BYSIZE 277 -# define BYCONNECTIONS 278 -# define BYORDER 279 -# define BYCLIENTIP 280 -# define OVER 281 -# define DECAY 282 -# define REVIVINGINTERVAL 283 -# define CHECKINTERVAL 284 -# define RETRIES 285 -# define SHMKEY 286 -# define WEIGHT 287 -# define ONSTART 288 -# define ONFAIL 289 -# define BACKLOG 290 -# define THROUGHPUTLOG 291 -# define TRAFFICLOG 292 -# define STICKYCOOKIE 293 -# define ADDCLIENTHEADER 294 -# define SETCLIENTHEADER 295 -# define APPENDCLIENTHEADER 296 -# define ADDSERVERHEADER 297 -# define SETSERVERHEADER 298 -# define APPENDSERVERHEADER 299 -# define ALLOWFROM 300 -# define DENYFROM 301 -# define ALLOWFILE 302 -# define DENYFILE 303 -# define EXTERNALHANDLER 304 -# define USERACCOUNT 305 -# define ONEND 306 -# define HEADERINSPECTION 307 -# define DEEP 308 -# define SHALLOW 309 -# define STATE 310 -# define AVAILABLE 311 -# define UNAVAILABLE 312 -# define DOWN 313 +#ifndef YYSTYPE +#define YYSTYPE int +#endif +#define IDENTIFIER 257 +#define NUMBER 258 +#define STRING 259 +#define SERVICE 260 +#define PORT 261 +#define VERBOSITY 262 +#define MAXCONNECTIONS 263 +#define TYPE 264 +#define ANY 265 +#define HTTP 266 +#define BACKEND 267 +#define SERVER 268 +#define BINDTO 269 +#define CONNECTIONTIMEOUT 270 +#define ON 271 +#define OFF 272 +#define DISPATCHMODE 273 +#define ROUNDROBIN 274 +#define RANDOM 275 +#define BYDURATION 276 +#define BYSIZE 277 +#define BYCONNECTIONS 278 +#define BYORDER 279 +#define BYCLIENTIP 280 +#define OVER 281 +#define DECAY 282 +#define REVIVINGINTERVAL 283 +#define CHECKINTERVAL 284 +#define RETRIES 285 +#define SHMKEY 286 +#define WEIGHT 287 +#define ONSTART 288 +#define ONFAIL 289 +#define BACKLOG 290 +#define THROUGHPUTLOG 291 +#define TRAFFICLOG 292 +#define STICKYCOOKIE 293 +#define ADDCLIENTHEADER 294 +#define SETCLIENTHEADER 295 +#define APPENDCLIENTHEADER 296 +#define ADDSERVERHEADER 297 +#define SETSERVERHEADER 298 +#define APPENDSERVERHEADER 299 +#define ALLOWFROM 300 +#define DENYFROM 301 +#define ALLOWFILE 302 +#define DENYFILE 303 +#define EXTERNALHANDLER 304 +#define USERACCOUNT 305 +#define ONEND 306 +#define HEADERINSPECTION 307 +#define DEEP 308 +#define SHALLOW 309 +#define STATE 310 +#define AVAILABLE 311 +#define UNAVAILABLE 312 +#define DOWN 313 extern YYSTYPE yylval; - -#endif /* not BISON_PARSER_H */ diff --git a/src/lib/parser.y b/src/lib/parser.y @@ -581,7 +581,9 @@ dispatchtail: | dispatchext | - /* empty */ + /* empty */ { + $$.n = 0; + } ; dispatchover: @@ -721,7 +723,9 @@ checkintervalstatement: opt_externalhandler: externalhandler | - /* empty */ + /* empty */ { + $$.n = 0; + } ; externalhandler: diff --git a/src/lib/parserclose.c b/src/lib/parserclose.c @@ -1,5 +1,5 @@ /************************************************************************* - * This file is part of Crosroads 1.70, a load balancer and fail over + * This file is part of Crosroads 1.71, a load balancer and fail over * utility for TCP. Copyright (c) Karel Kubat, distributed under GPL. * Visit http://crossroads.e-tunity.com for information. *************************************************************************/ diff --git a/src/lib/parserfilename.c b/src/lib/parserfilename.c @@ -1,5 +1,5 @@ /************************************************************************* - * This file is part of Crosroads 1.70, a load balancer and fail over + * This file is part of Crosroads 1.71, a load balancer and fail over * utility for TCP. Copyright (c) Karel Kubat, distributed under GPL. * Visit http://crossroads.e-tunity.com for information. *************************************************************************/ diff --git a/src/lib/parserinput.c b/src/lib/parserinput.c @@ -1,5 +1,5 @@ /************************************************************************* - * This file is part of Crosroads 1.70, a load balancer and fail over + * This file is part of Crosroads 1.71, a load balancer and fail over * utility for TCP. Copyright (c) Karel Kubat, distributed under GPL. * Visit http://crossroads.e-tunity.com for information. *************************************************************************/ diff --git a/src/lib/parseropen.c b/src/lib/parseropen.c @@ -1,5 +1,5 @@ /************************************************************************* - * This file is part of Crosroads 1.70, a load balancer and fail over + * This file is part of Crosroads 1.71, a load balancer and fail over * utility for TCP. Copyright (c) Karel Kubat, distributed under GPL. * Visit http://crossroads.e-tunity.com for information. *************************************************************************/ diff --git a/src/lib/parserrun.c b/src/lib/parserrun.c @@ -1,5 +1,5 @@ /************************************************************************* - * This file is part of Crosroads 1.70, a load balancer and fail over + * This file is part of Crosroads 1.71, a load balancer and fail over * utility for TCP. Copyright (c) Karel Kubat, distributed under GPL. * Visit http://crossroads.e-tunity.com for information. *************************************************************************/ diff --git a/src/lib/parserskipchar.c b/src/lib/parserskipchar.c @@ -1,5 +1,5 @@ /************************************************************************* - * This file is part of Crosroads 1.70, a load balancer and fail over + * This file is part of Crosroads 1.71, a load balancer and fail over * utility for TCP. Copyright (c) Karel Kubat, distributed under GPL. * Visit http://crossroads.e-tunity.com for information. *************************************************************************/ diff --git a/src/lib/parserskipline.c b/src/lib/parserskipline.c @@ -1,5 +1,5 @@ /************************************************************************* - * This file is part of Crosroads 1.70, a load balancer and fail over + * This file is part of Crosroads 1.71, a load balancer and fail over * utility for TCP. Copyright (c) Karel Kubat, distributed under GPL. * Visit http://crossroads.e-tunity.com for information. *************************************************************************/ diff --git a/src/lib/runservice.c b/src/lib/runservice.c @@ -1,5 +1,5 @@ /************************************************************************* - * This file is part of Crosroads 1.70, a load balancer and fail over + * This file is part of Crosroads 1.71, a load balancer and fail over * utility for TCP. Copyright (c) Karel Kubat, distributed under GPL. * Visit http://crossroads.e-tunity.com for information. *************************************************************************/ diff --git a/src/lib/setproctitle.c b/src/lib/setproctitle.c @@ -1,5 +1,5 @@ /************************************************************************* - * This file is part of Crosroads 1.70, a load balancer and fail over + * This file is part of Crosroads 1.71, a load balancer and fail over * utility for TCP. Copyright (c) Karel Kubat, distributed under GPL. * Visit http://crossroads.e-tunity.com for information. *************************************************************************/ diff --git a/src/lib/showconfig.c b/src/lib/showconfig.c @@ -1,5 +1,5 @@ /************************************************************************* - * This file is part of Crosroads 1.70, a load balancer and fail over + * This file is part of Crosroads 1.71, a load balancer and fail over * utility for TCP. Copyright (c) Karel Kubat, distributed under GPL. * Visit http://crossroads.e-tunity.com for information. *************************************************************************/ diff --git a/src/lib/stagetostring.c b/src/lib/stagetostring.c @@ -1,5 +1,5 @@ /************************************************************************* - * This file is part of Crosroads 1.70, a load balancer and fail over + * This file is part of Crosroads 1.71, a load balancer and fail over * utility for TCP. Copyright (c) Karel Kubat, distributed under GPL. * Visit http://crossroads.e-tunity.com for information. *************************************************************************/ diff --git a/src/lib/statetostring.c b/src/lib/statetostring.c @@ -1,5 +1,5 @@ /************************************************************************* - * This file is part of Crosroads 1.70, a load balancer and fail over + * This file is part of Crosroads 1.71, a load balancer and fail over * utility for TCP. Copyright (c) Karel Kubat, distributed under GPL. * Visit http://crossroads.e-tunity.com for information. *************************************************************************/ diff --git a/src/lib/strcasestr.c b/src/lib/strcasestr.c @@ -1,5 +1,5 @@ /************************************************************************* - * This file is part of Crosroads 1.70, a load balancer and fail over + * This file is part of Crosroads 1.71, a load balancer and fail over * utility for TCP. Copyright (c) Karel Kubat, distributed under GPL. * Visit http://crossroads.e-tunity.com for information. *************************************************************************/ diff --git a/src/lib/strexpandformat.c b/src/lib/strexpandformat.c @@ -1,5 +1,5 @@ /************************************************************************* - * This file is part of Crosroads 1.70, a load balancer and fail over + * This file is part of Crosroads 1.71, a load balancer and fail over * utility for TCP. Copyright (c) Karel Kubat, distributed under GPL. * Visit http://crossroads.e-tunity.com for information. *************************************************************************/ diff --git a/src/lib/stringtostate.c b/src/lib/stringtostate.c @@ -1,5 +1,5 @@ /************************************************************************* - * This file is part of Crosroads 1.70, a load balancer and fail over + * This file is part of Crosroads 1.71, a load balancer and fail over * utility for TCP. Copyright (c) Karel Kubat, distributed under GPL. * Visit http://crossroads.e-tunity.com for information. *************************************************************************/ diff --git a/src/lib/strlcat.c b/src/lib/strlcat.c @@ -1,5 +1,5 @@ /************************************************************************* - * This file is part of Crosroads 1.70, a load balancer and fail over + * This file is part of Crosroads 1.71, a load balancer and fail over * utility for TCP. Copyright (c) Karel Kubat, distributed under GPL. * Visit http://crossroads.e-tunity.com for information. *************************************************************************/ diff --git a/src/lib/strprintf.c b/src/lib/strprintf.c @@ -1,5 +1,5 @@ /************************************************************************* - * This file is part of Crosroads 1.70, a load balancer and fail over + * This file is part of Crosroads 1.71, a load balancer and fail over * utility for TCP. Copyright (c) Karel Kubat, distributed under GPL. * Visit http://crossroads.e-tunity.com for information. *************************************************************************/ diff --git a/src/lib/strupr.c b/src/lib/strupr.c @@ -1,5 +1,5 @@ /************************************************************************* - * This file is part of Crosroads 1.70, a load balancer and fail over + * This file is part of Crosroads 1.71, a load balancer and fail over * utility for TCP. Copyright (c) Karel Kubat, distributed under GPL. * Visit http://crossroads.e-tunity.com for information. *************************************************************************/ diff --git a/src/lib/strvprintf.c b/src/lib/strvprintf.c @@ -1,5 +1,5 @@ /************************************************************************* - * This file is part of Crosroads 1.70, a load balancer and fail over + * This file is part of Crosroads 1.71, a load balancer and fail over * utility for TCP. Copyright (c) Karel Kubat, distributed under GPL. * Visit http://crossroads.e-tunity.com for information. *************************************************************************/ diff --git a/src/lib/symtabend.c b/src/lib/symtabend.c @@ -1,5 +1,5 @@ /************************************************************************* - * This file is part of Crosroads 1.70, a load balancer and fail over + * This file is part of Crosroads 1.71, a load balancer and fail over * utility for TCP. Copyright (c) Karel Kubat, distributed under GPL. * Visit http://crossroads.e-tunity.com for information. *************************************************************************/ diff --git a/src/lib/symtablookup.c b/src/lib/symtablookup.c @@ -1,5 +1,5 @@ /************************************************************************* - * This file is part of Crosroads 1.70, a load balancer and fail over + * This file is part of Crosroads 1.71, a load balancer and fail over * utility for TCP. Copyright (c) Karel Kubat, distributed under GPL. * Visit http://crossroads.e-tunity.com for information. *************************************************************************/ diff --git a/src/lib/symtabset.c b/src/lib/symtabset.c @@ -1,5 +1,5 @@ /************************************************************************* - * This file is part of Crosroads 1.70, a load balancer and fail over + * This file is part of Crosroads 1.71, a load balancer and fail over * utility for TCP. Copyright (c) Karel Kubat, distributed under GPL. * Visit http://crossroads.e-tunity.com for information. *************************************************************************/ diff --git a/src/lib/symtabstart.c b/src/lib/symtabstart.c @@ -1,5 +1,5 @@ /************************************************************************* - * This file is part of Crosroads 1.70, a load balancer and fail over + * This file is part of Crosroads 1.71, a load balancer and fail over * utility for TCP. Copyright (c) Karel Kubat, distributed under GPL. * Visit http://crossroads.e-tunity.com for information. *************************************************************************/ diff --git a/src/lib/sysrun.c b/src/lib/sysrun.c @@ -1,5 +1,5 @@ /************************************************************************* - * This file is part of Crosroads 1.70, a load balancer and fail over + * This file is part of Crosroads 1.71, a load balancer and fail over * utility for TCP. Copyright (c) Karel Kubat, distributed under GPL. * Visit http://crossroads.e-tunity.com for information. *************************************************************************/ diff --git a/src/lib/tcpserve.c b/src/lib/tcpserve.c @@ -1,5 +1,5 @@ /************************************************************************* - * This file is part of Crosroads 1.70, a load balancer and fail over + * This file is part of Crosroads 1.71, a load balancer and fail over * utility for TCP. Copyright (c) Karel Kubat, distributed under GPL. * Visit http://crossroads.e-tunity.com for information. *************************************************************************/ diff --git a/src/lib/thruputlog.c b/src/lib/thruputlog.c @@ -1,5 +1,5 @@ /************************************************************************* - * This file is part of Crosroads 1.70, a load balancer and fail over + * This file is part of Crosroads 1.71, a load balancer and fail over * utility for TCP. Copyright (c) Karel Kubat, distributed under GPL. * Visit http://crossroads.e-tunity.com for information. *************************************************************************/ diff --git a/src/lib/trafficlog.c b/src/lib/trafficlog.c @@ -1,5 +1,5 @@ /************************************************************************* - * This file is part of Crosroads 1.70, a load balancer and fail over + * This file is part of Crosroads 1.71, a load balancer and fail over * utility for TCP. Copyright (c) Karel Kubat, distributed under GPL. * Visit http://crossroads.e-tunity.com for information. *************************************************************************/ diff --git a/src/lib/uidassume.c b/src/lib/uidassume.c @@ -1,5 +1,5 @@ /************************************************************************* - * This file is part of Crosroads 1.70, a load balancer and fail over + * This file is part of Crosroads 1.71, a load balancer and fail over * utility for TCP. Copyright (c) Karel Kubat, distributed under GPL. * Visit http://crossroads.e-tunity.com for information. *************************************************************************/ diff --git a/src/lib/uidrestore.c b/src/lib/uidrestore.c @@ -1,5 +1,5 @@ /************************************************************************* - * This file is part of Crosroads 1.70, a load balancer and fail over + * This file is part of Crosroads 1.71, a load balancer and fail over * utility for TCP. Copyright (c) Karel Kubat, distributed under GPL. * Visit http://crossroads.e-tunity.com for information. *************************************************************************/ diff --git a/src/lib/unlockreporter.c b/src/lib/unlockreporter.c @@ -1,5 +1,5 @@ /************************************************************************* - * This file is part of Crosroads 1.70, a load balancer and fail over + * This file is part of Crosroads 1.71, a load balancer and fail over * utility for TCP. Copyright (c) Karel Kubat, distributed under GPL. * Visit http://crossroads.e-tunity.com for information. *************************************************************************/ diff --git a/src/lib/usage.c b/src/lib/usage.c @@ -1,5 +1,5 @@ /************************************************************************* - * This file is part of Crosroads 1.70, a load balancer and fail over + * This file is part of Crosroads 1.71, a load balancer and fail over * utility for TCP. Copyright (c) Karel Kubat, distributed under GPL. * Visit http://crossroads.e-tunity.com for information. *************************************************************************/ diff --git a/src/lib/vsyslog.c b/src/lib/vsyslog.c @@ -1,5 +1,5 @@ /************************************************************************* - * This file is part of Crosroads 1.70, a load balancer and fail over + * This file is part of Crosroads 1.71, a load balancer and fail over * utility for TCP. Copyright (c) Karel Kubat, distributed under GPL. * Visit http://crossroads.e-tunity.com for information. *************************************************************************/ diff --git a/src/lib/wakeuphandler.c b/src/lib/wakeuphandler.c @@ -1,5 +1,5 @@ /************************************************************************* - * This file is part of Crosroads 1.70, a load balancer and fail over + * This file is part of Crosroads 1.71, a load balancer and fail over * utility for TCP. Copyright (c) Karel Kubat, distributed under GPL. * Visit http://crossroads.e-tunity.com for information. *************************************************************************/ diff --git a/src/lib/warning.c b/src/lib/warning.c @@ -1,5 +1,5 @@ /************************************************************************* - * This file is part of Crosroads 1.70, a load balancer and fail over + * This file is part of Crosroads 1.71, a load balancer and fail over * utility for TCP. Copyright (c) Karel Kubat, distributed under GPL. * Visit http://crossroads.e-tunity.com for information. *************************************************************************/ diff --git a/src/lib/writelog.c b/src/lib/writelog.c @@ -1,5 +1,5 @@ /************************************************************************* - * This file is part of Crosroads 1.70, a load balancer and fail over + * This file is part of Crosroads 1.71, a load balancer and fail over * utility for TCP. Copyright (c) Karel Kubat, distributed under GPL. * Visit http://crossroads.e-tunity.com for information. *************************************************************************/ diff --git a/src/lib/xcalloc.c b/src/lib/xcalloc.c @@ -1,5 +1,5 @@ /************************************************************************* - * This file is part of Crosroads 1.70, a load balancer and fail over + * This file is part of Crosroads 1.71, a load balancer and fail over * utility for TCP. Copyright (c) Karel Kubat, distributed under GPL. * Visit http://crossroads.e-tunity.com for information. *************************************************************************/ diff --git a/src/lib/xmalloc.c b/src/lib/xmalloc.c @@ -1,5 +1,5 @@ /************************************************************************* - * This file is part of Crosroads 1.70, a load balancer and fail over + * This file is part of Crosroads 1.71, a load balancer and fail over * utility for TCP. Copyright (c) Karel Kubat, distributed under GPL. * Visit http://crossroads.e-tunity.com for information. *************************************************************************/ diff --git a/src/lib/xrealloc.c b/src/lib/xrealloc.c @@ -1,5 +1,5 @@ /************************************************************************* - * This file is part of Crosroads 1.70, a load balancer and fail over + * This file is part of Crosroads 1.71, a load balancer and fail over * utility for TCP. Copyright (c) Karel Kubat, distributed under GPL. * Visit http://crossroads.e-tunity.com for information. *************************************************************************/ diff --git a/src/lib/xstrcat.c b/src/lib/xstrcat.c @@ -1,5 +1,5 @@ /************************************************************************* - * This file is part of Crosroads 1.70, a load balancer and fail over + * This file is part of Crosroads 1.71, a load balancer and fail over * utility for TCP. Copyright (c) Karel Kubat, distributed under GPL. * Visit http://crossroads.e-tunity.com for information. *************************************************************************/ diff --git a/src/lib/xstrcatch.c b/src/lib/xstrcatch.c @@ -1,5 +1,5 @@ /************************************************************************* - * This file is part of Crosroads 1.70, a load balancer and fail over + * This file is part of Crosroads 1.71, a load balancer and fail over * utility for TCP. Copyright (c) Karel Kubat, distributed under GPL. * Visit http://crossroads.e-tunity.com for information. *************************************************************************/ diff --git a/src/lib/xstrdup.c b/src/lib/xstrdup.c @@ -1,5 +1,5 @@ /************************************************************************* - * This file is part of Crosroads 1.70, a load balancer and fail over + * This file is part of Crosroads 1.71, a load balancer and fail over * utility for TCP. Copyright (c) Karel Kubat, distributed under GPL. * Visit http://crossroads.e-tunity.com for information. *************************************************************************/