Run packet writer in a turn to add proper error handling

This commit is contained in:
Tony Garnock-Jones 2021-06-09 14:53:41 +02:00
parent c40ba51a29
commit fff4b05036
1 changed files with 12 additions and 10 deletions

View File

@ -189,16 +189,18 @@
(when (null? (tunnel-relay-pending-turn-rev tr))
(queue-task! (actor-engine (facet-actor (tunnel-relay-facet tr)))
(lambda ()
(define pending (Turn (reverse (tunnel-relay-pending-turn-rev tr))))
(set-tunnel-relay-pending-turn-rev! tr '())
(log-info "OUT (parsed): ~v" pending)
(log-info "OUT (raw): ~v" (->preserve pending))
(parse-Turn! (->preserve pending))
((tunnel-relay-packet-writer tr)
(preserve->bytes (->preserve pending)
#:canonicalizing? #t
#:write-annotations? #f
#:encode-embedded encode-embedded:protocol)))))
(turn! (tunnel-relay-facet tr)
(action ()
(define pending (Turn (reverse (tunnel-relay-pending-turn-rev tr))))
(set-tunnel-relay-pending-turn-rev! tr '())
(log-info "OUT (parsed): ~v" pending)
(log-info "OUT (raw): ~v" (->preserve pending))
(parse-Turn! (->preserve pending))
((tunnel-relay-packet-writer tr)
(preserve->bytes (->preserve pending)
#:canonicalizing? #t
#:write-annotations? #f
#:encode-embedded encode-embedded:protocol)))))))
(set-tunnel-relay-pending-turn-rev! tr (cons (TurnEvent (Oid oid) event)
(tunnel-relay-pending-turn-rev tr))))