home *** CD-ROM | disk | FTP | other *** search
/ Columbia Kermit / kermit.zip / k95source / telnet.c < prev    next >
C/C++ Source or Header  |  2020-01-01  |  2KB  |  71 lines

  1. /* T E L N E T . C  --  Telnet stub for Kermit 95 */
  2. /*
  3.   Authors: Frank da Cruz (fdc@columbia.edu)
  4.            Jeffrey Altman (jaltman@columbia.edu),
  5.   Columbia University Academic Information Systems, New York City.
  6.  
  7.   Copyright (C) 1995-1996, Trustees of Columbia University in the City of
  8.   New York.  All rights reserved.
  9. */
  10. #include <stdio.h>
  11. #include <stdlib.h>
  12. #include <string.h>
  13. #include <process.h>
  14.  
  15. char * tn_port = NULL,
  16.      * hostname = NULL;
  17. char ckermitcmd[1024]="";
  18. char ckermitarg[1024]="";
  19.  
  20. void
  21. constructcmdline( char * telnet ) {
  22.     char * s = ckermitcmd ;
  23.     int n = 0 ;
  24.  
  25.     strcpy(s,telnet);
  26.     s = ckermitcmd + strlen(telnet) + 1;
  27.     while (s != (ckermitcmd) && *s != '\\' && *s != '/')
  28.         s--;
  29.     if (s != (ckermitcmd))
  30.         s++;
  31.     strcpy( s, "k95.exe" );
  32.  
  33.     if (hostname) {
  34.         s = ckermitarg;
  35.         strcpy(s,"\"telnet ");
  36.         strcat(s,hostname);
  37.         n = strlen(ckermitarg) - 1;
  38.         while (n >= 0 && ckermitarg[n] == '/')
  39.             ckermitarg[n--] = (char) 0;
  40.  
  41.         if (tn_port) {
  42.             strcat(s," ");
  43.             strcat(s,tn_port);
  44.             n = strlen(ckermitarg) - 1;
  45.             while (n >= 0 && ckermitarg[n] == '/')
  46.               ckermitarg[n--] = (char) 0;
  47.         }
  48.         strcat(s,"\"");
  49.     }
  50. }
  51.  
  52. int
  53. parsecmdline( int argc, char ** argv ) {
  54.     if (argc > 1)
  55.       hostname = argv[1];
  56.     if (argc > 2)
  57.       tn_port = argv[2] ;
  58.     return 0;
  59. }
  60.  
  61. int
  62. main( int argc, char **argv ) {
  63.     if ( parsecmdline( argc, argv ) )
  64.         return 1 ;
  65.     constructcmdline(argv[0]) ;
  66.     if ( ckermitarg[0] )
  67.         return spawnl( _P_WAIT, ckermitcmd, "k95.exe", "-C",ckermitarg, NULL ) ;
  68.     else
  69.         return spawnl( _P_WAIT, ckermitcmd, "k95.exe", NULL);
  70. }
  71.