refactor some code out to write_pidfile() in util.c

This commit is contained in:
Yang Tse
2008-02-26 15:06:44 +00:00
parent 9682c2037e
commit 0d09f342c4
5 changed files with 32 additions and 52 deletions

View File

@@ -98,6 +98,17 @@ static volatile int sigpipe; /* Why? It's not used */
const char *serverlogfile = (char *)DEFAULT_LOGFILE; const char *serverlogfile = (char *)DEFAULT_LOGFILE;
bool use_ipv6 = FALSE;
unsigned short port = DEFAULT_PORT;
unsigned short connectport = 0; /* if non-zero, we activate this mode */
enum sockmode {
PASSIVE_LISTEN, /* as a server waiting for connections */
PASSIVE_CONNECT, /* as a server, connected to a client */
ACTIVE, /* as a client, connected to a server */
ACTIVE_DISCONNECT /* as a client, disconnected from server */
};
static void lograw(unsigned char *buffer, ssize_t len) static void lograw(unsigned char *buffer, ssize_t len)
{ {
char data[120]; char data[120];
@@ -143,17 +154,6 @@ static void sigpipe_handler(int sig)
} }
#endif #endif
bool use_ipv6=FALSE;
unsigned short port = DEFAULT_PORT;
unsigned short connectport = 0; /* if non-zero, we activate this mode */
enum sockmode {
PASSIVE_LISTEN, /* as a server waiting for connections */
PASSIVE_CONNECT, /* as a server, connected to a client */
ACTIVE, /* as a client, connected to a server */
ACTIVE_DISCONNECT /* as a client, disconnected from server */
};
/* /*
sockfdp is a pointer to an established stream or CURL_SOCKET_BAD sockfdp is a pointer to an established stream or CURL_SOCKET_BAD
@@ -519,7 +519,6 @@ int main(int argc, char *argv[])
#endif /* ENABLE_IPV6 */ #endif /* ENABLE_IPV6 */
curl_socket_t sock; curl_socket_t sock;
curl_socket_t msgsock; curl_socket_t msgsock;
FILE *pidfile;
char *pidname= (char *)".sockfilt.pid"; char *pidname= (char *)".sockfilt.pid";
int rc; int rc;
int error; int error;
@@ -682,18 +681,7 @@ int main(int argc, char *argv[])
else else
logmsg("Listening on port %d", port); logmsg("Listening on port %d", port);
pidfile = fopen(pidname, "w"); if(!write_pidfile(pidname)) {
if(pidfile) {
long pid = (long)getpid();
fprintf(pidfile, "%ld\n", pid);
fclose(pidfile);
logmsg("Wrote pid %ld to %s", pid, pidname);
}
else {
error = ERRNO;
logmsg("fopen() failed with error: %d %s", error, strerror(error));
logmsg("Error opening file: %s", pidname);
logmsg("Couldn't write pid file");
sclose(sock); sclose(sock);
return 1; return 1;
} }

View File

@@ -832,11 +832,9 @@ int main(int argc, char *argv[])
curl_socket_t sock, msgsock; curl_socket_t sock, msgsock;
int flag; int flag;
unsigned short port = DEFAULT_PORT; unsigned short port = DEFAULT_PORT;
FILE *pidfile;
char *pidname= (char *)".http.pid"; char *pidname= (char *)".http.pid";
struct httprequest req; struct httprequest req;
int rc; int rc;
int error;
int arg=1; int arg=1;
#ifdef CURL_SWS_FORK_ENABLED #ifdef CURL_SWS_FORK_ENABLED
bool use_fork = FALSE; bool use_fork = FALSE;
@@ -946,18 +944,7 @@ int main(int argc, char *argv[])
return 1; return 1;
} }
pidfile = fopen(pidname, "w"); if(!write_pidfile(pidname)) {
if(pidfile) {
long pid = (long)getpid();
fprintf(pidfile, "%ld\n", pid);
fclose(pidfile);
logmsg("Wrote pid %ld to %s", pid, pidname);
}
else {
error = ERRNO;
logmsg("fopen() failed with error: %d %s", error, strerror(error));
logmsg("Error opening file: %s", pidname);
logmsg("Couldn't write pid file");
sclose(sock); sclose(sock);
return 1; return 1;
} }

View File

@@ -417,13 +417,11 @@ int main(int argc, char **argv)
struct tftphdr *tp; struct tftphdr *tp;
int n = 0; int n = 0;
int arg = 1; int arg = 1;
FILE *pidfile;
char *pidname= (char *)".tftpd.pid"; char *pidname= (char *)".tftpd.pid";
unsigned short port = DEFAULT_PORT; unsigned short port = DEFAULT_PORT;
curl_socket_t sock; curl_socket_t sock;
int flag; int flag;
int rc; int rc;
int error;
struct testcase test; struct testcase test;
while(argc>arg) { while(argc>arg) {
@@ -509,18 +507,7 @@ int main(int argc, char **argv)
return 1; return 1;
} }
pidfile = fopen(pidname, "w"); if(!write_pidfile(pidname)) {
if(pidfile) {
long pid = (long)getpid();
fprintf(pidfile, "%ld\n", pid);
fclose(pidfile);
logmsg("Wrote pid %ld to %s", pid, pidname);
}
else {
error = ERRNO;
logmsg("fopen() failed with error: %d %s", error, strerror(error));
logmsg("Error opening file: %s", pidname);
logmsg("Couldn't write pid file");
sclose(sock); sclose(sock);
return 1; return 1;
} }

View File

@@ -222,3 +222,19 @@ int wait_ms(int timeout_ms)
return r; return r;
} }
bool write_pidfile(const char *filename)
{
FILE *pidfile;
long pid;
pid = (long)getpid();
pidfile = fopen(filename, "w");
if(!pidfile) {
logmsg("Couldn't write pid file: %s %s", filename, strerror(ERRNO));
return FALSE;
}
fprintf(pidfile, "%ld\n", pid);
fclose(pidfile);
logmsg("Wrote pid %ld to %s", pid, filename);
return true;
}

View File

@@ -51,4 +51,6 @@ char *test2file(long testno);
int wait_ms(int timeout_ms); int wait_ms(int timeout_ms);
bool write_pidfile(const char *filename);
#endif /* __SERVER_UTIL_H */ #endif /* __SERVER_UTIL_H */