/contrib/dialog/samples/copifuncs/copi.ifreq2
https://bitbucket.org/freebsd/freebsd-head/ · Unknown · 68 lines · 59 code · 9 blank · 0 comment · 0 complexity · 2fb8730d820254b2ec0091cf9e765d26 MD5 · raw file
- # this is the base directory, where the req-files are stored and the
- # default outbound
- $flo_path = "/var/spool/ifmail";
- $outbound = "/outb"; # don't be confused, it means "/var/spool/ifmail/outb"
- # end of configuration #############################################
- # main()
- #
- if ((@ARGV < 1) || @ARGV > 2 || $ARGV[0] eq "-?") {
- &usage;
- } elsif ($ARGV[1] ne "") {
- $node = $ARGV[1];
- }
- $file = $ARGV[0];
- if (! ($node =~ /\d+:\d+\/\d+/)) {
- die "Wrong address: $node!!!";
- }
- ($zone, $netnode) = split (/:/, $node);
- $reqfile = sprintf("%04x%04x", split(/\//, $netnode));
- if ($reqfile eq "00000000") {
- print ("can't resolve the fido address \"$node\"\n");
- &usage;
- } else {
- if ( $zone == 2 ) {
- $reqfile = $flo_path . $outbound . "/" . $reqfile . ".req";
- } elsif ( $zone < 7 ) {
- $reqfile = $flo_path . $outbound . ".00$zone/" . $reqfile . ".req";
- } else {
- $outbound = "";
- open (CONFIG, "< $config") || die "can't open $config";
- while ($_ = <CONFIG>) {
- if ( /^address.*$zone:.*\@(\w*)/ ) { $outbound = $1; }
- }
- if ( $outbound eq "" ) {
- die "No Zone $zone found in $config";
- }
- $reqfile = $flo_path . "/$outbound/" . $reqfile . ".req";
- }
- # seperate the file names of the first argument
- @files = split (/\s+/, $ARGV[0]);
- # open the flofile for appending
- open(FLOFILE, ">>" . $reqfile) || die "can't open $reqfile";
- while (@files) {
- print (FLOFILE shift(@files), "\n");
- }
- close(FLOFILE);
- print ("--- fido request $ver ---------------------------\n");
- print ("requesting \"$file\" from fido-node $node\n");
- print ("--- executing ifstat .. ------------------------\n");
- system("ifstat");
- }
- #
- # subroutine "usage"
- #
- sub usage {
- printf ("--- fido request %s -------------\n", $ver);
- printf ("usage: ifreq <file> [<3-d address>]\n");
- printf ("e.g. : ifreq FILES 2:2410/305\n");
- exit 1;
- }