|
|
1.1 root 1: /* add_dial.c: This will function just like add_port.c. It draws a
2: * template to be used by a user to add a dial entry and
3: * then gets the user's data.
4: */
5:
6: #include "uuinstall.h"
7:
8: /* add_port calls the functions to draw a dial entry template, get the
9: * data and finally to write the entry to the dial file.
10: */
11:
12: add_dial()
13: {
14: char b;
15: FILE * dialfd;
16:
17: dial_template();
18: wrefresh(portwin);
19:
20: b = get_dial_data();
21:
22: /* time to save the data to the dial file */
23: if(b == 'y'){
24: if ( (dialfd = fopen(DIALFILE,"a")) == NULL){
25: mvwaddstr(portwin,12,28,"Error opening dial file!");
26: wrefresh(portwin);
27: sleep(1);
28: wclear(portwin);
29: wrefresh(portwin);
30: return;
31: }
32:
33: wclear(portwin);
34: mvwaddstr(portwin,12,32,"Adding entry...");
35: wrefresh(portwin);
36: sleep(1);
37:
38: fprintf(dialfd,"\n%s\n",dialname);
39: fprintf(dialfd,"%s\n",dialchat);
40: fprintf(dialfd,"%s\n",dialtout);
41:
42: if (strlen(dialfail1) != 0)
43: fprintf(dialfd,"%s\n",dialfail1);
44:
45: if (strlen(dialfail2) != 0)
46: fprintf(dialfd,"%s\n",dialfail2);
47:
48: if (strlen(dialfail3) != 0)
49: fprintf(dialfd,"%s\n",dialfail3);
50:
51: if(strlen(dialplete) > 0)
52: fprintf(dialfd,"%s\n",dialplete);
53: if(strlen(dialabort) > 0)
54: fprintf(dialfd,"%s\n",dialabort);
55:
56: fclose(dialfd);
57: }
58:
59: wclear(portwin);
60: wrefresh(portwin);
61: }
62:
63:
64:
65: /* dial_template(): draw a template for a dial entry */
66:
67: dial_template()
68: {
69:
70: /* label our fields */
71:
72: wclear(portwin);
73: mvwaddstr(portwin,3,1,"dialer");
74: mvwaddstr(portwin,4,1,"chat");
75: mvwaddstr(portwin,5,1,"chat-timeout");
76: mvwaddstr(portwin,6,1,"chat-fail");
77: mvwaddstr(portwin,7,1,"chat-fail");
78: mvwaddstr(portwin,8,1,"chat-fail");
79: mvwaddstr(portwin,9,1,"complete-chat");
80: mvwaddstr(portwin,10,1,"abort-chat");
81:
82: /* highlight our fields */
83: wstandout(portwin);
84: mvwaddstr(portwin,0,29,"Dial File Entry Screen");
85: mvwaddstr(portwin,3,16," ");
86: mvwaddstr(portwin,4,16," ");
87: mvwaddstr(portwin,5,16," ");
88: mvwaddstr(portwin,6,16," ");
89: mvwaddstr(portwin,7,16," ");
90: mvwaddstr(portwin,8,16," ");
91: mvwaddstr(portwin,9,16," ");
92: mvwaddstr(portwin,10,16," ");
93: wstandend(portwin);
94: }
95:
96:
97: /* get_dial_data(): this will position our cursor to get data for
98: * the fields we will fill.
99: */
100:
101: get_dial_data()
102: {
103: char * workstring;
104: char b;
105:
106: /* initialize the fields we will fill */
107:
108: strcpy(dialname,"dialer ");
109: strcpy(dialchat,"chat ");
110: strcpy(dialtout,"chat-timeout ");
111: strcpy(dialplete,"complete-chat ");
112: strcpy(dialabort,"abort-chat ");
113:
114: /* get our dialer name */
115:
116: mvwaddstr(portwin,20,0,"Enter the name of the dialer that");
117: mvwaddstr(portwin,21,0,"this entry describes.");
118: mvwaddstr(portwin,22,0,"Leaving this field blank aborts entry.");
119: wrefresh(portwin);
120: workstring = get_data(portwin,3,16,14,0,1);
121: if (strlen(workstring) == 0)
122: return('n');
123: strcat(dialname,workstring);
124:
125: /* get our chat information */
126: wmove(portwin,20,0);
127: wclrtobot(portwin);
128: mvwaddstr(portwin,12,1,"Enter the chat script used to talk to the modem to set up its registers");
129: mvwaddstr(portwin,13,1,"and dial out. The format of a chat script is: expect_msg <SPACE> send_msg.");
130: mvwaddstr(portwin,14,1,"For example, a chat script of:");
131: wstandout(portwin);
132: mvwaddstr(portwin,14,38,"\"\" ATQ0E1V1L2M1DT\\D CONNECT\\s2400");
133: wstandend(portwin);
134: mvwaddstr(portwin,15,1,"tells uucico to expect NOTHING (\"\") and then sends the appropriate commands");
135: mvwaddstr(portwin,16,1,"to the modem to turn on ECHO and VERBAL RESULT CODES, sets speaker volume and");
136: mvwaddstr(portwin,17,1,"speaker duration and finally to dial the phone number from a system's");
137: mvwaddstr(portwin,18,1,"entry in the sys file (\\D). The final message to expect is the message the");
138: mvwaddstr(portwin,19,1,"modem will send when it has connected to another modem.");
139: wstandout(portwin);
140: mvwaddstr(portwin,21,1,"Important:");
141: wstandend(portwin);
142: mvwaddstr(portwin,21,11," Expect_msgs and send_msgs are separated by spaces. To represent a");
143: mvwaddstr(portwin,22,1,"space in an expect_msg or send_msg, enter a \\s instead of a space.");
144: wrefresh(portwin);
145:
146: workstring = get_data(portwin,4,16,60,1,0);
147: strcat(dialchat, workstring);
148:
149: wmove(portwin,12,0);
150: wclrtobot(portwin);
151:
152: /* get a chat timeout value */
153:
154: do{
155: wmove(portwin,20,0);
156: wclrtobot(portwin);
157: mvwaddstr(portwin,20,0,"Enter the seconds uucico should wait for");
158: mvwaddstr(portwin,21,0,"when expecting a chat message before giving");
159: mvwaddstr(portwin,22,0,"up attempting to establish a connection.");
160: wrefresh(portwin);
161:
162: workstring = get_data(portwin,5,16,3,1,0);
163: }
164: while(0 == atoi(workstring) );
165: strcat(dialtout,workstring);
166:
167: /* now get some dial-fail strings */
168:
169: wmove(portwin,20,0);
170: wclrtobot(portwin);
171: mvwaddstr(portwin,20,0,"Optional: Enter a message that the modem");
172: mvwaddstr(portwin,21,0,"might return if the dial attempt failed.");
173: mvwaddstr(portwin,22,0,"Examples:");
174: wstandout(portwin);
175: mvwaddstr(portwin,22,11,"NO\\sDIALTONE BUSY NO\\sCARRIER");
176: wstandend(portwin);
177: wrefresh(portwin);
178:
179: strcpy(workstring,"");
180: workstring = get_data(portwin,6,16,22,0,2);
181: if (strlen(workstring) == 0)
182: strcpy(dialfail1,"");
183: else{
184: strcpy(dialfail1,"chat-fail ");
185: strcat(dialfail1,workstring);
186: }
187:
188: strcpy(workstring,"");
189: workstring = get_data(portwin,7,16,22,0,2);
190: if (strlen(workstring) == 0)
191: strcpy(dialfail2,"");
192: else{
193: strcpy(dialfail2,"chat-fail ");
194: strcat(dialfail2,workstring);
195: }
196:
197: strcpy(workstring,"");
198: workstring = get_data(portwin,8,16,22,0,2);
199: if (strlen(workstring) == 0)
200: strcpy(dialfail3,"");
201: else{
202: strcpy(dialfail3,"chat-fail ");
203: strcat(dialfail3,workstring);
204: }
205:
206:
207: /* now for abort-chat and complete-chat */
208:
209: wmove(portwin,20,0);
210: wclrtobot(portwin);
211: mvwaddstr(portwin,12,0,"Optional: Enter a chat script to be used to set the modem after a call has");
212: mvwaddstr(portwin,13,0,"successfully completed. The purpose of this might be to ensure that the modem");
213: mvwaddstr(portwin,14,0,"hangs up the line, although this would be done automatically under an ideal");
214: mvwaddstr(portwin,15,0,"modem configuration. Remember, expect_msgs and send_msgs are separated by");
215: mvwaddstr(portwin,16,0,"spaces. To represent a space within an expect_msg or send_msg, use \\s.");
216: mvwaddstr(portwin,17,0,"Example:");
217: wstandout(portwin);
218: mvwaddstr(portwin,17,12,"\"\" +++ OK AT\\sH0\\sE0");
219: wstandend(portwin);
220: mvwaddstr(portwin,18,0,"This tells uucico to expect NOTHING (\"\"), send a command to put the modem ");
221: mvwaddstr(portwin,19,0,"into command mode (+++), expect OK from the modem, then send a hangup command.");
222: wrefresh(portwin);
223:
224: workstring = get_data(portwin,9,16,80,0,0);
225: if(strlen(workstring) == 0)
226: strcpy(dialplete,"");
227: else
228: strcat(dialplete, workstring);
229:
230: wmove(portwin,13,0);
231: wclrtoeol(portwin);
232: mvwaddstr(portwin,13,0,"abnormally completed. The purpose of this might be to ensure that the modem");
233: wrefresh(portwin);
234:
235: workstring = get_data(portwin,10,16,80,0,0);
236: if(strlen(workstring) == 0)
237: strcpy(dialabort,"");
238: else
239: strcat(dialabort,workstring);
240:
241: wmove(portwin,12,0);
242: wclrtobot(portwin);
243: mvwaddstr(portwin,17,23,"Do you wish to save this entry? (y/n)");
244: wrefresh(portwin);
245:
246: do{
247: b = wgetch(portwin);
248: }
249: while ((b != 'n') && (b != 'y'));
250:
251: return(b);
252: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.