Deleted Added
full compact
chat.c (31953) chat.c (31962)
1/*
2 * Written by Toshiharu OHNO (tony-o@iij.ad.jp)
3 *
4 * Copyright (C) 1993, Internet Initiative Japan, Inc. All rights reserverd.
5 *
6 * Most of codes are derived from chat.c by Karl Fox (karl@MorningStar.Com).
7 *
8 * Chat -- a program for automatic session establishment (i.e. dial

--- 4 unchanged lines hidden (view full) ---

13 * Please send all bug reports, requests for information, etc. to:
14 *
15 * Karl Fox <karl@MorningStar.Com>
16 * Morning Star Technologies, Inc.
17 * 1760 Zollinger Road
18 * Columbus, OH 43221
19 * (614)451-1883
20 *
1/*
2 * Written by Toshiharu OHNO (tony-o@iij.ad.jp)
3 *
4 * Copyright (C) 1993, Internet Initiative Japan, Inc. All rights reserverd.
5 *
6 * Most of codes are derived from chat.c by Karl Fox (karl@MorningStar.Com).
7 *
8 * Chat -- a program for automatic session establishment (i.e. dial

--- 4 unchanged lines hidden (view full) ---

13 * Please send all bug reports, requests for information, etc. to:
14 *
15 * Karl Fox <karl@MorningStar.Com>
16 * Morning Star Technologies, Inc.
17 * 1760 Zollinger Road
18 * Columbus, OH 43221
19 * (614)451-1883
20 *
21 * $Id: chat.c,v 1.40 1997/12/18 01:10:12 brian Exp $
21 * $Id: chat.c,v 1.41 1997/12/23 22:38:51 brian Exp $
22 *
23 * TODO:
24 * o Support more UUCP compatible control sequences.
25 * o Dialing shoud not block monitor process.
26 * o Reading modem by select should be unified into main.c
27 */
28#include <sys/param.h>
29#include <netinet/in.h>

--- 151 unchanged lines hidden (view full) ---

181 case 'P':
182 strncpy(result, VarAuthKey, reslen);
183 reslen -= strlen(result);
184 result += strlen(result);
185 break;
186 case 'T':
187 if (VarAltPhone == NULL) {
188 if (VarNextPhone == NULL) {
22 *
23 * TODO:
24 * o Support more UUCP compatible control sequences.
25 * o Dialing shoud not block monitor process.
26 * o Reading modem by select should be unified into main.c
27 */
28#include <sys/param.h>
29#include <netinet/in.h>

--- 151 unchanged lines hidden (view full) ---

181 case 'P':
182 strncpy(result, VarAuthKey, reslen);
183 reslen -= strlen(result);
184 result += strlen(result);
185 break;
186 case 'T':
187 if (VarAltPhone == NULL) {
188 if (VarNextPhone == NULL) {
189 strncpy(VarPhoneCopy, VarPhoneList, sizeof(VarPhoneCopy) - 1);
190 VarPhoneCopy[sizeof(VarPhoneCopy) - 1] = '\0';
189 strncpy(VarPhoneCopy, VarPhoneList, sizeof VarPhoneCopy - 1);
190 VarPhoneCopy[sizeof VarPhoneCopy - 1] = '\0';
191 VarNextPhone = VarPhoneCopy;
192 }
193 VarAltPhone = strsep(&VarNextPhone, ":");
194 }
195 phone = strsep(&VarAltPhone, "|");
196 strncpy(result, phone, reslen);
197 reslen -= strlen(result);
198 result += strlen(result);

--- 88 unchanged lines hidden (view full) ---

287
288
289#ifdef SIGALRM
290 int omask;
291
292 omask = sigblock(sigmask(SIGALRM));
293#endif
294 clear_log();
191 VarNextPhone = VarPhoneCopy;
192 }
193 VarAltPhone = strsep(&VarNextPhone, ":");
194 }
195 phone = strsep(&VarAltPhone, "|");
196 strncpy(result, phone, reslen);
197 reslen -= strlen(result);
198 result += strlen(result);

--- 88 unchanged lines hidden (view full) ---

287
288
289#ifdef SIGALRM
290 int omask;
291
292 omask = sigblock(sigmask(SIGALRM));
293#endif
294 clear_log();
295 ExpandString(estr, buff, sizeof(buff), 0);
295 ExpandString(estr, buff, sizeof buff, 0);
296 LogPrintf(LogCHAT, "Wait for (%d): %s --> %s\n", TimeoutSec, estr, buff);
297 str = buff;
298 inp = inbuff;
299
300 if (strlen(str) >= IBSIZE) {
301 str[IBSIZE - 1] = 0;
302 LogPrintf(LogCHAT, "Truncating String to %d character: %s\n", IBSIZE, str);
303 }

--- 180 unchanged lines hidden (view full) ---

484SendString(const char *str)
485{
486 char *cp;
487 int on;
488 char buff[LINE_LEN];
489
490 if (abort_next) {
491 abort_next = 0;
296 LogPrintf(LogCHAT, "Wait for (%d): %s --> %s\n", TimeoutSec, estr, buff);
297 str = buff;
298 inp = inbuff;
299
300 if (strlen(str) >= IBSIZE) {
301 str[IBSIZE - 1] = 0;
302 LogPrintf(LogCHAT, "Truncating String to %d character: %s\n", IBSIZE, str);
303 }

--- 180 unchanged lines hidden (view full) ---

484SendString(const char *str)
485{
486 char *cp;
487 int on;
488 char buff[LINE_LEN];
489
490 if (abort_next) {
491 abort_next = 0;
492 ExpandString(str, buff, sizeof(buff), 0);
492 ExpandString(str, buff, sizeof buff, 0);
493 AbortStrings[numaborts++] = strdup(buff);
494 } else if (timeout_next) {
495 timeout_next = 0;
496 TimeoutSec = atoi(str);
497 if (TimeoutSec <= 0)
498 TimeoutSec = 30;
499 } else {
500 if (*str == '!') {
493 AbortStrings[numaborts++] = strdup(buff);
494 } else if (timeout_next) {
495 timeout_next = 0;
496 TimeoutSec = atoi(str);
497 if (TimeoutSec <= 0)
498 TimeoutSec = 30;
499 } else {
500 if (*str == '!') {
501 ExpandString(str + 1, buff + 2, sizeof(buff) - 2, 0);
501 ExpandString(str + 1, buff + 2, sizeof buff - 2, 0);
502 ExecStr(buff + 2, buff + 2);
503 } else {
502 ExecStr(buff + 2, buff + 2);
503 } else {
504 ExpandString(str, buff + 2, sizeof(buff) - 2, 1);
504 ExpandString(str, buff + 2, sizeof buff - 2, 1);
505 }
506 if (strstr(str, "\\P")) /* Do not log the password itself. */
507 LogPrintf(LogCHAT, "sending: %s\n", str);
508 else
509 LogPrintf(LogCHAT, "sending: %s\n", buff + 2);
510 cp = buff;
511 if (DEV_IS_SYNC)
512 memcpy(buff, "\377\003", 2); /* Prepend HDLC header */

--- 97 unchanged lines hidden (view full) ---

610
611 timeout_next = abort_next = 0;
612 for (n = 0; AbortStrings[n]; n++) {
613 free(AbortStrings[n]);
614 AbortStrings[n] = NULL;
615 }
616 numaborts = 0;
617
505 }
506 if (strstr(str, "\\P")) /* Do not log the password itself. */
507 LogPrintf(LogCHAT, "sending: %s\n", str);
508 else
509 LogPrintf(LogCHAT, "sending: %s\n", buff + 2);
510 cp = buff;
511 if (DEV_IS_SYNC)
512 memcpy(buff, "\377\003", 2); /* Prepend HDLC header */

--- 97 unchanged lines hidden (view full) ---

610
611 timeout_next = abort_next = 0;
612 for (n = 0; AbortStrings[n]; n++) {
613 free(AbortStrings[n]);
614 AbortStrings[n] = NULL;
615 }
616 numaborts = 0;
617
618 memset(vector, '\0', sizeof(vector));
618 memset(vector, '\0', sizeof vector);
619 argc = MakeArgs(script, vector, VECSIZE(vector));
620 argv = vector;
621 TimeoutSec = 30;
622 while (*argv) {
623 if (strcmp(*argv, "P_ZERO") == 0 ||
624 strcmp(*argv, "P_ODD") == 0 || strcmp(*argv, "P_EVEN") == 0) {
625 ChangeParity(*argv++);
626 continue;

--- 16 unchanged lines hidden ---
619 argc = MakeArgs(script, vector, VECSIZE(vector));
620 argv = vector;
621 TimeoutSec = 30;
622 while (*argv) {
623 if (strcmp(*argv, "P_ZERO") == 0 ||
624 strcmp(*argv, "P_ODD") == 0 || strcmp(*argv, "P_EVEN") == 0) {
625 ChangeParity(*argv++);
626 continue;

--- 16 unchanged lines hidden ---