/*
generic virtual object server
by Truilkan@TMI - 92/05
version 0.8
*/
#include <virtual.h>
string home;
int query_prevent_shadow()
{
return 1;
}
object compile_object(string file)
{
string name, server, tmp, args;
object obj;
if (sscanf(file,"%s.%s",args,tmp) != 2)
return 0;
if (sscanf(file,"u/%*s/%s/%*s",name))
server = user_path(name) + "virtual/" + tmp + "_server";
else if (sscanf(file,"d/%s/%*s",name))
server = "d/" + name + "/virtual/" + tmp + "_server";
if (file_size(server + ".c") != -1) {
return (object)call_other(server,"compile_object",args);
}
server = VIRTUAL_SERVERS + tmp + "_server";
if (file_size(server + ".c") != -1) {
return (object)call_other(server,"compile_object",args);
}
return 0;
}
void clean_up()
{
destruct(this_object());
}
void create()
{
seteuid(getuid(this_object()));
}