diff options
author | Joel Sherrill <joel.sherrill@OARcorp.com> | 2002-01-31 21:42:11 +0000 |
---|---|---|
committer | Joel Sherrill <joel.sherrill@OARcorp.com> | 2002-01-31 21:42:11 +0000 |
commit | 0286b9f6145f9664f6b0e196e24daee8be46b538 (patch) | |
tree | 5cdf87997238653f4083fe1c1326213040183044 /c/src/libnetworking/pppd/chat.c | |
parent | 2002-01-31 Ralf Corsepius <corsepiu@faw.uni-ulm.de> (diff) | |
download | rtems-0286b9f6145f9664f6b0e196e24daee8be46b538.tar.bz2 |
2001-01-31 Mike Siers <mikes@poliac.com>
* Nice Update of PPPD support which eliminates the
requiremetn that drivers be in the termios TASK_DRIVEN mode.
Mike did significant testing and reports that it seems to be
more stable and handle larger packets better. This patch
replaces the termios tasks with more general pppd network
driver tasks. The functions pppinput() and pppstart() get
called from the interrupt service routine.
* Makefile.am, configure.ac, net/Makefile.am, net/bpf.h,
net/ethernet.h, net/if.c, net/if.h, net/if_arp.h, net/if_dl.h,
net/if_ethersubr.c, net/if_llc.h, net/if_loop.c, net/if_ppp.h,
net/if_pppvar.h, net/if_types.h, net/netisr.h, net/ppp-comp.h,
net/ppp_defs.h, net/pppcompress.h, net/radix.c, net/radix.h,
net/raw_cb.c, net/raw_cb.h, net/raw_usrreq.c, net/route.c,
net/route.h, net/rtsock.c, pppd/Makefile.am, pppd/README,
pppd/STATUS, pppd/auth.c, pppd/cbcp.c, pppd/ccp.c, pppd/ccp.h,
pppd/chap.c, pppd/chap.h, pppd/chap_ms.c, pppd/chap_ms.h,
pppd/chat.c, pppd/demand.c, pppd/fsm.c, pppd/fsm.h, pppd/ipcp.c,
pppd/ipcp.h, pppd/ipxcp.c, pppd/ipxcp.h, pppd/lcp.c, pppd/lcp.h,
pppd/magic.c, pppd/magic.h, pppd/options.c, pppd/patchlevel.h,
pppd/pathnames.h, pppd/pppd.8, pppd/pppd.h, pppd/rtemsmain.c,
pppd/rtemspppd.c, pppd/rtemspppd.h, pppd/sys-rtems.c, pppd/upap.c,
pppd/upap.h, pppd/utils.c, pppd/example/README,
pppd/example/netconfig.h, wrapup/Makefile.am: Modified.
* net/bsd-comp.c, net/if_ppp.c, net/ppp-deflate.c, net/ppp.h,
net/ppp_tty.c, net/pppcompress.c, net/zlib.c, net/zlib.h: New file.
* modem/, modem/.cvsignore, modem/Makefile.am, modem/ppp.c,
modem/ppp.h, modem/ppp_tty.c, modem/pppcompress.c: Subdirectory removed.
Diffstat (limited to '')
-rw-r--r-- | c/src/libnetworking/pppd/chat.c | 20 |
1 files changed, 9 insertions, 11 deletions
diff --git a/c/src/libnetworking/pppd/chat.c b/c/src/libnetworking/pppd/chat.c index 150081d4e5..6d8a7f24c7 100644 --- a/c/src/libnetworking/pppd/chat.c +++ b/c/src/libnetworking/pppd/chat.c @@ -156,6 +156,7 @@ char *report_file = (char *) 0; char *chat_file = (char *) 0; char *phone_num = (char *) 0; char *phone_num2 = (char *) 0; +static int ttyfd; static int timeout = DEFAULT_CHAT_TIMEOUT; #ifdef TERMIOS @@ -192,7 +193,7 @@ char *character __P((int c)); void chat_expect __P((register char *s)); char *clean __P((register char *s, int sending)); char *expect_strtok __P((char *, char *)); -int chatmain __P((char *)); +int chatmain __P((int, int, char *)); void *dup_mem(b, c) @@ -224,39 +225,36 @@ char *getnextcommand(char **string) return buf; } -int chatmain(argv) -char *argv; +int chatmain(int fd, int mode, char *pScript) { char *arg; /* initialize exit code */ exit_code = 0; + ttyfd = fd; if ( debug ) { - dbglog("chat_main: %s\n", argv); + dbglog("chat_main: %s\n", pScript); } /* get first expect string */ - arg = getnextcommand(&argv); + arg = getnextcommand(&pScript); while (( arg != NULL ) && ( exit_code == 0 )) { /* process the expect string */ chat_expect(arg); if ( exit_code == 0 ) { /* get the next send string */ - arg = getnextcommand(&argv); + arg = getnextcommand(&pScript); if ( arg != NULL ) { /* process the send string */ chat_send(arg); /* get the next expect string */ - arg = getnextcommand(&argv); + arg = getnextcommand(&pScript); } } } - - if ( exit_code ) { - exit_code = -exit_code; - } + ttyfd = (int)-1; return ( exit_code ); } |