This repository has been archived by the owner on Nov 9, 2017. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 29
/
wvdialbrain.h
86 lines (69 loc) · 1.86 KB
/
wvdialbrain.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
/*
* Worldvisions Weaver Software:
* Copyright (C) 1997-2003 Net Integration Technologies, Inc.
*
* Definition of the brains behind the WvDialer class.
*
*/
#ifndef __WVDIALBRAIN_H
#define __WVDIALBRAIN_H
#include <termios.h>
#include "strutils.h"
#include "wvlog.h"
#include "wvpipe.h"
#include "wvstreamclone.h"
class WvDialer;
enum BrainTokenType
/*****************/
{
TOK_WORD = 0,
TOK_NUMBER,
TOK_PUNCT
};
struct BrainToken
/***************/
{
BrainTokenType type;
char * tok_str;
char tok_char;
BrainToken * next;
};
class WvDialBrain
/***************/
{
public:
WvDialBrain( WvDialer * a_dialer );
~WvDialBrain();
void reset();
const char * check_prompt( const char * buffer );
const char * guess_menu( char * buf );
int saw_first_compuserve_prompt;
private:
WvDialer * dialer;
int sent_login;
int prompt_tries;
WvString prompt_response;
// These functions are called from check_prompt()....
bool is_prompt( const char * c,
const char * promptstring = NULL,
bool dots_wild = false );
bool is_login_prompt( const char * buf );
bool is_compuserve_prompt( const char * buf );
bool is_password_prompt( const char * buf );
bool is_welcome_msg( const char * buf );
// Menu-string tokenizer....
BrainToken * tokenize( char * left, char * right );
BrainToken * tokenize( char * str );
void token_list_done( BrainToken * token_list );
// Called from guess_menu....
void guess_menu_guts( BrainToken * token_list );
void set_prompt_response( char * str );
};
inline BrainToken * WvDialBrain::tokenize( char * str )
/*****************************************************/
{
if( str == NULL )
return( NULL );
return( tokenize( str, str+strlen( str ) - 1 ) );
}
#endif // __WVDIALBRAIN_H