cache off | |
set localaddr=--veyron.tcp.address=127.0.0.1:0 | |
root -- $localaddr | |
eval $_ | |
set root=$MT_NAME | |
set NAMESPACE_ROOT=$root | |
setRoots $NAMESPACE_ROOT | |
# run a non-proxied echo server | |
echoServer -- $localaddr noproxy echo/noproxy | |
set esnp=$_ | |
eval $esnp | |
set NP_ECHOS_NAME=$NAME | |
eval $esnp | |
set NP_ECHOS_ADDR=$ADDR | |
# run a proxy server | |
proxyd -- $localaddr p1 | |
set proxy=$_ | |
# PROXY_ADDR=<address of proxy> | |
eval $proxy | |
# PROXY_NAME=<name of proxy> | |
eval $proxy | |
read $proxy | |
splitEP $PROXY_ADDR | |
assert $PN 6 | |
set PROXY_ADDRESS=$P2 | |
set PROXY_RID=$P3 | |
# TODO(cnicolaou): figure out why ls appears to run slowly when a proxy is | |
# running, maybe a problem with the mount table. | |
#ls ... | |
#set l=$_ | |
#eval $l | |
#assert $RN 3 | |
#wait $l | |
echoServer -- $localaddr --veyron.proxy=p1 withproxy echo/withproxy | |
set eswp=$_ | |
eval $eswp | |
set ECHOS_NAME=$NAME | |
eval $eswp | |
set ECHOS_ADDR=$ADDR | |
splitEP $ADDR | |
set ECHOS_RID=$P3 | |
#ls ... | |
#set l=$_ | |
#eval $l | |
#assert $RN 4 | |
#wait $l | |
print "root mt:" $NAMESPACE_ROOT | |
print "no proxy: " $NP_ECHOS_ADDR | |
print "with proxy: " $ECHOS_ADDR | |
# The ipc.Server implementation publishes the proxy supplied address | |
# in the mount table | |
# TODO(cnicolaou): we also need a way of publishing the local address, right | |
# only the proxy's address appears. | |
resolve echo/withproxy | |
set rs=$_ | |
eval $rs | |
assert $RN 1 | |
eval $rs | |
splitEP $R0 | |
assert $PN 6 | |
assert $P2 $PROXY_ADDRESS | |
assert $P3 $ECHOS_RID | |
ls -l echo/withproxy | |
wait $_ | |
ls -l echo/noproxy | |
wait $_ | |
echoClient echo/withproxy "ohh" | |
set ec=$_ | |
read $ec l | |
assert $l "withproxy: ohh" | |
stop $eswp | |
stop $esnp | |
stop $proxy | |