home *** CD-ROM | disk | FTP | other *** search
/ Columbia Kermit / kermit.zip / lilith / m2fini.mod < prev    next >
Text File  |  2020-01-01  |  2KB  |  68 lines

  1. IMPLEMENTATION MODULE KermFini;
  2. (************************************************************************)
  3. (* Shut down remote server                                              *)
  4. (* written:            14.12.85     Matthias Aebi                       *)
  5. (* last modification:  18.03.85     Matthias Aebi                       *)
  6. (************************************************************************)
  7.  
  8. FROM Terminal    IMPORT WriteString, Write, WriteLn;
  9. FROM KermRecv    IMPORT RecvPacket;
  10. FROM KermSend    IMPORT SendPacket;
  11. FROM KermParam   IMPORT Packet, LMaxRetries;
  12. FROM KermMisc    IMPORT PrtErrPacket;
  13.  
  14. (************************************************************************)
  15.                      PROCEDURE Finish(command: CHAR);
  16. (************************************************************************)
  17. VAR
  18.     recvPack   : Packet;
  19.     sendPack   : Packet;
  20.     typ        : CHAR;
  21.     num        : CARDINAL;
  22.     len        : CARDINAL;
  23.     numTry     : CARDINAL;
  24.  
  25. BEGIN
  26.     numTry := 0;
  27.     sendPack[0] := command;  (* F->Finish, L->Bye/Logout *)
  28.  
  29.     LOOP
  30.         SendPacket("G",0,1,sendPack);
  31.         RecvPacket(typ, num, len, recvPack);
  32.  
  33.         CASE typ OF
  34.         "Y","N":
  35.             IF ((typ = "N") AND (num = 1)) OR (typ = "Y")
  36.             THEN
  37.                 RETURN;
  38.             END; |
  39.  
  40.         "E": (* got error packet *)
  41.             PrtErrPacket(recvPack, len);
  42.             EXIT; |
  43.  
  44.         "T": (* timeout (receive) *)
  45.             INC(numTry); |
  46.  
  47.         "A": (* user abort *)
  48.             EXIT;
  49.  
  50.         ELSE
  51.             EXIT;
  52.  
  53.         END;
  54.  
  55.         IF numTry > LMaxRetries
  56.         THEN
  57.             EXIT;
  58.         END;
  59.     END;
  60.  
  61.     WriteLn;
  62.     WriteString("Unable to logout server");
  63.     WriteLn;
  64.  
  65. END Finish;
  66.  
  67. END KermFini.
  68.