#define ROOT "Root"
#define SECURITY geteuid(PO)
#include <log.h>
#define SAVE_FILE SECURE_DIR SAVE_DIR "/master"
#define READ_MASK 1
#define WRITE_MASK 2
#define GRANT_MASK 4
#define LOCK_MASK 8
private mapping permissions;
private nosave mapping snoop_list;
private nosave object unguarded_ob;
protected void create() {
permissions = ([ ]);
snoop_list = ([ ]);
unguarded_ob = 0;
if( !unguarded( (: restore_object, SAVE_FILE :) ) )
if( !unguarded( (: restore_object, "/secure/config/master_fallback" :) ) )
error("The master object couldn't restore its save file.\n");
} /* create() */
/** @ignore yes */
string query_name() { return "Root"; }
/*
* This function is called every time a player connects.
* input_to() can't be called from here.
*/
object connect( int port ) {
object ob;
#ifdef __VERSION__
#define VERSION __VERSION__
#endif
printf("LPmud version : %s on port %d.", VERSION, port );
switch( port ) {
case 7301:
ob = clone_object(LOGIN_OBJ);
break;
default:
ob = clone_object(LOGIN_OBJ);
}
ob->set_login_port(port);
printf("\n");
return ob;
} /* connect() */
/** @ignore yes */
int valid_load( string path, mixed euid, string func ) { return 1; }
/** @ignore yes */
string get_root_uid() { return ROOT; }
/** @ignore yes */
string get_bb_uid() { return "Room"; }
/** @ignore yes */
string *define_include_dirs() {
return ({"/include/%s","/secure/include/%s"});
} /* define_include_dirs() */
/** @ignore yes */
int valid_trace() { return 1; }
/** @ignore yes */
void shut( int min ) { SHUTDOWN_H->init_shutdown( min, 1 ); }
/* This function comes from the Nightmare master object. */
varargs mixed apply_unguarded( function f, int local ) {
object previous_unguarded;
string err;
mixed val;
if( base_name(PO) != "/secure/simul_efun") {
error("Illegal unguarded apply.");
return 0;
}
previous_unguarded = unguarded_ob;
if( local )
unguarded_ob = master();
else
unguarded_ob = previous_object(1);
err = catch( val = (mixed)(*f)() );
unguarded_ob = previous_unguarded;
if( err )
error(err);
return val;
} /* apply_unguarded() */
#include "/secure/master/permission.c"
#include "/secure/master/crash.c"
#include "/secure/master/create_dom_creator.c"
#include "/secure/master/creator_file.c"
#include "/secure/master/dest_env.c"
#include "/secure/master/ed_stuff.c"
#include "/secure/master/file_exists.c"
#include "/secure/master/logging.c"
#include "/secure/master/parse_command.c"
#include "/secure/master/preload.c"
#include "/secure/master/query_pl_level.c"
#include "/secure/master/simul_efun.c"
#include "/secure/master/snoop.c"
#include "/secure/master/valid_database.c"
#include "/secure/master/valid_exec.c"
#include "/secure/master/valid_hide.c"
#include "/secure/master/valid_ident.c"
#include "/secure/master/valid_link.c"
#include "/secure/master/valid_override.c"
#include "/secure/master/valid_read.c"
#include "/secure/master/valid_seteuid.c"
#include "/secure/master/valid_shadow.c"
#include "/secure/master/valid_socket.c"
#include "/secure/master/valid_write.c"
#include "/secure/master/valid_bind.c"
#include "/secure/master/valid_to_c.c"
#include "/secure/master/valid_binary.c"