mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2025-02-22 06:21:55 +01:00
Update 'sd' to allow users to select v2 or v3 protocols when looking up a node name. Default to v2. Either way, we're using Weasel's DA.
svn:r18220
This commit is contained in:
parent
8ebceeb352
commit
1ac3e2abce
1 changed files with 38 additions and 7 deletions
45
contrib/sd
45
contrib/sd
|
@ -1,7 +1,7 @@
|
||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
#
|
#
|
||||||
# Copyright (c) 2005, 2006, 2007, 2008 Peter Palfrader <peter@palfrader.org>
|
# Copyright (c) 2005, 2006, 2007, 2008 Peter Palfrader <peter@palfrader.org>
|
||||||
# Copyright (c) 2008 Jacob Appelbaum <jacob@appelbaum.net>
|
# Copyright (c) 2008, 2009 Jacob Appelbaum <jacob@appelbaum.net>
|
||||||
#
|
#
|
||||||
# Permission is hereby granted, free of charge, to any person obtaining
|
# Permission is hereby granted, free of charge, to any person obtaining
|
||||||
# a copy of this software and associated documentation files (the
|
# a copy of this software and associated documentation files (the
|
||||||
|
@ -28,26 +28,57 @@
|
||||||
# dotfile from weasel and adapted to be a small bash utility.
|
# dotfile from weasel and adapted to be a small bash utility.
|
||||||
#
|
#
|
||||||
|
|
||||||
set -u;
|
|
||||||
set -e;
|
|
||||||
|
|
||||||
# Feel free to set any authority you desire, we're using weasel's by default
|
# Feel free to set any authority you desire, we're using weasel's by default
|
||||||
# You could also try the v3 directory infomation in weasel's dir authority:
|
# You could also try the v3 directory infomation in weasel's dir authority:
|
||||||
# http://tor.noreply.org/tor/status-vote/current/consensus
|
# http://tor.noreply.org/tor/status-vote/current/consensus
|
||||||
#
|
#
|
||||||
authority="http://tor.noreply.org:80/tor/status/authority";
|
|
||||||
|
|
||||||
nickname="$1";
|
# Users can select between the two
|
||||||
|
v3authority="http://tor.noreply.org/tor/status-vote/current/consensus";
|
||||||
|
v2authority="http://tor.noreply.org:80/tor/status/authority";
|
||||||
|
authority=$v2authority;
|
||||||
|
|
||||||
|
function usage {
|
||||||
|
echo "Usage: $0 [-2|-3] nodenickname";
|
||||||
|
}
|
||||||
|
|
||||||
|
if [ -z "$1" ];
|
||||||
|
then
|
||||||
|
usage;
|
||||||
|
exit;
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Are we switching between v2 or v3?
|
||||||
|
if [ "$1" == "-2" -o "$1" == "-3" ];
|
||||||
|
then
|
||||||
|
if [ "$1" == "-2" -a -n "$2" ];
|
||||||
|
then
|
||||||
|
authority=$v2authority;
|
||||||
|
nickname="$2";
|
||||||
|
elif [ "$1" == "-3" -a -n "$2" ];
|
||||||
|
then
|
||||||
|
authority=$v3authority;
|
||||||
|
nickname="$2";
|
||||||
|
else
|
||||||
|
usage;
|
||||||
|
exit;
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
nickname="$1";
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Fetch it and decode the fingerprint
|
||||||
fp=`wget -q -O - $authority | \
|
fp=`wget -q -O - $authority | \
|
||||||
awk '$1 == "r" && $2 == "'$nickname'" {printf "%s===", $3}' | \
|
awk '$1 == "r" && $2 == "'$nickname'" {printf "%s===", $3}' | \
|
||||||
perl -MMIME::Base64 -e "print unpack(\"H*\", decode_base64(<>)),\"\n\"";`
|
perl -MMIME::Base64 -e "print unpack(\"H*\", decode_base64(<>)),\"\n\"";`
|
||||||
|
|
||||||
|
# If we don't have a fingerprint, we don't have a match
|
||||||
if [ "$fp" != "" ];
|
if [ "$fp" != "" ];
|
||||||
then
|
then
|
||||||
wget -q -O - http://tor.noreply.org:80/tor/server/fp/$fp;
|
wget -q -O - http://tor.noreply.org:80/tor/server/fp/$fp;
|
||||||
exit $?;
|
exit $?;
|
||||||
else
|
else
|
||||||
echo "It appears the nickname is not currently known by the directory authority.";
|
echo "It appears the nickname is not currently known by the directory" \
|
||||||
|
"authority."
|
||||||
exit 1;
|
exit 1;
|
||||||
fi
|
fi
|
||||||
|
|
Loading…
Add table
Reference in a new issue