#include <network.h>
#include <daemons.h>
#include <save.h>
int heart_count = 0;
static int reset_me = 0;
string router_port;
static void create(){
object rsock = find_object(RSOCKET_D);
if(!rsock) rsock = load_object(RSOCKET_D);
if(!rsock) return;
SetNoClean(1);
connected_muds = ([]);
unguarded( (: restore_object, SAVE_ROUTER, 1 :) );
if(!mudinfo) mudinfo = ([]);
if(!mudinfo_updates) mudinfo_updates = ([]);
if(!mudinfo_update_counter) mudinfo_update_counter = 1;
if(!listening) listening = ([]);
if(!channels) channels = ([]);
if(!channel_updates) channel_updates = ([]);
if(!channel_update_counter) channel_update_counter = 1;
if(!router_name) router_name = "*yatmim";
if(!router_port) router_port = "9000";
if(!router_ip) router_ip = "149.152.218.102";
if(mud_name() == "Frontiers")
router_list = ({ ({"*yatmim", "149.152.218.102 23"}) });
log_file("router/server_log", "Created when uptime = " + uptime() + "\n");
//trr("server got created");
log_file("router/server_log",timestamp()+" router object created.\n");
call_out("setup", 1);
call_out("LocalHostedChans", 15);
this_object()->purge_crud();
set_heart_beat(10);
reset_me = 0;
if(file_exists(ROUTER_BLACKLIST)){
blacklisted_muds += explode(read_file(ROUTER_BLACKLIST),"\n");
blacklisted_muds = singular_array(blacklisted_muds);
}
}
int SetReset(){
if(base_name(previous_object()) != "/domains/campus/room/tricky") return 0;
//trr("objects: "+identify(previous_object(-1)),"red");
reset_me = 1;
}
void heart_beat(){
heart_count++;
if(reset_me) RELOAD_D->eventReload(this_object(), 2);
if(heart_count > 60) {
//trr("CLOSING OLD/DISCONNECTED/PARADOXED SOCKETS","white");
heart_count = 0;
this_object()->purge_ips();
check_discs();
save_object(SAVE_ROUTER);
}
}
static void setup(){
if( file_size( SAVE_ROUTER __SAVE_EXTENSION__ ) > 0 )
unguarded( (: restore_object, SAVE_ROUTER, 1 :) );
irn_setup();
}
int query_prevent_shadow(object ob){ return true(ob); }