diff options
Diffstat (limited to 'usr.sbin/ppp/chat.h')
-rw-r--r-- | usr.sbin/ppp/chat.h | 88 |
1 files changed, 67 insertions, 21 deletions
diff --git a/usr.sbin/ppp/chat.h b/usr.sbin/ppp/chat.h index c1beec2d158e..0f0947fca2b5 100644 --- a/usr.sbin/ppp/chat.h +++ b/usr.sbin/ppp/chat.h @@ -1,29 +1,75 @@ -/* - * Written by Toshiharu OHNO (tony-o@iij.ad.jp) +/*- + * Copyright (c) 1998 Brian Somers <brian@Awfulhak.org> + * All rights reserved. * - * Copyright (C) 1993, Internet Initiative Japan, Inc. All rights reserverd. + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. * - * Most of codes are derived from chat.c by Karl Fox (karl@MorningStar.Com). - * - * Chat -- a program for automatic session establishment (i.e. dial - * the phone and log in). - * - * This software is in the public domain. - * - * Please send all bug reports, requests for information, etc. to: - * - * Karl Fox <karl@MorningStar.Com> - * Morning Star Technologies, Inc. - * 1760 Zollinger Road - * Columbus, OH 43221 - * (614)451-1883 - * - * $Id: chat.h,v 1.9 1997/11/22 03:37:27 brian Exp $ + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. * + * $Id$ */ +#define CHAT_EXPECT 0 +#define CHAT_SEND 1 +#define CHAT_DONE 2 +#define CHAT_FAILED 3 + +struct chat { + struct descriptor desc; + struct physical *physical; + + int state; /* Our CHAT_* status */ + + char script[LINE_LEN]; /* Our arg buffer */ + char *argv[MAXARGS]; /* Our arguments (pointing to script) */ + int argc; /* Number of argv's */ + + int arg; /* Our current arg number */ + char exp[LINE_LEN]; /* Our translated current argument */ + char *argptr; /* Our current arg pointer */ + int arglen; /* The length of argptr */ + char *nargptr; /* Our next for expect-send-expect */ + + char buf[LINE_LEN*2]; /* Our input */ + char *bufstart; /* start of relevent data */ + char *bufend; /* end of relevent data */ + + int TimeoutSec; /* Expect timeout value */ + int TimedOut; /* We timed out */ + char *AbortStrings[50]; /* Abort the dial if we get one */ + int numaborts; /* How many AbortStrings */ + + struct pppTimer pause; /* Inactivity timer */ + struct pppTimer timeout; /* TimeoutSec timer */ +}; + +#define chat2descriptor(c) (&(c)->desc) +#define descriptor2chat(d) \ + ((d)->type == CHAT_DESCRIPTOR ? (struct chat *)(d) : NULL) + +void chat_Init(struct chat *, struct physical *, const char *, int); +void chat_Destroy(struct chat *); + +extern struct chat chat; + #define VECSIZE(v) (sizeof(v) / sizeof(v[0])) -extern char *ExpandString(const char *, char *, int, int); +extern char *chat_ExpandString(struct chat *, const char *, char *, int, int); extern int MakeArgs(char *, char **, int); /* Mangles the first arg ! */ -extern int DoChat(struct physical *, char *); /* passes arg to MakeArgs() */ |