int testnum;
};
-#define REQUEST_DUMP "log/server.input"
+#define REQUEST_DUMP "server.input"
#define CONFIG_VERSION 5
static struct configurable config;
const char *serverlogfile = DEFAULT_LOGFILE;
static const char *configfile = DEFAULT_CONFIG;
+const char *logdir = "log";
+char loglockfile[256];
#ifdef ENABLE_IPV6
static bool use_ipv6 = FALSE;
char client_id[MAX_CLIENT_ID_LENGTH];
long testno;
FILE *stream = NULL;
-
+ FILE *dump;
+ char dumpfile[256];
static const char protocol[7] = {
0x00, 0x04, /* protocol length */
'M','Q','T','T', /* protocol name */
0x04 /* protocol level */
};
- FILE *dump = fopen(REQUEST_DUMP, "ab");
+ msnprintf(dumpfile, sizeof(dumpfile), "%s/%s", logdir, REQUEST_DUMP);
+ dump = fopen(dumpfile, "ab");
if(!dump)
goto end;
else {
logmsg("====> Client connect, fd %d. Read config from %s",
newfd, configfile);
- set_advisor_read_lock(SERVERLOGS_LOCK);
+ set_advisor_read_lock(loglockfile);
(void)mqttit(newfd); /* until done */
- clear_advisor_read_lock(SERVERLOGS_LOCK);
+ clear_advisor_read_lock(loglockfile);
logmsg("====> Client disconnect");
sclose(newfd);
if(argc>arg)
serverlogfile = argv[arg++];
}
+ else if(!strcmp("--logdir", argv[arg])) {
+ arg++;
+ if(argc>arg)
+ logdir = argv[arg++];
+ }
else if(!strcmp("--ipv6", argv[arg])) {
#ifdef ENABLE_IPV6
ipv_inuse = "IPv6";
" --config [file]\n"
" --version\n"
" --logfile [file]\n"
+ " --logdir [directory]\n"
" --pidfile [file]\n"
" --portfile [file]\n"
" --ipv4\n"
}
}
+ msnprintf(loglockfile, sizeof(loglockfile), "%s/%s",
+ logdir, SERVERLOGS_LOCK);
+
#ifdef WIN32
win32_init();
atexit(win32_cleanup);
#endif
const char *serverlogfile = DEFAULT_LOGFILE;
+const char *logdir = "log";
+char loglockfile[256];
#define RTSPDVERSION "curl test suite RTSP server/0.1"
-#define REQUEST_DUMP "log/server.input"
-#define RESPONSE_DUMP "log/server.response"
+#define REQUEST_DUMP "server.input"
+#define RESPONSE_DUMP "server.response"
/* very-big-path support */
#define MAXDOCNAMELEN 140000
size_t written;
size_t writeleft;
FILE *dump;
+ char dumpfile[256];
+
+ msnprintf(dumpfile, sizeof(dumpfile), "%s/%s", logdir, REQUEST_DUMP);
if(!reqbuf)
return;
return;
do {
- dump = fopen(REQUEST_DUMP, "ab");
+ dump = fopen(dumpfile, "ab");
} while(!dump && ((error = errno) == EINTR));
if(!dump) {
logmsg("Error opening file %s error: %d %s",
- REQUEST_DUMP, error, strerror(error));
- logmsg("Failed to write request input to " REQUEST_DUMP);
+ dumpfile, error, strerror(error));
+ logmsg("Failed to write request input to %s", dumpfile);
return;
}
} while((writeleft > 0) && ((error = errno) == EINTR));
if(writeleft == 0)
- logmsg("Wrote request (%zu bytes) input to " REQUEST_DUMP, totalsize);
+ logmsg("Wrote request (%zu bytes) input to %s", totalsize, dumpfile);
else if(writeleft > 0) {
logmsg("Error writing file %s error: %d %s",
- REQUEST_DUMP, error, strerror(error));
+ dumpfile, error, strerror(error));
logmsg("Wrote only (%zu bytes) of (%zu bytes) request input to %s",
- totalsize-writeleft, totalsize, REQUEST_DUMP);
+ totalsize-writeleft, totalsize, dumpfile);
}
storerequest_cleanup:
} while(res && ((error = errno) == EINTR));
if(res)
logmsg("Error closing file %s error: %d %s",
- REQUEST_DUMP, error, strerror(error));
+ dumpfile, error, strerror(error));
}
/* return 0 on success, non-zero on failure */
size_t responsesize;
int error = 0;
int res;
-
static char weare[256];
+ char responsedump[256];
+
+ msnprintf(responsedump, sizeof(responsedump), "%s/%s",
+ logdir, RESPONSE_DUMP);
logmsg("Send response number %ld part %ld", req->testno, req->partno);
else
prevbounce = FALSE;
- dump = fopen(RESPONSE_DUMP, "ab");
+ dump = fopen(responsedump, "ab");
if(!dump) {
error = errno;
logmsg("fopen() failed with error: %d %s", error, strerror(error));
- logmsg("Error opening file: %s", RESPONSE_DUMP);
- logmsg("couldn't create logfile: " RESPONSE_DUMP);
+ logmsg("Error opening file: %s", responsedump);
+ logmsg("couldn't create logfile: %s", responsedump);
free(ptr);
free(cmd);
return -1;
} while(res && ((error = errno) == EINTR));
if(res)
logmsg("Error closing file %s error: %d %s",
- RESPONSE_DUMP, error, strerror(error));
+ responsedump, error, strerror(error));
if(got_exit_signal) {
free(ptr);
return -1;
}
- logmsg("Response sent (%zu bytes) and written to " RESPONSE_DUMP,
- responsesize);
+ logmsg("Response sent (%zu bytes) and written to %s",
+ responsesize, responsedump);
free(ptr);
if(cmdsize > 0) {
if(argc>arg)
serverlogfile = argv[arg++];
}
+ else if(!strcmp("--logdir", argv[arg])) {
+ arg++;
+ if(argc>arg)
+ logdir = argv[arg++];
+ }
else if(!strcmp("--ipv4", argv[arg])) {
#ifdef ENABLE_IPV6
ipv_inuse = "IPv4";
puts("Usage: rtspd [option]\n"
" --version\n"
" --logfile [file]\n"
+ " --logdir [directory]\n"
" --pidfile [file]\n"
" --portfile [file]\n"
" --ipv4\n"
}
}
+ msnprintf(loglockfile, sizeof(loglockfile), "%s/%s",
+ logdir, SERVERLOGS_LOCK);
+
#ifdef WIN32
win32_init();
atexit(win32_cleanup);
** logs should not be read until this lock is removed by this server.
*/
- set_advisor_read_lock(SERVERLOGS_LOCK);
+ set_advisor_read_lock(loglockfile);
serverlogslocked = 1;
logmsg("====> Client connect");
if(serverlogslocked) {
serverlogslocked = 0;
- clear_advisor_read_lock(SERVERLOGS_LOCK);
+ clear_advisor_read_lock(loglockfile);
}
if(req.testno == DOCNUMBER_QUIT)
if(serverlogslocked) {
serverlogslocked = 0;
- clear_advisor_read_lock(SERVERLOGS_LOCK);
+ clear_advisor_read_lock(loglockfile);
}
restore_signal_handlers(false);
#endif
const char *serverlogfile = DEFAULT_LOGFILE;
+const char *logdir = "log";
+char loglockfile[256];
#define SWSVERSION "curl test suite HTTP server/0.1"
-#define REQUEST_DUMP "log/server.input"
-#define RESPONSE_DUMP "log/server.response"
+#define REQUEST_DUMP "server.input"
+#define RESPONSE_DUMP "server.response"
/* when told to run as proxy, we store the logs in different files so that
they can co-exist with the same program running as a "server" */
-#define REQUEST_PROXY_DUMP "log/proxy.input"
-#define RESPONSE_PROXY_DUMP "log/proxy.response"
+#define REQUEST_PROXY_DUMP "proxy.input"
+#define RESPONSE_PROXY_DUMP "proxy.response"
/* file in which additional instructions may be found */
#define DEFAULT_CMDFILE "log/ftpserver.cmd"
size_t written;
size_t writeleft;
FILE *dump;
- const char *dumpfile = is_proxy?REQUEST_PROXY_DUMP:REQUEST_DUMP;
+ char dumpfile[256];
+
+ msnprintf(dumpfile, sizeof(dumpfile), "%s/%s",
+ logdir, is_proxy?REQUEST_PROXY_DUMP:REQUEST_DUMP);
if(!reqbuf)
return;
size_t responsesize;
int error = 0;
int res;
- const char *responsedump = is_proxy?RESPONSE_PROXY_DUMP:RESPONSE_DUMP;
static char weare[256];
+ char responsedump[256];
+
+ msnprintf(responsedump, sizeof(responsedump), "%s/%s",
+ logdir, is_proxy?RESPONSE_PROXY_DUMP:RESPONSE_DUMP);
switch(req->rcmd) {
default:
*/
if(!serverlogslocked)
- set_advisor_read_lock(SERVERLOGS_LOCK);
+ set_advisor_read_lock(loglockfile);
serverlogslocked += 1;
logmsg("====> Client connect");
if(argc>arg)
serverlogfile = argv[arg++];
}
+ else if(!strcmp("--logdir", argv[arg])) {
+ arg++;
+ if(argc>arg)
+ logdir = argv[arg++];
+ }
else if(!strcmp("--cmdfile", argv[arg])) {
arg++;
if(argc>arg)
puts("Usage: sws [option]\n"
" --version\n"
" --logfile [file]\n"
+ " --logdir [directory]\n"
" --pidfile [file]\n"
" --portfile [file]\n"
" --ipv4\n"
}
}
+ msnprintf(loglockfile, sizeof(loglockfile), "%s/%s",
+ logdir, SERVERLOGS_LOCK);
+
#ifdef WIN32
win32_init();
atexit(win32_cleanup);
serverlogslocked -= 1;
if(!serverlogslocked)
- clear_advisor_read_lock(SERVERLOGS_LOCK);
+ clear_advisor_read_lock(loglockfile);
if(req->testno == DOCNUMBER_QUIT)
goto sws_cleanup;
if(serverlogslocked) {
serverlogslocked = 0;
- clear_advisor_read_lock(SERVERLOGS_LOCK);
+ clear_advisor_read_lock(loglockfile);
}
restore_signal_handlers(false);
#define DEFAULT_LOGFILE "log/tftpd.log"
#endif
-#define REQUEST_DUMP "log/server.input"
+#define REQUEST_DUMP "server.input"
#define DEFAULT_PORT 8999 /* UDP */
static const char *ipv_inuse = "IPv4";
const char *serverlogfile = DEFAULT_LOGFILE;
+const char *logdir = "log";
+char loglockfile[256];
static const char *pidname = ".tftpd.pid";
static const char *portname = NULL; /* none by default */
static int serverlogslocked = 0;
}
if(serverlogslocked) {
serverlogslocked = 0;
- clear_advisor_read_lock(SERVERLOGS_LOCK);
+ clear_advisor_read_lock(loglockfile);
}
exit(1);
}
if(!test->ofile) {
char outfile[256];
- msnprintf(outfile, sizeof(outfile), "log/upload.%ld", test->testno);
+ msnprintf(outfile, sizeof(outfile), "%s/upload.%ld", logdir, test->testno);
#ifdef WIN32
test->ofile = open(outfile, O_CREAT|O_RDWR|O_BINARY, 0777);
#else
if(argc>arg)
serverlogfile = argv[arg++];
}
+ else if(!strcmp("--logdir", argv[arg])) {
+ arg++;
+ if(argc>arg)
+ logdir = argv[arg++];
+ }
else if(!strcmp("--ipv4", argv[arg])) {
#ifdef ENABLE_IPV6
ipv_inuse = "IPv4";
puts("Usage: tftpd [option]\n"
" --version\n"
" --logfile [file]\n"
+ " --logdir [directory]\n"
" --pidfile [file]\n"
" --portfile [file]\n"
" --ipv4\n"
}
}
+ msnprintf(loglockfile, sizeof(loglockfile), "%s/%s",
+ logdir, SERVERLOGS_LOCK);
+
#ifdef WIN32
win32_init();
atexit(win32_cleanup);
break;
}
- set_advisor_read_lock(SERVERLOGS_LOCK);
+ set_advisor_read_lock(loglockfile);
serverlogslocked = 1;
#ifdef ENABLE_IPV6
if(serverlogslocked) {
serverlogslocked = 0;
- clear_advisor_read_lock(SERVERLOGS_LOCK);
+ clear_advisor_read_lock(loglockfile);
}
logmsg("end of one transfer");
if(serverlogslocked) {
serverlogslocked = 0;
- clear_advisor_read_lock(SERVERLOGS_LOCK);
+ clear_advisor_read_lock(loglockfile);
}
restore_signal_handlers(true);
#endif
const char *option = "mode"; /* mode is implicit */
int toggle = 1;
+ FILE *server;
+ char dumpfile[256];
+
+ msnprintf(dumpfile, sizeof(dumpfile), "%s/%s", logdir, REQUEST_DUMP);
/* Open request dump file. */
- FILE *server = fopen(REQUEST_DUMP, "ab");
+ server = fopen(dumpfile, "ab");
if(!server) {
int error = errno;
logmsg("fopen() failed with error: %d %s", error, strerror(error));
- logmsg("Error opening file: %s", REQUEST_DUMP);
+ logmsg("Error opening file: %s", dumpfile);
return -1;
}
#define TEST_DATA_PATH "%s/data/test%ld"
#define ALTTEST_DATA_PATH "%s/log/test%ld"
-#define SERVERLOGS_LOCK "log/serverlogs.lock"
+#define SERVERLOGS_LOCK "serverlogs.lock"
/* global variable, where to find the 'data' dir */
extern const char *path;