Code fuer altes proftpd-Modul entfernt.

Der Code, der die Zugriffsrechte dynamisch fuer das
Mud-Modul vom proftpd ermittelt und via UDP zurueck-
gemeldet hat, wurde entfernt.
Das Modul wird seit vielen Jahren nicht mehr benutzt,
weil es nicht gewartet wurde und nach einem Update
des proftpd nicht mehr funktionierte.

Change-Id: Ifd3c49882f7b2de2499e048d303e40f2b05ab495
diff --git a/secure/ftpd.c b/secure/ftpd.c
deleted file mode 100644
index 3aaa5e6..0000000
--- a/secure/ftpd.c
+++ /dev/null
@@ -1,178 +0,0 @@
-/**************************************************************************
-** ftpd.c
-** Rumata@mg
-** 13.6.1999
-**
-** Ermittlung der Zugriffsrechte aus den Userdaten.
-**
-** Dieses Objekt wird vom ftpimp aus aufgerufen, der wiederum vom master
-** aufgerufen wird, um die Zugriffsrechte zu pruefen.
-**
-** Fuktionsweise:
-** + Im Master wird vom UNIX-ftpd aus FtpAccess (/secure/master/network)
-**   aufgerufen.
-** + Dieses ruft dann, sobald ein Zugriff erkannt wird
-**   QueryRead, QueryWrite oder QueryDir auf.
-** + Diese fragen den Master, ob der Zugriff legal ist.
-** + QueryDir liefert auch gleich das Ergebnis mit.
-**
-** Um ftp-zugriffe überwachen zu können, kann der ftpd eine liste der
-** ueberwachten spieler liefern und deren Zugriffe auf dem FTP Kanal ausgeben.
-**
-** add( name, zeit ) - FTP Zugriffe des Spielers 'name' werden protokolliert.
-**                     Nach 'zeit' wird dieser Zugriff automatisch beendet.
-**                     Ist 'zeit' <= 0, wir auf ewig ueberwacht. 
-** sub( name )       - FTP Snoop fuer Spieler 'name' direkt aufheben.
-** list()            - Mapping der ueberwachten Spieler zurueckgeben.
-**
-** FILES:
-**   /secure/master/network.c
-**   /secure/ftpd.c
-**   /std/shells/filesys/ftpimp.c
-**   /secure/ARCH/ftpd.o
-**   /p/daemon/channeld.init
-**
-***************************************************************************/
-
-#include "/secure/wizlevels.h"
-#include "/sys/daemon.h"
-
-#define FTPDSAVE "/secure/ARCH/ftpd"
-#define FTPD_CH "FTP"
-#define BBMASTER "/secure/bbmaster"
-
-mapping monitored;
-// Zu jedem Spielernamen wird vermerkt, wie lange die Ueberwachung dauern soll.
-// Zahlen <= 0 bedeuten fuer immer.
-
-nomask void create() {
-  if( clonep(this_object()) ) {
-    destruct( this_object() );
-    return;
-  }
-  seteuid( getuid() );
-  if( !restore_object(FTPDSAVE) )
-    monitored = ([]);
-}
-
-nomask int player_exists( string user ) {
-  user = lower_case(user);
-  if( !stringp( user ) || sizeof( user ) < 1 ) return 0;
-  return master()->find_userinfo(user);
-}
-
-nomask varargs int add( string user, int timeout ) {
-  if( !ARCH_SECURITY ) return -1;
-  if( !player_exists(user) ) return -2;
-  monitored[user] = timeout;
-  save_object( FTPDSAVE );
-  return 0;
-}
-
-nomask int sub( string user ) {
-  if( !ARCH_SECURITY ) return -1;
-  if( !player_exists(user) ) return -2;
-  monitored -= ([ user ]);
-  save_object( FTPDSAVE );
-  return 0;
-}
-
-nomask mixed list() {
-  if( !ARCH_SECURITY ) return -1;
-  return deep_copy(monitored);
-}
-
-#define NEWIMP "yes"
-
-private object findFtpImpFor( string user ) {
-#ifdef NEWIMP
-  return "/secure/impfetch"->impFor( lower_case(user) );
-#else
-  object imp;
-  string fname;
-
-  user = lower_case( user );
-  fname = "/ftpimp:" + user;
-  imp = find_object( fname );
-  if( !objectp(imp) ) {
-    imp = clone_object( "secure/ftpimp" );
-    imp->SetUser(user);
-    rename_object( imp, fname );
-  }
-  return imp;
-#endif
-}
-
-private nomask void msg( string user, string m ) {
-  int timeout;
-  object r;
-
-  if( !stringp(user) ) return;
-  m += "\n";
-  if( (r=find_player("rumata")) && user=="atamur" ) {
-     timeout = CHMASTER->send(FTPD_CH,findFtpImpFor(user), m );
-     tell_object( r, sprintf("%O\n", findFtpImpFor(user) ) );
-  }
-  BBMASTER->ftpbb(user,m);
-  if( !member(monitored,user) ) return;
-  timeout = monitored[user];
-  if( timeout > 0 && timeout < time() ) {
-    sub( user );
-    return;
-  }
-  CHMASTER->send(FTPD_CH,findFtpImpFor(user), m );
-}
-
-nomask int secure() {
-  return previous_object()==find_object(MASTER);
-}
-
-nomask mixed QueryRead( string user, string file ) {
-  if( !secure() ) return -1;
-  if( (IS_WIZARD(user) || file[0..4]=="/open")
-      && file[0] == '/'
-      && MASTER->valid_read(file, user, "read_file", 0)
-      ) {
-    msg( user, "read " + file );
-    return "OK";
-  } else {
-    return "FAIL";
-  }
-}
-
-nomask mixed QueryWrite( string user, string file ) {
-  if( !secure() ) return -1;
-  if( file[0] == '/'
-      && MASTER->valid_write( file, user, "write_file", 0)
-      ) {
-    msg( user, "write " + file );
-    return "OK";
-  } else {
-    return "FAIL";
-  }
-}
-
-#define DBG(x) if(find_player("rumata")){tell_object(find_player("rumata"),"FTPD:"+x+"\n");}
-
-//nomask mixed QueryDir( string user, string file ) {
-//  string reply;
-//  object imp;
-//
-//  if( !secure() ) return -1;
-//  reply = QueryRead( user, file );
-//  if( reply=="FAIL" ) return -1;
-//
-//  imp = findFtpImpFor( user );
-//  if( !objectp(imp) ) return -1; // should never happen
-//
-//  return imp->GetDir( file );
-//}
-
-nomask mixed QueryDir( string user, string file ) {
-  if( !secure() ) return -1;
-  if( file[0] == '/'
-      && MASTER->valid_read( file+"/*", user, "get_dir", 0))
-      return "OK";
-  else 
-    return "FAIL";
-}
diff --git a/secure/ftpimp.c b/secure/ftpimp.c
deleted file mode 100644
index daee34c..0000000
--- a/secure/ftpimp.c
+++ /dev/null
@@ -1,75 +0,0 @@
-// MorgenGrauen MUDlib
-//
-// master/ftpimp.c -- FTP Avatar
-//
-// $Id: ftpimp.c 6440 2007-08-18 23:00:49Z Zesstra $
-//
-// siehe /secure/ftpd
-
-#pragma strong_types
-
-#include "/secure/master.h"
-#define FTPD "/secure/ftpd"
-
-//private inherit "/std/shells/filesys/filesys";
-private inherit "/secure/misc/filesys/filesys";
-
-static string user; // Name des zugehoerigen Users
-
-nomask private int secure_impcall() {
-  return
-    getuid(previous_object()) == ROOTID &&
-    geteuid(previous_object()) == ROOTID;
-
-}
-
-// Nach dem Aufruf von SetUser wird der Filename geaednert, sodass
-// das normale clonep in get_dir nicht mehr geht. Hier ein ersatz.
-private nomask int my_is_clone() {
-  return member(object_name(this_object()),':')>=0;
-}
-
-nomask void create() {
-  if( !clonep(this_object()) ) {
-    set_next_reset( -1 ); // blueprint soll nicht sterben
-    return;
-  }
-  //if( secure_impcall() ) ::create();
-}
-
-nomask int SetUser( string name ) {
-  if( !secure_impcall() || !clonep(this_object()) ) return -2;
-  if( stringp(user) && user != "" ) {
-    //write( "User="+user+"\n" );
-    return -1; // schon ein name da!
-  }
-  user = lower_case(name);
-  seteuid( user );
-  set_next_reset( 1800 );
-}
-
-// Gibt einen negativen Wert zurück, wenn die Datei nicht gelesen werden
-// kann oder einen string, der die gesamten Daten des Verzeichnisses
-// enthält.
-nomask mixed GetDir(string dir)
-{
-  mixed ret; ret = "";
-  if( !secure_impcall() || !my_is_clone()) return -2;
-  if( !stringp(user) || user=="" ) return -1;
-  _ls_output( dir, &ret, user, 0x83 );
-  set_next_reset( 1800 );
-  return ret;
-}
-
-nomask void reset() {
-  destruct(this_object());
-}
-
-varargs mixed move() {
-  return -1;
-}
-
-// Fuer die Meldung auf FTP
-nomask string name() {
-  return capitalize(user);
-}
diff --git a/secure/master/network.c b/secure/master/network.c
index e681f82..f60cc40 100644
--- a/secure/master/network.c
+++ b/secure/master/network.c
@@ -60,128 +60,6 @@
     return (passwd == pwhash);
 }
 
-
-static void FtpAccess( string host, string message, int port )
-{
-    string *comp, reply, head;
-#if __EFUN_DEFINED__(send_udp)
-    comp = efun::explode( message, "\t" );
-#define FTP_ID   0
-#define FTP_SEQ  1
-#define FTP_TAG  2
-#define FTP_CMD  3
-#define FTP_ARG1 4
-#define FTP_ARG2 5
-#define FTP_ARG3 6
-
-  if ( sizeof(comp) <= FTP_CMD || lower_case(comp[FTP_TAG]) != "req" ){
-      log_file( "IMP_MSGS", "Host: " + host + ":" + port + " - '" +
-                message + "'\n" );
-      return;
-  }
-
-  reply = "INVALID";
-
-  head = sprintf( "%s\t%s\tRPLY\t%s\t",
-                  comp[FTP_ID], comp[FTP_SEQ], comp[FTP_CMD] );
-
-  switch ( lower_case(comp[FTP_CMD]) ){
-  case "user":
-      if ( sizeof(comp) <= FTP_ARG1 )
-          break;
-
-      if ( IS_LEARNER(lower_case(comp[FTP_ARG1])) )
-          reply = "/players/" + lower_case(comp[FTP_ARG1]);
-      else
-          reply = "NONE";
-      break;
-
-  case "pass":
-      if ( sizeof(comp) <= FTP_ARG2 )
-          break;
-
-      comp[FTP_ARG1] = lower_case(comp[FTP_ARG1]);
-
-      if ( IS_LEARNER(comp[FTP_ARG1]) &&
-           !"/secure/master"->QueryTBanished(comp[FTP_ARG1]) ){
-          if ( CheckPasswd( comp[FTP_ARG1], comp[FTP_ARG2] ) )
-              reply = "OK";
-          else {
-              if ( get_wiz_level( comp[FTP_ARG1] ) < ARCH_LVL )
-                  log_file( "LOGINFAIL",
-                            sprintf( "PASSWORD:      (FTP)     %s %s\n",
-                                     comp[FTP_ARG1],
-                                     ctime(time()) ) );
-              else
-                  log_file( "ARCH/LOGINFAIL",
-                            sprintf( "PASSWORD:      (FTP)     %s %s\n",
-                                     comp[FTP_ARG1],
-                                     ctime(time()) ) );
-          }
-      }
-      else
-          reply = "FAIL";
-      break;
-
-  case "read":
-DEBUG("-FtpAccess----\nHost:"+host+"Message:\n"+message+"\n--------------\n");
-      if ( sizeof(comp) <= FTP_ARG2 )
-          break;
-
-      if ( comp[FTP_ARG2][0] == '/' &&
-           valid_read( comp[FTP_ARG2], lower_case(comp[FTP_ARG1]),
-                       "read_file", 0 ) ){
-
-          BBMASTER->ftpbb( lower_case(comp[FTP_ARG1]),
-                           "read " + comp[FTP_ARG2] + "\n" );
-          reply = "OK";
-          }
-      else
-          reply = "FAIL";
-      break;
-
-  case "writ":
-DEBUG("-FtpAccess----\nHost:"+host+"Message:\n"+message+"\n--------------\n");
-      if ( sizeof(comp) <= FTP_ARG2 )
-          break;
-
-      if ( comp[FTP_ARG2][0] == '/' &&
-           valid_write( comp[FTP_ARG2], lower_case(comp[FTP_ARG1]),
-                       "write_file", 0 ) ){
-
-          BBMASTER->ftpbb( lower_case(comp[FTP_ARG1]),
-                           "write " + comp[FTP_ARG2] + "\n" );
-          reply = "OK";
-          }
-       else
-          reply = "FAIL";
-      break;
-
-  case "list":
-DEBUG("-FtpAccess----\nHost:"+host+"Message:\n"+message+"\n--------------\n");
-      if ( sizeof(comp) <= FTP_ARG2 )
-          break;
-
-      if ( comp[FTP_ARG2][0] == '/' &&
-           valid_read( comp[FTP_ARG2], lower_case(comp[FTP_ARG1]),
-                       "read_file", 0 ) )
-          reply = "OK";
-      else
-          reply = "FAIL";
-      break;
-
-  default:
-DEBUG("-FtpAccess----\nHost:"+host+"Message:\n"+message+"\n--------------\n");
-      log_file( "IMP_MSGS", "Host: " + host + ":" + port + " - '" +
-                message + "'\n" );
-      break;
-  }
-
-  send_udp( host, port, head+reply );
-#endif
-}
-
-
 static int doReadMail( string file )
 {
     string str, *lines, *parts, *tmp;
@@ -410,17 +288,6 @@
     return;
   }
 
-  if (message[0..4]=="NFTPD") {
-#if __HOST_NAME__==MUDHOST
-    if (host!=FTPD_IP) {
-      DEBUG(sprintf("INVALID HOST: %s\n",host));
-      return;
-    }
-#endif
-    FtpAccess(host,message,port);
-    return;
-  }
-
   if (message[0..9]=="udp_query:") {
     return udp_query(message[10..],host,port);
   }