From: hno <> Date: Tue, 24 Apr 2007 21:04:22 +0000 (+0000) Subject: SQUID_HELPER define for including squid.h from helpers X-Git-Tag: SQUID_3_0_PRE6~45 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=128fe1c6427379cd8d4b5c9cad71200a0edc0e92;p=thirdparty%2Fsquid.git SQUID_HELPER define for including squid.h from helpers 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. --- diff --git a/src/Makefile.am b/src/Makefile.am index 2994349513..189c0e3aee 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -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 \ diff --git a/src/pinger.cc b/src/pinger.cc index 90d936e75b..dbb93d5676 100644 --- a/src/pinger.cc +++ b/src/pinger.cc @@ -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 #include #include diff --git a/src/squid.h b/src/squid.h index d599adda6f..45cba9bf6c 100644 --- a/src/squid.h +++ b/src/squid.h @@ -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 diff --git a/src/unlinkd.cc b/src/unlinkd.cc index 952592801b..87c418779f 100644 --- a/src/unlinkd.cc +++ b/src/unlinkd.cc @@ -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 @@ -34,39 +34,6 @@ */ #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 index 0000000000..09a90c369b --- /dev/null +++ b/src/unlinkd_daemon.cc @@ -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); +} +