|
|
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: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.