// This file contains useful network macros. #ifndef __NET__MACROS_H #define __NET__MACROS_H #ifndef DNS_MASTER #include <net/daemons.h> #endif #include <driver/origin.h> // for converting hostnames in the host representation to the // network representation and vice-versa string htonn( string x ) { x = replace_string( lower_case( (x) ? (x) : "" ), " ", "." ); while( last_char( x, '.' ) ) x = x[ 0..<2 ]; return x; } #define nntoh(x) cap_words(replace_string((x)?(x):"","."," ")) string mud_alias( string x ) { string y; if( !(y = (string) DNS_MASTER -> query_alias(x)) ) y = nntoh(x); return y; } // macros for getting resources //#define Mud_name() "TMI-2" // Use this one normally. #define Mud_name() capitalize(mud_name()) #define mud_nname() htonn( Mud_name() ) #define udp_port() (int)DNS_MASTER->query_udp_port() // macros for the sequencer #define index_add(x) (int)DNS_MASTER->idx_request((x)) #define index_call(x,y) (int)DNS_MASTER->idx_callback((x),(y)) #if 0 #define ACCESS_CHECK(x) ((origin()==1)||(geteuid((x)) == ROOT_UID)||(geteuid((x))=="inspiral")) #else #define ACCESS_CHECK(x) \ ((origin() == ORIGIN_DRIVER || origin() == ORIGIN_LOCAL || \ origin() == ORIGIN_CALL_OUT) || \ (x && (geteuid(x) == ROOT_UID))) #endif // for logging and stuff #define dns_log(x, y) DNS_MASTER->aux_log((x), (y)) #define dns_warning(x) DNS_MASTER->aux_warning((x)) // I want to turn this into a simul_efun sometime #endif //__NET__MACROS_H