]> arthur.barton.de Git - netatalk.git/blobdiff - contrib/shell_utils/asip-status.pl.in
Spotlight: use async Tracker SPARQL API
[netatalk.git] / contrib / shell_utils / asip-status.pl.in
index 4fc195df3ffcf94c0121a51c61b08f803944ed5c..c4036a81cfe10d0659d487bd51ab64880b945b49 100755 (executable)
@@ -7,38 +7,62 @@
 # author: James W. Abendschan  <jwa@jammed.com>
 # license: GPL - http://www.gnu.org/copyleft/gpl.html
 # url: http://www.jammed.com/~jwa/hacks/security/asip/
-# date: 7 May 1997 (v1.0)
+# Date: 7 May 1997 (v1.0) - original version
 # see also: 
 #   - http://developer.apple.com/techpubs/macos8/NetworkCommSvcs/AppleShare/
 #   - http://www2.opendoor.com/asip/   (excellent Mac sharing / security site)
 #
 # todo: log in as guest & get a list of shares
 #
-# $Id: asip-status.pl.in,v 1.2 2005-04-28 20:49:36 bfernhomberg Exp $
+
+#
+# This edition is a part of netatalk @NETATALK_VERSION@.
 #
 
 use strict;
 use IO::Socket;                        # sucks because Timeout doesn't
 
 my ($arg);
+my ($hostport);
 my ($host);
+my ($port);
 
 while ($arg = shift @ARGV)
 {
        $main::show_icon = 1 if ($arg eq "-i");
        $main::debug = 1 if ($arg eq "-d");
        $main::hexdump = 1 if ($arg eq "-x");
-       $host = $arg if ($arg !~ /^-/);
+       $main::showver = 1 if ($arg eq "-v");
+       $main::showver = 1 if ($arg eq "-version");
+       $main::showver = 1 if ($arg eq "--version");
+       $hostport = $arg if ($arg !~ /^-/);
+}
+
+if ($main::showver ==1)
+{
+        print "$0\n";
+        print "Original edition: 7 May 1997 \(v1.0\) James W. Abendschan\n";
+        print "This edition is a part of Netatalk @NETATALK_VERSION@\n";
+        exit(-1);
 }
 
-if ($host eq "")
+if ($hostport eq "")
 {
-       print "usage: $0 hostname [-i show icon] [-d debug] [-x hex dump]\n";
+       print "usage: $0 [-d] [-i] [-x] hostname[:port]\n";
+       print "       $0 -v|-version|--version\n";
+       print "Queries AFP servers for their capabilities.\n";
+       print "  -d: Enable debug output.\n";
+       print "  -i: Show icon if it exists.\n";
+       print "  -x: Enable hex dump output.\n";
+       print "  -v,-version,--version: Show version.\n";
        exit(-1);
 }
 
+($host, $port) = split(/\:/, $hostport);
+$port = "548" if ($port eq "");
+
 my ($packet) = build_packet();
-my ($code) = sendpacket($host, 548, $packet);
+my ($code) = sendpacket($host, $port, $packet);
 exit $code;
 
 
@@ -205,13 +229,20 @@ sub parse_FPGetSrvrInfo()
 
        my ($icon_offset) = unpack("n", @packet[6] . @packet[7]);
        print "Volume Icon & Mask offset: $icon_offset\n" if ($main::debug);
+       print "Volume Icon & Mask: ";
+       if ($icon_offset) {
+           print "Yes\n";
+       } else {
+           print "No\n";
+       }
 
        my ($flags) = unpack("n", @packet[8] . @packet[9]);
        my (@flags) = parse_afp_flags($flags);
 
        print "Flags: ";
-       print "$flags - " if ($main::debug);
-       print join(",", @flags) . "\n";
+       print "$flags" if ($main::debug);
+       print "\n";
+       print join("\n", @flags) . "\n";
 
        # server name starts at offset+10, length byte first.
 
@@ -269,7 +300,7 @@ sub parse_FPGetSrvrInfo()
                }
        }
 
-       draw_icon($icon_offset, @packet) if ($main::show_icon);
+       draw_icon($icon_offset, @packet) if ($main::show_icon && $icon_offset);
 
        return $allow_guest;
 }
@@ -381,18 +412,22 @@ sub parse_afp_flags
 
        # $flags is a 16 bit little-endian number
 
-       push (@flags, "SupportsCopyFile") if ($flags & (1<<0));
-       push (@flags, "SupportsChgPwd") if ($flags & (1<<1));
-       push (@flags, "DontAllowSavePwd") if ($flags & (1<<2));
-       push (@flags, "SupportsServerMessages") if ($flags & (1<<3));
-       push (@flags, "SupportsServerSignature") if ($flags & (1<<4));
-       push (@flags, "SupportsTCP/IP") if ($flags & (1<<5));
-       push (@flags, "SupportsSrvrNotifications") if ($flags & (1<<6));
-       push (@flags, "SupportsReconnect") if ($flags & (1<<7));
-       push (@flags, "SupportsOpenDirectory") if ($flags & (1<<8));
-       push (@flags, "SupportsUTF8Servername") if ($flags & (1<<9));
-       push (@flags, "SupportsUUIDs") if ($flags & (1<<10));
-       push (@flags, "SupportsSuperClient") if ($flags & (1<<15));
+       push (@flags, "    SupportsCopyFile") if ($flags & (1<<0));
+       push (@flags, "    SupportsChgPwd") if ($flags & (1<<1));
+       push (@flags, "    DontAllowSavePwd") if ($flags & (1<<2));
+       push (@flags, "    SupportsServerMessages") if ($flags & (1<<3));
+       push (@flags, "    SupportsServerSignature") if ($flags & (1<<4));
+       push (@flags, "    SupportsTCP/IP") if ($flags & (1<<5));
+       push (@flags, "    SupportsSrvrNotifications") if ($flags & (1<<6));
+       push (@flags, "    SupportsReconnect") if ($flags & (1<<7));
+       push (@flags, "    SupportsOpenDirectory") if ($flags & (1<<8));
+       push (@flags, "    SupportsUTF8Servername") if ($flags & (1<<9));
+       push (@flags, "    SupportsUUIDs") if ($flags & (1<<10));
+       push (@flags, "    SupportsExtSleep") if ($flags & (1<<11));
+       push (@flags, "    UnknownBit12") if ($flags & (1<<12));
+       push (@flags, "    UnknownBit13") if ($flags & (1<<13));
+       push (@flags, "    UnknownBit14") if ($flags & (1<<14));
+       push (@flags, "    SupportsSuperClient") if ($flags & (1<<15));
 
        return @flags;
 }