/* Copyright (c) 1996, Ruslan R. Laishev (@RRL) */ #include "nntp.h" #include "nntp_worker.h" #include "nntp_rms.h" #include "nntp_lib.h" #include "nntp_log.h" #include "nntp_conf.h" char *ID$IDcpy = "Copyright (c) 1996-97,Ruslan R. Laishev (@RRL)."; char *ID$IDsrv = "DNNTP/OVMS v 0.70"; char *ID$IDver = "DECThreads NNTP Server for OpenVMS Ver. 0.70."; /* *-------------------------------------------------------------------------------- */ void main (void) { pthread_t th; long status; NNTP_LOG(LOGI,ID$IDcpy); NNTP_LOG(LOGI,ID$IDver); NNTP_LOG(LOGI,"Get configuration information"); nntp_conf_get(); NNTP_LOG(LOGI,"Current configuration follows."); NNTP_LOG(LOGI,"LocalHost............%s",nntp_conf.LocalHost); NNTP_LOG(LOGI,"LocalPath............%s",nntp_conf.LocalPath); NNTP_LOG(LOGI,"LocalTZ..............%s",nntp_conf.LocalTZ); NNTP_LOG(LOGI,"LocalPort............%d",nntp_conf.LocalPort); NNTP_LOG(LOGI,"MsgDBsize (Mbytes)...%d",nntp_conf.MsgDBsize); NNTP_LOG(LOGI,"MsgPurgeDay (day)....%d",nntp_conf.MsgPurgeDay); NNTP_LOG(LOGI,"MsgOld (days)........%d",nntp_conf.MsgOld); NNTP_LOG(LOGI,"MsgPurgeNum..........%d",nntp_conf.MsgPurgeNum); NNTP_LOG(LOGI,"ClienTimeOut (sec)...%d",nntp_conf.ClientTimeOut); NNTP_LOG(LOGI,"SuckTimeOut (sec)....%d",nntp_conf.SuckTimeOut); NNTP_LOG(LOGI,"FeedTimeOut (sec)....%d",nntp_conf.FeedTimeOut); NNTP_LOG(LOGI,"GrpME................%s",nntp_conf.GrpME); NNTP_LOG(LOGI,"GrpDay (day).........%d",nntp_conf.GrpDay); NNTP_LOG(LOGI,"Suck.................%s",nntp_conf.Suck); NNTP_LOG(LOGI,"Feed.................%s",nntp_conf.Feed); NNTP_LOG(LOGI,"Client...............%s",nntp_conf.Client); NNTP_LOG(LOGI,"LogLevel.............%d",nntp_conf.LogLevel); NNTP_LOG(LOGI,"Suck Interval (min)..%d",nntp_conf.SuckInterval); NNTP_LOG(LOGI,"Feed Interval (min)..%d",nntp_conf.FeedInterval); NNTP_LOG(LOGI,"Expire (HH:MM).......%d",nntp_conf.Expire); /* * */ NNTP_LOG(LOGI,"Opening News Messages DataBase"); if ( MsgDBopen() ) exit (errno); NNTP_LOG(LOGI,"Opening NewsGroups DataBase"); if ( GrpDBopen() ) exit (errno); NNTP_LOG(LOGI,"Opening Suck DataBase"); if ( SuckDBopen() ) exit (errno); NNTP_LOG(LOGI,"Opening Feed DataBase"); if ( FeedDBopen() ) exit (errno); /* * */ NNTP_InitBosses (); /* * */ status = pthread_create(&th,pthread_attr_default, NNTP_ClientBoss, (pthread_addr_t) 0); if (status == -1) { NNTP_LOG(LOGF,"Create Client Boss thread-%s.", strerror(errno)); } NNTP_LOG(LOGI,"Create Client Boss thread-Ok (Tid:%d).",th); /* * */ status = pthread_create(&th,pthread_attr_default, NNTP_SuckBoss, (pthread_addr_t) 0); if (status == -1) { NNTP_LOG(LOGF,"Create Suck Boss thread-%s.", strerror(errno)); } NNTP_LOG(LOGI,"Create Suck Boss thread-Ok (Tid:%d).",th); /* * */ status = pthread_create(&th,pthread_attr_default, NNTP_FeedBoss, (pthread_addr_t) 0); if (status == -1) { NNTP_LOG(LOGF,"Create Feed Boss thread-%s.", strerror(errno)); } NNTP_LOG(LOGI,"Create Feed Boss thread-Ok (Tid:%d).",th); sys$hiber(); DBclose(); NNTP_LOG(LOGI,"%s-End.",ID$IDver); }