yaz_sc_t s,
int argc, char **argv)
{
+ bool test_config = false;
const char *fname = 0;
int ret;
char *arg;
const char *pidfile = 0;
const char *uid = 0;
- while ((ret = options("c{config}:Dh{help}l:p:u:V{version}w:X",
+ while ((ret = options("c{config}:Dh{help}l:p:tu:V{version}w:X",
argv, argc, &arg)) != -2)
{
switch (ret)
" -D daemon and keepalive operation\n"
" -l f log file f\n"
" -p f pid file f\n"
+ " -t test configuration\n"
" -u id change uid to id\n"
" -w dir changes working directory to dir\n"
" -X debug mode (no fork/daemon mode)\n"
case 'p':
pidfile = arg;
break;
+ case 't':
+ test_config = true;
+ break;
case 'u':
uid = arg;
break;
);
if (last_p)
wrbuf_write(base_path, fname, last_p - fname);
-
+ else
+ wrbuf_puts(base_path, ".");
ret = 0;
try {
mp::FactoryStatic factory;
mp::RouterFleXML *router =
- new mp::RouterFleXML(doc, factory, false, wrbuf_cstr(base_path));
- wrbuf_destroy(base_path);
-
- yaz_sc_running(s);
-
- yaz_daemon("metaproxy", mode, mode == YAZ_DAEMON_DEBUG ?
- handler_debug : handler_normal, router, pidfile, uid);
+ new mp::RouterFleXML(doc, factory, test_config, wrbuf_cstr(base_path));
+ if (!test_config)
+ {
+
+ yaz_sc_running(s);
+
+ yaz_daemon("metaproxy", mode, mode == YAZ_DAEMON_DEBUG ?
+ handler_debug : handler_normal, router, pidfile, uid);
+ }
}
catch (std::logic_error &e) {
yaz_log (YLOG_FATAL,"std::logic error: %s" , e.what() );