cache off

set localaddr=--veyron.tcp.address=127.0.0.1:0
set ws=--veyron.tcp.protocol=ws

root -- $localaddr
set m=$_
read $m
eval $m
set root=$MT_NAME
set NAMESPACE_ROOT=$root
setRoots $NAMESPACE_ROOT
print $NAMESPACE_ROOT

# run a non-proxied echo server
echoServer -- $localaddr $ws $localaddr noproxy echo/noproxy
set esnp=$_
read $esnp
eval $esnp
set NP_ECHOS_NAME=$NAME

echoClient echo/noproxy "ohh"
set ec=$_
read $ec l
assert $l "noproxy: ohh"

# run a proxy server
proxyd -- $localaddr $ws $localaddr p1
set proxy=$_
read $proxy
# PROXY_NAME=<name of proxy>
eval $proxy
splitEP $PROXY_NAME
assert $PN 7
set PROXY_ADDR=$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 $ws $localaddr --veyron.proxy=p1 withproxy echo/withproxy
set eswp=$_
read $eswp
eval $eswp
set ECHOS_NAME=$NAME
splitEP $NAME
set ECHOS_RID=$P3

echoClient echo/withproxy "ahh"
set ec=$_
read $ec l
assert $l "withproxy: ahh"

#ls ...
#set l=$_
#eval $l
#assert $RN 4
#wait $l

print "root mt:" $NAMESPACE_ROOT
print "proxy:" $PROXY_ADDR
print "no proxy: " $NP_ECHOS_NAME
print "with proxy: " $ECHOS_NAME
# The ipc.Server implementation publishes the proxy supplied address and
# the local address in the mount table

resolve echo/withproxy
set rs=$_
stop $rs
quit
eval $rs
# This will be 4 when ipc.Listen can return all of the endpoints in use,
# then the proxy can return more than one address. We only see 3 endpoints
# because the proxy server only returns one to the echo server.
assert $RN 3

eval $rs
set ep1=$R0
eval $rs
set ep2=$R1
eval $rs
set ep3=$R2
#eval $rs
#set ep4=$R3

splitEP $ep1
assert $PN 7
set ep1_addr=$P2
set rid=$P3
splitEP $ep2
set ep2_addr=$P2
splitEP $ep3
set ep3_addr=$P2
#splitEP $ep4
#set ep4_addr=$P2

assertOneOf $PROXY_ADDR $ep1_addr $ep2_addr $ep3_addr
# $ep4_addr
assert $rid $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

