[tor-commits] [meek/master] Look for EOF on stdin while grepping for the helper address.
dcf at torproject.org
dcf at torproject.org
Tue Mar 5 19:25:45 UTC 2019
commit 01ea27b4c59cd8ae17e608006cd7a9a16ba282c4
Author: David Fifield <david at bamsoftware.com>
Date: Sat Feb 23 00:23:51 2019 -0700
Look for EOF on stdin while grepping for the helper address.
This way, we still exit when the parent process dies, even if for
whatever reason Firefox doesn't give us a helper address.
https://bugs.torproject.org/29559
---
meek-client-torbrowser/meek-client-torbrowser.go | 19 +++++++++++++++++--
1 file changed, 17 insertions(+), 2 deletions(-)
diff --git a/meek-client-torbrowser/meek-client-torbrowser.go b/meek-client-torbrowser/meek-client-torbrowser.go
index f3ffc68..16f0ebc 100644
--- a/meek-client-torbrowser/meek-client-torbrowser.go
+++ b/meek-client-torbrowser/meek-client-torbrowser.go
@@ -370,10 +370,25 @@ func main() {
defer logKill(firefoxCmd.Process)
// Find out the helper's listening address.
- helperAddr, err := grepHelperAddr(stdout)
- if err != nil {
+ addrChan := make(chan string)
+ errChan := make(chan error)
+ go func() {
+ addr, err := grepHelperAddr(stdout)
+ if err == nil {
+ addrChan <- addr
+ } else {
+ errChan <- err
+ }
+ }()
+ var helperAddr string
+ select {
+ case sig := <-sigChan:
+ log.Printf("sig %s", sig)
+ return
+ case err = <-errChan:
log.Print(err)
return
+ case helperAddr = <-addrChan:
}
// Start meek-client with the helper address.
More information about the tor-commits
mailing list