query.c-Dateireferenz

#include <udp.h>
#include <udp_language.h>
#include <strings.h>
Include-Abhängigkeitsdiagramm für query.c:

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)

Makro-Dokumentation

#define EMAIL   "mud@mg.mud.de"

Definiert in Zeile 18 der Datei query.c.

Wird benutzt von udp_query().


Dokumentation der Funktionen

string send_request ( string  mudname,
string  prop 
)

Definiert in Zeile 77 der Datei query.c.

Benutzt DATA, INETD, INETD_QUERY_REQUESTED, REQUEST und SENDER.

00078 {
00079   if (!stringp(mudname) || !stringp(prop))
00080     return 0;
00081   
00082   return (INETD->_send_udp(mudname,
00083                              ([REQUEST: "query",
00084                                DATA: prop,
00085                                SENDER: getuid(previous_object())]),1)||
00086           sprintf(INETD_QUERY_REQUESTED, prop, mudname));
00087 }

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 }

Hier ist ein Graph der zeigt, was diese Funktion aufruft:

Erzeugt am Thu Jun 3 14:42:00 2010 für MorgenGrauen Mudlib von  doxygen 1.6.3