2 #include "opensrf/osrfConfig.h"
4 #include "opensrf/logging.h"
7 int main( int argc, char* argv[] ) {
10 fprintf( stderr, "Usage: %s <config_file> <config_context>\n", argv[0] );
14 osrfConfig* cfg = osrfConfigInit( argv[1], argv[2] );
16 init_proc_title( argc, argv );
17 set_proc_title( "ChopChop" );
19 char* domain = osrfConfigGetValue(cfg, "/domain");
20 char* secret = osrfConfigGetValue(cfg, "/secret");
21 char* sport = osrfConfigGetValue(cfg, "/port");
22 char* s2sport = osrfConfigGetValue(cfg, "/s2sport");
23 char* listenaddr = osrfConfigGetValue(cfg, "/listen_address");
24 char* llevel = osrfConfigGetValue(cfg, "/loglevel");
25 char* lfile = osrfConfigGetValue(cfg, "/logfile");
27 if(!(domain && secret && sport && listenaddr && llevel && lfile && s2sport)) {
28 fprintf(stderr, "Configuration error for ChopChop - missing key ingredient\n");
32 int port = atoi(sport);
33 int s2port = atoi(s2sport);
34 int level = atoi(llevel);
35 log_init(level, lfile);
37 fprintf(stderr, "Attempting to launch ChopChop with:\n"
38 "domain: %s\nport: %s\nlisten address: %s\nlog level: %s\nlog file: %s\n",
39 domain, sport, listenaddr, llevel, lfile );
41 osrfChatServer* server = osrfNewChatServer(domain, secret, s2port);
43 if( osrfChatServerConnect( server, port, s2port, listenaddr ) != 0 )
44 return fatal_handler("ChopChop unable to bind to port %d on %s", port, listenaddr);
47 osrfChatServerWait( server );
49 osrfChatServerFree( server );