packages: varnish/varnish.spec, varnish/branch.diff (NEW), varnish/branch.s...

glen glen at pld-linux.org
Fri Oct 16 14:59:58 CEST 2009


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 <sobomax at FreeBSD.org>
++ * 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 <sobomax at FreeBSD.org>
++ * 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



More information about the pld-cvs-commit mailing list