00001
00002 #include <fstream>
00003 #include <stdexcept>
00004 #include <dvnet/serversocket.h>
00005 #include <dvutil/makedaemon.h>
00006
00007 #include "server.h"
00008
00009 int
00010 main( int argc , char* argv[] ) {
00011 static const string usage("usage: indexer config-file-name");
00012
00013 try {
00014
00015 if (argc!=2)
00016 throw runtime_error(usage);
00017 const string config_fn(argv[1]);
00018
00019 Server server(config_fn);
00020
00021
00022 Dv::Net::ServerSocket ssocket(server.port());
00023
00024 Dv::Util::make_daemon();
00025
00026 bool more(true);
00027
00028
00029 while (more) {
00030 Dv::Util::ref<Dv::Net::Socket>
00031
00032 client(ssocket.accept(5000));
00033
00034 server.log() << "accept from "
00035 << client->port() << '@' << client->host() << endl;
00036
00037 more = server.serve(*client);
00038 }
00039 return 0;
00040 }
00041 catch (exception& e) {
00042 cerr << e.what() << endl;
00043 return 2;
00044 }
00045 return 0;
00046 }