mirror of
https://github.com/nbd-wtf/go-nostr.git
synced 2025-03-18 05:42:20 +01: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.
|
||||
func (r *Relay) Write(msg []byte) error {
|
||||
func (r *Relay) Write(msg []byte) <-chan error {
|
||||
ch := make(chan error)
|
||||
r.writeQueue <- writeRequest{msg: msg, answer: ch}
|
||||
return <-ch
|
||||
return ch
|
||||
}
|
||||
|
||||
// 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()
|
||||
debugLog("{%s} sending %v\n", r.URL, envb)
|
||||
status = PublishStatusSent
|
||||
if err := r.Write(envb); err != nil {
|
||||
if err := <-r.Write(envb); err != nil {
|
||||
status = PublishStatusFailed
|
||||
return status, err
|
||||
}
|
||||
@ -423,7 +423,7 @@ func (r *Relay) Auth(ctx context.Context, event Event) (Status, error) {
|
||||
// send AUTH
|
||||
authResponse, _ := AuthEnvelope{Event: event}.MarshalJSON()
|
||||
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"
|
||||
return status, err
|
||||
}
|
||||
|
@ -88,7 +88,7 @@ func (sub *Subscription) Fire() error {
|
||||
debugLog("{%s} sending %v", sub.Relay.URL, reqb)
|
||||
|
||||
sub.live = true
|
||||
if err := sub.Relay.Write(reqb); err != nil {
|
||||
if err := <-sub.Relay.Write(reqb); err != nil {
|
||||
sub.cancel()
|
||||
return fmt.Errorf("failed to write: %w", err)
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user