2009-01-26 19:21:29 +00:00
|
|
|
// $Id: library.c,v 1.43 2007/10/08 07:27:59 lynx Exp $ // vim:syntax=lpc:ts=8
|
|
|
|
//
|
|
|
|
#ifndef __PIKE__
|
|
|
|
|
|
|
|
#include "/local/config.h"
|
|
|
|
#include "/local/hosts.h"
|
|
|
|
//#include NET_PATH "include/proto.h"
|
|
|
|
#include NET_PATH "include/net.h"
|
|
|
|
#include DRIVER_PATH "include/driver.h"
|
|
|
|
#include <sandbox.h>
|
|
|
|
|
|
|
|
#include <driver.h>
|
|
|
|
|
|
|
|
#ifdef PRO_PATH
|
|
|
|
inherit PRO_PATH "library2";
|
|
|
|
inherit PRO_PATH "http/library2";
|
|
|
|
#else
|
|
|
|
# ifdef SANDBOX
|
|
|
|
inherit NET_PATH "library/sandbox";
|
|
|
|
# endif
|
2010-02-23 12:10:06 +00:00
|
|
|
inherit NET_PATH "library/hmac";
|
2009-01-26 19:21:29 +00:00
|
|
|
inherit NET_PATH "library/dns";
|
|
|
|
inherit NET_PATH "library/htbasics";
|
|
|
|
inherit NET_PATH "library/json";
|
|
|
|
inherit NET_PATH "library/profiles";
|
|
|
|
# ifdef JABBER_PATH // supposed to change
|
|
|
|
inherit NET_PATH "library/sasl";
|
|
|
|
# endif
|
|
|
|
inherit NET_PATH "library/share";
|
|
|
|
inherit NET_PATH "library/signature";
|
|
|
|
# ifdef __TLS__
|
|
|
|
inherit NET_PATH "library/tls";
|
|
|
|
# endif
|
|
|
|
inherit NET_PATH "library/text";
|
|
|
|
inherit NET_PATH "library/time";
|
2009-03-03 23:40:26 +00:00
|
|
|
inherit NET_PATH "library/uniform";
|
2009-01-26 19:21:29 +00:00
|
|
|
#endif
|
|
|
|
|
|
|
|
#endif //PIKE
|
|
|
|
|
|
|
|
// the system master object
|
|
|
|
volatile object master;
|
|
|
|
|
|
|
|
volatile int shutdown_in_progress = 0;
|
|
|
|
|
|
|
|
volatile string logpath;
|
|
|
|
|
|
|
|
#ifndef __PIKE__
|
|
|
|
|
|
|
|
#ifdef MUD
|
|
|
|
# include "/include/auto.h"
|
|
|
|
# include "/sys/library.c"
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#include NET_PATH "library/admin.c"
|
|
|
|
#ifndef PRO_PATH
|
|
|
|
# include NET_PATH "library/legal.c"
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#endif //PIKE
|
|
|
|
|
|
|
|
// added sprintf-support -lynx
|
|
|
|
//
|
|
|
|
// if the driver has no varargs support,
|
|
|
|
// "varargs" should be defined as empty string (see interface.h)
|
|
|
|
//
|
|
|
|
#ifdef varargs
|
|
|
|
void log_file(string file,string str,
|
|
|
|
vamixed a,vamixed b,vamixed c,vamixed d,
|
|
|
|
vamixed e,vamixed f,vamixed g,vamixed h)
|
|
|
|
#else
|
|
|
|
void log_file(string file, string str, varargs mixed* args) // proto.h!
|
|
|
|
#endif
|
|
|
|
{
|
|
|
|
#if 0 //def COMPAT_FLAG
|
|
|
|
// if (sizeof(regexp(({file}), "/")) || file[0] == '.' || strlen(file) > 30 )
|
|
|
|
if (file[0] == '/' || strstr(file, "..") >= 0) {
|
|
|
|
write("Illegal file name to log_file("+file+")\n");
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
#endif
|
|
|
|
PROTECT("LOG_FILE")
|
|
|
|
#ifdef varargs
|
|
|
|
if (a) str = sprintf(str, a,b,c,d,e,f,g,h);
|
|
|
|
#else
|
|
|
|
if (args && sizeof(args)) str = apply(#'sprintf, str, args);
|
|
|
|
#endif
|
|
|
|
#if defined(MUD) && __EFUN_DEFINED__(set_this_object)
|
|
|
|
// we don't need this type of security in a regular psyced
|
|
|
|
if (previous_object()) set_this_object(previous_object());
|
|
|
|
#endif
|
|
|
|
#ifdef SLAVE
|
|
|
|
unless (logpath) {
|
|
|
|
logpath = "/log/"+ __HOST_IP_NUMBER__ +"-"+ query_udp_port() +"/";
|
|
|
|
mkdir(logpath);
|
|
|
|
mkdir(logpath + "place");
|
|
|
|
}
|
|
|
|
write_file(logpath + file +".log", str);
|
|
|
|
#else
|
|
|
|
write_file("/log/"+ file +".log", str);
|
|
|
|
#endif
|
|
|
|
D3( debug_message(file +"## "+ str) );
|
|
|
|
//#ifdef PSYC_SYNCHRONIZE
|
|
|
|
// synchro_report("_notice_system_psyced", str,
|
|
|
|
// ([ "_file": file ]) );
|
|
|
|
//#endif
|
|
|
|
}
|
|
|
|
|
|
|
|
#ifndef __PIKE__
|
|
|
|
|
|
|
|
#include "classic.i"
|
|
|
|
#ifdef USE_LIVING
|
|
|
|
# include "living.i"
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#include NET_PATH "library.i"
|
|
|
|
|
|
|
|
#ifdef PRO_PATH
|
|
|
|
# include PRO_PATH "library.i"
|
|
|
|
#else
|
|
|
|
# include NET_PATH "library/library2.i"
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#endif //PIKE
|