summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKyren223 <kyren223@proton.me>2025-08-09 10:47:41 +0300
committerKyren223 <kyren223@proton.me>2025-08-09 10:47:41 +0300
commit959290d2ffcf14e0397e262b9a32435bc1a5dd3b (patch)
treeab99245735c62a74e623a66500111ff0969b8628
parent375cd7a0f5fcf6c92ca02d24b8c61179decd4f41 (diff)
Fix writing a message to an offline user causes an error log on the
backend
-rw-r--r--embeds/VERSION2
-rw-r--r--internal/server/api/api.go12
-rw-r--r--internal/server/api/helpers.go7
3 files changed, 13 insertions, 8 deletions
diff --git a/embeds/VERSION b/embeds/VERSION
index 8308b63..5366600 100644
--- a/embeds/VERSION
+++ b/embeds/VERSION
@@ -1 +1 @@
-v0.1.1
+v0.1.2
diff --git a/internal/server/api/api.go b/internal/server/api/api.go
index 9828af6..43d0e9c 100644
--- a/internal/server/api/api.go
+++ b/internal/server/api/api.go
@@ -217,7 +217,7 @@ func SendMessage(ctx context.Context, sess *session.Session, request *packet.Sen
return UserPropagate(ctx, sess, user.ID, &packet.MessagesInfo{
Messages: []data.Message{message},
RemovedMessages: nil,
- })
+ }, false)
}
assert.Never("already checked in the first line for the case where both are nil")
@@ -769,7 +769,7 @@ func SetMember(ctx context.Context, sess *session.Session, request *packet.SetMe
if newMember.UserID == sess.ID() {
return networksInfoPayload
} else {
- UserPropagate(ctx, sess, newMember.UserID, networksInfoPayload)
+ UserPropagate(ctx, sess, newMember.UserID, networksInfoPayload, true)
return membersInfoPayload
}
}
@@ -1117,7 +1117,7 @@ func DeleteMessage(ctx context.Context, sess *session.Session, request *packet.D
return UserPropagate(ctx, sess, *message.ReceiverID, &packet.MessagesInfo{
Messages: nil,
RemovedMessages: []snowflake.ID{message.ID},
- })
+ }, false)
}
assert.Never("unreachable")
@@ -1197,7 +1197,7 @@ func EditMessage(ctx context.Context, sess *session.Session, request *packet.Edi
return UserPropagate(ctx, sess, *message.ReceiverID, &packet.MessagesInfo{
Messages: []data.Message{editedMessage},
RemovedMessages: nil,
- })
+ }, false)
}
assert.Never("unreachable")
@@ -1494,7 +1494,7 @@ func BlockUser(ctx context.Context, sess *session.Session, request *packet.Block
RemovedBlockedUsers: nil,
BlockingUsers: []snowflake.ID{sess.ID()},
RemovedBlockingUsers: nil,
- })
+ }, false)
return &packet.BlockInfo{
BlockedUsers: []snowflake.ID{user.ID},
@@ -1534,7 +1534,7 @@ func BlockUser(ctx context.Context, sess *session.Session, request *packet.Block
RemovedBlockedUsers: nil,
BlockingUsers: nil,
RemovedBlockingUsers: []snowflake.ID{sess.ID()},
- })
+ }, false)
return &packet.BlockInfo{
BlockedUsers: nil,
diff --git a/internal/server/api/helpers.go b/internal/server/api/helpers.go
index e8fce16..cadd863 100644
--- a/internal/server/api/helpers.go
+++ b/internal/server/api/helpers.go
@@ -129,10 +129,15 @@ func SplitMembersAndUsers(membersAndUsers []data.GetNetworkMembersRow) ([]data.M
func UserPropagate(
ctx context.Context, sess *session.Session,
userId snowflake.ID, payload packet.Payload,
+ errorOnNil bool,
) packet.Payload {
session := sess.Manager().Session(userId)
if session == nil {
- slog.ErrorContext(ctx, "propagation failed", ctxkeys.UserID.String(), userId, "reason", "session is nil")
+ if errorOnNil {
+ slog.ErrorContext(ctx, "propagation failed", ctxkeys.UserID.String(), userId, "reason", "session is nil")
+ } else {
+ slog.InfoContext(ctx, "propagation failed", ctxkeys.UserID.String(), userId, "reason", "session is nil")
+ }
return payload
}
timeout := 1 * time.Second