www.finger.c-Dateireferenz

#include <properties.h>
#include <www.h>
Include-Abhängigkeitsdiagramm für www.finger.c:

gehe zum Quellcode dieser Datei

Funktionen

string Request (mapping cmds)

Dokumentation der Funktionen

string Request ( mapping  cmds  ) 

Definiert in Zeile 13 der Datei www.finger.c.

Benutzt ERROR, FINGER, result() und USER.

Wird benutzt von udp_www().

00014 {
00015   string result;
00016   string *tmp, tmp2, quoted;
00017   if(!sizeof(cmds) || !stringp(cmds[USER]))
00018     return ERROR("Kein Nutzer angegeben!");
00019   /*
00020    * Kann ja sein, dass ein Spieler auf die Idee kommt, HTML-Tags
00021    * in seine Beschreibung einzubauen. Unsere Seite ist aber schon
00022    * interaktiv genug. (Anm: Nur <.*>-Vorkommnisse zu ersetzen nutzt
00023    * nix, da man auch mit einzelnen Zeichen Schaden machen kann.
00024    */
00025   result = regreplace(FINGER(cmds[USER]), "<","\\&lt;",1); 
00026   result = regreplace(result, ">","\\&gt;",1);
00027 
00028   /*
00029    * Grund des kommenden Codeblocks ist , dass manche Spieler ihre
00030    * Homepage mit "http://mg.mud.de" angeben, andere nur"mg.mud.de" 
00031    * schreiben. Damit aber der Browser den Link als absolut interpretiert, 
00032    * muss das http:// davor stehen, und zwar nur einmal. 
00033    */
00034   tmp= regexp(explode(result,"\n"),"^Homepage:");
00035   if (sizeof(tmp)&&stringp(tmp[0])&&strlen(tmp[0])>16) {
00036                   quoted = regreplace(tmp[0],"([[\\]+*?.\\\\])","\\\\\\1", 1);
00037     if (tmp[0][10..16]=="http://")
00038       tmp2=sprintf("Homepage: <A HREF=\"%s\">%s</A>",
00039                                       tmp[0][10..],tmp[0][10..]);
00040     else
00041       tmp2=sprintf("Homepage: <A HREF=\"http://%s\">%s</A>",
00042                                       tmp[0][10..],tmp[0][10..]);
00043     result = regreplace(result,quoted,tmp2,1);
00044   }
00045   
00046   result = regreplace(result,
00047                                       "E-Mail-Adresse: ([^\n]*)",
00048                                       "E-Mail-Adresse: Bitte nachfragen...",1);
00049 
00050   result = regreplace(result,
00051                                       "Messenger: ([^\n]*)",
00052                                       "Messenger: Bitte nachfragen...", 1);
00053 
00054   result = regreplace(result,
00055                                       "ICQ: ([^\n]*)",
00056                                       "ICQ: Bitte nachfragen...", 1);
00057 
00058   return "<H2>Wer ist "+capitalize(cmds[USER])+"?</H2><HR>"
00059     +"<PRE>"+result+"</PRE>";
00060 }

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

Hier ist ein Graph der zeigt, wo diese Funktion aufgerufen wird:

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