/*
  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()));
}