Files
indra/pkg/relay/helper-sendexit.go
2023-01-31 10:47:50 +00:00

22 lines
630 B
Go

package relay
import (
"git-indra.lan/indra-labs/indra/pkg/crypto/nonce"
"git-indra.lan/indra-labs/indra/pkg/onion"
"git-indra.lan/indra-labs/indra/pkg/traffic"
"git-indra.lan/indra-labs/indra/pkg/util/slice"
)
func (eng *Engine) SendExit(port uint16, message slice.Bytes, id nonce.ID,
target *traffic.Session, hook func(id nonce.ID, b slice.Bytes)) {
hops := []byte{0, 1, 2, 3, 4, 5}
s := make(traffic.Sessions, len(hops))
s[2] = target
se := eng.SelectHops(hops, s)
var c traffic.Circuit
copy(c[:], se)
o := onion.SendExit(port, message, id, se[len(se)-1], c, eng.KeySet)
eng.SendOnion(c[0].AddrPort, o, hook)
}