Annotation of coherent/g/usr/lib/uucp/uuinstall/add_sys.c, revision 1.1.1.1

1.1       root        1: /* add_sys.c: works just like add_port.c, see comments there. */
                      2: 
                      3: #include "uuinstall.h"
                      4: 
                      5: add_sys()
                      6: {
                      7:        char b;
                      8:        FILE *sysfd;
                      9: 
                     10:        sys_template();
                     11:        wrefresh(portwin);
                     12: 
                     13:        b = get_sys_data();
                     14:        wclear(portwin);
                     15:        wrefresh(portwin);
                     16:        if (b == 'y'){
                     17:                if( (sysfd = fopen(SYSFILE,"a")) == NULL){
                     18:                        mvwaddstr(portwin,12,28,"Error opening sys file!");
                     19:                        wrefresh(portwin);
                     20:                        sleep(1);
                     21:                        wclear(portwin);
                     22:                        wrefresh(portwin);
                     23:                        return;
                     24:                }
                     25:                        
                     26:                wclear(portwin);
                     27:                mvwaddstr(portwin,12,32,"Adding entry...");
                     28:                wrefresh(portwin);
                     29:                sleep(1);
                     30: 
                     31:                fprintf(sysfd,"\n%s\n",sysname);                                
                     32:                fprintf(sysfd,"%s\n",systime);
                     33:                fprintf(sysfd,"%s\n",sysspeed);
                     34:                if (strlen(sysport) > 0)
                     35:                        fprintf(sysfd,"%s\n",sysport);
                     36:                if (strlen(sysphone) > 0)
                     37:                        fprintf(sysfd,"%s\n",sysphone);
                     38:                fprintf(sysfd,"%s\n",syschat);
                     39:                if (strlen(sysmyname) > 0)
                     40:                        fprintf(sysfd,"%s\n",sysmyname);
                     41: 
                     42:                fprintf(sysfd,"%s\n",sysprot);
                     43:                fprintf(sysfd,"%s\n",syscmds);
                     44:                fprintf(sysfd,"%s\n",sysread);
                     45:                fprintf(sysfd,"%s\n",syswrite);
                     46: 
                     47:                fclose(sysfd);
                     48:        }
                     49:        wclear(portwin);
                     50:        wrefresh(portwin);
                     51: 
                     52: }
                     53: 
                     54: /* sys_template(): draw a template for a sys file entry */
                     55: 
                     56: sys_template()
                     57: {
                     58:        mvwaddstr(portwin,3,1,"system: ");
                     59:        mvwaddstr(portwin,4,1,"time: ");
                     60:        mvwaddstr(portwin,5,1,"speed: ");
                     61:        mvwaddstr(portwin,6,1,"port: ");
                     62:        mvwaddstr(portwin,7,1,"phone: ");
                     63:        mvwaddstr(portwin,8,1,"chat: ");
                     64:        mvwaddstr(portwin,9,1,"myname: ");
                     65:        mvwaddstr(portwin,10,1,"protocol: ");
                     66:        mvwaddstr(portwin,11,1,"commands: ");
                     67:        mvwaddstr(portwin,12,1,"read path: ");
                     68:        mvwaddstr(portwin,13,1,"write path: ");
                     69: 
                     70:        wstandout(portwin);
                     71:        mvwaddstr(portwin,0,29,"Sys File Entry Screen");
                     72:        mvwaddstr(portwin,3,12,"        ");
                     73:        mvwaddstr(portwin,4,12,"                                             ");
                     74:        mvwaddstr(portwin,5,12,"     ");
                     75:        mvwaddstr(portwin,6,12,"              ");
                     76:        mvwaddstr(portwin,7,12,"                                             ");
                     77:        mvwaddstr(portwin,8,12,"                                                       ");
                     78:        mvwaddstr(portwin,9,12,"        ");
                     79:        mvwaddstr(portwin,10,12,"    ");
                     80:        mvwaddstr(portwin,11,12,"                                                       ");
                     81:        mvwaddstr(portwin,12,12,"                                                       ");
                     82:        mvwaddstr(portwin,13,12,"                                                       ");
                     83:        wstandend(portwin);
                     84:        wrefresh(portwin);
                     85: }
                     86: 
                     87: 
                     88: /* get_sys_data(): functions just like get_port_data(). See add_port.c */
                     89: 
                     90: get_sys_data()
                     91: {
                     92:        char *workstring;
                     93:        char b;
                     94:        /* initialize fields we will use */
                     95: 
                     96:        strcpy(sysname,"system "); 
                     97:        strcpy(systime,"time ");
                     98:        strcpy(sysspeed,"baud ");
                     99:        strcpy(sysport,"port ");
                    100:        strcpy(sysphone,"phone ");
                    101:        strcpy(syschat,"chat ");
                    102:        strcpy(sysmyname,"myname ");
                    103:        strcpy(sysprot,"protocol ");
                    104:        strcpy(syscmds,"commands ");
                    105:        strcpy(sysread,"remote-send ");
                    106:        strcpy(syswrite,"remote-receive ");
                    107: 
                    108:        /* get a remote system name */
                    109:        mvwaddstr(portwin,20,0,"Enter the name of a remote uucp system. You should");
                    110:        mvwaddstr(portwin,21,0,"limit the name to 8 characters.");
                    111:        mvwaddstr(portwin,23,0,"Leaving this field blank aborts entry.");
                    112:        wrefresh(portwin);
                    113: 
                    114:        workstring = get_data(portwin,3,12,8,0,0);
                    115:        if (strlen(workstring) == 0)
                    116:                return('n');
                    117: 
                    118:        strcat(sysname,workstring);
                    119:        strcpy(workstring,"");
                    120: 
                    121:        /* get a time to call */
                    122:        wmove(portwin,20,0);
                    123:        wclrtobot(portwin);
                    124: 
                    125:        mvwaddstr(portwin,20,0,"Enter a range of times to call this sytem. Each range must be separated");
                    126:        mvwaddstr(portwin,21,0,"a comma or semi-colon. Please refer to your manual for more information.");
                    127:        mvwaddstr(portwin,23,0,"Examples:");
                    128:        wstandout(portwin);
                    129:        mvwaddstr(portwin,23,11,"Su0100-0200,Mo0400-1600");
                    130:        mvwaddstr(portwin,23,35,"MoFr0300-0500");
                    131:        mvwaddstr(portwin,23,49,"Any");
                    132:        mvwaddstr(portwin,23,53,"Never");
                    133:        wstandend(portwin);
                    134:        wrefresh(portwin);
                    135: 
                    136:        workstring = get_data(portwin,4,12,45,0,0);
                    137:        if (strlen(workstring) == 0)
                    138:                strcpy(workstring,"Never");
                    139:        strcat(systime,workstring);
                    140:        strcpy(workstring,"");
                    141: 
                    142:        /* get the speed of the connection */
                    143: 
                    144:        do{
                    145:                strcpy(workstring,"");
                    146:                wmove(portwin,20,0);
                    147:                wclrtobot(portwin);
                    148:                mvwaddstr(portwin,20,0,"Enter the baud rate for communicating");
                    149:                mvwaddstr(portwin,21,0,"this remote system.");
                    150:                wrefresh(portwin);
                    151:                workstring = get_data(portwin,5,12,5,1,0);
                    152:        }
                    153:        while(-1 == validate_speed(atoi(workstring)));
                    154:        strcat(sysspeed,workstring);
                    155:        strcpy(workstring,"");
                    156: 
                    157:        /* get the port that the call will be made on */
                    158: 
                    159:        wmove(portwin,20,0);
                    160:        wclrtobot(portwin);
                    161:        mvwaddstr(portwin,20,0,"Enter the name of the port (from the port file)");
                    162:        mvwaddstr(portwin,21,0,"that this system will be called with.");
                    163:        wrefresh(portwin);
                    164:        workstring = get_data(portwin,6,12,14,0,1);
                    165:        if (strlen(workstring) == 0)
                    166:                strcpy(sysport,"");
                    167:        else
                    168:                strcat(sysport,workstring);
                    169: 
                    170: 
                    171:        /* get the phone number, if any is required */
                    172:        wmove(portwin,20,0);
                    173:        wclrtobot(portwin);
                    174:        mvwaddstr(portwin,20,0,"Enter the phone number to call this remote system with. If this is a direct");
                    175:        mvwaddstr(portwin,21,0,"connection, then press return to leave this field blank.");
                    176:        mvwaddstr(portwin,23,0,"Examples:");
                    177:        wstandout(portwin);
                    178:        mvwaddstr(portwin,23,11,"17085590412");
                    179:        mvwaddstr(portwin,23,24,"9,5590412");
                    180:        wrefresh(portwin);
                    181:        workstring = get_data(portwin,7,12,45,0,0);
                    182:        if (strlen(workstring) == 0)
                    183:                strcpy(sysphone,"");
                    184:        else
                    185:                strcat(sysphone,workstring);
                    186: 
                    187:        strcpy(workstring,"");
                    188: 
                    189: 
                    190:        /* now the killer, get the chat script. The killer isn't actually
                    191:         * getting the script, it's the help info that's a bear.
                    192:         */
                    193: 
                    194:        wmove(portwin,20,0);
                    195:        wclrtobot(portwin);
                    196:        mvwaddstr(portwin,15,0,"Enter the chat script used to log into the remote system. A chat script consists");
                    197:        mvwaddstr(portwin,16,0,"of pairs of expect_msgs and send_msgs. These messages are separated by a space.");
                    198:        mvwaddstr(portwin,17,0,"To represent a space within an expect_msg or send_msg, enter '\\s'.");
                    199:        mvwaddstr(portwin,18,0,"Example:");
                    200:        wstandout(portwin);
                    201:        mvwaddstr(portwin,18,10,"\"\" in:--BREAK--in: mylogin word: mypassword");
                    202:        wstandend(portwin);
                    203:        mvwaddstr(portwin,19,0,"Example:");
                    204:        wstandout(portwin);
                    205:        mvwaddstr(portwin,19,10,"\"\" in:--in: nuucp word: public word: 123456789");
                    206:        wstandend(portwin);
                    207:        mvwaddstr(portwin,21,0,"Escape characters that may be used in a chat script:");
                    208:        mvwaddstr(portwin,22,0,"\\b (backspace)  \\N (null)            \\s (space)  \\d (delay)  BREAK (break)");
                    209:        mvwaddstr(portwin,23,0,"\\n (newline)    \\r(carriage return)  \\t (tab)    \\K (break)  EOT (control-d)");
                    210:        wrefresh(portwin);
                    211: 
                    212:        workstring = get_data(portwin,8,12,55,1,0);
                    213:        strcat(syschat,workstring);
                    214:        strcpy(workstring,"");
                    215: 
                    216:        /* get a myname alias */
                    217:        wmove(portwin,15,0);
                    218:        wclrtobot(portwin);
                    219:        mvwaddstr(portwin,20,0,"If you need to identify your system as something other than the contents of");
                    220:        mvwaddstr(portwin,21,0,"/etc/uucpname when calling this remote system, enter that name here.");
                    221:        mvwaddstr(portwin,23,0,"Enter nothing to ignore this field.");
                    222:        wrefresh(portwin);
                    223:        workstring = get_data(portwin,9,12,8,0,0);
                    224:        if (strlen(workstring) == 0)
                    225:                strcpy(sysmyname,"");
                    226:        else
                    227:                strcat(sysmyname,workstring);
                    228: 
                    229:        strcpy(workstring,"");
                    230: 
                    231:        /* get protocols */
                    232: 
                    233:        wmove(portwin,20,0);
                    234:        wclrtobot(portwin);
                    235:        mvwaddstr(portwin,15,0,"Taylor uucp supports various protocols which may or may not be supported by");
                    236:        mvwaddstr(portwin,16,0,"the remote system being described. In part, these protocols are 'g', 'f' and");
                    237:        mvwaddstr(portwin,17,0,"'i'. Please refer to your manual for more information on available protocols.");
                    238:        mvwaddstr(portwin,18,0,"If uncertain about which protocol(s) to use, remember that the 'g' protocol is");
                    239:        mvwaddstr(portwin,19,0,"the common protocol supported amoung the various flavors of uucp.");
                    240:        mvwaddstr(portwin,20,0,"If nothing is entered in this field, 'g' protocol will be used by default.");
                    241:        wrefresh(portwin);
                    242: 
                    243:        workstring = get_data(portwin,10,12,5,0,0);
                    244:        if (strlen(workstring) == 0){
                    245:                strcpy(workstring,"g");
                    246:                wstandout(portwin);
                    247:                mvwaddstr(portwin,10,12,"g");
                    248:                wstandend(portwin);
                    249:                wrefresh(portwin);
                    250:        }
                    251:        strcat(sysprot,workstring);
                    252:        strcpy(workstring,"");
                    253: 
                    254:        /* get a list of commands */
                    255: 
                    256:        wmove(portwin,15,0);
                    257:        wclrtobot(portwin);
                    258:        mvwaddstr(portwin,15,0,"Specify a list of commands the remote system may execute on this system. If");
                    259:        mvwaddstr(portwin,16,0,"you enter nothing, a default list will be used, consisting of rnews, rmail, uux");
                    260:        mvwaddstr(portwin,17,0,"and uucp.");
                    261:        wrefresh(portwin);
                    262: 
                    263:        workstring = get_data(portwin,11,12,55,0,0);
                    264:        if (strlen(workstring) == 0){
                    265:                strcpy(workstring,"rmail rnews uucp uux");
                    266:                strcat(syscmds,"rmail rnews uucp uux");
                    267:                wstandout(portwin);
                    268:                mvwaddstr(portwin,11,12,workstring);
                    269:                wstandend(portwin);
                    270:                wrefresh(portwin);
                    271:        }else{
                    272:                strcat(syscmds,workstring);
                    273:        }
                    274:        strcpy(workstring,"");
                    275: 
                    276:        /* get a read pathlist */
                    277:        wmove(portwin,15,0);
                    278:        wclrtobot(portwin);
                    279:        mvwaddstr(portwin,15,0,"Specify a list of directories that the remote system may download from. To");
                    280:        mvwaddstr(portwin,16,0,"exclude a directory, precede the directory path with a '!'.");
                    281:        mvwaddstr(portwin,17,0,"Example:");
                    282:        wstandout(portwin);
                    283:        mvwaddstr(portwin,17,11,"/usr/spool/uucppublic /tmp !/usr/spool/uucppublic/my_files");
                    284:        wstandend(portwin);
                    285:        mvwaddstr(portwin,19,0,"If nothing is entered, a default of /usr/spool/uucppublic will be used.");
                    286:        wrefresh(portwin);
                    287: 
                    288:        workstring = get_data(portwin,12,12,55,0,0);
                    289:        if (strlen(workstring) == 0){
                    290:                strcpy(workstring,"/usr/spool/uucppublic");
                    291:                strcat(sysread,"/usr/spool/uucppublic");
                    292:                wstandout(portwin);
                    293:                mvwaddstr(portwin,12,12,workstring);
                    294:                wstandend(portwin);
                    295:                wrefresh(portwin);
                    296:        }else{
                    297:                strcat(sysread,workstring);
                    298:        }
                    299:        strcpy(workstring,"");
                    300: 
                    301:        /* get a write path */
                    302:        mvwaddstr(portwin,15,0,"Specify a list of directories that the remote system may send files to. To   ");
                    303:        wrefresh(portwin);
                    304:        workstring = get_data(portwin,13,12,55,0,0);
                    305:        if (strlen(workstring) == 0){
                    306:                strcpy(workstring,"/usr/spool/uucppublic");
                    307:                strcat(syswrite,"/usr/spool/uucppublic");
                    308:                wstandout(portwin);
                    309:                mvwaddstr(portwin,13,12,workstring);
                    310:                wstandend(portwin);
                    311:                wrefresh(portwin);
                    312:        }else{
                    313:                strcat(syswrite,workstring);
                    314:        }
                    315: 
                    316:        strcpy(workstring,"");
                    317: 
                    318:        wmove(portwin,15,0);
                    319:        wclrtobot(portwin);
                    320:        mvwaddstr(portwin,17,23,"Do you wish to save this entry? (y/n)");
                    321:        wrefresh(portwin);
                    322: 
                    323:        do{
                    324:                b = wgetch(portwin);
                    325:        }
                    326:        while ((b != 'n') && (b != 'y'));
                    327: 
                    328:        return(b);
                    329: 
                    330: }

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.