# @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
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)
$(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)"
* `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"
}
/* 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;
* `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 $ */
/* *********************************************************** */
#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 */
#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
/* 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
/* 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
/* Define if your <sys/time.h> declares struct tm. */
#undef TM_IN_SYS_TIME
+/* Define if you have the <crypt.h> header file. */
+#undef HAVE_CRYPT_H
+
/* Define if you have the <dirent.h> header file. */
#undef HAVE_DIRENT_H
/* Define if you have the <ndir.h> header file. */
#undef HAVE_NDIR_H
+/* Define if you have <shadow.h>. */
+#undef HAVE_SHADOW_H
+
/* Define if you have <nlist.h>. */
#undef NLIST_STRUCT
/* Define if you have the <sys/types.h> header file. */
#undef HAVE_SYS_TYPES_H
+/* Define if you have the <sys/un.h> header file. */
+#undef HAVE_SYS_UN_H
+
/* Define if you have <sys/wait.h> that is POSIX.1 compatible. */
#undef HAVE_SYS_WAIT_H
/* 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
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
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, ...)
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).],
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 ---------------------------------------------------------------------
# @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
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
@(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)
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
A copy of the license is included in gfdl.sgml.
-->
-<!-- $Id: changes.sgml,v 1.7 2002-02-25 18:47:19 thib Exp $ -->
+<!-- $Id: changes.sgml,v 1.8 2002-03-02 17:33:20 thib Exp $ -->
<sect1 id="changes">
<title>Changes</title>
<itemizedlist>
<title>From version 2.1.0 to 2.1.1</title>
<listitem>
- <para>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.</para>
+ <para>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.</para>
+ </listitem>
+ <listitem>
+ <para>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.</para>
</listitem>
<listitem>
<para>All the documentation has been ported to SGML DocBook.</para>
A copy of the license is included in gfdl.sgml.
-->
-<!-- $Id: fcron-doc.sgml,v 1.1 2002-01-03 14:26:11 thib Exp $ -->
+<!-- $Id: fcron-doc.sgml,v 1.2 2002-03-02 17:30:44 thib Exp $ -->
<book lang="en" id="fcron-doc">
<bookinfo id="bookinfo">
&fcron.conf.5;
&fcrontab.1;
&fcrontab.5;
+ &fcrondyn.1;
</sect1>
&faq;
</chapter>
A copy of the license is included in gfdl.sgml.
-->
-<!-- $Id: fcron.8.sgml,v 1.2 2002-01-04 19:11:55 thib Exp $ -->
+<!-- $Id: fcron.8.sgml,v 1.3 2002-03-02 17:31:39 thib Exp $ -->
<refentry id="fcron.8">
<refmeta>
<varlistentry>
<term><filename>&etc;/&fcron.conf.location;</filename></term>
<listitem>
- <para>Configuration file for &fcron; and &fcrontab; : contains paths (spool dir, pid file) and default programs to use (editor, shell, etc). See <link linkend="fcron.conf.5">&fcron.conf;(5)</link> for more details.</para>
+ <para>Configuration file for &fcron;, &fcrontab; and &fcrondyn; : contains paths (spool dir, pid file) and default programs to use (editor, shell, etc). See <link linkend="fcron.conf.5">&fcron.conf;(5)</link> for more details.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><filename>&etc;/&fcron.allow;</filename></term>
<listitem>
- <para>Users allowed to use &fcrontab; (one name per line, special name "all" acts for everyone)</para>
+ <para>Users allowed to use &fcrontab; and &fcrondyn; (one name per line, special name "all" acts for everyone)</para>
</listitem>
</varlistentry>
<varlistentry>
<term><filename>&etc;/&fcron.deny;</filename></term>
<listitem>
- <para>Users who are not allowed to use &fcrontab; (same format as allow file)</para>
+ <para>Users who are not allowed to use &fcrontab; and &fcrondyn; (same format as allow file)</para>
</listitem>
</varlistentry>
<varlistentry>
<member><link linkend="fcron.conf.5">&fcron.conf;(5)</link></member>
<member><link linkend="fcrontab.1">&fcrontab;(1)</link></member>
<member><link linkend="fcrontab.5">&fcrontab;(5)</link></member>
+ <member><link linkend="fcrondyn.1">&fcrondyn;(1)</link></member>
<member>The HTML version of the documentation, if you are not reading it right now, which is far better than these man pages :)).</member>
</simplelist>
</refsect1>
A copy of the license is included in gfdl.sgml.
-->
-<!-- $Id: fcron.conf.5.sgml,v 1.2 2002-01-04 19:11:47 thib Exp $ -->
+<!-- $Id: fcron.conf.5.sgml,v 1.3 2002-03-02 17:31:16 thib Exp $ -->
<refentry id="fcron.conf.5">
<refmeta>
<refsect1>
<title>Description</title>
<abstract>
- <para>This page describes the syntax used for the configuration file of <link linkend="fcrontab.1">&fcrontab;</link>(1). and <link linkend="fcron.8">&fcron;</link>(8).</para>
+ <para>This page describes the syntax used for the configuration file of <link linkend="fcrontab.1">&fcrontab;</link>(1), <link linkend="fcrondyn.1">&fcrondyn;</link>(1) and <link linkend="fcron.8">&fcron;</link>(8).</para>
</abstract>
<para>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
<blockquote>
<para>Location of &fcron; pid file (needed by &fcrontab; to work properly).</para>
</listitem>
</varlistentry>
+ <varlistentry>
+ <term><varname>fifofile</varname>=<replaceable>file-path</replaceable> (<filename>&fcron.pid;</filename>)</term>
+ <listitem>
+ <para>Location of &fcron; fifo file (needed by &fcrondyn; to communicate with fcron).</para>
+ </listitem>
+ </varlistentry>
<varlistentry>
<term><varname>fcronallow</varname>=<replaceable>file-path</replaceable> (<filename>&etc;/&fcron.allow;</filename>)</term>
<listitem>
</varlistentry>
</variablelist>
File-paths and directories are complete and absolute (i.e. beginning by a "/").</para>
- <para>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 <varname>fcrontabs</varname> and <varname>pidfile</varname>. Then, use <link linkend="fcron.8">fcron</link>(8)'s command line option <parameter>-c</parameter> to select which config file (so which instance) you refer to.</para>
+ <para>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 <varname>fcrontabs</varname>, <varname>pidfile</varname> and <varname>fifofile</varname>. Then, use <link linkend="fcron.8">fcron</link>(8)'s command line option <parameter>-c</parameter> to select which config file (so which instance) you refer to.</para>
</refsect1>
<refsect1>
<varlistentry>
<term><filename>&etc;/&fcron.conf.location;</filename></term>
<listitem>
- <para>Configuration file for &fcron; and &fcrontab; : contains paths (spool dir, pid file) and default programs to use (editor, shell, etc). See <link linkend="fcron.conf.5">&fcron.conf(5)</link> for more details.</para>
+ <para>Configuration file for &fcron;, &fcrontab and &fcrondyn; : contains paths (spool dir, pid file) and default programs to use (editor, shell, etc). See <link linkend="fcron.conf.5">&fcron.conf(5)</link> for more details.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><filename>&etc;/&fcron.allow;</filename></term>
<listitem>
- <para>Users allowed to use &fcrontab; (one name per line, special name "all" acts for everyone)</para>
+ <para>Users allowed to use &fcrontab; and &fcrondyn; (one name per line, special name "all" acts for everyone)</para>
</listitem>
</varlistentry>
<varlistentry>
<term><filename>&etc;/&fcron.deny;</filename></term>
<listitem>
- <para>Users who are not allowed to use &fcrontab; (same format as allow file)</para>
+ <para>Users who are not allowed to use &fcrontab; and &fcrondyn; (same format as allow file)</para>
</listitem>
</varlistentry>
<varlistentry>
<member><link linkend="fcron.8">&fcron;(8)</link></member>
<member><link linkend="fcrontab.1">&fcrontab;(1)</link></member>
<member><link linkend="fcrontab.5">&fcrontab;(5)</link></member>
+ <member><link linkend="fcrondyn.1">&fcrondyn;(1)</link></member>
<member>The HTML version of the documentation, if you are not reading it right now, which is far better than these man pages :)).</member>
</simplelist>
</refsect1>
A copy of the license is included in gfdl.sgml.
-->
-<!-- $Id: fcrontab.1.sgml,v 1.2 2002-01-04 19:12:00 thib Exp $ -->
+<!-- $Id: fcrontab.1.sgml,v 1.3 2002-03-02 17:33:23 thib Exp $ -->
<refentry id="fcrontab.1">
<refmeta>
<varlistentry>
<term><filename>&etc;/&fcron.conf.location;</filename></term>
<listitem>
- <para>Configuration file for &fcron; and &fcrontab; : contains paths (spool dir, pid file) and default programs to use (editor, shell, etc). See <link linkend="fcron.conf.5">&fcron.conf;(5)</link> for more details.</para>
+ <para>Configuration file for &fcron;, &fcrontab; and &fcrondyn; : contains paths (spool dir, pid file) and default programs to use (editor, shell, etc). See <link linkend="fcron.conf.5">&fcron.conf;(5)</link> for more details.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><filename>&etc;/&fcron.allow;</filename></term>
<listitem>
- <para>Users allowed to use &fcrontab; (one name per line, special name "all" acts for everyone)</para>
+ <para>Users allowed to use &fcrontab; and &fcrondyn; (one name per line, special name "all" acts for everyone)</para>
</listitem>
</varlistentry>
<varlistentry>
<term><filename>&etc;/&fcron.deny;</filename></term>
<listitem>
- <para>Users who are not allowed to use &fcrontab; (same format as allow file)</para>
+ <para>Users who are not allowed to use &fcrontab; and &fcrondyn; (same format as allow file)</para>
</listitem>
</varlistentry>
<varlistentry>
<member><link linkend="fcrontab.5">&fcrontab;(5)</link></member>
<member><link linkend="fcron.8">&fcron;(8)</link></member>
<member><link linkend="fcron.conf.5">&fcron.conf;(5)</link></member>
+ <member><link linkend="fcrondyn.1">&fcrondyn;(1)</link></member>
<member>The HTML version of the documentation, if you are not reading it right now, which is far better than these man pages :)).</member>
</simplelist>
</refsect1>
A copy of the license is included in gfdl.sgml.
-->
-<!-- $Id: fcrontab.5.sgml,v 1.5 2002-02-16 10:09:50 thib Exp $ -->
+<!-- $Id: fcrontab.5.sgml,v 1.6 2002-03-02 17:33:25 thib Exp $ -->
<refentry id="fcrontab.5">
<refmeta>
<varlistentry>
<term><filename>&etc;/&fcron.conf.location;</filename></term>
<listitem>
- <para>Configuration file for &fcron; and &fcrontab; : contains paths (spool dir, pid file) and default programs to use (editor, shell, etc). See <link linkend="fcron.conf.5">&fcron.conf(5)</link> for more details.</para>
+ <para>Configuration file for &fcron;, &fcrontab; and &fcrondyn; : contains paths (spool dir, pid file) and default programs to use (editor, shell, etc). See <link linkend="fcron.conf.5">&fcron.conf(5)</link> for more details.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><filename>&etc;/&fcron.allow;</filename></term>
<listitem>
- <para>Users allowed to use &fcrontab; (one name per line, special name "all" acts for everyone)</para>
+ <para>Users allowed to use &fcrontab; and &fcrondyn; (one name per line, special name "all" acts for everyone)</para>
</listitem>
</varlistentry>
<varlistentry>
<term><filename>&etc;/&fcron.deny;</filename></term>
<listitem>
- <para>Users who are not allowed to use &fcrontab; (same format as allow file)</para>
+ <para>Users who are not allowed to use &fcrontab; and &fcrondyn; (same format as allow file)</para>
</listitem>
</varlistentry>
<varlistentry>
<simplelist>
<member><link linkend="fcron.8">&fcron;(8)</link></member>
<member><link linkend="fcrontab.1">&fcrontab;(1)</link></member>
+ <member><link linkend="fcrondyn.1">&fcrondyn;(1)</link></member>
<member><link linkend="fcrontab.5">&fcron.conf;(5)</link></member>
<member>The HTML version of the documentation, if you are not reading it right now, which is far better than these man pages :)).</member>
</simplelist>
<!ENTITY fcron.conf.location "@@FCRON_CONF@">
<!ENTITY fcron.deny "@@FCRON_DENY@">
<!ENTITY fcron.pid "@@PIDFILE@">
+<!ENTITY fcron.pid "@@FIFOFILE@">
<!ENTITY fcrontabsdir "@@FCRONTABS@">
<!ENTITY firstsleep "@@FIRST_SLEEP@">
<!ENTITY lavgoncedef "@@LAVG_ONCE@">
<!ENTITY Fcron "<application>Fcron</application>">
<!ENTITY fcrontab "<application>fcrontab</application>">
<!ENTITY Fcrontab "<application>Fcrontab</application>">
+<!ENTITY fcrondyn "<application>fcrondyn</application>">
+<!ENTITY Fcrondyn "<application>Fcrondyn</application>">
<!ENTITY fcrontabf "<systemitem>fcrontab</systemitem>">
<!ENTITY fcron.conf "<systemitem>fcron.conf</systemitem>">
<!ENTITY fcron.conf.5 SYSTEM "fcron.conf.5.sgml">
<!ENTITY fcrontab.1 SYSTEM "fcrontab.1.sgml">
<!ENTITY fcrontab.5 SYSTEM "fcrontab.5.sgml">
+<!ENTITY fcrondyn.1 SYSTEM "fcrondyn.1.sgml">
<!ENTITY faq SYSTEM "faq.sgml">
<!ENTITY fdl SYSTEM "fdl.sgml">
<!ENTITY gpl SYSTEM "gpl.sgml">
* `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 <crypt.h>
+#endif
+
#ifdef HAVE_DIRENT_H
#include <dirent.h>
#elif HAVE_SYS_DIRENT_H
#include <grp.h>
+#ifdef HAVE_SHADOW_H
+#include <shadow.h>
+#endif
+
#ifdef HAVE_SYS_IOCTL_H
#include <sys/ioctl.h>
#endif
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;