- yp2::RouterChain router;
-
- // put in frontend first
- yp2::FilterFrontendNet filter_front;
- filter_front.listen_address() = "tcp:@:9999";
- //filter_front.listen_duration() = 1; // listen a short time only
- router.rule(filter_front);
-
- // put in a backend
- FilterInit filter_init;
- router.rule(filter_init);
-
- yp2::Session session;
- yp2::Origin origin;
- yp2::Package pack(session, origin);
-
- pack.router(router).move();
+ switch(ret)
+ {
+ case -1:
+ std::cerr << "bad option " << arg << std::endl;
+ case 'h':
+ std::cerr << "ex_filter_frontend_net\n"
+ " -h|--help help\n"
+ " -d|--duration n duration\n"
+ " -p|--port n port number\n"
+ << std::endl;
+ break;
+ case 'p':
+ ports.push_back(arg);
+ break;
+ case 'd':
+ duration = atoi(arg);
+ break;
+ }
+ }
+ {
+ for (size_t i = 0; i<ports.size(); i++)
+ std::cout << "port " << i << " " << ports[i] << "\n";
+
+ mp::RouterChain router;
+
+ // put frontend filter in router
+ mp::filter::FrontendNet filter_front;
+ filter_front.set_ports(ports);
+
+ // 0=no time, >0 timeout in seconds
+ if (duration != -1)
+ filter_front.set_listen_duration(duration);
+
+ router.append(filter_front);
+
+ // put log filter in router
+ mp::filter::Log filter_log_front("FRONT");
+ router.append(filter_log_front);
+
+ // put Virt db filter in router
+ mp::filter::VirtualDB filter_virt_db;
+ filter_virt_db.add_map_db2target("gils", "indexdata.dk/gils",
+ "");
+ filter_virt_db.add_map_db2target("Default", "localhost:9999/Default",
+ "");
+ filter_virt_db.add_map_db2target("2", "localhost:9999/Slow", "");
+ router.append(filter_virt_db);
+
+ mp::filter::SessionShared filter_session_shared;
+ //router.append(filter_session_shared);
+
+ mp::filter::Log filter_log_back("BACK");
+ router.append(filter_log_back);
+
+ // put HTTP backend filter in router
+ HTTPFilter filter_init;
+ router.append(filter_init);
+
+ // put Z39.50 backend filter in router
+ mp::filter::Z3950Client z3950_client;
+ router.append(z3950_client);
+
+ mp::Session session;
+ mp::Origin origin;
+ mp::Package pack(session, origin);
+
+ pack.router(router).move();