You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

103 lines
1.8 KiB

#!/bin/bash
set -eu
synopsis() {
cat << EOF
Usage : `basename $0` [-h] request [arg...] host
requests :
REDIR proto port : proto : tcp/udp, port : port à rediriger
LOCAL_USER_NUM : numéro local de l'utilisateur sur la machine (%32)
PUBLIC_IP N # N : public IP NUMBER
MAC_ADDR N # N : network interface NUMBER
ETH_LINK N # N : Ethernet link NUMBER
EOF
}
help() {
cat << EOF
`basename $0` affiche des infos sur host.network.user.vdn
La machine n'a pas besoin d'être démarrée (infos statiques)
Pour obtenir des infos dynamiques (redirection de ports) voir
vdn-infos
`synopsis`
-h : affiche cette aide
EOF
}
usage() {
synopsis
exit 1
}
args() {
local opt
while getopts "h" opt; do
case $opt in
h) help; exit 0;;
?) usage;;
esac
done
shift $(($OPTIND - 1))
[ $# -lt 2 ] && usage;
req=$1
shift
reqArgs=""
while [ $# -gt 1 ]; do
reqArgs="$reqArgs $1"
shift
done
[ "$reqArgs" = "" ] && reqArgs=0
host=$1
if [ $host = current ]; then
set +u
[ -z "$GUEST_NAME" ] && error "You can't user current in this context !"
set -u
host=$GUEST_NAME
fi
}
all() {
echo "REDIR $(reqArgs) : $(computeRedir $host $reqArgs)"
echo "LOCAL_USER_NUM: $(computePublicIp $host $reqArgs)"
echo "PUBLIC_IP: $(computePublicIp $host $reqArgs)"
echo "MAC_ADDR: $(computeMacAddr $host $reqArgs)"
echo "ETH_LINK: $(computeEthLink $host $reqArgs)"
}
# main
VDN_PATH=$(readlink -f $(dirname $0)/..); . $VDN_PATH/bin/functions.sh
#set -x
args "$@"
. $VDN_PATH/allocators/$VDN_RESOURCES_ALLOCATOR
case "$req" in
REDIR) computeRedir $host $reqArgs;;
LOCAL_USER_NUM) computeLocalUser $host $reqArgs;;
PUBLIC_IP) computePublicIp $host $reqArgs;;
MAC_ADDR) computeMacAddr $host $reqArgs;;
ETH_LINK) computeEthLink $host $reqArgs;;
all) all;;
*) usage;;
esac