12 |
extern char *home; |
extern char *home; |
13 |
|
|
14 |
static char *lockfile = NULL; /* Lock file to stop new |
static char *lockfile = NULL; /* Lock file to stop new |
15 |
imapfilter processes */ |
imapfilter processes. */ |
16 |
|
|
17 |
|
|
18 |
/* |
/* |
43 |
if ((n = lockfile_pid())) { |
if ((n = lockfile_pid())) { |
44 |
fprintf(stderr, |
fprintf(stderr, |
45 |
"imapfilter: another imapfilter is running with pid %d\n", n); |
"imapfilter: another imapfilter is running with pid %d\n", n); |
46 |
exit(ERROR_LOCK_FILE); |
exit(ERROR_LOCKFILE); |
47 |
} |
} |
48 |
} |
} |
49 |
|
|
105 |
void kill_imapfilter(void) |
void kill_imapfilter(void) |
106 |
{ |
{ |
107 |
pid_t n; |
pid_t n; |
108 |
|
|
109 |
n = lockfile_pid(); |
n = lockfile_pid(); |
110 |
|
|
111 |
if (n > 0) { |
if (n > 0) { |
112 |
if (kill(n, SIGTERM)) |
if (kill(n, SIGTERM)) |
113 |
fprintf(stderr, "imapfilter: killing process with pid %d; %s\n", |
fprintf(stderr, "imapfilter: killing process with pid %d; %s\n", |
114 |
n, strerror(errno)); |
n, strerror(errno)); |
115 |
|
lockfile_remove(); |
116 |
exit(0); |
exit(0); |
117 |
} else { |
} else { |
118 |
fprintf(stderr, "imapfilter: no other imapfilter is running\n"); |
fprintf(stderr, "imapfilter: no other imapfilter is running\n"); |