summaryrefslogtreecommitdiff
path: root/usr.sbin/ppp/chat.h
diff options
context:
space:
mode:
Diffstat (limited to 'usr.sbin/ppp/chat.h')
-rw-r--r--usr.sbin/ppp/chat.h88
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() */