From: Thibault Godouet Date: Sat, 2 Mar 2002 17:26:30 +0000 (+0000) Subject: added fcrondyn support X-Git-Tag: ver2_9_4~177 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=3f85b3c34b6a9ad846fc2fd1b493d033677647d7;p=thirdparty%2Ffcron.git added fcrondyn support --- diff --git a/Makefile.in b/Makefile.in index 2d9b9fb..eaadbac 100644 --- a/Makefile.in +++ b/Makefile.in @@ -4,7 +4,7 @@ # @configure_input@ -# $Id: Makefile.in,v 1.82 2002-02-25 18:43:05 thib Exp $ +# $Id: Makefile.in,v 1.83 2002-03-02 17:28:16 thib Exp $ # The following should not be edited manually (use configure options) # If you must do it, BEWARE : some of the following is also defined @@ -57,12 +57,15 @@ OPTION = VERSION = @VERSION@ CFLAGS = $(OPTIM) $(OPTION) $(DEFS) $(CPPFLAGS) +ifeq ($(FCRONDYN), 1) +LIBOBJS := socket.o $(LIBOBJS) +endif OBJSD = fcron.o subs.o save.o temp_file.o log.o database.o job.o conf.o $(LIBOBJS) -OBJSTAB = fcrontab.o subs.o save.o temp_file.o log.o fileconf.o allow.o -OBJSDYN = fcrondyn.o subs.o log.o +OBJSTAB = fcrontab.o subs.o save.o temp_file.o log.o fileconf.o allow.o read_string.o +OBJSDYN = fcrondyn.o subs.o log.o allow.o read_string.o OBJCONV = convert-fcrontab.o subs.o save.o log.o OBJSIG = fcronsighup.o subs.o log.o allow.o -HEADERSALL = config.h $(SRCDIR)/global.h $(SRCDIR)/log.h $(SRCDIR)/subs.h $(SRCDIR)/save.h $(SRCDIR)/option.h +HEADERSALL = config.h $(SRCDIR)/global.h $(SRCDIR)/log.h $(SRCDIR)/subs.h $(SRCDIR)/save.h $(SRCDIR)/option.h $(SRCDIR)/dyncom.h # this is a regular expression : # do not ci automaticaly generated files and doc (done by doc's Makefile) @@ -109,6 +112,7 @@ install: all $(INSTALL) -g $(ROOTGROUP) -o $(ROOTNAME) -m 110 -s fcron $(DESTSBIN) $(INSTALL) -g $(GROUPNAME) -o $(USERNAME) -m 6111 -s fcrontab $(DESTBIN) $(INSTALL) -g $(ROOTGROUP) -o $(ROOTNAME) -m 6111 -s fcronsighup $(DESTBIN) + $(INSTALL) -g $(GROUPNAME) -o $(USERNAME) -m 6111 -s fcrondyn $(DESTBIN) test -f $(ETC)/fcron.allow || test -f $(ETC)/fcron.deny || $(INSTALL) -m 640 -o $(ROOTNAME) -g $(GROUPNAME) $(SRCDIR)/files/fcron.allow $(SRCDIR)/files/fcron.deny $(ETC) test -f $(ETC)/fcron.conf || $(INSTALL) -m 640 -o $(ROOTNAME) -g $(GROUPNAME) $(SRCDIR)/files/fcron.conf $(ETC) test "${USEPAM}" = "0" || $(SRCDIR)/script/install-pam-conf $(SRCDIR) $(ETC) $(ROOTNAME) $(ROOTGROUP) "$(INSTALL)" diff --git a/conf.c b/conf.c index 7619a45..b63b96d 100644 --- a/conf.c +++ b/conf.c @@ -22,7 +22,7 @@ * `LICENSE' that comes with the fcron source distribution. */ - /* $Id: conf.c,v 1.53 2002-02-25 18:42:41 thib Exp $ */ + /* $Id: conf.c,v 1.54 2002-03-02 17:28:07 thib Exp $ */ #include "fcron.h" @@ -796,6 +796,8 @@ add_line_to_file(CL *cl, CF *cf, uid_t runas, char *runas_str, time_t t_save) } /* add the current line to the list, and allocate a new line */ + if ( (cl->cl_id = next_id++) >= ULONG_MAX - 1) + next_id = 0; cl->cl_next = cf->cf_line_base; cf->cf_line_base = cl; return 0; diff --git a/config.h.in b/config.h.in index 77b81c1..e8a090e 100644 --- a/config.h.in +++ b/config.h.in @@ -21,7 +21,7 @@ * `LICENSE' that comes with the fcron source distribution. */ - /* $Id: config.h.in,v 1.39 2002-02-25 18:44:26 thib Exp $ */ + /* $Id: config.h.in,v 1.40 2002-03-02 17:28:48 thib Exp $ */ /* *********************************************************** */ @@ -100,10 +100,17 @@ #define FNAME_LEN 512 /* max length of a file name */ #define USER_NAME_LEN 128 /* max length of a user name */ #define PATH_LEN 256 /* max length of a file path */ +#define SOCKET_MSG_LEN 20 /* max length of a socket msg (fcrondyn) */ #define MAX_MSG 150 /* max length of a log message */ +/* *** socket *** */ +#define MAX_CONNECTION 25 /* max simultaneous connection allowed */ +#define MAX_USER_CON 3 /* max number of connection for a normal user */ +#define MAX_IDLE_TIME 300 /* time (in sec) a socket stay idle before being closed */ + + /* *** system dependent *** */ #define EXIT_ERR 1 /* code returned by fcron/fcrontab on error */ #define EXIT_OK 0 /* code returned on normal exit */ @@ -150,6 +157,8 @@ #undef SHELL /* where is located pid file ? */ #undef PIDFILE +/* where is located fifo file ? */ +#undef FIFOFILE /* 1 if we want to compile and install fcrondyn */ #undef FCRONDYN @@ -162,9 +171,11 @@ /* Define if we should use sete[ug]id() funcs */ #undef USE_SETE_ID -/* root uid and gid */ +/* root uid, gid, name and group */ #undef ROOTUID #undef ROOTGID +#undef ROOTNAME +#undef ROOTGROUP /* user and group name to run under */ #undef USERNAME @@ -204,6 +215,9 @@ /* Define on System V Release 4. */ #undef SVR4 +/* Define if you have the crypt function. */ +#undef HAVE_CRYPT + /* Define if you have the flock function. */ #undef HAVE_FLOCK @@ -267,6 +281,9 @@ /* Define if your declares struct tm. */ #undef TM_IN_SYS_TIME +/* Define if you have the header file. */ +#undef HAVE_CRYPT_H + /* Define if you have the header file. */ #undef HAVE_DIRENT_H @@ -288,6 +305,9 @@ /* Define if you have the header file. */ #undef HAVE_NDIR_H +/* Define if you have . */ +#undef HAVE_SHADOW_H + /* Define if you have . */ #undef NLIST_STRUCT @@ -327,6 +347,9 @@ /* Define if you have the header file. */ #undef HAVE_SYS_TYPES_H +/* Define if you have the header file. */ +#undef HAVE_SYS_UN_H + /* Define if you have that is POSIX.1 compatible. */ #undef HAVE_SYS_WAIT_H @@ -341,3 +364,6 @@ /* Define if you have the pam library (-lpam). */ #undef HAVE_LIBPAM + +/* Define if you have the shadow library (-lshadow or included in c library). */ +#undef HAVE_LIBSHADOW diff --git a/configure.in b/configure.in index 52cc5ab..66c7c41 100644 --- a/configure.in +++ b/configure.in @@ -41,8 +41,8 @@ AC_CHECK_HEADERS(errno.h sys/fcntl.h getopt.h limits.h) AC_CHECK_HEADERS(stdarg.h) AC_CHECK_HEADERS(sys/termios.h) AC_CHECK_HEADERS(strings.h) -AC_CHECK_HEADERS(sys/types.h sys/socket.h) -AC_CHECK_HEADERS(security/pam_appl.h) +AC_CHECK_HEADERS(sys/types.h sys/socket.h sys/un.h) +AC_CHECK_HEADERS(security/pam_appl.h crypt.h shadow.h) dnl Checks for typedefs, structures, and compiler characteristics. AC_C_CONST @@ -84,6 +84,29 @@ AC_CHECK_FUNCS(flock lockf) AC_CHECK_FUNCS(seteuid, [seteuid=1], [seteuid=0]) AC_CHECK_FUNCS(setegid, [setegid=1], [setegid=0]) +AC_CHECK_FUNCS(getspnam, [getspnam=1], [getspnam=0]) +if test "$getspnam" -eq "0"; then + AC_CHECK_LIB(getspnam, shadow, [getspnam=1], [getspnam=0]) + if test "$getspnam" -eq "1"; then + LIBS="$LIBS -lshadow" + fi +fi +if test "$getspnam" -eq "1"; then + AC_DEFINE_UNQUOTED(HAVE_LIBSHADOW, 1) +fi + +AC_CHECK_FUNCS(crypt, [crypt=1], [crypt=0]) +if test "$crypt" -eq "0"; then + AC_CHECK_LIB(crypt, crypt, [crypt=1], [crypt=0]) + if test "$crypt" -eq "1"; then + LIBS="$LIBS -lcrypt" + fi +fi +if test "$crypt" -eq "1"; then + AC_DEFINE_UNQUOTED(HAVE_CRYPT, 1) +fi + + dnl --------------------------------------------------------------------- dnl Check for fcron more specific stuffs (paths, progs, ...) @@ -287,6 +310,47 @@ Directory $withval does not exist]) fi ) +AC_MSG_CHECKING(location of fifo files) +AC_ARG_WITH(fifodir, +[ --with-fifodir=PATH Directory containing fifo files.], +[ case "$withval" in + no) + AC_MSG_ERROR(Need FIFODIR.) + ;; + yes) + if test -d /var/run ; then + AC_DEFINE(FIFOFILE, "/var/run/fcron.fifo") + AC_MSG_RESULT(/var/run) + elif test -d /usr/run ; then + AC_DEFINE(FIFOFILE, "/usr/run/fcron.fifo") + AC_MSG_RESULT(/usr/run) + else + AC_DEFINE_UNQUOTED(FIFOFILE, "$ETC/fcron.fifo") + AC_MSG_RESULT($ETC) + fi + ;; + *) + if test -d "$withval"; then + AC_DEFINE_UNQUOTED(FIFOFILE, "$withval/fcron.fifo") + AC_MSG_RESULT($withval) + else + AC_MSG_ERROR([ +Directory $withval does not exist]) + fi + ;; + esac ], + if test -d /var/run ; then + AC_DEFINE(FIFOFILE, "/var/run/fcron.fifo") + AC_MSG_RESULT(/var/run) + elif test -d /usr/run ; then + AC_DEFINE(FIFOFILE, "/usr/run/fcron.fifo") + AC_MSG_RESULT(/usr/run) + else + AC_DEFINE_UNQUOTED(FIFOFILE, "$ETC/fcron.fifo") + AC_MSG_RESULT($ETC) + fi +) + AC_MSG_CHECKING(location of spool directory) AC_ARG_WITH(spooldir, [ --with-spooldir=PATH Directory containing fcron spool (default /var/spool/fcron).], @@ -537,17 +601,27 @@ AC_ARG_WITH(fcrondyn, AC_MSG_RESULT(no) ;; yes) - AC_MSG_RESULT(yes) + if test "$crypt" -eq 1; then + AC_MSG_RESULT(yes) + else + AC_MSG_ERROR(Need a crypt() function.) + fi ;; *) AC_MSG_ERROR(Must be set to either "yes" or "no".) ;; esac ], - AC_MSG_RESULT(yes) + if test "$crypt" -eq 1; then + AC_MSG_RESULT(yes) + else + AC_MSG_RESULT(no) + fi ) FCRONDYN="$fcrondyn" -AC_DEFINE_UNQUOTED(FCRONDYN, "$fcrondyn") -AC_SUBST(FCRONDYN) +if test "$fcrondyn" = 1; then + AC_DEFINE_UNQUOTED(FCRONDYN, "$fcrondyn") + AC_SUBST(FCRONDYN) +fi dnl --------------------------------------------------------------------- diff --git a/doc/Makefile.in b/doc/Makefile.in index 4d612dd..7bae004 100644 --- a/doc/Makefile.in +++ b/doc/Makefile.in @@ -4,7 +4,7 @@ # @configure_input@ -# $Id: Makefile.in,v 1.7 2002-01-27 16:36:46 thib Exp $ +# $Id: Makefile.in,v 1.8 2002-03-02 17:31:20 thib Exp $ # The following should not be edited manually (use configure options) # If you must do it, BEWARE : some of the following is also defined @@ -34,9 +34,9 @@ ANSWERALL = @ANSWERALL@ STYLESHEET = stylesheets/fcron-doc.dsl MODFILE = fcron-doc.mod VERSION = @VERSION@ -SGMLFILES = faq.sgml fcron-doc.sgml fdl.sgml thanks.sgml gpl.sgml todo.sgml fcron.8.sgml fcrontab.1.sgml install.sgml fcron.conf.5.sgml fcrontab.5.sgml readme.sgml +SGMLFILES = faq.sgml fcron-doc.sgml fdl.sgml thanks.sgml gpl.sgml todo.sgml fcron.8.sgml fcrontab.1.sgml install.sgml fcron.conf.5.sgml fcrontab.5.sgml fcrondyn.1.sgml readme.sgml TXTFILES = readme install thanks faq gpl todo -MANPAGES = fcron.8 fcron.conf.5 fcrontab.1 fcrontab.5 +MANPAGES = fcron.8 fcron.conf.5 fcrontab.1 fcrontab.5 fcrondyn.1 # this is a regular expression : # do not ci these files @@ -104,6 +104,7 @@ install: clean @(echo "Installing man pages in $(DESTMAN)/man{1,3,5,8} ...") @(cd .. ; $(INSTALL) -m 644 -o $(ROOTNAME) $(SRCDIR)/doc/man/fcron.8 $(DESTMAN)/man8) @(cd .. ; $(INSTALL) -m 644 -o $(ROOTNAME) $(SRCDIR)/doc/man/fcrontab.1 $(DESTMAN)/man1) + @(cd .. ; $(INSTALL) -m 644 -o $(ROOTNAME) $(SRCDIR)/doc/man/fcrondyn.1 $(DESTMAN)/man1) @(cd .. ; $(INSTALL) -m 644 -o $(ROOTNAME) $(SRCDIR)/doc/man/fcrontab.5 $(DESTMAN)/man5) @(cd .. ; $(INSTALL) -m 644 -o $(ROOTNAME) $(SRCDIR)/doc/man/fcron.conf.5 $(DESTMAN)/man5) @(cd .. ; $(INSTALL) -m 644 -o $(ROOTNAME) $(SRCDIR)/doc/man/bitstring.3 $(DESTMAN)/man3) @@ -122,6 +123,7 @@ install: clean uninstall: rm -fR $(DESTDOC)/fcron-$(VERSION) rm -f $(DESTMAN)/man1/fcrontab.1 + rm -f $(DESTMAN)/man1/fcrondyn.1 rm -f $(DESTMAN)/man3/bitstring.3 rm -f $(DESTMAN)/man5/fcrontab.5 rm -f $(DESTMAN)/man5/fcron.conf.5 diff --git a/doc/en/changes.sgml b/doc/en/changes.sgml index eb687ca..a2b01a0 100644 --- a/doc/en/changes.sgml +++ b/doc/en/changes.sgml @@ -8,7 +8,7 @@ Foundation. A copy of the license is included in gfdl.sgml. --> - + Changes @@ -16,7 +16,10 @@ A copy of the license is included in gfdl.sgml. From version 2.1.0 to 2.1.1 - Added some new options to fcron : -y, -o, -l ; and some fcrontab options : stdout and volatile. All these permit to make fcron run in foreground, execute all the pending jobs (mainly %-jobs), and returns. May be used, for instance, in a ppp-up script with a dialup connection to update a software regularly. + Added some new options to fcron : -y, -o, -l ; and some fcrontab options : stdout and volatile. All these permit to make fcron run in foreground, execute all the pending jobs (mainly %-jobs), and return. May be used, for instance, in a ppp-up script with a dialup connection to update a software regularly. + + + Added fcrondyn : this software allows users to dialog dyn-amically with a running fcron daemon. Currently, it can list jobs of the user running it (or all jobs for root). In the near future, it should be able to run a job, change its next time and date of execution, renice a running job, send a signal to a running job, etc. All the documentation has been ported to SGML DocBook. diff --git a/doc/en/fcron-doc.sgml b/doc/en/fcron-doc.sgml index 1b2ccc4..1e46ca9 100644 --- a/doc/en/fcron-doc.sgml +++ b/doc/en/fcron-doc.sgml @@ -15,7 +15,7 @@ Foundation. A copy of the license is included in gfdl.sgml. --> - + @@ -89,6 +89,7 @@ and how to install it. &fcron.conf.5; &fcrontab.1; &fcrontab.5; + &fcrondyn.1; &faq; diff --git a/doc/en/fcron.8.sgml b/doc/en/fcron.8.sgml index 2a88ec1..afdc3d3 100644 --- a/doc/en/fcron.8.sgml +++ b/doc/en/fcron.8.sgml @@ -8,7 +8,7 @@ Foundation. A copy of the license is included in gfdl.sgml. --> - + @@ -203,19 +203,19 @@ other processes). &etc;/&fcron.conf.location; - Configuration file for &fcron; and &fcrontab; : contains paths (spool dir, pid file) and default programs to use (editor, shell, etc). See &fcron.conf;(5) for more details. + Configuration file for &fcron;, &fcrontab; and &fcrondyn; : contains paths (spool dir, pid file) and default programs to use (editor, shell, etc). See &fcron.conf;(5) for more details. &etc;/&fcron.allow; - Users allowed to use &fcrontab; (one name per line, special name "all" acts for everyone) + Users allowed to use &fcrontab; and &fcrondyn; (one name per line, special name "all" acts for everyone) &etc;/&fcron.deny; - Users who are not allowed to use &fcrontab; (same format as allow file) + Users who are not allowed to use &fcrontab; and &fcrondyn; (same format as allow file) @@ -233,6 +233,7 @@ other processes). &fcron.conf;(5) &fcrontab;(1) &fcrontab;(5) + &fcrondyn;(1) The HTML version of the documentation, if you are not reading it right now, which is far better than these man pages :)). diff --git a/doc/en/fcron.conf.5.sgml b/doc/en/fcron.conf.5.sgml index 04b8ac6..f7ba9b2 100644 --- a/doc/en/fcron.conf.5.sgml +++ b/doc/en/fcron.conf.5.sgml @@ -8,7 +8,7 @@ Foundation. A copy of the license is included in gfdl.sgml. --> - + @@ -25,7 +25,7 @@ A copy of the license is included in gfdl.sgml. Description - This page describes the syntax used for the configuration file of &fcrontab;(1). and &fcron;(8). + This page describes the syntax used for the configuration file of &fcrontab;(1), &fcrondyn;(1) and &fcron;(8). Blank lines, line beginning by a pound-sign (#) (which are considered comments), leading blanks and tabs are ignored. Each line in a &fcron.conf file is of the form
@@ -48,6 +48,12 @@ where the blanks around equal-sign (=) are ignored and optional. Trailing blanks Location of &fcron; pid file (needed by &fcrontab; to work properly). + + fifofile=file-path (&fcron.pid;) + + Location of &fcron; fifo file (needed by &fcrondyn; to communicate with fcron). + + fcronallow=file-path (&etc;/&fcron.allow;) @@ -80,7 +86,7 @@ where the blanks around equal-sign (=) are ignored and optional. Trailing blanks File-paths and directories are complete and absolute (i.e. beginning by a "/"). - To run several instances of &fcron; simultaneously on the same system, you must use a different configuration file for each instance. Each instance must have a different fcrontabs and pidfile. Then, use fcron(8)'s command line option -c to select which config file (so which instance) you refer to. + To run several instances of &fcron; simultaneously on the same system, you must use a different configuration file for each instance. Each instance must have a different fcrontabs, pidfile and fifofile. Then, use fcron(8)'s command line option -c to select which config file (so which instance) you refer to. @@ -89,19 +95,19 @@ File-paths and directories are complete and absolute (i.e. beginning by a "/").< &etc;/&fcron.conf.location; - Configuration file for &fcron; and &fcrontab; : contains paths (spool dir, pid file) and default programs to use (editor, shell, etc). See &fcron.conf(5) for more details. + Configuration file for &fcron;, &fcrontab and &fcrondyn; : contains paths (spool dir, pid file) and default programs to use (editor, shell, etc). See &fcron.conf(5) for more details. &etc;/&fcron.allow; - Users allowed to use &fcrontab; (one name per line, special name "all" acts for everyone) + Users allowed to use &fcrontab; and &fcrondyn; (one name per line, special name "all" acts for everyone) &etc;/&fcron.deny; - Users who are not allowed to use &fcrontab; (same format as allow file) + Users who are not allowed to use &fcrontab; and &fcrondyn; (same format as allow file) @@ -119,6 +125,7 @@ File-paths and directories are complete and absolute (i.e. beginning by a "/").< &fcron;(8) &fcrontab;(1) &fcrontab;(5) + &fcrondyn;(1) The HTML version of the documentation, if you are not reading it right now, which is far better than these man pages :)). diff --git a/doc/en/fcrontab.1.sgml b/doc/en/fcrontab.1.sgml index 5a1ef59..a1b58ce 100644 --- a/doc/en/fcrontab.1.sgml +++ b/doc/en/fcrontab.1.sgml @@ -8,7 +8,7 @@ Foundation. A copy of the license is included in gfdl.sgml. --> - + @@ -147,19 +147,19 @@ We will call "fcrontab" the source file of the &fcrontabf; &etc;/&fcron.conf.location; - Configuration file for &fcron; and &fcrontab; : contains paths (spool dir, pid file) and default programs to use (editor, shell, etc). See &fcron.conf;(5) for more details. + Configuration file for &fcron;, &fcrontab; and &fcrondyn; : contains paths (spool dir, pid file) and default programs to use (editor, shell, etc). See &fcron.conf;(5) for more details. &etc;/&fcron.allow; - Users allowed to use &fcrontab; (one name per line, special name "all" acts for everyone) + Users allowed to use &fcrontab; and &fcrondyn; (one name per line, special name "all" acts for everyone) &etc;/&fcron.deny; - Users who are not allowed to use &fcrontab; (same format as allow file) + Users who are not allowed to use &fcrontab; and &fcrondyn; (same format as allow file) @@ -177,6 +177,7 @@ We will call "fcrontab" the source file of the &fcrontabf; &fcrontab;(5) &fcron;(8) &fcron.conf;(5) + &fcrondyn;(1) The HTML version of the documentation, if you are not reading it right now, which is far better than these man pages :)). diff --git a/doc/en/fcrontab.5.sgml b/doc/en/fcrontab.5.sgml index c17366c..5fd2b96 100644 --- a/doc/en/fcrontab.5.sgml +++ b/doc/en/fcrontab.5.sgml @@ -8,7 +8,7 @@ Foundation. A copy of the license is included in gfdl.sgml. --> - + @@ -555,19 +555,19 @@ the last release of Mozilla !" &etc;/&fcron.conf.location; - Configuration file for &fcron; and &fcrontab; : contains paths (spool dir, pid file) and default programs to use (editor, shell, etc). See &fcron.conf(5) for more details. + Configuration file for &fcron;, &fcrontab; and &fcrondyn; : contains paths (spool dir, pid file) and default programs to use (editor, shell, etc). See &fcron.conf(5) for more details. &etc;/&fcron.allow; - Users allowed to use &fcrontab; (one name per line, special name "all" acts for everyone) + Users allowed to use &fcrontab; and &fcrondyn; (one name per line, special name "all" acts for everyone) &etc;/&fcron.deny; - Users who are not allowed to use &fcrontab; (same format as allow file) + Users who are not allowed to use &fcrontab; and &fcrondyn; (same format as allow file) @@ -584,6 +584,7 @@ the last release of Mozilla !" &fcron;(8) &fcrontab;(1) + &fcrondyn;(1) &fcron.conf;(5) The HTML version of the documentation, if you are not reading it right now, which is far better than these man pages :)). diff --git a/doc/fcron-doc.mod.in b/doc/fcron-doc.mod.in index cf70245..5b6d0a1 100644 --- a/doc/fcron-doc.mod.in +++ b/doc/fcron-doc.mod.in @@ -17,6 +17,7 @@ + @@ -34,6 +35,8 @@ Fcron"> fcrontab"> Fcrontab"> +fcrondyn"> +Fcrondyn"> fcrontab"> fcron.conf"> @@ -47,6 +50,7 @@ + diff --git a/fcron.h b/fcron.h index c0303c6..dba8a5c 100644 --- a/fcron.h +++ b/fcron.h @@ -21,13 +21,17 @@ * `LICENSE' that comes with the fcron source distribution. */ - /* $Id: fcron.h,v 1.26 2002-02-25 18:41:47 thib Exp $ */ + /* $Id: fcron.h,v 1.27 2002-03-02 17:27:34 thib Exp $ */ #ifndef __FCRON_H__ #define __FCRON_H__ #include "global.h" +#ifdef HAVE_CRYPT_H +#include +#endif + #ifdef HAVE_DIRENT_H #include #elif HAVE_SYS_DIRENT_H @@ -42,6 +46,10 @@ #include +#ifdef HAVE_SHADOW_H +#include +#endif + #ifdef HAVE_SYS_IOCTL_H #include #endif @@ -67,6 +75,7 @@ extern char *prog_name; extern char sig_hup; extern struct CF *file_base; extern struct job *queue_base; +extern unsigned long int next_id; extern struct CL **serial_array; extern short int serial_array_size; extern short int serial_array_index;