projects
/
tinc
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Forgot to #include "xalloc.h"
[tinc]
/
lib
/
pidfile.c
diff --git
a/lib/pidfile.c
b/lib/pidfile.c
index
2dea70b
..
61a802f
100644
(file)
--- a/
lib/pidfile.c
+++ b/
lib/pidfile.c
@@
-27,20
+27,21
@@
#include "system.h"
#include "system.h"
+#ifndef HAVE_MINGW
/* read_pid
*
* Reads the specified pidfile and returns the read pid.
* 0 is returned if either there's no pidfile, it's empty
* or no pid can be read.
*/
/* read_pid
*
* Reads the specified pidfile and returns the read pid.
* 0 is returned if either there's no pidfile, it's empty
* or no pid can be read.
*/
-
in
t read_pid (char *pidfile)
+
pid_
t read_pid (char *pidfile)
{
FILE *f;
{
FILE *f;
-
int
pid;
+
long
pid;
if (!(f=fopen(pidfile,"r")))
return 0;
if (!(f=fopen(pidfile,"r")))
return 0;
- fscanf(f,"%d", &pid);
+ fscanf(f,"%
l
d", &pid);
fclose(f);
return pid;
}
fclose(f);
return pid;
}
@@
-49,11
+50,11
@@
int read_pid (char *pidfile)
*
* 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
*
* 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.
*/
*/
-
in
t check_pid (char *pidfile)
+
pid_
t check_pid (char *pidfile)
{
{
-
in
t pid = read_pid(pidfile);
+
pid_
t pid = read_pid(pidfile);
/* Amazing ! _I_ am already holding the pid file... */
if ((!pid) || (pid == getpid ()))
/* Amazing ! _I_ am already holding the pid file... */
if ((!pid) || (pid == getpid ()))
@@
-67,7
+68,7
@@
int check_pid (char *pidfile)
/* But... errno is usually changed only on error.. */
errno = 0;
if (kill(pid, 0) && errno == ESRCH)
/* But... errno is usually changed only on error.. */
errno = 0;
if (kill(pid, 0) && errno == ESRCH)
- return
(0)
;
+ return
0
;
return pid;
}
return pid;
}
@@
-77,30
+78,26
@@
int check_pid (char *pidfile)
* Writes the pid to the specified file. If that fails 0 is
* returned, otherwise the pid.
*/
* Writes the pid to the specified file. If that fails 0 is
* returned, otherwise the pid.
*/
-
in
t write_pid (char *pidfile)
+
pid_
t write_pid (char *pidfile)
{
FILE *f;
int fd;
{
FILE *f;
int fd;
-
in
t pid;
+
pid_
t pid;
if ( ((fd = open(pidfile, O_RDWR|O_CREAT, 0644)) == -1)
|| ((f = fdopen(fd, "r+")) == NULL) ) {
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) {
return 0;
}
#ifdef HAVE_FLOCK
if (flock(fd, LOCK_EX|LOCK_NB) == -1) {
- fscanf(f, "%d", &pid);
fclose(f);
fclose(f);
- printf("Can't lock, lock is held by pid %d.\n", pid);
return 0;
}
#endif
pid = getpid();
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;
}
close(fd);
return 0;
}
@@
-108,7
+105,6
@@
int write_pid (char *pidfile)
#ifdef HAVE_FLOCK
if (flock(fd, LOCK_UN) == -1) {
#ifdef HAVE_FLOCK
if (flock(fd, LOCK_UN) == -1) {
- printf("Can't unlock pidfile %s, %s.\n", pidfile, strerror(errno));
close(fd);
return 0;
}
close(fd);
return 0;
}
@@
-127,4
+123,4
@@
int remove_pid (char *pidfile)
{
return unlink (pidfile);
}
{
return unlink (pidfile);
}
-
+#endif