mirror of
https://github.com/nbd-wtf/go-nostr.git
synced 2025-05-04 07:40:14 +02:00
Write returns an error in a channel (why? I think it makes no difference.)
This commit is contained in:
parent
f78270765d
commit
f0a35d7ab2
8
relay.go
8
relay.go
@ -318,10 +318,10 @@ func (r *Relay) HandleRelayMessage(envelope Envelope) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Write queues a message to be sent to the relay.
|
// Write queues a message to be sent to the relay.
|
||||||
func (r *Relay) Write(msg []byte) error {
|
func (r *Relay) Write(msg []byte) <-chan error {
|
||||||
ch := make(chan error)
|
ch := make(chan error)
|
||||||
r.writeQueue <- writeRequest{msg: msg, answer: ch}
|
r.writeQueue <- writeRequest{msg: msg, answer: ch}
|
||||||
return <-ch
|
return ch
|
||||||
}
|
}
|
||||||
|
|
||||||
// Publish sends an "EVENT" command to the relay r as in NIP-01.
|
// Publish sends an "EVENT" command to the relay r as in NIP-01.
|
||||||
@ -364,7 +364,7 @@ func (r *Relay) Publish(ctx context.Context, event Event) (Status, error) {
|
|||||||
envb, _ := EventEnvelope{Event: event}.MarshalJSON()
|
envb, _ := EventEnvelope{Event: event}.MarshalJSON()
|
||||||
debugLog("{%s} sending %v\n", r.URL, envb)
|
debugLog("{%s} sending %v\n", r.URL, envb)
|
||||||
status = PublishStatusSent
|
status = PublishStatusSent
|
||||||
if err := r.Write(envb); err != nil {
|
if err := <-r.Write(envb); err != nil {
|
||||||
status = PublishStatusFailed
|
status = PublishStatusFailed
|
||||||
return status, err
|
return status, err
|
||||||
}
|
}
|
||||||
@ -423,7 +423,7 @@ func (r *Relay) Auth(ctx context.Context, event Event) (Status, error) {
|
|||||||
// send AUTH
|
// send AUTH
|
||||||
authResponse, _ := AuthEnvelope{Event: event}.MarshalJSON()
|
authResponse, _ := AuthEnvelope{Event: event}.MarshalJSON()
|
||||||
debugLog("{%s} sending %v\n", r.URL, authResponse)
|
debugLog("{%s} sending %v\n", r.URL, authResponse)
|
||||||
if err := r.Write(authResponse); err != nil {
|
if err := <-r.Write(authResponse); err != nil {
|
||||||
// status will be "failed"
|
// status will be "failed"
|
||||||
return status, err
|
return status, err
|
||||||
}
|
}
|
||||||
|
@ -88,7 +88,7 @@ func (sub *Subscription) Fire() error {
|
|||||||
debugLog("{%s} sending %v", sub.Relay.URL, reqb)
|
debugLog("{%s} sending %v", sub.Relay.URL, reqb)
|
||||||
|
|
||||||
sub.live = true
|
sub.live = true
|
||||||
if err := sub.Relay.Write(reqb); err != nil {
|
if err := <-sub.Relay.Write(reqb); err != nil {
|
||||||
sub.cancel()
|
sub.cancel()
|
||||||
return fmt.Errorf("failed to write: %w", err)
|
return fmt.Errorf("failed to write: %w", err)
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user