# #include #include #include #include "task.h" #include "telnet.h" extern long resolve_name(); char *echomode[] { 0, "local", "remote" }; char *sendmode[] { 0, "every character", "newline" }; char *connstat[] { 0, "established", "closing", "closed" }; pr_banner() { struct ucb *pucb; pucb = &ucb; pucb->u_prompt = DFESC; printf("Telnet escape character is "); showesc (pucb->u_prompt); printf ("\n"); } in_name gt_host(argc, argv) int argc; char *argv[]; { char fname[42]; register int i; in_name fhost; if (argc < 2) { printf("Enter foreign host name: "); for (i = 0; i < 40; i++) if ((fname[i] = getchar()) == '\n') break; fname[i] = '\0'; fhost = resolve_name(fname); } else fhost = resolve_name(argv[1]); if (fhost == NULL) printf("Foreign host unknown\n"); return(fhost); } showcmds() { register int prompt; register FILE *bwrite; prompt = ucb.u_prompt; bwrite = ucb.u_bwrite; fprintf(bwrite, "\nTelnet Commands\n"); fprintf(bwrite, "Escape character is "); fflush(bwrite); showesc(prompt); fprintf(bwrite, "\n"); fprintf(bwrite, "l Local echo\n"); fprintf(bwrite, "r Remote echo\n"); fprintf(bwrite, "e Send on every character\n"); fprintf(bwrite, "n Send on newline\n"); fprintf(bwrite, "a Send are you there\n"); fprintf(bwrite, "b Send telnet interrupt process in urgent mode\n"); fprintf(bwrite, "c Close connection and exit telnet\n"); fprintf(bwrite, "q exit telnet immediately\n"); fprintf(bwrite, "p pause telnet and return to shell\n"); fprintf(bwrite, "i change intercept character\n"); fprintf(bwrite, "s Give connection status\n"); fprintf(bwrite, "d Toggle debugging state\n"); fprintf(bwrite, "? Print this list\n"); fflush(bwrite); } showesc (c) char c; { if (c < '\040') { c |= 0100; printf ("^%c", c); } else if (c == '\177') { printf ("^?"); } else { printf ("%c", c); } } showstats() { register struct ucb *pucb; extern int opening, ourclosing, hisclosing, dbg; pucb = &ucb; printf("Connection state: opening = %d, ourclosing = %d, hisclosing = %d\n", opening, ourclosing, hisclosing); printf("Debugging is %s\n", (dbg ? "on" : "off")); printf("Echo mode is %s\n", echomode[pucb->u_echom]); printf("Send mode is %s\n", sendmode[pucb->u_sendm]); }