int csserv_init(void) { ListenHost = cfg_getstr("CSSERV_LISTEN_HOST","*"); ListenPort = cfg_getstr("CSSERV_LISTEN_PORT",DEFAULT_CS_DATA_PORT); lsock = tcpsocket(); if (lsock<0) { mfs_errlog(LOG_ERR,"main server module: can't create socket"); return -1; } tcpnonblock(lsock); tcpnodelay(lsock); tcpreuseaddr(lsock); tcpresolve(ListenHost,ListenPort,&mylistenip,&mylistenport,1); if (tcpnumlisten(lsock,mylistenip,mylistenport,100)<0) { mfs_errlog(LOG_ERR,"main server module: can't listen on socket"); return -1; } if (tcpsetacceptfilter(lsock)<0 && errno!=ENOTSUP) { mfs_errlog_silent(LOG_NOTICE,"main server module: can't set accept filter"); } mfs_arg_syslog(LOG_NOTICE,"main server module: listen on %s:%s",ListenHost,ListenPort); csservhead = NULL; main_reload_register(csserv_reload); main_destruct_register(csserv_term); main_poll_register(csserv_desc,csserv_serve); return 0; }
int masterconn_init(void) { uint32_t ReconnectionDelay; uint32_t MetaDLFreq; masterconn *eptr; ReconnectionDelay = cfg_getuint32("MASTER_RECONNECTION_DELAY",5); MasterHost = cfg_getstr("MASTER_HOST",DEFAULT_MASTERNAME); MasterPort = cfg_getstr("MASTER_PORT",DEFAULT_MASTER_CONTROL_PORT); BindHost = cfg_getstr("BIND_HOST","*"); Timeout = cfg_getuint32("MASTER_TIMEOUT",10); BackLogsNumber = cfg_getuint32("BACK_LOGS",50); BackMetaCopies = cfg_getuint32("BACK_META_KEEP_PREVIOUS",3); MetaDLFreq = cfg_getuint32("META_DOWNLOAD_FREQ",24); if (Timeout>65535) { Timeout=65535; } if (Timeout<10) { Timeout=10; } if (BackLogsNumber<5) { BackLogsNumber=5; } if (BackLogsNumber>10000) { BackLogsNumber=10000; } if (MetaDLFreq>(BackLogsNumber/2)) { MetaDLFreq=BackLogsNumber/2; } eptr = masterconnsingleton = malloc(sizeof(masterconn)); passert(eptr); eptr->masteraddrvalid = 0; eptr->mode = FREE; eptr->pdescpos = -1; eptr->logfd = NULL; eptr->metafd = -1; eptr->oldmode = 0; masterconn_findlastlogversion(); if (masterconn_initconnect(eptr)<0) { return -1; } reconnect_hook = main_time_register(ReconnectionDelay,0,masterconn_reconnect); download_hook = main_time_register(MetaDLFreq*3600,630,masterconn_metadownloadinit); main_destruct_register(masterconn_term); main_poll_register(masterconn_desc,masterconn_serve); main_reload_register(masterconn_reload); main_time_register(1,0,masterconn_metachanges_flush); return 0; }
int job_init(void) { // globalpool = (jobpool*)malloc(sizeof(jobpool)); exiting = 0; globalpool = job_pool_new(cfg_getuint32("WORKERS_QUEUE_LENGTH",250)); // deprecated option job_reload(); main_destruct_register(job_term); main_wantexit_register(job_wantexit); main_canexit_register(job_canexit); main_reload_register(job_reload); main_eachloop_register(job_heavyload_test); main_poll_register(job_desc,job_serve); return 0; }