dnl Process this file with autoconf to produce a configure script.
-dnl $Id: configure.in,v 1.13.2.83 2003/08/08 22:13:50 guus Exp $
+dnl $Id: configure.in,v 1.13.2.84 2003/10/06 16:13:06 guus Exp $
AC_PREREQ(2.57)
AC_INIT(src/tincd.c)
AC_FUNC_MEMCMP
AC_FUNC_ALLOCA
AC_TYPE_SIGNAL
-AC_CHECK_FUNCS([asprintf daemon fchmod fcloseall flock ftime fork get_current_dir_name gettimeofday mlockall putenv random select strdup strerror strsignal strtol system unsetenv vsyslog])
+AC_CHECK_FUNCS([asprintf daemon fchmod flock ftime fork get_current_dir_name gettimeofday mlockall putenv random select strdup strerror strsignal strtol system unsetenv vsyslog])
jm_FUNC_MALLOC
jm_FUNC_REALLOC
* 0 is returned if either there's no pidfile, it's empty
* or no pid can be read.
*/
-int read_pid (char *pidfile)
+pid_t read_pid (char *pidfile)
{
FILE *f;
- int pid;
+ long pid;
if (!(f=fopen(pidfile,"r")))
return 0;
- fscanf(f,"%d", &pid);
+ fscanf(f,"%ld", &pid);
fclose(f);
return pid;
}
*
* Reads the pid using read_pid and looks up the pid in the process
* table (using /proc) to determine if the process already exists. If
- * so 1 is returned, otherwise 0.
+ * so the pid is returned, otherwise 0.
*/
-int check_pid (char *pidfile)
+pid_t check_pid (char *pidfile)
{
- int pid = read_pid(pidfile);
+ pid_t pid = read_pid(pidfile);
/* Amazing ! _I_ am already holding the pid file... */
if ((!pid) || (pid == getpid ()))
/* But... errno is usually changed only on error.. */
errno = 0;
if (kill(pid, 0) && errno == ESRCH)
- return(0);
+ return 0;
return pid;
}
* Writes the pid to the specified file. If that fails 0 is
* returned, otherwise the pid.
*/
-int write_pid (char *pidfile)
+pid_t write_pid (char *pidfile)
{
FILE *f;
int fd;
- int pid;
+ pid_t pid;
if ( ((fd = open(pidfile, O_RDWR|O_CREAT, 0644)) == -1)
|| ((f = fdopen(fd, "r+")) == NULL) ) {
- fprintf(stderr, "Can't open or create %s.\n", pidfile);
return 0;
}
#ifdef HAVE_FLOCK
if (flock(fd, LOCK_EX|LOCK_NB) == -1) {
- fscanf(f, "%d", &pid);
fclose(f);
- printf("Can't lock, lock is held by pid %d.\n", pid);
return 0;
}
#endif
pid = getpid();
- if (!fprintf(f,"%d\n", pid)) {
- printf("Can't write pid , %s.\n", strerror(errno));
+ if (!fprintf(f,"%ld\n", (long)pid)) {
close(fd);
return 0;
}
#ifdef HAVE_FLOCK
if (flock(fd, LOCK_UN) == -1) {
- printf("Can't unlock pidfile %s, %s.\n", pidfile, strerror(errno));
close(fd);
return 0;
}
* 0 is returned if either there's no pidfile, it's empty
* or no pid can be read.
*/
-int read_pid (char *pidfile);
+pid_t read_pid (char *pidfile);
/* check_pid
*
* table (using /proc) to determine if the process already exists. If
* so 1 is returned, otherwise 0.
*/
-int check_pid (char *pidfile);
+pid_t check_pid (char *pidfile);
/* write_pid
*
* Writes the pid to the specified file. If that fails 0 is
* returned, otherwise the pid.
*/
-int write_pid (char *pidfile);
+pid_t write_pid (char *pidfile);
/* remove_pid
*
along with this program; if not, write to the Free Software
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- $Id: logger.c,v 1.1.2.11 2003/08/17 12:04:35 guus Exp $
+ $Id: logger.c,v 1.1.2.12 2003/10/06 16:13:07 guus Exp $
*/
#include "system.h"
fflush(stderr);
break;
case LOGMODE_FILE:
- fprintf(logfile, "%ld %s[%d]: ", time(NULL), logident, logpid);
+ fprintf(logfile, "%ld %s[%ld]: ", time(NULL), logident, (long)logpid);
vfprintf(logfile, format, ap);
fprintf(logfile, "\n");
fflush(logfile);
along with this program; if not, write to the Free Software
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- $Id: process.c,v 1.1.2.75 2003/08/22 15:07:57 guus Exp $
+ $Id: process.c,v 1.1.2.76 2003/10/06 16:13:08 guus Exp $
*/
#include "system.h"
/* Some functions the less gifted operating systems might lack... */
-#ifndef HAVE_FCLOSEALL
-static int fcloseall(void)
-{
- fflush(stdin);
- fflush(stdout);
- fflush(stderr);
- fclose(stdin);
- fclose(stdout);
- fclose(stderr);
- return 0;
-}
-#endif
-
#ifdef HAVE_MINGW
extern char *identname;
extern char *program_name;
*/
static bool write_pidfile(void)
{
- int pid;
+ pid_t pid;
cp();
if(pid) {
if(netname)
- fprintf(stderr, _("A tincd is already running for net `%s' with pid %d.\n"),
- netname, pid);
+ fprintf(stderr, _("A tincd is already running for net `%s' with pid %ld.\n"),
+ netname, (long)pid);
else
- fprintf(stderr, _("A tincd is already running with pid %d.\n"), pid);
+ fprintf(stderr, _("A tincd is already running with pid %ld.\n"), (long)pid);
return false;
}
bool kill_other(int signal)
{
#ifndef HAVE_MINGW
- int pid;
+ pid_t pid;
cp();
along with this program; if not, write to the Free Software
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- $Id: tincd.c,v 1.10.4.88 2003/09/25 10:34:16 guus Exp $
+ $Id: tincd.c,v 1.10.4.89 2003/10/06 16:13:08 guus Exp $
*/
#include "system.h"
#include <lzo1x.h>
#include <getopt.h>
+#include <pidfile.h>
#include "conf.h"
#include "device.h"