#include <fstream>
#include <stdexcept>
#include <dvnet/serversocket.h>
#include <dvutil/makedaemon.h>
#include "server.h"
Go to the source code of this file.
Functions | |
int | main (int argc, char *argv[]) |
|
Definition at line 10 of file indexer.C. References Dv::Net::ServerSocket::accept(), Server::log(), Dv::Util::make_daemon(), Server::port(), and Server::serve().
00010 { 00011 static const string usage("usage: indexer config-file-name"); 00012 00013 try { 00014 // Get configuration parameters. 00015 if (argc!=2) 00016 throw runtime_error(usage); 00017 const string config_fn(argv[1]); 00018 00019 Server server(config_fn); 00020 00021 // Start server, throws an exception upon failure. 00022 Dv::Net::ServerSocket ssocket(server.port()); 00023 00024 Dv::Util::make_daemon(); 00025 00026 bool more(true); 00027 00028 // This is a single threaded server. 00029 while (more) { 00030 Dv::Util::ref<Dv::Net::Socket> 00031 // A delay of 5 sec on the client should prevent some dos attacks. 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 } |
textindexer-0.2 | [27 March, 2002] |