Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
C
canifa_note
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Vũ Hoàng Anh
canifa_note
Commits
b32cba35
Commit
b32cba35
authored
Jan 29, 2026
by
Steven
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
fix: add nil check for AnyResponse in WrapUnary method to prevent caching issues
parent
b0558824
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
10 additions
and
1 deletion
+10
-1
connect_interceptors.go
server/router/api/v1/connect_interceptors.go
+10
-1
No files found.
server/router/api/v1/connect_interceptors.go
View file @
b32cba35
...
@@ -5,6 +5,7 @@ import (
...
@@ -5,6 +5,7 @@ import (
"errors"
"errors"
"fmt"
"fmt"
"log/slog"
"log/slog"
"reflect"
"runtime/debug"
"runtime/debug"
"connectrpc.com/connect"
"connectrpc.com/connect"
...
@@ -56,7 +57,7 @@ func (*MetadataInterceptor) WrapUnary(next connect.UnaryFunc) connect.UnaryFunc
...
@@ -56,7 +57,7 @@ func (*MetadataInterceptor) WrapUnary(next connect.UnaryFunc) connect.UnaryFunc
// Prevent browser caching of API responses to avoid stale data issues
// Prevent browser caching of API responses to avoid stale data issues
// See: https://github.com/usememos/memos/issues/5470
// See: https://github.com/usememos/memos/issues/5470
if
resp
!=
nil
&&
resp
.
Header
()
!=
nil
{
if
!
isNilAnyResponse
(
resp
)
&&
resp
.
Header
()
!=
nil
{
resp
.
Header
()
.
Set
(
"Cache-Control"
,
"no-cache, no-store, must-revalidate"
)
resp
.
Header
()
.
Set
(
"Cache-Control"
,
"no-cache, no-store, must-revalidate"
)
resp
.
Header
()
.
Set
(
"Pragma"
,
"no-cache"
)
resp
.
Header
()
.
Set
(
"Pragma"
,
"no-cache"
)
resp
.
Header
()
.
Set
(
"Expires"
,
"0"
)
resp
.
Header
()
.
Set
(
"Expires"
,
"0"
)
...
@@ -66,6 +67,14 @@ func (*MetadataInterceptor) WrapUnary(next connect.UnaryFunc) connect.UnaryFunc
...
@@ -66,6 +67,14 @@ func (*MetadataInterceptor) WrapUnary(next connect.UnaryFunc) connect.UnaryFunc
}
}
}
}
func
isNilAnyResponse
(
resp
connect
.
AnyResponse
)
bool
{
if
resp
==
nil
{
return
true
}
val
:=
reflect
.
ValueOf
(
resp
)
return
val
.
Kind
()
==
reflect
.
Ptr
&&
val
.
IsNil
()
}
func
(
*
MetadataInterceptor
)
WrapStreamingClient
(
next
connect
.
StreamingClientFunc
)
connect
.
StreamingClientFunc
{
func
(
*
MetadataInterceptor
)
WrapStreamingClient
(
next
connect
.
StreamingClientFunc
)
connect
.
StreamingClientFunc
{
return
next
return
next
}
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment