diff options
Diffstat (limited to 'src/gnunet/service/client.go')
-rw-r--r-- | src/gnunet/service/client.go | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/src/gnunet/service/client.go b/src/gnunet/service/client.go index 5f7f8f0..7b5e29b 100644 --- a/src/gnunet/service/client.go +++ b/src/gnunet/service/client.go | |||
@@ -66,7 +66,8 @@ func RequestResponse( | |||
66 | caller string, | 66 | caller string, |
67 | callee string, | 67 | callee string, |
68 | path string, | 68 | path string, |
69 | req message.Message) (message.Message, error) { | 69 | req message.Message, |
70 | withResponse bool) (message.Message, error) { | ||
70 | // client-connect to the service | 71 | // client-connect to the service |
71 | logger.Printf(logger.DBG, "[%s] Connecting to %s service...\n", caller, callee) | 72 | logger.Printf(logger.DBG, "[%s] Connecting to %s service...\n", caller, callee) |
72 | cl, err := NewClient(ctx, path) | 73 | cl, err := NewClient(ctx, path) |
@@ -78,11 +79,13 @@ func RequestResponse( | |||
78 | if err = cl.SendRequest(ctx, req); err != nil { | 79 | if err = cl.SendRequest(ctx, req); err != nil { |
79 | return nil, err | 80 | return nil, err |
80 | } | 81 | } |
81 | // wait for a single response, then close the connection | ||
82 | logger.Printf(logger.DBG, "[%s] Waiting for response from %s service\n", caller, callee) | ||
83 | var resp message.Message | 82 | var resp message.Message |
84 | if resp, err = cl.ReceiveResponse(ctx); err != nil { | 83 | if withResponse { |
85 | return nil, err | 84 | // wait for a single response, then close the connection |
85 | logger.Printf(logger.DBG, "[%s] Waiting for response from %s service\n", caller, callee) | ||
86 | if resp, err = cl.ReceiveResponse(ctx); err != nil { | ||
87 | return nil, err | ||
88 | } | ||
86 | } | 89 | } |
87 | logger.Printf(logger.DBG, "[%s] Closing connection to %s service\n", caller, callee) | 90 | logger.Printf(logger.DBG, "[%s] Closing connection to %s service\n", caller, callee) |
88 | cl.Close() | 91 | cl.Close() |