/* /daemon/services/error.c
* from the Foundation II LPC Library
* error handling for the grand Intermud 3 Protocol
* created by Descartes of Borg 950715
* Modified for Discworld by Turrican 1-11-95
*/
void eventReceiveError(mixed *packet) {
object ob;
string error_code, mud, target, msg;
if( packet[5] ) {
target = (string)packet[5];
if( !(ob = find_player(target)) ) return;
}
mud = packet[2];
error_code = packet[6];
msg = packet[7];
packet = packet[8];
switch(error_code) {
case "unk-dst": case "not-imp": case "unk-src": case "bad-pkt": case "bad-proto":
log_file("errors/intermud", error_code + ": " + msg + "\n");
log_file("errors/intermud", "Name of sending mud: "+mud+"\n");
if (!packet) return;
log_file("errors/intermud", "Offending packet: "+
sprintf("%O\n", packet));
return;
case "unk-channel":
log_file("errors/intermud", error_code + ": " + msg + "\n");
if (!packet) return;
log_file("errors/intermud", "Channel name: "+packet[6]+"\n");
case "unk-type":
log_file("errors/intermud",
error_code + ": " + msg + "\n");
log_file("errors/intermud",
"Name of sending mud: "+mud+"\n");
if (!packet) return;
log_file( "errors/intermud",
"Type of offending packet: "+packet[0]+"\n");
return;
case "unk-user":
if( !ob ) return;
tell_object(ob, (msg ? msg : "Unknown user reported from " + mud +
"."));
return;
}
}