|
|
1.1 root 1: /* add_port.c: add a port entry to the port file. This will get the
2: * info from a curses screen and write an entry to the
3: * port file.
4: */
5:
6: #include <string.h>
7: #include "uuinstall.h"
8:
9: /* add_port merely calls up a template and then calls a function to
10: * position the cursor to get data. If the user chooses to save the
11: * entered data, it is saved to the port file.
12: */
13:
14: add_port()
15: {
16: char z;
17: FILE *portfd;
18:
19: port_template();
20: z = get_port_data();
21: if (z == 'y'){
22: if( (portfd = fopen(PORTFILE,"a")) == NULL){
23: mvwaddstr(portwin,7,5,"ERROR opening file for writing! ");
24: wrefresh(portwin);
25: sleep(5);
26: return;
27: }
28: wclear(portwin);
29: mvwaddstr(portwin,12,32,"Adding entry...");
30: wrefresh(portwin);
31: sleep(1);
32:
33: fprintf(portfd, "\n%s\n",portname);
34: fprintf(portfd, "%s\n", porttype);
35: fprintf(portfd, "%s\n",portdev);
36: fprintf(portfd, "%s\n",portspeed);
37:
38: if(strstr(porttype,"modem")){
39: fprintf(portfd, "%s\n",portdial);
40: }
41:
42: fclose(portfd);
43: }
44: wclear(portwin);
45: wrefresh(portwin);
46: }
47:
48:
49: /* draw a template on the data entry screen */
50: port_template()
51: {
52: wclear(portwin);
53: mvwaddstr(portwin,9,10,"port");
54: mvwaddstr(portwin,10,10,"type");
55: mvwaddstr(portwin,11,10,"device");
56: mvwaddstr(portwin,12,10,"baud");
57: mvwaddstr(portwin,13,10,"dialer");
58:
59: wstandout(portwin);
60: mvwaddstr(portwin,0,29,"Port File Entry Screen");
61: mvwaddstr(portwin,9,17," ");
62: mvwaddstr(portwin,10,17," ");
63: mvwaddstr(portwin,11,17,"/dev/ ");
64: mvwaddstr(portwin,12,17," ");
65: mvwaddstr(portwin,13,17," ");
66: wstandend(portwin);
67: wrefresh(portwin);
68: }
69:
70:
71: /* get the data for this port */
72: get_port_data()
73: {
74:
75: char mdm; /* flag for modem or direct connect */
76: char * workstring;
77:
78: /* initialize the fields we will fill */
79: strcpy(portname,"port ");
80: strcpy(porttype,"type ");
81: strcpy(portdev,"device /dev/");
82: strcpy(portspeed,"baud ");
83: strcpy(portdial,"dialer ");
84:
85:
86: /* get a port name */
87: wmove(portwin,20,0);
88: wclrtobot(portwin);
89: mvwaddstr(portwin,20,0,"Enter the name that you want");
90: mvwaddstr(portwin,21,0,"associated with the device");
91: mvwaddstr(portwin,22,0,"that this entry will define.");
92: mvwaddstr(portwin,23,0,"Enter nothing to cancel.");
93: wrefresh(portwin);
94:
95: workstring = get_data(portwin,9,17,14,0,1); /* get port name */
96: if (strlen(workstring) == 0)
97: return('n');
98:
99: strcat(portname,workstring);
100:
101: /* now find out if this is a direct or modem connection */
102:
103: wmove(portwin,20,0);
104: wclrtobot(portwin);
105: mvwaddstr(portwin,20,0,"This port must be a direct");
106: mvwaddstr(portwin,21,0,"data line connection or used by");
107: mvwaddstr(portwin,22,0,"a modem. You must specify this.");
108: wrefresh(portwin);
109:
110: strcpy(workstring,"");
111: mvwaddstr(portwin,15,5,"Is this a <d>irect or <m>odem connection?");
112: wrefresh(portwin);
113: do{
114: mvwaddstr(portwin,17,12,"Press 'd' or 'm'.");
115: wrefresh(portwin);
116: mdm = wgetch(portwin);
117: }
118: while ((mdm != 'd') && (mdm != 'm'));
119:
120: wmove(portwin, 10, 17);
121: if (mdm == 'd'){
122: wstandout(portwin);
123: wprintw(portwin,"direct");
124: wstandend(portwin);
125: strcat(porttype,"direct");
126: }else{
127: wstandout(portwin);
128: wprintw(portwin,"modem");
129: wstandend(portwin);
130: strcat(porttype,"modem");
131: }
132:
133: wmove(portwin,15,4);
134: wclrtoeol(portwin);
135: wmove(portwin,17,1);
136: wclrtoeol(portwin);
137: wrefresh(portwin);
138: strcpy(workstring,"");
139:
140:
141: /* Now get the device associated with this port */
142:
143: wmove(portwin,20,0);
144: wclrtobot(portwin);
145: mvwaddstr(portwin,20,0,"Enter the name of the actual");
146: mvwaddstr(portwin,21,0,"device. Examples: com2l, com1fl.");
147: wrefresh(portwin);
148:
149: workstring = get_data(portwin,11,22,14,1,1);
150: strcat(portdev,workstring);
151: strcpy(workstring,"");
152:
153: /* now get the speed of this port */
154:
155: wmove(portwin,20,0);
156: wclrtobot(portwin);
157: mvwaddstr(portwin,20,0,"Enter baud rate that communications");
158: mvwaddstr(portwin,21,0,"will take place with via this port.");
159: mvwaddstr(portwin,22,0,"Examples: 1200, 2400, 9600, 19200.");
160: wrefresh(portwin);
161:
162: workstring = get_data(portwin,12,17,5,1,1);
163: strcat(portspeed,workstring);
164: strcpy(workstring,"");
165:
166: /* now get a dialer name. This will only be needed if
167: * this is a modem connection.
168: */
169:
170: if (strstr(porttype,"modem")){
171:
172: wmove(portwin,20,0);
173: wclrtobot(portwin);
174: mvwaddstr(portwin,20,0,"Enter the name of the dialer entry");
175: mvwaddstr(portwin,21,0,"from the dial file that will be");
176: mvwaddstr(portwin,22,0,"used to dial this modem.");
177: wrefresh(portwin);
178:
179: workstring = get_data(portwin,13,17,14,1,1);
180: strcat(portdial, workstring);
181: strcpy(workstring,"");
182: }
183:
184: wmove(portwin,20,0);
185: wclrtobot(portwin);
186: mvwaddstr(portwin,7,5,"Do you wish to write this entry? (y/n)");
187: wrefresh(portwin);
188: do{
189: mdm = wgetch(portwin);
190: }
191: while ((mdm != 'y') && (mdm != 'n'));
192:
193: wmove(portwin,7,1);
194: wclrtoeol(portwin);
195: wrefresh(portwin);
196: return(mdm);
197: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.