All pastes #744402 Raw Edit

oeh?

public text v1 · immutable
·published 2007-10-21 13:31 UTC
rendered paste body
procedure KNewsServer.user(pClientIP:string; pClientPort:integer; pMessage:string);
var
  pUser:string;

begin
//kopiert den angegebenen usernamen aus dem eingegebenen wert
  pUser:=copy(pMessage, 6, length(pMessage)-5);


  if not Clients.isEmpty then
    begin
// Schauen ob der Benutzer schon woanders mit IP und Port und Auth vermerkt ist
      Clients.toFirst;
      while not (Clients.isBehind)
      and not (KUser(Clients.getItem).getauth=true)
      and not (KUser(Clients.getItem).getIp=pClientIP)
      and not (KUser(Clients.getItem).getPort=pCLientPort) DO
        Clients.next;
// wenn er IP und Port mit Auth nicht gefunden hat(er also nicht unter einem anderen
// benutzernamen angemeldet ist) dann darf er weiter machen
        if Clients.isBehind then
          begin
// jetzt beginnt die suche nach dem user namen
            Clients.toFirst;
            while not(Clients.isBehind) AND (KUser(Clients.getItem).getName<>pUser) DO
              Clients.next;

// weiter wenn er nicht hinter der liste steht (also user gefunden hat)
            if not Clients.isBehind then
              begin
                if (KUser(Clients.getItem).getauth=false)
                and (KUser(Clients.getItem).getIp='') then
                  begin
                    KUser(Clients.getItem).setIP(pClientIP);
                    KUser(Clients.getItem).setPort(pClientPort);
                    send(pClientIP,pClientPort,'OKOK Ip und Port wurden fuer Ihren Benutzernamen eingetragen');
                    passerlaubt:=true;
                  end
                else
                  begin
                    send(pClientIP,pClientPort,'KOKO User bereits angemeldet');
                    passerlaubt:=false;
                  end;
              end
            else
              begin
                send(pClientIP,pCLientPort,'KOKO User nicht vorhanden');
                passerlaubt:=false;
              end;
          end
        else
          begin
            send(pCLientIP,pCLientPort,'KOKO Sie sind bereits unter einem anderen Usernamen angemeldet');
            passerlaubt:=false;
          end;
    end
  else
    begin
      send(pClientIP,pCLientPort,'KOKO User nicht vorhanden');
      passerlaubt:=false;
    end;
end;