/* * DRAW.C * * DNET (c)Copyright 1988, Matthew Dillon, All Rights Reserved * * DRAW [port#] * * Put terminal into RAW mode and connect to the remote dnet port. * used mainly to test DNET. Can also be used open a TERM window on * the amiga (via the STERM server), which is the default (port 8195) */ #include #include #include #include #include #include #include "../server/servers.h" int fd; char buf[4096]; main(ac,av) char *av[]; { int n; extern int handler(); int port = (av[1]) ? atoi(av[1]) : PORT_AMIGATERM; puts("DRAW V1.01 11 March 1988 Connecting"); fd = DOpen(NULL, port, 0, 0); if (fd < 0) { perror("DOpen"); exit(1); } puts("Connected"); signal(SIGIO, handler); ttyraw(); fcntl(fd, F_SETOWN, getpid()); fcntl(fd, F_SETFL, FNDELAY|FASYNC); fcntl(0, F_SETFL, FNDELAY); while ((n = gread(0, buf, sizeof(buf))) > 0) { gwrite(fd, buf, n); } fprintf(stderr, "EOF\n"); DEof(fd); for (;;) pause(); } handler() { int n; char buf[1024]; while ((n = read(fd, buf, sizeof(buf))) > 0) write(1, buf, n); if (n == 0) { write(1, "REMEOF\n", 7); ttynormal(); exit(1); } } static struct sgttyb ttym; ttyraw() { ioctl (0, TIOCGETP, &ttym); ttym.sg_flags |= RAW; ttym.sg_flags &= ~CBREAK; ttym.sg_flags &= ~ECHO; ioctl (0, TIOCSETP, &ttym); } ttynormal() { ioctl (0, TIOCGETP, &ttym); ttym.sg_flags &= ~RAW; ttym.sg_flags |= CBREAK; ttym.sg_flags |= ECHO; ioctl (0, TIOCSETP, &ttym); }