]> git.ipfire.org Git - thirdparty/squid.git/commitdiff
SQUID_HELPER define for including squid.h from helpers
authorhno <>
Tue, 24 Apr 2007 21:04:22 +0000 (21:04 +0000)
committerhno <>
Tue, 24 Apr 2007 21:04:22 +0000 (21:04 +0000)
squid.h has some debugging stuff in it which should only apply to the main
squid binary, not various helpers also referencing squid.h.

This patch also splits the unlinkd helper from unlinkd.cc to unlinkd_daemon.cc
to make it more readable.

src/Makefile.am
src/pinger.cc
src/squid.h
src/unlinkd.cc
src/unlinkd_daemon.cc [new file with mode: 0644]

index 2994349513834fbc454124891acdc3be852208c6..189c0e3aee6273c0cd7cda154b30bc327859d5fc 100644 (file)
@@ -1,7 +1,7 @@
 #
 #  Makefile for the Squid Object Cache server
 #
-#  $Id: Makefile.am,v 1.178 2007/04/24 00:40:25 wessels Exp $
+#  $Id: Makefile.am,v 1.179 2007/04/24 15:04:22 hno Exp $
 #
 #  Uncomment and customize the following to suit your needs:
 #
@@ -692,8 +692,7 @@ ICAP_libicap_a_SOURCES = \
        ICAP/TextException.h
 
 
-unlinkd_SOURCES = $(UNLINKDSOURCE) SquidNew.cc
-unlinkd_CXXFLAGS = -DUNLINK_DAEMON
+unlinkd_SOURCES = unlinkd_daemon.cc SquidNew.cc
 
 pinger_SOURCES = \
        pinger.cc \
index 90d936e75b7715a2a52be504b537ed15f07be74a..dbb93d56766aae6dfed6dd703ebd4dfd5eb4aed7 100644 (file)
@@ -1,6 +1,6 @@
 
 /*
- * $Id: pinger.cc,v 1.56 2006/09/02 14:46:31 serassio Exp $
+ * $Id: pinger.cc,v 1.57 2007/04/24 15:04:22 hno Exp $
  *
  * DEBUG: section 42    ICMP Pinger program
  * AUTHOR: Duane Wessels
@@ -33,6 +33,8 @@
  *
  */
 
+#define SQUID_HELPER 1
+
 #include "squid.h"
 #include "SquidTime.h"
 
@@ -69,8 +71,7 @@ static int socket_to_squid = 1;
 static int socket_to_squid = -1;
 #define socket_from_squid socket_to_squid
 
-#else /* _SQUID_CYGWIN_ */
-
+#else /* _SQUID_CYGWIN_ */ 
 #include <netinet/in_systm.h>
 #include <netinet/in.h>
 #include <netinet/ip.h>
index d599adda6fc5ad8a4a8137f3839079aac3e1b588..45cba9bf6c39e916f47b35dc776fe9aa0edace95 100644 (file)
@@ -1,6 +1,6 @@
 
 /*
- * $Id: squid.h,v 1.260 2007/04/12 23:33:01 hno Exp $
+ * $Id: squid.h,v 1.261 2007/04/24 15:04:22 hno Exp $
  *
  * AUTHOR: Duane Wessels
  *
@@ -199,12 +199,23 @@ using namespace Squid;
 /* Limited due to delay pools */
 # define SQUID_MAXFD_LIMIT FD_SETSIZE
 #elif defined(USE_KQUEUE) || defined(USE_EPOLL)
-#  define fd_set ERROR_FD_SET_USED
+# define SQUID_FDSET_NOUSE 1
 #else
 # error Unknown select loop model!
 #endif
 
-#
+
+/*
+ * Trap unintentional use of fd_set. Must not be used outside the
+ * select code as it only supports FD_SETSIZE number of filedescriptors
+ * and Squid may be running with a lot more..
+ * But only for code linked into Squid, not the helpers.. (unlinkd, pinger)
+ */
+#ifdef SQUID_FDSET_NOUSE
+# ifndef SQUID_HELPER
+#  define fd_set ERROR_FD_SET_USED
+# endif
+#endif
 
 #if defined(HAVE_STDARG_H)
 #include <stdarg.h>
index 952592801baee9858369e067522373a097a9150d..87c418779fe8edd8850a0d451c6ad7afc6c9c00a 100644 (file)
@@ -1,6 +1,6 @@
 
 /*
- * $Id: unlinkd.cc,v 1.60 2007/04/24 06:30:37 wessels Exp $
+ * $Id: unlinkd.cc,v 1.61 2007/04/24 15:04:22 hno Exp $
  *
  * DEBUG: section 2     Unlink Daemon
  * AUTHOR: Duane Wessels
  */
 
 #include "squid.h"
-
-#ifdef UNLINK_DAEMON
-
-/* This is the external unlinkd process */
-
-#define UNLINK_BUF_LEN 1024
-
-int
-main(int argc, char *argv[])
-{
-    char buf[UNLINK_BUF_LEN];
-    char *t;
-    int x;
-    setbuf(stdin, NULL);
-    setbuf(stdout, NULL);
-    close(2);
-    open(_PATH_DEVNULL, O_RDWR);
-
-    while (fgets(buf, UNLINK_BUF_LEN, stdin)) {
-        if ((t = strchr(buf, '\n')))
-            *t = '\0';
-        x = unlink(buf);
-        if (x < 0)
-            printf("ERR\n");
-        else
-            printf("OK\n");
-    }
-
-    exit(0);
-}
-
-#else /* UNLINK_DAEMON */
-
 #include "SquidTime.h"
 #include "fde.h"
 #include "xusleep.h"
@@ -284,5 +251,3 @@ IPC_FIFO,
 #endif
 
 }
-
-#endif /* ndef UNLINK_DAEMON */
diff --git a/src/unlinkd_daemon.cc b/src/unlinkd_daemon.cc
new file mode 100644 (file)
index 0000000..09a90c3
--- /dev/null
@@ -0,0 +1,67 @@
+
+/*
+ * $Id: unlinkd_daemon.cc,v 1.1 2007/04/24 15:04:22 hno Exp $
+ *
+ * DEBUG: -             Unlink Daemon
+ * AUTHOR: Duane Wessels
+ *
+ * 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.
+ *
+ */
+
+#define SQUID_HELPER 1
+
+#include "squid.h"
+
+/* This is the external unlinkd process */
+
+#define UNLINK_BUF_LEN 1024
+
+int
+main(int argc, char *argv[])
+{
+    char buf[UNLINK_BUF_LEN];
+    char *t;
+    int x;
+    setbuf(stdin, NULL);
+    setbuf(stdout, NULL);
+    close(2);
+    open(_PATH_DEVNULL, O_RDWR);
+
+    while (fgets(buf, UNLINK_BUF_LEN, stdin)) {
+        if ((t = strchr(buf, '\n')))
+            *t = '\0';
+        x = unlink(buf);
+        if (x < 0)
+            printf("ERR\n");
+        else
+            printf("OK\n");
+    }
+
+    exit(0);
+}
+