#include <unistd.h>
#include "morep.h"
+#include "parse.h"
#include "verbose.h"
char *progname = NULL;
if (!var) break;
/* switch on string */
- if (0) { }
+ STR_SWITCH (var)
/* case message type */
- else if (strcmp ("MSG", var) == 0) {
+ CASE ("MSG") {
*msgtype = strtol (val, NULL, 0);
if (length < 0 ) {
length = 0;
}
/* case payload */
- else if (strcmp ("PAYLOAD", var) == 0) {
+ CASE ("PAYLOAD") {
payload = parse_payload (val, &length);
}
/* default */
- else {
+ DEFAULT {
VERBOSE (morep, WARNING, PRINTF ("unknown word '%s'\n", var));
- break;
}
+
/* end switch */
+ END_SWITCH (var)
}
/* end of segmentation */
return 1;
}
logname = arg;
- mode = 0;
break;
case 'r':
arg = (arg[2]) ? arg + 2 : (--argc > 0) ? *(++argv) : NULL;
break;
case 'h':
default:
- printf ("usage: %s [-h] [-r url] [-t url] [-v level] [file]\n", progname);
+ printf ("usage: %s [-h] [-l log] [-r url] [-t url] [-v level] [file]\n", progname);
return (c != 'h');
}
return -1;
}
- /* open log file */
- FILE *log = NULL;
- if (logname != NULL) {
- log = fopen (logname, "r");
- if (log == NULL) {
- VERBOSE (morep, ERROR, PRINTF ("can't open log file '%s' for reading\n", logname));
- return -1;
- }
- }
-
/* open script file */
FILE *fid = stdin;
if (filename != NULL) {
return -1;
}
+ /* open log file */
+ FILE *log = NULL;
+ if (logname != NULL) {
+ if (strcmp (logname, "-") == 0) {
+ log = stdout;
+ } else {
+ log = fopen (logname, "w");
+ if (log == NULL) {
+ VERBOSE (morep, ERROR, PRINTF ("can't open log file '%s' for writing\n", logname));
+ return -1;
+ }
+ }
+ }
+
/* signals */
signal(SIGINT, sig_handler);
signal(SIGTERM, sig_handler);
while (nbcomms) {
MOREP_Close (--nbcomms);
}
+ if ((log != NULL) && (log != stdout)) {
+ fclose (log);
+ }
return rc;
}
/* test: morep_valid.exe -h | grep usage */
/* test: morep_valid.exe -r 2>&1 | grep 'url not specified' */
/* test: morep_valid.exe -t 2>&1 | grep 'url not specified' */
-/* test: morep_valid.exe -t lo://00:00:00:00:00:00/0808 -v 4 script-lo.eth */
-/* test: morep_valid.exe -t lo://00:00:00:00:00:00/0808 -r lo://00:00:00:00:00:00/0808 script-lo.eth */
+/* test: morep_valid.exe -l 2>&1 | grep 'log file not specified' */
+/* test: morep_valid.exe -l - -t lo://00:00:00:00:00:00/0808 -v 4 script-lo.eth */
+/* test: morep_valid.exe -l script.log -t lo://00:00:00:00:00:00/0808 -r lo://00:00:00:00:00:00/0808 script-lo.eth */
/* vim: set ts=4 sw=4 si et: */