From: nico Date: Tue, 28 Mar 2006 00:05:52 +0000 (+0000) Subject: update osiris to v4.2.0, add mod_if module, add short desc to mod_* patches, X-Git-Tag: fast2504n-3.10.28-merged~23158 X-Git-Url: https://git.enpas.org/?a=commitdiff_plain;h=38b463fe88323df59e1f5b7f00f4530f02dea50f;p=openwrt.git update osiris to v4.2.0, add mod_if module, add short desc to mod_* patches, fix openssl-related build issue (could break compatibility). git-svn-id: svn://svn.openwrt.org/openwrt/trunk@3515 3c298f89-4303-0410-b956-a3cf2f4a3e73 --- diff --git a/openwrt/package/osiris/Makefile b/openwrt/package/osiris/Makefile index 54a4a99c14..900a1491dc 100644 --- a/openwrt/package/osiris/Makefile +++ b/openwrt/package/osiris/Makefile @@ -3,9 +3,9 @@ include $(TOPDIR)/rules.mk PKG_NAME:=osiris -PKG_VERSION:=4.1.9 +PKG_VERSION:=4.2.0 PKG_RELEASE:=1 -PKG_MD5SUM:=a8e3720b05a8dc5d257a7effb6d68224 +PKG_MD5SUM:=ad30995660e506ee6d1d6460601f6107 PKG_SOURCE_URL:=http://www.hostintegrity.com/osiris/data/ PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz diff --git a/openwrt/package/osiris/patches/01-configure-cross.patch b/openwrt/package/osiris/patches/01-configure-cross.patch new file mode 100644 index 0000000000..025a3f8419 --- /dev/null +++ b/openwrt/package/osiris/patches/01-configure-cross.patch @@ -0,0 +1,22 @@ +--- osiris-4.1.8-orig/configure 2005-04-13 15:22:13.000000000 +0200 ++++ osiris-4.1.8-1/configure 2005-04-22 23:11:32.000000000 +0200 +@@ -3606,7 +3606,7 @@ + esac + + +-DB_CONFIG_ARGS="--enable-shared=no --enable-static=yes" ++DB_CONFIG_ARGS="--target=${target_alias} --host=${host_alias} --build=${build_alias} --enable-shared=no --enable-static=yes" + + case "${OS_NAME}" in + MINGW32*) +--- osiris-4.1.8-orig/configure.ac 2005-04-13 15:22:13.000000000 +0200 ++++ osiris-4.1.8-1/configure.ac 2005-04-22 23:11:32.000000000 +0200 +@@ -270,7 +270,7 @@ + + dnl configure local copy of Berkely DB: + +-DB_CONFIG_ARGS="--enable-shared=no --enable-static=yes" ++DB_CONFIG_ARGS="--target=${target_alias} --host=${host_alias} --build=${build_alias} --enable-shared=no --enable-static=yes" + + case "${OS_NAME}" in + MINGW32*) diff --git a/openwrt/package/osiris/patches/02-osirisd-pidfile.patch b/openwrt/package/osiris/patches/02-osirisd-pidfile.patch new file mode 100644 index 0000000000..80c52dbf1a --- /dev/null +++ b/openwrt/package/osiris/patches/02-osirisd-pidfile.patch @@ -0,0 +1,68 @@ +--- osiris-4.1.8-orig/src/osirisd/osirisd.c 2005-04-14 01:00:55.000000000 +0200 ++++ osiris-4.1.8-1/src/osirisd/osirisd.c 2005-04-22 23:11:32.000000000 +0200 +@@ -218,6 +218,8 @@ + + #ifdef USE_PRIVSEP + rootpriv_setup_pidfile(); ++#else ++ setup_pidfile(); + #endif + + process(); +--- osiris-4.1.8-orig/src/osirisd/rootpriv.c 2005-04-14 00:55:59.000000000 +0200 ++++ osiris-4.1.8-1/src/osirisd/rootpriv.c 2005-04-22 23:25:10.000000000 +0200 +@@ -35,6 +35,10 @@ + #include "logging.h" + #include "rootpriv.h" + ++#ifndef WIN32 ++extern char pid_file[MAX_PATH_LENGTH]; ++#endif ++ + #ifdef USE_PRIVSEP + + /* this is defined in regex, and sometimes conflicts with stuff */ +@@ -80,10 +84,6 @@ + extern pid_t child_pid; + extern int rootpriv_pipe[2]; /* socketpair used for rootpriv comm. */ + +-#ifndef WIN32 +-extern char pid_file[MAX_PATH_LENGTH]; +-#endif +- + #define INCOMING_ROOT_REQUEST() ( FD_ISSET( rootpriv_pipe[1], &root_read_set ) ) + + +@@ -292,17 +292,6 @@ + #endif + } + +-void setup_pidfile() +-{ +- FILE *pidfile = fopen( pid_file, "wb" ); +- +- if( pidfile != NULL ) +- { +- fprintf( pidfile, "%ld\n", (long)getpid() ); +- fclose( pidfile ); +- } +-} +- + void handle_signals() + { + pid_t pid; +@@ -789,3 +778,14 @@ + + #endif /* USE_PRIVSEP */ + ++void setup_pidfile() ++{ ++ FILE *pidfile = fopen( pid_file, "wb" ); ++ ++ if( pidfile != NULL ) ++ { ++ fprintf( pidfile, "%ld\n", (long)getpid() ); ++ fclose( pidfile ); ++ } ++} ++ diff --git a/openwrt/package/osiris/patches/03-openssl-0.9.8+.patch b/openwrt/package/osiris/patches/03-openssl-0.9.8+.patch new file mode 100644 index 0000000000..806cf3afe2 --- /dev/null +++ b/openwrt/package/osiris/patches/03-openssl-0.9.8+.patch @@ -0,0 +1,16 @@ +diff -ruN osiris-4.1.9-old/src/osirismd/md_control.c osiris-4.1.9-new/src/osirismd/md_control.c +--- osiris-4.1.9-old/src/osirismd/md_control.c 2005-03-24 16:36:07.000000000 +0100 ++++ osiris-4.1.9-new/src/osirismd/md_control.c 2006-03-28 01:32:32.000000000 +0200 +@@ -3262,9 +3262,9 @@ + int index; + char checksum[41]; + +- SHA_Init( &context ); +- SHA_Update( &context, key, (unsigned long)keysize ); +- SHA_Final( &( digest[0] ), &context ); ++ SHA1_Init( &context ); ++ SHA1_Update( &context, key, (unsigned long)keysize ); ++ SHA1_Final( &( digest[0] ), &context ); + + for ( index = 0; index < SHA_DIGEST_LENGTH; index++ ) + { diff --git a/openwrt/package/osiris/patches/configure-cross.patch b/openwrt/package/osiris/patches/configure-cross.patch deleted file mode 100644 index 025a3f8419..0000000000 --- a/openwrt/package/osiris/patches/configure-cross.patch +++ /dev/null @@ -1,22 +0,0 @@ ---- osiris-4.1.8-orig/configure 2005-04-13 15:22:13.000000000 +0200 -+++ osiris-4.1.8-1/configure 2005-04-22 23:11:32.000000000 +0200 -@@ -3606,7 +3606,7 @@ - esac - - --DB_CONFIG_ARGS="--enable-shared=no --enable-static=yes" -+DB_CONFIG_ARGS="--target=${target_alias} --host=${host_alias} --build=${build_alias} --enable-shared=no --enable-static=yes" - - case "${OS_NAME}" in - MINGW32*) ---- osiris-4.1.8-orig/configure.ac 2005-04-13 15:22:13.000000000 +0200 -+++ osiris-4.1.8-1/configure.ac 2005-04-22 23:11:32.000000000 +0200 -@@ -270,7 +270,7 @@ - - dnl configure local copy of Berkely DB: - --DB_CONFIG_ARGS="--enable-shared=no --enable-static=yes" -+DB_CONFIG_ARGS="--target=${target_alias} --host=${host_alias} --build=${build_alias} --enable-shared=no --enable-static=yes" - - case "${OS_NAME}" in - MINGW32*) diff --git a/openwrt/package/osiris/patches/mod_if.patch b/openwrt/package/osiris/patches/mod_if.patch new file mode 100644 index 0000000000..6d18010de1 --- /dev/null +++ b/openwrt/package/osiris/patches/mod_if.patch @@ -0,0 +1,392 @@ +Description: The mod_if module monitors various aspects of network + interfaces for change, including IP, Hardware Address, + broadcast, MTU, metric, and promiscuous mode. +Version: 0.2 + +diff -ruN osiris-4.1.9-old/src/osirisd/modules/mod_if/Makefile osiris-4.1.9-new/src/osirisd/modules/mod_if/Makefile +--- osiris-4.1.9-old/src/osirisd/modules/mod_if/Makefile 1970-01-01 01:00:00.000000000 +0100 ++++ osiris-4.1.9-new/src/osirisd/modules/mod_if/Makefile 2005-10-07 02:19:17.000000000 +0200 +@@ -0,0 +1,16 @@ ++ ++include ../Makefile ++ ++SRCS=mod_if.c ++OBJS=$(SRCS:.c=.o) ++ ++module: ${SRCS} ${OBJS} ++ ++INCS=-I../.. -I../../../libosiris -I../../../libfileapi -I../../../.. ++ ++# meta-rule for compiling any "C" source file. ++$(OBJS): $(SRCS) ++ $(CC) $(DEFS) $(DEFAULT_INCLUDES) ${INCLUDES} ${INCS} $(AM_CPPFLAGS) \ ++ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c $(SRCS) ++ cp $@ .. ++ +diff -ruN osiris-4.1.9-old/src/osirisd/modules/mod_if/README osiris-4.1.9-new/src/osirisd/modules/mod_if/README +--- osiris-4.1.9-old/src/osirisd/modules/mod_if/README 1970-01-01 01:00:00.000000000 +0100 ++++ osiris-4.1.9-new/src/osirisd/modules/mod_if/README 2005-10-07 02:19:17.000000000 +0200 +@@ -0,0 +1,42 @@ ++ ++Module: mod_if ++Author: Brian Wotring (brian@hostintegrity.com) ++ ++ ++ ++DESCRIPTION: ++ ++The mod_if module is designed originally to monitor the promisc flag ++on network interfaces, but quickly turned into being able to monitor ++various aspects of network interfaces including hardware address, ++IP address, broadcast, MTU, and metric. ++ ++This module is somewhat different in that each record is an element ++about a network interface as opposed to one record per interface. This ++will make it easier to add more elements to be monitored, easier to ++filter, and easier to understand alerts. ++ ++USE: ++ ++To use this module, all that is needed is to include it in the Modules ++block of a scan configuration, e.g.: ++ ++ ++ ... ++ Include mod_if ++ ... ++ ++ ++ ++PARAMETERS: ++ ++There are no parameters for this module. ++ ++PLATFORMS: ++ ++Currently, this module is only implemented for Linux. ++ ++NOTES: ++ ++ ++ +diff -ruN osiris-4.1.9-old/src/osirisd/modules/mod_if/mod_if.c osiris-4.1.9-new/src/osirisd/modules/mod_if/mod_if.c +--- osiris-4.1.9-old/src/osirisd/modules/mod_if/mod_if.c 1970-01-01 01:00:00.000000000 +0100 ++++ osiris-4.1.9-new/src/osirisd/modules/mod_if/mod_if.c 2005-10-07 02:19:17.000000000 +0200 +@@ -0,0 +1,317 @@ ++ ++/****************************************************************************** ++** ++** Copyright (C) 2005 Brian Wotring. ++** ++** This program is free software; you can redistribute it and/or ++** modify it, however, you cannot sell it. ++** ++** 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. ++** ++** You should have received a copy of the license attached to the ++** use of this software. If not, view a current copy of the license ++** file here: ++** ++** http://www.hostintegrity.com/osiris/LICENSE ++** ++******************************************************************************/ ++ ++/***************************************************************************** ++** ++** File: mod_if.c ++** Date: September 23, 2005 ++** ++** Author: Brian Wotring ++** Purpose: platform specific methods for monitoring network devices. ++** ++******************************************************************************/ ++ ++ ++/* CODE USED IN THIS MODULE WAS ORIGINALLY TAKEN FROM: ++* ++* http://mail.nl.linux.org/kernelnewbies/2003-05/msg00090.html ++*/ ++ ++static const char *MODULE_NAME = "mod_if"; ++ ++ ++#ifndef WIN32 ++#include "config.h" ++#endif ++ ++#include ++#include ++ ++#ifndef WIN32 ++#include ++#include ++#include ++ ++#include ++#include ++#include ++#endif ++ ++#include ++#include ++#include ++ ++ ++#include "libosiris.h" ++#include "libfileapi.h" ++#include "rootpriv.h" ++#include "common.h" ++#include "version.h" ++ ++#include "scanner.h" ++#include "logging.h" ++ ++ ++#define inaddrr(x) (*(struct in_addr *) &ifr->x[sizeof sa.sin_port]) ++#define IFRSIZE ((int)(size * sizeof (struct ifreq))) ++ ++void process_if_unix( SCANNER *scanner ) ++{ ++ unsigned char*u; ++ int sockfd, size = 1; ++ struct ifreq *ifr; ++ struct ifconf ifc; ++ struct sockaddr_in sa; ++ ++ SCAN_RECORD_TEXT_1 record; ++ ++ /* Make sure we are able to create sockets */ ++ ++ if ( (sockfd = socket(AF_INET, SOCK_DGRAM, IPPROTO_IP)) < 0 ) ++ { ++ log_error( "mod_if unable to create socket!" ); ++ return; ++ } ++ ++ ifc.ifc_len = IFRSIZE; ++ ifc.ifc_req = NULL; ++ ++ do ++ { ++ ++size; ++ ++ /* realloc buffer size until no overflow occurs */ ++ ++ if ((ifc.ifc_req = realloc(ifc.ifc_req, IFRSIZE)) == NULL ) ++ { ++ log_error( "out of memory!!!" ); ++ return; ++ } ++ ++ ifc.ifc_len = IFRSIZE; ++ ++ if (ioctl(sockfd, SIOCGIFCONF, &ifc)) ++ { ++ log_error("ioctl failure: SIOCFIFCONF"); ++ return; ++ } ++ ++ } while (IFRSIZE <= ifc.ifc_len); ++ ++ ifr = ifc.ifc_req; ++ ++ for (;(char *) ifr < (char *) ifc.ifc_req + ifc.ifc_len; ++ifr) ++ { ++ if (ifr->ifr_addr.sa_data == (ifr+1)->ifr_addr.sa_data) ++ { ++ continue; /* duplicate, skip it */ ++ } ++ ++ if (ioctl(sockfd, SIOCGIFFLAGS, ifr)) ++ { ++ continue; /* failed to get flags, skip it */ ++ } ++ ++ initialize_scan_record( (SCAN_RECORD *)&record, ++ SCAN_RECORD_TYPE_TEXT_1 ); ++ ++ osi_strlcpy( record.module_name, MODULE_NAME, ++ sizeof( record.module_name ) ); ++ ++ osi_snprintf( record.name, sizeof( record.name ), ++ "if:%s:IP", ifr->ifr_name ); ++ ++ osi_snprintf( record.data, sizeof( record.data ), ++ "%s", inet_ntoa(inaddrr(ifr_addr.sa_data))); ++ ++ send_scan_data( scanner, (SCAN_RECORD *)&record ); ++ ++ /* ++ * This won't work on HP-UX 10.20 as there's no SIOCGIFHWADDR ioctl. You'll ++ * need to use DLPI or the NETSTAT ioctl on /dev/lan0, etc (and you'll need ++ * to be root to use the NETSTAT ioctl. Also this is deprecated and doesn't ++ * work on 11.00). ++ * ++ * On Digital Unix you can use the SIOCRPHYSADDR ioctl according to an old ++ * utility I have. Also on SGI I think you need to use a raw socket, e.g. s ++ * = socket(PF_RAW, SOCK_RAW, RAWPROTO_SNOOP) ++ * ++ * Dave ++ * ++ * From: David Peter ++ **/ ++ ++ if ( ioctl(sockfd, SIOCGIFHWADDR, ifr) == 0 ) ++ { ++ /* Select which hardware types to process. ++ ** ++ ** See list in system include file included from ++ ** /usr/include/net/if_arp.h (For example, on ++ ** Linux see file /usr/include/linux/if_arp.h to ++ ** get the list.) ++ **/ ++ ++ switch (ifr->ifr_hwaddr.sa_family) ++ { ++ default: ++ continue; ++ ++ case ARPHRD_NETROM: ++ case ARPHRD_ETHER: ++ case ARPHRD_PPP: ++ case ARPHRD_EETHER: ++ case ARPHRD_IEEE802: ++ break; ++ } ++ ++ u = (unsigned char *) &ifr->ifr_addr.sa_data; ++ ++ /* send record for MAC for this interface */ ++ ++ if (u[0] + u[1] + u[2] + u[3] + u[4] + u[5]) ++ { ++ initialize_scan_record( (SCAN_RECORD *)&record, ++ SCAN_RECORD_TYPE_TEXT_1 ); ++ ++ osi_strlcpy( record.module_name, MODULE_NAME, ++ sizeof( record.module_name ) ); ++ ++ osi_snprintf( record.name, sizeof( record.name ), ++ "if:%s:MAC", ifr->ifr_name ); ++ ++ osi_snprintf( record.data, sizeof( record.data ), ++ "%2.2x.%2.2x.%2.2x.%2.2x.%2.2x.%2.2x", ++ u[0], u[1], u[2], u[3], u[4], u[5]); ++ ++ send_scan_data( scanner, (SCAN_RECORD *)&record ); ++ } ++ } ++ ++ if ( ioctl(sockfd, SIOCGIFNETMASK, ifr) == 0 && ++ strcmp("255.255.255.255", inet_ntoa(inaddrr(ifr_addr.sa_data)))) ++ { ++ initialize_scan_record( (SCAN_RECORD *)&record, ++ SCAN_RECORD_TYPE_TEXT_1 ); ++ ++ osi_strlcpy( record.module_name, MODULE_NAME, ++ sizeof( record.module_name ) ); ++ ++ osi_snprintf( record.name, sizeof( record.name ), ++ "if:%s:NETMASK", ifr->ifr_name ); ++ ++ osi_snprintf( record.data, sizeof( record.data ), ++ "%s", inet_ntoa(inaddrr(ifr_addr.sa_data))); ++ ++ send_scan_data( scanner, (SCAN_RECORD *)&record ); ++ } ++ ++ if (ifr->ifr_flags & IFF_BROADCAST) ++ { ++ if ( ioctl(sockfd, SIOCGIFBRDADDR, ifr) == 0 && ++ strcmp("0.0.0.0", inet_ntoa(inaddrr(ifr_addr.sa_data)))) ++ { ++ ++ initialize_scan_record( (SCAN_RECORD *)&record, ++ SCAN_RECORD_TYPE_TEXT_1 ); ++ ++ osi_strlcpy( record.module_name, MODULE_NAME, ++ sizeof( record.module_name ) ); ++ ++ osi_snprintf( record.name, sizeof( record.name ), ++ "if:%s:BROADCAST", ifr->ifr_name ); ++ ++ osi_snprintf( record.data, sizeof( record.data ), ++ "%s",inet_ntoa(inaddrr(ifr_addr.sa_data))); ++ ++ send_scan_data( scanner, (SCAN_RECORD *)&record ); ++ } ++ } ++ ++ /* Added by David Vasil to check for Promiscuous mode */ ++ ++ initialize_scan_record( (SCAN_RECORD *)&record, ++ SCAN_RECORD_TYPE_TEXT_1 ); ++ ++ osi_strlcpy( record.module_name, MODULE_NAME, ++ sizeof( record.module_name ) ); ++ ++ ++ osi_snprintf( record.name, sizeof( record.name ), ++ "if:%s:PROMISC", ifr->ifr_name ); ++ ++ if ( ioctl(sockfd, SIOCGIFFLAGS, ifr) == 0 && ++ ifr->ifr_flags & IFF_PROMISC) ++ { ++ osi_strlcpy( record.data, "ENABLED", sizeof( record.data ) ); ++ } ++ ++ else ++ { ++ osi_strlcpy( record.data, "DISABLED", sizeof( record.data ) ); ++ } ++ ++ send_scan_data( scanner, (SCAN_RECORD *)&record ); ++ ++ ++ if ( ioctl(sockfd, SIOCGIFMTU, ifr) == 0 ) ++ { ++ initialize_scan_record( (SCAN_RECORD *)&record, ++ SCAN_RECORD_TYPE_TEXT_1 ); ++ ++ osi_strlcpy( record.module_name, MODULE_NAME, ++ sizeof( record.module_name ) ); ++ ++ osi_snprintf( record.name, sizeof( record.name ), ++ "if:%s:MTU", ifr->ifr_name ); ++ ++ osi_snprintf( record.data, sizeof( record.data ), ++ "%u", ifr->ifr_mtu ); ++ ++ send_scan_data( scanner, (SCAN_RECORD *)&record ); ++ } ++ ++ if ( ioctl(sockfd, SIOCGIFMETRIC, ifr) == 0 ) ++ { ++ initialize_scan_record( (SCAN_RECORD *)&record, ++ SCAN_RECORD_TYPE_TEXT_1 ); ++ ++ osi_strlcpy( record.module_name, MODULE_NAME, ++ sizeof( record.module_name ) ); ++ ++ osi_snprintf( record.name, sizeof( record.name ), ++ "if:%s:METRIC", ifr->ifr_name ); ++ ++ osi_snprintf( record.data, sizeof( record.data ), ++ "%u", ifr->ifr_metric ); ++ ++ send_scan_data( scanner, (SCAN_RECORD *)&record ); ++ } ++ } ++ ++ close(sockfd); ++} ++ ++void mod_if( SCANNER *scanner ) ++{ ++#if defined(SYSTEM_LINUX) ++ process_if_unix( scanner ); ++#endif ++ ++} diff --git a/openwrt/package/osiris/patches/mod_nvram.patch b/openwrt/package/osiris/patches/mod_nvram.patch index 91ad1ec6a2..69b6cd6099 100644 --- a/openwrt/package/osiris/patches/mod_nvram.patch +++ b/openwrt/package/osiris/patches/mod_nvram.patch @@ -1,3 +1,9 @@ +Description: The mod_nvram module was developed specifically to monitor + configuration settings stored in nvram on Linksys devices. + In the future, this module could be used to monitor other + attributes of similar devices. +Version: 0.1 + --- osiris-4.1.8-orig/src/osirisd/modules/mod_nvram/Makefile 1970-01-01 01:00:00.000000000 +0100 +++ osiris-4.1.8-1/src/osirisd/modules/mod_nvram/Makefile 2005-04-22 23:11:32.000000000 +0200 @@ -0,0 +1,16 @@ diff --git a/openwrt/package/osiris/patches/mod_uptime.patch b/openwrt/package/osiris/patches/mod_uptime.patch index 138075f6de..2bfeec6b44 100644 --- a/openwrt/package/osiris/patches/mod_uptime.patch +++ b/openwrt/package/osiris/patches/mod_uptime.patch @@ -1,3 +1,7 @@ +Description: The mod_uptime module obtains the system boot time value + for comparison with scans. +Version: 0.2 + --- osiris-4.1.8-orig/src/osirisd/modules/mod_uptime/Makefile 1970-01-01 01:00:00.000000000 +0100 +++ osiris-4.1.8-1/src/osirisd/modules/mod_uptime/Makefile 2005-04-22 23:11:32.000000000 +0200 @@ -0,0 +1,16 @@ diff --git a/openwrt/package/osiris/patches/osirisd-pidfile.patch b/openwrt/package/osiris/patches/osirisd-pidfile.patch deleted file mode 100644 index 80c52dbf1a..0000000000 --- a/openwrt/package/osiris/patches/osirisd-pidfile.patch +++ /dev/null @@ -1,68 +0,0 @@ ---- osiris-4.1.8-orig/src/osirisd/osirisd.c 2005-04-14 01:00:55.000000000 +0200 -+++ osiris-4.1.8-1/src/osirisd/osirisd.c 2005-04-22 23:11:32.000000000 +0200 -@@ -218,6 +218,8 @@ - - #ifdef USE_PRIVSEP - rootpriv_setup_pidfile(); -+#else -+ setup_pidfile(); - #endif - - process(); ---- osiris-4.1.8-orig/src/osirisd/rootpriv.c 2005-04-14 00:55:59.000000000 +0200 -+++ osiris-4.1.8-1/src/osirisd/rootpriv.c 2005-04-22 23:25:10.000000000 +0200 -@@ -35,6 +35,10 @@ - #include "logging.h" - #include "rootpriv.h" - -+#ifndef WIN32 -+extern char pid_file[MAX_PATH_LENGTH]; -+#endif -+ - #ifdef USE_PRIVSEP - - /* this is defined in regex, and sometimes conflicts with stuff */ -@@ -80,10 +84,6 @@ - extern pid_t child_pid; - extern int rootpriv_pipe[2]; /* socketpair used for rootpriv comm. */ - --#ifndef WIN32 --extern char pid_file[MAX_PATH_LENGTH]; --#endif -- - #define INCOMING_ROOT_REQUEST() ( FD_ISSET( rootpriv_pipe[1], &root_read_set ) ) - - -@@ -292,17 +292,6 @@ - #endif - } - --void setup_pidfile() --{ -- FILE *pidfile = fopen( pid_file, "wb" ); -- -- if( pidfile != NULL ) -- { -- fprintf( pidfile, "%ld\n", (long)getpid() ); -- fclose( pidfile ); -- } --} -- - void handle_signals() - { - pid_t pid; -@@ -789,3 +778,14 @@ - - #endif /* USE_PRIVSEP */ - -+void setup_pidfile() -+{ -+ FILE *pidfile = fopen( pid_file, "wb" ); -+ -+ if( pidfile != NULL ) -+ { -+ fprintf( pidfile, "%ld\n", (long)getpid() ); -+ fclose( pidfile ); -+ } -+} -+