#include <udp.h>#include <udp_language.h>#include <strings.h>
gehe zum Quellcode dieser Datei
Makrodefinitionen | |
| #define | EMAIL "mud@mg.mud.de" |
Funktionen | |
| void | udp_query (mapping data) |
| string | send_request (string mudname, string prop) |
| #define EMAIL "mud@mg.mud.de" |
Definiert in Zeile 18 der Datei query.c.
Wird benutzt von udp_query().
| string send_request | ( | string | mudname, | |
| string | prop | |||
| ) |
| void udp_query | ( | mapping | data | ) |
Definiert in Zeile 20 der Datei query.c.
Benutzt DATA, EMAIL, HOST_COMMANDS, HOST_IP, HOST_NAME, HOST_UDP_PORT, ID, INETD, INETD_VERSION, LOCAL_COMMANDS, NAME, RECIPIENT, REPLY, REQUEST, SENDER, TRIM_RIGHT und version().
00020 { 00021 mapping ret; 00022 00023 switch(data[DATA]) { 00024 case "commands": 00025 ret = INETD->query("hosts"); 00026 if (ret[lower_case(data[NAME])]) 00027 ret = ([ 00028 DATA: implode(ret[lower_case(data[NAME])][LOCAL_COMMANDS], ":") 00029 ]); 00030 else 00031 ret = ([ DATA: implode(INETD->query("commands"), ":") ]); 00032 break; 00033 case "email": 00034 ret = ([ DATA: EMAIL ]); 00035 break; 00036 case "hosts": 00037 { 00038 string tmp = ""; 00039 foreach(string mudname, mixed fields: INETD->query("hosts")) { 00040 tmp += fields[HOST_NAME] + ":" + 00041 fields[HOST_IP] + ":" + 00042 fields[HOST_UDP_PORT] + ":" + 00043 implode(fields[LOCAL_COMMANDS], ",") + ":" + 00044 implode(fields[HOST_COMMANDS], ",") + "\n"; 00045 } 00046 ret = ([ DATA: trim(tmp,TRIM_RIGHT, "\n") ]); 00047 break; 00048 } 00049 case "inetd": 00050 ret = ([ DATA: INETD_VERSION ]); 00051 break; 00052 case "list": 00053 /* List of thingsthat can be queried. */ 00054 ret = ([ DATA: "commands:email:hosts:inetd:mud_port:time:version" ]); 00055 break; 00056 case "mud_port": 00057 ret = ([ DATA: query_mud_port() ]); 00058 break; 00059 case "time": 00060 ret = ([ DATA: time() ]); 00061 break; 00062 case "version": 00063 ret = ([ DATA: version() ]); 00064 break; 00065 default: 00066 /* Just ignore it for the time being. */ 00067 return; 00068 } 00069 INETD->_send_udp(data[NAME], ret + ([ 00070 REQUEST: REPLY, 00071 RECIPIENT: data[SENDER], 00072 ID: data[ID], 00073 "QUERY": data[DATA] 00074 ]) ); 00075 }

1.6.3