#!/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