Author: glen Date: Fri Oct 16 12:59:58 2009 GMT Module: packages Tag: HEAD ---- Log message: - apply branch.diff
---- Files affected: packages/varnish: varnish.spec (1.39 -> 1.40) , branch.diff (NONE -> 1.1) (NEW), branch.sh (NONE -> 1.1) (NEW) ---- Diffs: ================================================================ Index: packages/varnish/varnish.spec diff -u packages/varnish/varnish.spec:1.39 packages/varnish/varnish.spec:1.40 --- packages/varnish/varnish.spec:1.39 Mon Oct 5 14:43:49 2009 +++ packages/varnish/varnish.spec Fri Oct 16 14:59:53 2009 @@ -5,7 +5,7 @@ Summary(pl.UTF-8): Varnish - wydajny akcelerator HTTP Name: varnish Version: 2.0.4 -Release: 2 +Release: 2.1 License: BSD Group: Networking/Daemons/HTTP Source0: http://dl.sourceforge.net/varnish/%{name}-%{version}.tar.gz @@ -17,6 +17,7 @@ Source5: %{name}ncsa.sysconfig Source6: %{name}.logrotate Source7: %{name}.conf +Patch100: branch.diff Patch0: %{name}-build.patch URL: http://www.varnish-cache.org/ BuildRequires: autoconf @@ -87,6 +88,7 @@ %prep %setup -q +%patch100 -p0 %patch0 -p1 %build @@ -158,7 +160,7 @@ %files %defattr(644,root,root,755) -%doc LICENSE README ChangeLog +%doc LICENSE README ChangeLog etc/*.vcl %dir %{_sysconfdir}/%{name} %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/%{name}/default.vcl %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/varnish @@ -198,6 +200,9 @@ All persons listed below can be reached at <cvs_login>@pld-linux.org $Log$ +Revision 1.40 2009/10/16 12:59:53 glen +- apply branch.diff + Revision 1.39 2009/10/05 12:43:49 glen - -libs split; rel 2 ================================================================ Index: packages/varnish/branch.diff diff -u /dev/null packages/varnish/branch.diff:1.1 --- /dev/null Fri Oct 16 14:59:58 2009 +++ packages/varnish/branch.diff Fri Oct 16 14:59:52 2009 @@ -0,0 +1,4712 @@ +Index: include/vsb.h +=================================================================== +--- include/vsb.h (.../tags/varnish-2.0.4/varnish-cache) ++++ include/vsb.h (.../branches/2.0/varnish-cache) +@@ -77,7 +77,8 @@ + int vsb_len(struct vsb *); + int vsb_done(const struct vsb *); + void vsb_delete(struct vsb *); +-void vsb_quote(struct vsb *s, const char *p, int how); ++void vsb_quote(struct vsb *s, const char *p, int len, int how); ++const char *vsb_unquote(struct vsb *s, const char *p, int len, int how); + #ifdef __cplusplus + }; + #endif +Index: include/compat/execinfo.h +=================================================================== +--- include/compat/execinfo.h (.../tags/varnish-2.0.4/varnish-cache) ++++ include/compat/execinfo.h (.../branches/2.0/varnish-cache) +@@ -0,0 +1,44 @@ ++/* ++ * Copyright (c) 2003 Maxim Sobolev <[email protected]> ++ * All rights reserved. ++ * ++ * Redistribution and use in source and binary forms, with or without ++ * modification, are permitted provided that the following conditions ++ * are met: ++ * 1. Redistributions of source code must retain the above copyright ++ * notice, this list of conditions and the following disclaimer. ++ * 2. Redistributions in binary form must reproduce the above copyright ++ * notice, this list of conditions and the following disclaimer in the ++ * documentation and/or other materials provided with the distribution. ++ * ++ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND ++ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE ++ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ++ * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE ++ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL ++ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS ++ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) ++ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT ++ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY ++ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF ++ * SUCH DAMAGE. ++ * ++ * $Id$ ++ */ ++ ++#ifndef COMPAT_EXECINFO_H_INCLUDED ++#define COMPAT_EXECINFO_H_INCLUDED ++ ++#ifdef __cplusplus ++extern "C" { ++#endif ++ ++int backtrace(void **, int); ++char ** backtrace_symbols(void *const *, int); ++void backtrace_symbols_fd(void *const *, int, int); ++ ++#ifdef __cplusplus ++} ++#endif ++ ++#endif /* COMPAT_EXECINFO_H_INCLUDED */ +Index: include/libvarnish.h +=================================================================== +--- include/libvarnish.h (.../tags/varnish-2.0.4/varnish-cache) ++++ include/libvarnish.h (.../branches/2.0/varnish-cache) +@@ -42,6 +42,8 @@ + /* from libvarnish/argv.c */ + void FreeArgv(char **argv); + char **ParseArgv(const char *s, int flag); ++char *BackSlashDecode(const char *s, const char *e); ++int BackSlash(const char *s, char *res); + #define ARGV_COMMENT (1 << 0) + #define ARGV_COMMA (1 << 1) + +@@ -65,6 +67,7 @@ + int TCP_filter_http(int sock); + void TCP_blocking(int sock); + void TCP_nonblocking(int sock); ++void TCP_linger(int sock, int linger); + #ifdef SOL_SOCKET + void TCP_name(const struct sockaddr *addr, unsigned l, char *abuf, + unsigned alen, char *pbuf, unsigned plen); +Index: include/vrt_obj.h +=================================================================== +--- include/vrt_obj.h (.../tags/varnish-2.0.4/varnish-cache) ++++ include/vrt_obj.h (.../branches/2.0/varnish-cache) +@@ -24,6 +24,8 @@ + double VRT_r_req_grace(struct sess *); + void VRT_l_req_grace(struct sess *, double); + const char * VRT_r_req_xid(struct sess *); ++unsigned VRT_r_req_esi(struct sess *); ++void VRT_l_req_esi(struct sess *, unsigned); + const char * VRT_r_bereq_request(const struct sess *); + void VRT_l_bereq_request(const struct sess *, const char *, ...); + const char * VRT_r_bereq_url(const struct sess *); +Index: include/shmlog_tags.h +=================================================================== +--- include/shmlog_tags.h (.../tags/varnish-2.0.4/varnish-cache) ++++ include/shmlog_tags.h (.../branches/2.0/varnish-cache) +@@ -101,3 +101,5 @@ + SLTM(Hash) + + SLTM(Backend_health) ++ ++SLTM(FetchError) +Index: include/vrt.h +=================================================================== +--- include/vrt.h (.../tags/varnish-2.0.4/varnish-cache) ++++ include/vrt.h (.../branches/2.0/varnish-cache) +@@ -54,6 +54,7 @@ + double interval; + unsigned window; + unsigned threshold; ++ unsigned initial; + }; + + /* +Index: include/stat_field.h +=================================================================== +--- include/stat_field.h (.../tags/varnish-2.0.4/varnish-cache) ++++ include/stat_field.h (.../branches/2.0/varnish-cache) +@@ -30,21 +30,33 @@ + */ + + MAC_STAT(client_conn, uint64_t, 'a', "Client connections accepted") ++MAC_STAT(client_drop, uint64_t, 'a', "Connection dropped, no sess") + MAC_STAT(client_req, uint64_t, 'a', "Client requests received") + + MAC_STAT(cache_hit, uint64_t, 'a', "Cache hits") + MAC_STAT(cache_hitpass, uint64_t, 'a', "Cache hits for pass") + MAC_STAT(cache_miss, uint64_t, 'a', "Cache misses") + +-MAC_STAT(backend_conn, uint64_t, 'a', "Backend connections success") +-MAC_STAT(backend_unhealthy, uint64_t, 'a', +- "Backend connections not attempted") +-MAC_STAT(backend_busy, uint64_t, 'a', "Backend connections too many") +-MAC_STAT(backend_fail, uint64_t, 'a', "Backend connections failures") +-MAC_STAT(backend_reuse, uint64_t, 'a', "Backend connections reuses") +-MAC_STAT(backend_recycle, uint64_t, 'a', "Backend connections recycles") +-MAC_STAT(backend_unused, uint64_t, 'a', "Backend connections unused") ++MAC_STAT(backend_conn, uint64_t, 'a', "Backend conn. success") ++MAC_STAT(backend_unhealthy, uint64_t, 'a', "Backend conn. not attempted") ++MAC_STAT(backend_busy, uint64_t, 'a', "Backend conn. too many") ++MAC_STAT(backend_fail, uint64_t, 'a', "Backend conn. failures") ++MAC_STAT(backend_reuse, uint64_t, 'a', "Backend conn. reuses") ++MAC_STAT(backend_toolate, uint64_t, 'a', "Backend conn. was closed") ++MAC_STAT(backend_recycle, uint64_t, 'a', "Backend conn. recycles") ++MAC_STAT(backend_unused, uint64_t, 'a', "Backend conn. unused") + ++ ++MAC_STAT(fetch_head, uint64_t, 'a', "Fetch head") ++MAC_STAT(fetch_length, uint64_t, 'a', "Fetch with Length") ++MAC_STAT(fetch_chunked, uint64_t, 'a', "Fetch chunked") ++MAC_STAT(fetch_eof, uint64_t, 'a', "Fetch EOF") ++MAC_STAT(fetch_bad, uint64_t, 'a', "Fetch had bad headers") ++MAC_STAT(fetch_close, uint64_t, 'a', "Fetch wanted close") ++MAC_STAT(fetch_oldhttp, uint64_t, 'a', "Fetch pre HTTP/1.1 closed") ++MAC_STAT(fetch_zero, uint64_t, 'a', "Fetch zero len") ++MAC_STAT(fetch_failed, uint64_t, 'a', "Fetch failed") ++ + MAC_STAT(n_srcaddr, uint64_t, 'i', "N struct srcaddr") + MAC_STAT(n_srcaddr_act, uint64_t, 'i', "N active struct srcaddr") + MAC_STAT(n_sess_mem, uint64_t, 'i', "N struct sess_mem") +Index: include/Makefile.am +=================================================================== +--- include/Makefile.am (.../tags/varnish-2.0.4/varnish-cache) ++++ include/Makefile.am (.../branches/2.0/varnish-cache) +@@ -14,6 +14,7 @@ + cli_priv.h \ + compat/asprintf.h \ + compat/daemon.h \ ++ compat/execinfo.h \ + compat/setproctitle.h \ + compat/srandomdev.h \ + compat/strlcat.h \ +Index: configure.ac +=================================================================== +--- configure.ac (.../tags/varnish-2.0.4/varnish-cache) ++++ configure.ac (.../branches/2.0/varnish-cache) +@@ -81,6 +81,7 @@ + AC_CHECK_HEADERS([sys/statvfs.h]) + AC_CHECK_HEADERS([sys/vfs.h]) + AC_CHECK_HEADERS([endian.h]) ++AC_CHECK_HEADERS([execinfo.h]) + AC_CHECK_HEADERS([netinet/in.h]) + AC_CHECK_HEADERS([pthread_np.h]) + AC_CHECK_HEADERS([stddef.h]) +@@ -102,6 +103,7 @@ + AC_FUNC_VPRINTF + AC_CHECK_FUNCS([strerror]) + AC_FUNC_STRERROR_R ++AC_CHECK_FUNCS([dladdr]) + AC_CHECK_FUNCS([socket]) + AC_CHECK_FUNCS([strptime]) + AC_CHECK_FUNCS([fmtcheck]) +@@ -360,6 +362,15 @@ + fi + AC_DEFINE_UNQUOTED([VCC_CC],"$VCC_CC",[C compiler command line for VCL code]) + ++# Define HTTP_HDR_MAX_VAL ++AC_ARG_WITH(max-header-fields, ++ AS_HELP_STRING([--with-max-header-fields=NUM], ++ [How many header fields to support (default=32)]), ++ [], ++ [with_max_header_fields=32]) ++ ++AC_DEFINE_UNQUOTED(HTTP_HDR_MAX_VAL, $with_max_header_fields, [Define maximum number of header fields supported by varnish ]) ++ + # Use jemalloc on Linux + JEMALLOC_SUBDIR= + JEMALLOC_LDADD= +Index: lib/libvarnish/argv.c +=================================================================== +--- lib/libvarnish/argv.c (.../tags/varnish-2.0.4/varnish-cache) ++++ lib/libvarnish/argv.c (.../branches/2.0/varnish-cache) +@@ -43,11 +43,12 @@ + #include <ctype.h> + #include <stdlib.h> + #include <stdio.h> ++#include <string.h> + #include <stdint.h> + + #include "libvarnish.h" + +-static int ++int + BackSlash(const char *s, char *res) + { + int r; +@@ -103,13 +104,16 @@ + return (r); + } + +-static char * ++char * + BackSlashDecode(const char *s, const char *e) + { + const char *q; + char *p, *r; + int i; + ++ if (e == NULL) ++ e = strchr(s, '\0'); ++ assert(e != NULL); + p = calloc((e - s) + 1, 1); + if (p == NULL) + return (p); +Index: lib/libvarnish/cli_common.c +=================================================================== +--- lib/libvarnish/cli_common.c (.../tags/varnish-2.0.4/varnish-cache) ++++ lib/libvarnish/cli_common.c (.../branches/2.0/varnish-cache) +@@ -73,7 +73,7 @@ + cli_quote(struct cli *cli, const char *s) + { + +- vsb_quote(cli->sb, s, 0); ++ vsb_quote(cli->sb, s, -1, 0); + } + + void +Index: lib/libvarnish/tcp.c +=================================================================== +--- lib/libvarnish/tcp.c (.../tags/varnish-2.0.4/varnish-cache) ++++ lib/libvarnish/tcp.c (.../branches/2.0/varnish-cache) +@@ -36,6 +36,10 @@ + + #include <netinet/in.h> + ++#ifdef __linux ++#include <netinet/tcp.h> ++#endif ++ + #include <errno.h> + #include <sys/ioctl.h> + #ifdef HAVE_SYS_FILIO_H +@@ -113,6 +117,10 @@ + printf("Acceptfilter(%d, httpready): %d %s\n", + sock, i, strerror(errno)); + return (i); ++#elif defined(__linux) ++ int defer = 1; ++ setsockopt(sock, SOL_TCP,TCP_DEFER_ACCEPT,(char *) &defer, sizeof(int)); ++ return (0); + #else + (void)sock; + return (0); +@@ -222,3 +230,17 @@ + AZ(setsockopt(s, SOL_SOCKET, SO_RCVTIMEO, &timeout, sizeof timeout)); + #endif + } ++ ++/*-------------------------------------------------------------------- ++ * Set or reset SO_LINGER flag ++ */ ++ ++void ++TCP_linger(int sock, int linger) ++{ ++ struct linger lin; ++ ++ memset(&lin, 0, sizeof lin); ++ lin.l_onoff = linger; ++ AZ(setsockopt(sock, SOL_SOCKET, SO_LINGER, &lin, sizeof lin)); ++} +Index: lib/libvarnish/vsb.c +=================================================================== +--- lib/libvarnish/vsb.c (.../tags/varnish-2.0.4/varnish-cache) ++++ lib/libvarnish/vsb.c (.../branches/2.0/varnish-cache) +@@ -481,25 +481,27 @@ + * Quote a string + */ + void +-vsb_quote(struct vsb *s, const char *p, int how) ++vsb_quote(struct vsb *s, const char *p, int len, int how) + { + const char *q; + int quote = 0; + + (void)how; /* For future enhancements */ ++ if (len == -1) ++ len = strlen(p); + +- for (q = p; *q != '\0'; q++) { ++ for (q = p; q < p + len; q++) { + if (!isgraph(*q) || *q == '"') { + quote++; + break; + } + } + if (!quote) { +- (void)vsb_cat(s, p); ++ (void)vsb_bcat(s, p, len); + return; + } + (void)vsb_putc(s, '"'); +- for (q = p; *q != '\0'; q++) { ++ for (q = p; q < p + len; q++) { + switch (*q) { + case ' ': + (void)vsb_putc(s, *q); +@@ -522,9 +524,66 @@ + if (isgraph(*q)) + (void)vsb_putc(s, *q); + else +- (void)vsb_printf(s, "\\%o", *q); ++ (void)vsb_printf(s, "\\%o", *q & 0xff); + break; + } + } + (void)vsb_putc(s, '"'); + } ++ ++/* ++ * Unquote a string ++ */ ++const char * ++vsb_unquote(struct vsb *s, const char *p, int len, int how) ++{ ++ const char *q; ++ char *r; ++ unsigned long u; ++ char c; ++ ++ (void)how; /* For future enhancements */ ++ ++ if (len == -1) ++ len = strlen(p); ++ ++ for (q = p; q < p + len; q++) { ++ if (*q != '\\') { ++ (void)vsb_bcat(s, q, 1); ++ continue; ++ } ++ if (++q >= p + len) ++ return ("Incomplete '\\'-sequence at end of string"); ++ ++ switch(*q) { ++ case 'n': ++ (void)vsb_bcat(s, "\n", 1); ++ continue; ++ case 'r': ++ (void)vsb_bcat(s, "\r", 1); ++ continue; ++ case 't': ++ (void)vsb_bcat(s, "\t", 1); ++ continue; ++ case '0': ++ case '1': ++ case '2': ++ case '3': ++ case '4': ++ case '5': ++ case '6': ++ case '7': ++ errno = 0; ++ u = strtoul(q, &r, 8); ++ if (errno != 0 || (u & ~0xff)) ++ return ("\\ooo sequence out of range"); ++ c = (char)u; ++ (void)vsb_bcat(s, &c, 1); ++ q = r - 1; ++ continue; ++ default: ++ (void)vsb_bcat(s, q, 1); ++ } ++ } ++ return (NULL); ++} +Index: lib/libvarnishcompat/execinfo.c +=================================================================== +--- lib/libvarnishcompat/execinfo.c (.../tags/varnish-2.0.4/varnish-cache) ++++ lib/libvarnishcompat/execinfo.c (.../branches/2.0/varnish-cache) +@@ -0,0 +1,451 @@ ++/* ++ * Copyright (c) 2003 Maxim Sobolev <[email protected]> ++ * All rights reserved. ++ * ++ * Redistribution and use in source and binary forms, with or without ++ * modification, are permitted provided that the following conditions ++ * are met: ++ * 1. Redistributions of source code must retain the above copyright ++ * notice, this list of conditions and the following disclaimer. ++ * 2. Redistributions in binary form must reproduce the above copyright ++ * notice, this list of conditions and the following disclaimer in the ++ * documentation and/or other materials provided with the distribution. ++ * ++ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND ++ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE ++ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ++ * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE ++ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL ++ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS ++ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) ++ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT ++ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY ++ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF ++ * SUCH DAMAGE. ++ * ++ * $Id$ ++ */ ++ ++#include "config.h" ++ ++#include <sys/types.h> ++#include <sys/uio.h> ++#include <dlfcn.h> ++#include <math.h> ++#include <stddef.h> ++#include <stdio.h> ++#include <stdlib.h> ++#include <string.h> ++#include <unistd.h> ++ ++#include "execinfo.h" ++ ++void *getreturnaddr(int); ++void *getframeaddr(int); ++ ++#define D10(x) ceil(log10(((x) == 0) ? 2 : ((x) + 1))) ++ ++inline static void * ++realloc_safe(void *ptr, size_t size) ++{ ++ void *nptr; ++ ++ nptr = realloc(ptr, size); ++ if (nptr == NULL) ++ free(ptr); ++ return nptr; ++} ++ ++int ++backtrace(void **buffer, int size) ++{ ++ int i; ++ ++ for (i = 1; getframeaddr(i + 1) != NULL && i != size + 1; i++) { ++ buffer[i - 1] = getreturnaddr(i); ++ if (buffer[i - 1] == NULL) ++ break; ++ } ++ ++ return i - 1; ++} ++ ++char ** ++backtrace_symbols(void *const *buffer, int size) ++{ ++ size_t clen, alen; ++ int i; ++ char **rval; ++ ++ clen = size * sizeof(char *); ++ rval = malloc(clen); ++ if (rval == NULL) ++ return NULL; ++ for (i = 0; i < size; i++) { ++ ++#ifdef HAVE_DLADDR ++ { ++ Dl_info info; ++ int offset; ++ ++ if (dladdr(buffer[i], &info) != 0) { ++ if (info.dli_sname == NULL) ++ info.dli_sname = "???"; ++ if (info.dli_saddr == NULL) ++ info.dli_saddr = buffer[i]; ++ offset = (const char*)buffer[i] - (const char*)info.dli_saddr; ++ /* "0x01234567 <function+offset> at filename" */ ++ alen = 2 + /* "0x" */ ++ (sizeof(void *) * 2) + /* "01234567" */ ++ 2 + /* " <" */ ++ strlen(info.dli_sname) + /* "function" */ ++ 1 + /* "+" */ ++ 10 + /* "offset */ ++ 5 + /* "> at " */ ++ strlen(info.dli_fname) + /* "filename" */ ++ 1; /* "\0" */ ++ rval = realloc_safe(rval, clen + alen); ++ if (rval == NULL) ++ return NULL; ++ snprintf((char *) rval + clen, alen, "%p <%s+%d> at %s", ++ buffer[i], info.dli_sname, offset, info.dli_fname); ++ rval[i] = (char *) clen; ++ clen += alen; ++ continue; ++ } ++ } ++#endif ++ alen = 2 + /* "0x" */ ++ (sizeof(void *) * 2) + /* "01234567" */ ++ 1; /* "\0" */ ++ rval = realloc_safe(rval, clen + alen); ++ if (rval == NULL) ++ return NULL; ++ snprintf((char *) rval + clen, alen, "%p", buffer[i]); ++ rval[i] = (char *) clen; ++ clen += alen; ++ } <<Diff was trimmed, longer than 597 lines>> ---- CVS-web: http://cvs.pld-linux.org/cgi-bin/cvsweb.cgi/packages/varnish/varnish.spec?r1=1.39&r2=1.40&f=u _______________________________________________ pld-cvs-commit mailing list [email protected] http://lists.pld-linux.org/mailman/listinfo/pld-cvs-commit
