/* /daemon/services/error.c
* from the Foundation II LPC Library
* error handling for the grand Intermud 3 Protocol
* created by Descartes of Borg 950715
*/
void eventReceiveError(mixed *packet) {
object ob;
string error_code, mud, target, msg;
tn("ERROR RECEIVED: "+identify(packet));
log_file("errors/intermud",timestamp()+" "+identify(packet)+"\n");
if( packet[5] ) {
tn("exceptio probat regulam");
target = convert_name(packet[5]);
if( !(ob = find_player(target)) ) write("Can't find "+packet[5]);;
}
mud = packet[2];
error_code = packet[6];
msg = packet[7];
packet = packet[8];
tn("errorcode: "+error_code);
switch(error_code) {
case "unk-src":
update("/daemon/intermud");
return;
case "unk-dst": case "not-imp": case "unk-type":
return;
case "unk-user":
if( !ob ) return;
message("system", (msg ? msg : "Unknown user reported from " + mud +
"."), ob);
return;
}
}