Explorar o código

Broker bug fix

Evan Huus %!s(int64=12) %!d(string=hai) anos
pai
achega
66d253ebae
Modificáronse 1 ficheiros con 5 adicións e 6 borrados
  1. 5 6
      broker.go

+ 5 - 6
broker.go

@@ -113,22 +113,21 @@ func (b *Broker) sendAndReceive(clientID *string, req requestEncoder, res decode
 	if err != nil {
 	if err != nil {
 		return err
 		return err
 	}
 	}
+	b.correlation_id++
 
 
 	if res == nil {
 	if res == nil {
 		return nil
 		return nil
 	}
 	}
 
 
-	promise := responsePromise{b.correlation_id, make(chan []byte), make(chan error)}
+	promise := responsePromise{fullRequest.correlation_id, make(chan []byte), make(chan error)}
 	b.responses <- promise
 	b.responses <- promise
-	b.correlation_id++
 
 
 	select {
 	select {
-	case buf := <-promise.packets:
-		err = decode(buf, res)
+	case buf = <-promise.packets:
+		return decode(buf, res)
 	case err = <-promise.errors:
 	case err = <-promise.errors:
+		return err
 	}
 	}
-
-	return err
 }
 }
 
 
 func (b *Broker) decode(pd packetDecoder) (err error) {
 func (b *Broker) decode(pd packetDecoder) (err error) {