# Bazaar merge directive format 2 (Bazaar 0.90)
# revision_id: kinkie@squid-cache.org-20121005072705-hau0btnqidb8bh9x
# target_branch: ../trunk
# testament_sha1: bbcf40a11a2be1d2996cd163280da278e5ff03b7
# timestamp: 2012-10-05 09:27:19 +0200
# base_revision_id: kinkie@squid-cache.org-20121005072635-\
#   0w6cfh03wwbozh09
# 
# Begin patch
=== modified file 'include/fatal.h'
--- include/fatal.h	2012-08-30 14:18:27 +0000
+++ include/fatal.h	2012-10-04 13:01:09 +0000
@@ -1,8 +1,8 @@
 #ifndef SQUID_FATAL_H
 #define SQUID_FATAL_H
 
-extern void fatal(const char *message);
-extern void fatalf(const char *fmt,...) PRINTF_FORMAT_ARG1;
-extern void fatal_dump(const char *message);
+void fatal(const char *message);
+void fatalf(const char *fmt,...) PRINTF_FORMAT_ARG1;
+void fatal_dump(const char *message);
 
 #endif /* SQUID_FATAL_H */

=== modified file 'lib/Makefile.am'
--- lib/Makefile.am	2012-06-03 08:10:29 +0000
+++ lib/Makefile.am	2012-10-04 13:01:09 +0000
@@ -69,7 +69,8 @@
 	Splay.cc \
 	stub_memaccount.c \
 	util.c \
-	xusleep.c
+	xusleep.c \
+	fatal.cc
 
 # $(top_srcdir)/include/version.h should be a dependency
 libsspwin32_la_SOURCES = \

=== added file 'lib/fatal.cc'
--- lib/fatal.cc	1970-01-01 00:00:00 +0000
+++ lib/fatal.cc	2012-10-04 13:01:09 +0000
@@ -0,0 +1,144 @@
+/*
+ * SQUID Web Proxy Cache          http://www.squid-cache.org/
+ * ----------------------------------------------------------
+ *
+ *  Squid is the result of efforts by numerous individuals from
+ *  the Internet community; see the CONTRIBUTORS file for full
+ *  details.   Many organizations have provided support for Squid's
+ *  development; see the SPONSORS file for full details.  Squid is
+ *  Copyrighted (C) 2001 by the Regents of the University of
+ *  California; see the COPYRIGHT file for full details.  Squid
+ *  incorporates software developed and/or copyrighted by other
+ *  sources; see the CREDITS file for full details.
+ *
+ *  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
+ *  the Free Software Foundation; either version 2 of the License, or
+ *  (at your option) any later version.
+ *
+ *  This program is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with this program; if not, write to the Free Software
+ *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111, USA.
+ *
+ */
+
+#include "squid.h"
+#include "Debug.h"
+#include "fatal.h"
+#include "globals.h"
+#include "SwapDir.h"
+#include "tools.h"
+
+#if HAVE_STDIO_H
+#include <stdio.h>
+#endif
+#if HAVE_STDLIB_H
+#include <stdlib.h>
+#endif
+
+static void
+fatal_common(const char *message)
+{
+#if HAVE_SYSLOG
+    syslog(LOG_ALERT, "%s", message);
+#endif
+
+    fprintf(debug_log, "FATAL: %s\n", message);
+
+    if (Debug::log_stderr > 0 && debug_log != stderr)
+        fprintf(stderr, "FATAL: %s\n", message);
+
+    fprintf(debug_log, "Squid Cache (Version %s): Terminated abnormally.\n",
+            version_string);
+
+    fflush(debug_log);
+
+    PrintRusage();
+
+    dumpMallocStats();
+}
+
+
+void
+fatal(const char *message)
+{
+    /* suppress secondary errors from the dying */
+    shutting_down = 1;
+
+    releaseServerSockets();
+    /* check for store_dirs_rebuilding because fatal() is often
+     * used in early initialization phases, long before we ever
+     * get to the store log. */
+
+    /* XXX: this should be turned into a callback-on-fatal, or
+     * a mandatory-shutdown-event or something like that.
+     * - RBC 20060819
+     */
+
+    /*
+     * DPW 2007-07-06
+     * Call leave_suid() here to make sure that swap.state files
+     * are written as the effective user, rather than root.  Squid
+     * may take on root privs during reconfigure.  If squid.conf
+     * contains a "Bungled" line, fatal() will be called when the
+     * process still has root privs.
+     */
+    leave_suid();
+
+    if (0 == StoreController::store_dirs_rebuilding)
+        storeDirWriteCleanLogs(0);
+
+    fatal_common(message);
+
+    exit(1);
+}
+
+/* used by fatalf */
+static void
+fatalvf(const char *fmt, va_list args)
+{
+    static char fatal_str[BUFSIZ];
+    vsnprintf(fatal_str, sizeof(fatal_str), fmt, args);
+    fatal(fatal_str);
+}
+
+/* printf-style interface for fatal */
+void
+fatalf(const char *fmt,...)
+{
+    va_list args;
+    va_start(args, fmt);
+    fatalvf(fmt, args);
+    va_end(args);
+}
+
+/* fatal with dumping core */
+void
+fatal_dump(const char *message)
+{
+    failure_notify = NULL;
+    releaseServerSockets();
+
+    if (message)
+        fatal_common(message);
+
+    /*
+     * Call leave_suid() here to make sure that swap.state files
+     * are written as the effective user, rather than root.  Squid
+     * may take on root privs during reconfigure.  If squid.conf
+     * contains a "Bungled" line, fatal() will be called when the
+     * process still has root privs.
+     */
+    leave_suid();
+
+    if (opt_catch_signals)
+        storeDirWriteCleanLogs(0);
+
+    abort();
+}
+

=== modified file 'src/tools.cc'
--- src/tools.cc	2012-10-04 09:14:06 +0000
+++ src/tools.cc	2012-10-04 13:01:09 +0000
@@ -78,8 +78,6 @@
 \n\
 Thanks!\n"
 
-static void fatal_common(const char *);
-static void fatalvf(const char *fmt, va_list args);
 static void mail_warranty(void);
 #if MEM_GEN_TRACE
 void log_trace_done();
@@ -446,107 +444,6 @@
 #endif
 }
 
-static void
-fatal_common(const char *message)
-{
-#if HAVE_SYSLOG
-    syslog(LOG_ALERT, "%s", message);
-#endif
-
-    fprintf(debug_log, "FATAL: %s\n", message);
-
-    if (Debug::log_stderr > 0 && debug_log != stderr)
-        fprintf(stderr, "FATAL: %s\n", message);
-
-    fprintf(debug_log, "Squid Cache (Version %s): Terminated abnormally.\n",
-            version_string);
-
-    fflush(debug_log);
-
-    PrintRusage();
-
-    dumpMallocStats();
-}
-
-/* fatal */
-void
-fatal(const char *message)
-{
-    /* suppress secondary errors from the dying */
-    shutting_down = 1;
-
-    releaseServerSockets();
-    /* check for store_dirs_rebuilding because fatal() is often
-     * used in early initialization phases, long before we ever
-     * get to the store log. */
-
-    /* XXX: this should be turned into a callback-on-fatal, or
-     * a mandatory-shutdown-event or something like that.
-     * - RBC 20060819
-     */
-
-    /*
-     * DPW 2007-07-06
-     * Call leave_suid() here to make sure that swap.state files
-     * are written as the effective user, rather than root.  Squid
-     * may take on root privs during reconfigure.  If squid.conf
-     * contains a "Bungled" line, fatal() will be called when the
-     * process still has root privs.
-     */
-    leave_suid();
-
-    if (0 == StoreController::store_dirs_rebuilding)
-        storeDirWriteCleanLogs(0);
-
-    fatal_common(message);
-
-    exit(1);
-}
-
-/* printf-style interface for fatal */
-void
-fatalf(const char *fmt,...)
-{
-    va_list args;
-    va_start(args, fmt);
-    fatalvf(fmt, args);
-    va_end(args);
-}
-
-/* used by fatalf */
-static void
-fatalvf(const char *fmt, va_list args)
-{
-    static char fatal_str[BUFSIZ];
-    vsnprintf(fatal_str, sizeof(fatal_str), fmt, args);
-    fatal(fatal_str);
-}
-
-/* fatal with dumping core */
-void
-fatal_dump(const char *message)
-{
-    failure_notify = NULL;
-    releaseServerSockets();
-
-    if (message)
-        fatal_common(message);
-
-    /*
-     * Call leave_suid() here to make sure that swap.state files
-     * are written as the effective user, rather than root.  Squid
-     * may take on root privs during reconfigure.  If squid.conf
-     * contains a "Bungled" line, fatal() will be called when the
-     * process still has root privs.
-     */
-    leave_suid();
-
-    if (opt_catch_signals)
-        storeDirWriteCleanLogs(0);
-
-    abort();
-}
-
 void
 debug_trap(const char *message)
 {

# Begin bundle
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
kI2iP/F3JFOFCQHzjP4A
