#include "udp.h" /* * Support. Do we support this protocol? */ void incoming_request( mapping info ) { if( stringp( info[ "NAME" ] ) && stringp( info[ "PORTUDP" ] ) ) { if( info[ "NAME" ] == MUD_NAME ) return; if( !NAMESERVER_CD->query_mud_info( info[ "NAME" ] ) ) PING_Q->send_ping_q( info[ "HOSTADDRESS" ], info[ "PORTUDP" ] ); if( !info[ "PARAM" ] ) info[ "PARAM" ] = ""; if( file_size( UDP_PATH + info[ "CMD" ] + ".c" ) <= 0 || (strlen( info[ "PARAM" ] ) && call_other( UDP_PATH + info[ "CMD" ], "support_" + info[ "PARAM" ] )) ) { if( !info[ "PARAM" ] ) info[ "PARAM" ] = ""; NAMESERVER_CD->send_udp( info[ "HOSTADDRESS" ], info[ "PORTUDP" ], "@@@" + UDP_SUPPORT_A + "||NAME:" + MUD_NAME + "||PORTUDP:" + NAMESERVER_CD->query_my_port() + "||CMD:" + info[ "CMD" ] + (strlen( info[ "PARAM" ] ) ? "||PARAM:" + info[ "PARAM" ] : "") + "||NOTSUPPORTED:yes" + "||ANSWERID:" + info[ "ANSWERID" ] + "@@@\n" ); } else NAMESERVER_CD->send_udp( info[ "HOSTADDRESS" ], info[ "PORTUDP" ], "@@@" + UDP_SUPPORT_A + "||NAME:" + MUD_NAME + "||PORTUDP:" + NAMESERVER_CD->query_my_port() + "||CMD:" + info[ "CMD" ] + (strlen( info[ "PARAM" ] ) ? "||PARAM:" + info[ "PARAM" ] : "") + "||SUPPORTED:yes" + "||ANSWERID:" + info[ "ANSWERID" ] + "@@@\n" ); } } /* incoming_request() */ void send_support_q( string host, mixed port, string cmd, string param ) { if( !param ) param = ""; tell_object( find_player( "pinkfish" ), "Got here...\n" ); NAMESERVER_CD->send_udp( host, port, "@@@" + UDP_SUPPORT_Q + "||NAME:" + MUD_NAME + "||PORTUDP:" + NAMESERVER_CD->query_my_port() + "||CMD:" + cmd + (strlen( param ) ? "||PARAM:" + param : "") + "||ANSWERID:" + this_player()->query_name() + "@@@\n" ); } /* send_support_q() */ void create() { seteuid( getuid() ); } /* create() */