--- tftpd/tftpd.c.orig 2003-01-31 03:22:33.000000000 +0100 +++ tftpd/tftpd.c 2003-04-11 09:19:35.000000000 +0200 @@ -477,6 +477,22 @@ setsid(); #endif #endif +#ifdef PID_FILE + /* Write PID file */ + { + mode_t old_umask; + pid_t pid; + FILE *fp; + + old_umask = umask((mode_t) 0022); + pid = getpid(); + if ((fp = fopen(PID_FILE, "w")) == NULL) + syslog(LOG_ERR, "cannot write PID file '%s'", PID_FILE); + fprintf(fp, "%ld\n", (long)pid); + fclose(fp); + umask(old_umask); + } +#endif } } else { /* 0 is our socket descriptor */