/
LIB3/
LIB3/D/ADMIN/
LIB3/D/ADMIN/OBJ/
LIB3/D/ADMIN/ROOM/W/
LIB3/D/HOME/
LIB3/D/HOME/CITY/ARENA/
LIB3/D/HOME/CITY/ITEMS/
LIB3/D/HOME/CITY/POSTOFFI/
LIB3/DOC/
LIB3/GLOBAL/SPECIAL/
LIB3/GLOBAL/VIRTUAL/
LIB3/NET/
LIB3/NET/CONFIG/
LIB3/NET/DAEMON/CHARS/
LIB3/NET/GOPHER/
LIB3/NET/INHERIT/
LIB3/NET/OBJ/
LIB3/NET/SAVE/
LIB3/NET/VIRTUAL/
LIB3/OBJ/B_DAY/
LIB3/OBJ/HANDLERS/TERM_TYP/
LIB3/PLAYERS/B/
LIB3/PLAYERS/N/
LIB3/ROOM/
LIB3/SAVE/
LIB3/SAVE/BOARDS/
LIB3/SAVE/ENVIRON/
LIB3/SAVE/POST/
LIB3/STD/COMMANDS/SHADOWS/
LIB3/STD/CREATOR/
LIB3/STD/DOM/
LIB3/STD/EFFECTS/
LIB3/STD/EFFECTS/HEALING/
LIB3/STD/EFFECTS/OTHER/
LIB3/STD/EFFECTS/POISONS/
LIB3/STD/ENVIRON/
LIB3/STD/GUILDS/
LIB3/STD/LIQUIDS/
LIB3/STD/ROOM/
LIB3/STD/TRIGGER/SHADOW/
LIB3/W/
LIB3/W/BANNOR/
LIB3/W/NEWSTYLE/
#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() */