ok, now it works

git-svn-id: svn://katsu.triplehelix.org/dgamelaunch/trunk@70 db0b04b0-f4d1-0310-9a6d-de3e77497b0e
This commit is contained in:
Joshua Kwan 2004-01-04 02:35:40 +00:00
parent acfec7933e
commit b0ba0861ea
1 changed files with 13 additions and 4 deletions

View File

@ -140,7 +140,7 @@ gen_inprogress_lock (pid_t pid)
int fd; int fd;
struct flock fl = { 0 }; struct flock fl = { 0 };
snprintf (pidbuf, 16, "%.15d", pid); snprintf (pidbuf, 16, "%d", pid);
fl.l_type = F_WRLCK; fl.l_type = F_WRLCK;
fl.l_whence = SEEK_SET; fl.l_whence = SEEK_SET;
@ -1127,10 +1127,11 @@ purge_stale_locks (void)
while ((dent = readdir (pdir)) != NULL) while ((dent = readdir (pdir)) != NULL)
{ {
FILE *ipfile; FILE *ipfile;
char *colon; char *colon, *fn;
char buf[16]; char buf[16];
pid_t pid; pid_t pid;
int seconds; size_t len;
int seconds = 0;
if (!strcmp(dent->d_name, ".") || !strcmp(dent->d_name, "..")) if (!strcmp(dent->d_name, ".") || !strcmp(dent->d_name, ".."))
continue; continue;
@ -1143,13 +1144,21 @@ purge_stale_locks (void)
if (strncmp (dent->d_name, me->username, colon - dent->d_name)) if (strncmp (dent->d_name, me->username, colon - dent->d_name))
continue; continue;
if (!(ipfile = fopen (dent->d_name, "r"))) len = strlen(dent->d_name) + ARRAY_SIZE(LOC_INPROGRESSDIR) + 1;
fn = malloc (len);
snprintf(fn, len, "%s%s", LOC_INPROGRESSDIR, dent->d_name);
if (!(ipfile = fopen (fn, "r")))
graceful_exit (202); graceful_exit (202);
if (fgets (buf, 16, ipfile) == NULL) if (fgets (buf, 16, ipfile) == NULL)
graceful_exit (203); graceful_exit (203);
fclose (ipfile); fclose (ipfile);
unlink (fn);
free(fn);
pid = atoi (buf); pid = atoi (buf);