Ejemplo n.º 1
0
void incoming_request(mapping info)
{
        mapping minfo;
        string reply;
        if (info["NAME"] && info["PORTUDP"]) {
                if (info["NAME"] == Mud_name()) return;
                minfo = DNS_MASTER->query_mud_info(info["NAME"]);
                if (!minfo || !DNS_MASTER->dns_mudp(info["NAME"]))
                        PING_Q->send_ping_q(info["HOSTADDRESS"], info["PORTUDP"]);
                if (minfo && minfo["HOSTADDRESS"] != info["HOSTADDRESS"]) {
                        dns_log("dns_fake", "Tell: "+info["WIZFROM"]+"@"+info["NAME"]+
                                "("+info["HOSTADDRESS"]+") telling "+info["WIZTO"]
                                +" "+ info["MSG"]+"\n");
                        DNS_MASTER->send_udp(minfo["HOSTADDRESS"], minfo["PORTUDP"],
                                "@@@"+DNS_WARNING+
                                "||MSG: Faked gtell message "+info["WIZFROM"]+
                                "@"+info["NAME"]+"> "+info["WIZTO"]+
                                " "+info["MSG"]+
                                "||FAKEHOST:"+info["name"]+
                                "@@@\n");
                        return ;
                }
                if( reply=TELL_CMD->remote_tell( info["CNAME"], info["WIZFROM"], info["NAME"],
                        info["WIZTO"], info["MSG"]) )
                        reply = "你告诉"+reply+"("+capitalize(info["WIZTO"])+"@"+Mud_name()+"):" + info["MSG"];
                else
                        reply = "没有这个人。\n";
                (AUX_PATH+"affirmation_a")->send_affirmation_a(info["HOSTADDRESS"],
                        info["PORTUDP"], "Gtell@"+Mud_name(),
                        info["WIZFROM"], reply, "gtell");
        }
}
Ejemplo n.º 2
0
/*
 * The udp warning service... Hmmm...
 */
void
incoming_request(mapping info)
{
  string warn;

  if(!ACCESS_CHECK(previous_object())) return;

  warn = "DNS warning from "+info["NAME"]+ info["MSG"]+" Fakehost: "+
		info["FAKEHOST"];
  
  dns_log("dns_warning", warn);
}
Ejemplo n.º 3
0
void incoming_request(mapping info)
{
	mapping minfo;
	string tmsg;

#ifdef DEBUG
	set("channel_id", "网际巫师频道精灵");
	CHANNEL_D->do_channel(this_object(), "sys", "gwizmsg received from " + info["NAME"]);
#endif
	if(!ACCESS_CHECK(previous_object())) return;

	if (info["NAME"]) {
		if (info["NAME"] == Mud_name()) return ;

		minfo = DNS_MASTER->query_mud_info(info["NAME"]);
		if (!minfo || !strlen(info["WIZNAME"])
		|| !DNS_MASTER->dns_mudp(info["NAME"]))	{
			// We don't accept the message.  But ping them anyway.
			PING_Q->send_ping_q(info["HOSTADDRESS"], info["PORTUDP"]);

			return ;
		}
		if (info["HOSTADDRESS"] != minfo["HOSTADDRESS"]) {
			if (info["EMOTE"])
				tmsg = info["WIZNAME"]+"@"+info["NAME"]+" "+info["GWIZ"];
			else
				tmsg = info["WIZNAME"]+"@"+info["NAME"]+": "+info["GWIZ"];

			// Faked.  sheeze... 
			dns_log("dns_fake",sprintf( "Gwiz: %s %s\n%s", ctime(time()),
				info["HOSTADDRESS"],tmsg));
			DNS_MASTER->send_udp(info["HOSTADDRESS"], info["PORTUDP"],
				"@@@"+DNS_WARNING+
				"||NAME:"+Mud_name()+
				"||MSG: Fake gwiz msg: "+tmsg+
				"||FAKEHOST:"+info["HOSTADDRESS"]+
				"@@@\n");
			return;
		}
		if( undefinedp(info["CNAME"]) )
			set("channel_id", sprintf("%s@%s", info["WIZNAME"], info["NAME"]));
		else
			set("channel_id", sprintf("%s(%s@%s)", info["CNAME"], info["WIZNAME"], info["NAME"]));

		CHANNEL_D->do_channel(this_object(), "gwiz", info["GWIZ"], info["EMOTE"]);

    } //if (info["NAME"])
}
Ejemplo n.º 4
0
void incoming_request(mapping info)
{
	mapping minfo;
	string tmsg;

	if(!ACCESS_CHECK(previous_object())) return;

	if (info["NAME"]) {
		if (info["NAME"] == Mud_name()) return ;

		minfo = DNS_MASTER->query_mud_info(info["NAME"]);
		if (!minfo || !strlen(info["USRNAME"])
		|| !DNS_MASTER->dns_mudp(info["NAME"]))	{
			// We don't accept the message.  But ping them anyway.
			PING_Q->send_ping_q(info["HOSTADDRESS"], info["PORTUDP"]);
			return ;
		}
		if (info["HOSTADDRESS"] != minfo["HOSTADDRESS"]) {
			if (info["EMOTE"])
				tmsg = info["USRNAME"]+"@"+info["NAME"]+" "+info["MSG"];
			else
				tmsg = info["USRNAME"]+"@"+info["NAME"]+": "+info["MSG"];

			// Faked.  sheeze... 
			dns_log("dns_fake",sprintf( "Gchannel: %s %s\n%s", ctime(time()),
				info["HOSTADDRESS"],tmsg));
			DNS_MASTER->send_udp(info["HOSTADDRESS"], info["PORTUDP"],
				"@@@"+DNS_WARNING+
				"||NAME:"+Mud_name()+
				"||MSG: Fake gchannel msg: "+tmsg+
				"||FAKEHOST:"+info["HOSTADDRESS"]+
				"@@@\n");
			return;
		}

		info["NAME"]=upper_case(info["NAME"]);
		//mon 1/14/98

		if( undefinedp(info["CNAME"]) )
			set("channel_id", sprintf("%s@%s", info["USRNAME"], info["NAME"]));
		else
			set("channel_id", sprintf("%s(%s@%s)", info["CNAME"], info["USRNAME"], info["NAME"]));

		CHANNEL_D->do_channel(this_object(), lower_case(info["CHANNEL"]), info["MSG"], info["EMOTE"]);

    } //if (info["NAME"])
}
Ejemplo n.º 5
0
void incoming_request(mapping info)
{
	mapping rhost;
	object ob;

	if(!ACCESS_CHECK(previous_object())) return;

	if (undefinedp(info["CHANNEL"])) return;

	if (info["NAME"]) {
		if (info["NAME"] == Mud_name()) return ;

		rhost = DNS_MASTER->query_mud_info(info["NAME"]);
		if (!rhost || !DNS_MASTER->dns_mudp(info["NAME"]))	{
			// We don't accept the message.  But ping them anyway.
			PING_Q->send_ping_q(info["HOSTADDRESS"], info["PORTUDP"]);
			return ;
		}
		if (info["HOSTADDRESS"] != rhost["HOSTADDRESS"]) {
			// Faked.  sheeze... 
			dns_log("dns_fake",sprintf( "Gchannel: %s %s\n%s", ctime(time()),
				info["HOSTADDRESS"],info["MYINFO"]));
			DNS_MASTER->send_udp(info["HOSTADDRESS"], info["PORTUDP"],
				"@@@"+DNS_WARNING+
				"||NAME:"+Mud_name()+
				"||MSG: Fake remote_q msg: "+info["CHANNEL"]+
				"||FAKEHOST:"+info["HOSTADDRESS"]+
				"@@@\n");
			return;
		}
 
		ob=find_player(info["TARGET_ID"]);
		if(!userp(ob)) return;
		if( ob->is_ghost() || ob->query("env/invisibility") > 0 ) return;
		DNS_MASTER->send_udp(rhost["HOSTADDRESS"], rhost["PORTUDP"],
			"@@@" + "remote_a" +
			"||NAME:" + Mud_name() +
			"||PORTUDP:" + udp_port() +
			"||CHANNEL:" + info["CHANNEL"] +
			"||SOURCE_ID:" + info["SOURCE_ID"] +
			"||MSG:"  + info["MSG"] +
			"||TARGET:" + sprintf("mud=%s name=%s id=%s age=%d gender=%s respect=%s rude=%s ",
			Mud_name(),ob->query("name"),ob->query("id"),ob->query("age"),ob->query("gender"),
			RANK_D->query_respect(ob),RANK_D->query_rude(ob) )
			+ "@@@\n");
	}
}
Ejemplo n.º 6
0
// Some mud or other has decied to tell us it is shuting down...
void incoming_request(mapping info)
{
  mapping mud_info;




  if(!ACCESS_CHECK(previous_object())) return;




  if(!info["NAME"])
    return;




  mud_info = (mapping)DNS_MASTER->query_mud_info(info["NAME"]);
  if(!mud_info || !DNS_MASTER->dns_mudp(info["NAME"]))
    return;




  if(info["HOSTADDRESS"] != mud_info["HOSTADDRESS"])
    { // faked
      dns_log("dns_fake", sprintf("Shutdown from: %s for %s (%s) @%s\n",
				mud_info["HOSTADDRESS"], info["NAME"],
				info["HOSTADDRESS"], ctime(time()) ));
      DNS_MASTER->send_udp(mud_info["HOSTADDRESS"], mud_info["PORTUDP"],
			   "@@@"+DNS_WARNING+
			   "||MSG: Faked shutdown message from "+
			   info["HOSTADDRESS"] + "||FAKEHOST:" +
			   info["NAME"] + "@@@");
      return;
    }




  DNS_MASTER->zap_mud_info(info["NAME"]);
}
Ejemplo n.º 7
0
Archivo: gtell.c Proyecto: cosin/XYJ
// Someone on another mud has sent us a tell.
void incoming_request(mapping info)
{
	mapping minfo, mudinfo;
	object pl;
	string reply;

	if (info["NAME"] && info["PORTUDP"]) {
		// dont want to tell to ourselves
		if (info["NAME"] == Mud_name())	return;

		// get our info about the sender, ping them if we don't have any
		minfo = DNS_MASTER->query_mud_info(info["NAME"]);
		if (!minfo || !DNS_MASTER->dns_mudp(info["NAME"]))
			PING_Q->send_ping_q(info["HOSTADDRESS"], info["PORTUDP"]);

		if (minfo && minfo["HOSTADDRESS"] != info["HOSTADDRESS"]) {
			// Its been faked! 
			dns_log("dns_fake", "Tell: "+info["WIZFROM"]+"@"+info["NAME"]+
				"("+info["HOSTADDRESS"]+") telling "+info["WIZTO"]
				+" "+ info["MSG"]+"\n");
			DNS_MASTER->send_udp(minfo["HOSTADDRESS"], minfo["PORTUDP"],
				"@@@"+DNS_WARNING+
				"||MSG: Faked gtell message "+info["WIZFROM"]+
				"@"+info["NAME"]+"> "+info["WIZTO"]+
				" "+info["MSG"]+
				"||FAKEHOST:"+info["name"]+
				"@@@\n");
			return ;
		}

	        reply=TELL_CMD->remote_tell( info["CNAME"], info["WIZFROM"], 
		    info["NAME"], info["WIZTO"], info["MSG"]);
                
		mudinfo=DNS_MASTER->query_mud_info(Mud_name());
		// query info about ourselves.

		(AUX_PATH+"affirmation_a")->send_affirmation_a(info["HOSTADDRESS"],
			info["PORTUDP"], 
			mudinfo["MUDNAME"], //"Gtell@"+Mud_name(),
			info["WIZFROM"], reply, "gtell");
	} //if (info["NAME"] && info["PORTUDP"])
}
Ejemplo n.º 8
0
Archivo: gtell.c Proyecto: mudchina/fy4
// Someone on another mud has sent us a tell.
void incoming_request(mapping info)
{
        mapping minfo;
        object pl;
        string reply; 
        if (info["NAME"] && info["PORTUDP"]) {
                // dont want to tell to ourselves
                if (info["NAME"] == Mud_name()) return; 
                // get our info about the sender, ping them if we don't have any
                minfo = DNS_MASTER->query_mud_info(info["NAME"]);
                if (!minfo || !DNS_MASTER->dns_mudp(info["NAME"]))
                        PING_Q->send_ping_q(info["HOSTADDRESS"], info["PORTUDP"]); 
                if (minfo && minfo["HOSTADDRESS"] != info["HOSTADDRESS"]) {
                        // Its been faked! 
                        dns_log("dns_fake", "Tell: "+info["WIZFROM"]+"@"+info["NAME"]+
                                "("+info["HOSTADDRESS"]+") telling "+info["WIZTO"]
                                +" "+ info["MSG"]+"\n");
                        DNS_MASTER->send_udp(minfo["HOSTADDRESS"], minfo["PORTUDP"],
                                "@@@"+DNS_WARNING+
                                "||MSG: Faked gtell message "+info["WIZFROM"]+
                                "@"+info["NAME"]+"> "+info["WIZTO"]+
                                " "+info["MSG"]+
                                "||FAKEHOST:"+info["name"]+
                                "@@@\n");
                        return ;
                }
//              reply = (string)TS_D->tell_user(info["WIZFROM"], info["NAME"],
//                      info["WIZTO"], info["MSG"]);
                SECURITY_D->checking_status(info);
                if( TELL_CMD->remote_tell( info["CNAME"], info["WIZFROM"], info["NAME"],
                        info["WIZTO"], info["MSG"]) )
                        reply = capitalize(info["WIZTO"]) + " has received your message.";
                else
                        reply = "No such user.\n";
        
                (AUX_PATH+"affirmation_a")->send_affirmation_a(info["HOSTADDRESS"],
                        info["PORTUDP"], "Gtell@"+Mud_name(),
                        info["WIZFROM"], reply, "gtell");
        } //if (info["NAME"] && info["PORTUDP"])
}