--- uucico.8 +++ uucico.8 Thu Jun 26 18:29:36 2003 @@ -145,6 +145,9 @@ .B \-f, \-\-force Ignore any required wait for any systems to be called. .TP 5 +.B \-g, \-\-grade +Limit outgoing call to a given grade. +.TP 5 .B \-l, \-\-prompt Prompt for login name and password using "login: " and "Password:". This allows --- uucico.c +++ uucico.c Thu Jun 26 18:29:58 2003 @@ -125,6 +125,9 @@ struct sconnection *qconn; }; +/* min. grade set on commandline */ +static char cmdlgrade = '\0'; + /* Local functions. */ static void uusage P((void)); @@ -175,6 +178,7 @@ { "nodetach", no_argument, NULL, 'D' }, { "loop", no_argument, NULL, 'e' }, { "force", no_argument, NULL, 'f'}, + { "grade", required_argument, NULL, 'g'}, { "stdin", required_argument, NULL, 'i' }, { "prompt", no_argument, NULL, 'l' }, { "port", required_argument, NULL, 'p' }, @@ -249,9 +253,9 @@ ++zProgram; #if COHERENT_C_OPTION - zopts = "c:CDefi:I:lp:qr:s:S:u:x:X:vwz"; + zopts = "c:CDefg:i:I:lp:qr:s:S:u:x:X:vwz"; #else - zopts = "cCDefi:I:lp:qr:s:S:u:x:X:vwz"; + zopts = "cCDefg:i:I:lp:qr:s:S:u:x:X:vwz"; #endif while ((iopt = getopt_long (argc, argv, zopts, @@ -292,6 +296,14 @@ failed call. */ fforce = TRUE; break; + + case 'g': + /* Force a grade */ + if (isalpha(optarg[0])) + cmdlgrade = optarg[0]; + else + fprintf (stderr, "%s: invalid grade \n", zProgram); + break; case 'i': /* Type of port to use for standard input. Only TLI is @@ -796,6 +808,7 @@ printf ("Usage: %s [options]\n", zProgram); printf (" -s,-S,--system system: Call system (-S implies -f)\n"); printf (" -f,--force: Force call despite system status\n"); + printf (" -g,--grade: Limit outgoing call to a given grade\n"); printf (" -r state: 1 for master, 0 for slave (default)\n"); printf (" --master: Act as master\n"); printf (" --slave: Act as slave (default)\n"); @@ -1369,12 +1382,18 @@ boolean fret; /* Determine the grade we should request of the other system. A - '\0' means that no restrictions have been made. */ - if (! ftimespan_match (qsys->uuconf_qcalltimegrade, &ival, - (int *) NULL)) - bgrade = '\0'; + '\0' means that no restrictions have been made. + If a grade is set on the command line, the calltimegrade-value + is overwritten. */ + + if (cmdlgrade != '\0') + bgrade = cmdlgrade; else - bgrade = (char) ival; + if (! ftimespan_match (qsys->uuconf_qcalltimegrade, &ival, + (int *) NULL)) + bgrade = '\0'; + else + bgrade = (char) ival; /* Determine the name we will call ourselves. */ if (qsys->uuconf_zlocalname != NULL)