MG Mud User | 88f1247 | 2016-06-24 23:31:02 +0200 | [diff] [blame^] | 1 | // MorgenGrauen MUDlib |
| 2 | // |
| 3 | // reply.c |
| 4 | // |
| 5 | // $Id: reply.c,v 1.2 2003/04/08 09:28:17 Rikus Exp $ |
| 6 | |
| 7 | #include <udp.h> |
| 8 | |
| 9 | #ifndef DATE |
| 10 | #define DATE ctime()[4..15] |
| 11 | #endif |
| 12 | |
| 13 | void udp_reply(mapping data) |
| 14 | { |
| 15 | string err,recpt,serv; |
| 16 | object ob; |
| 17 | |
| 18 | |
| 19 | if (pointerp(data[SYSTEM])&&member(data[SYSTEM],TIME_OUT)>-1) |
| 20 | { |
| 21 | if (data[SENDER]) |
| 22 | { |
| 23 | if (stringp(data[SENDER])&&(ob=find_player(data[SENDER]))) |
| 24 | { |
| 25 | switch(data[REQUEST]) |
| 26 | { |
| 27 | case "tell": serv="teile mit: ";break; |
| 28 | case "who": serv="wer: ";break; |
| 29 | default: serv=data[REQUEST]+": "; break; |
| 30 | } |
| 31 | tell_object(ob, break_string("Das Mud \'" + data[NAME] + |
| 32 | "\' konnte nicht erreicht werden.\n", |
| 33 | 78,serv)); |
| 34 | } |
| 35 | else |
| 36 | if (objectp(ob = data[SENDER])||(ob = find_object(data[SENDER]))) |
| 37 | ob->udp_reply(data); |
| 38 | } |
| 39 | return; |
| 40 | } |
| 41 | if (data[RECIPIENT]) |
| 42 | { |
| 43 | if (stringp(data[RECIPIENT])&&(ob = find_player(data[RECIPIENT]))) |
| 44 | tell_object(ob, "\n" + data[DATA]); |
| 45 | else if (ob=find_object(data[RECIPIENT])) |
| 46 | ob->udp_reply(data); |
| 47 | return; |
| 48 | } |
| 49 | if (data[REQUEST]=="ping")return; |
| 50 | if (data[DATA]) |
| 51 | log_file(INETD_LOG_FILE, DATE + ": Antwort von " + data[NAME] + |
| 52 | "\n" + data[DATA] + "\n"); |
| 53 | return; |
| 54 | } |