update osiris to v4.2.0, add mod_if module, add short desc to mod_* patches, fix...
authorNicolas Thill <nico@openwrt.org>
Tue, 28 Mar 2006 00:05:52 +0000 (00:05 +0000)
committerNicolas Thill <nico@openwrt.org>
Tue, 28 Mar 2006 00:05:52 +0000 (00:05 +0000)
SVN-Revision: 3515

openwrt/package/osiris/Makefile
openwrt/package/osiris/patches/01-configure-cross.patch [new file with mode: 0644]
openwrt/package/osiris/patches/02-osirisd-pidfile.patch [new file with mode: 0644]
openwrt/package/osiris/patches/03-openssl-0.9.8+.patch [new file with mode: 0644]
openwrt/package/osiris/patches/configure-cross.patch [deleted file]
openwrt/package/osiris/patches/mod_if.patch [new file with mode: 0644]
openwrt/package/osiris/patches/mod_nvram.patch
openwrt/package/osiris/patches/mod_uptime.patch
openwrt/package/osiris/patches/osirisd-pidfile.patch [deleted file]

index 54a4a99..900a149 100644 (file)
@@ -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 (file)
index 0000000..025a3f8
--- /dev/null
@@ -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 (file)
index 0000000..80c52db
--- /dev/null
@@ -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 (file)
index 0000000..806cf3a
--- /dev/null
@@ -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 (file)
index 025a3f8..0000000
+++ /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 (file)
index 0000000..751301f
--- /dev/null
@@ -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.:
++
++    <Modules>
++    ...
++    Include mod_if
++    ...
++    </Modules>
++
++
++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 <stdio.h>
++#include <stdlib.h>
++
++#ifndef WIN32
++#include <unistd.h>
++#include <string.h>
++#include <errno.h>
++
++#include <sys/socket.h>
++#include <sys/types.h>
++#include <net/if.h>
++#endif
++
++#include <sys/ioctl.h>
++#include <net/if_arp.h>
++#include <arpa/inet.h>
++
++
++#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 <dave.peter@eu.citrix.com>
++     **/
++
++        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
++
++}
index 91ad1ec..69b6cd6 100644 (file)
@@ -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 @@
index 138075f..2bfeec6 100644 (file)
@@ -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 (file)
index 80c52db..0000000
+++ /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 );
-+    }
-+}
-+