Fix NIP-11 caching and export streaming issues (v0.46.2)
Some checks failed
Go / build-and-release (push) Has been cancelled
Some checks failed
Go / build-and-release (push) Has been cancelled
- Fix Content-Type header being set on request instead of response - Add Vary: Accept header to prevent browser/CDN caching NIP-11 for HTML - Add periodic flushing during export for HTTP streaming (every 100 events) - Add initial flush after headers to start streaming immediately - Add X-Content-Type-Options: nosniff to prevent browser buffering Files modified: - app/handle-relayinfo.go: Fix header and add Vary: Accept - app/server.go: Add initial flush and nosniff header for export - pkg/database/export.go: Add periodic and final flushing for streaming 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -37,7 +37,8 @@ type ExtendedRelayInfo struct {
|
||||
// Informer interface implementation or predefined server configuration. It
|
||||
// returns this document as a JSON response to the client.
|
||||
func (s *Server) HandleRelayInfo(w http.ResponseWriter, r *http.Request) {
|
||||
r.Header.Set("Content-Type", "application/json")
|
||||
w.Header().Set("Content-Type", "application/json")
|
||||
w.Header().Set("Vary", "Accept")
|
||||
log.D.Ln("handling relay information document")
|
||||
var info *relayinfo.T
|
||||
nips := []relayinfo.NIP{
|
||||
|
||||
@@ -738,6 +738,12 @@ func (s *Server) handleExport(w http.ResponseWriter, r *http.Request) {
|
||||
w.Header().Set(
|
||||
"Content-Disposition", "attachment; filename=\""+filename+"\"",
|
||||
)
|
||||
w.Header().Set("X-Content-Type-Options", "nosniff")
|
||||
|
||||
// Flush headers to start streaming immediately
|
||||
if flusher, ok := w.(http.Flusher); ok {
|
||||
flusher.Flush()
|
||||
}
|
||||
|
||||
// Stream export
|
||||
s.DB.Export(s.Ctx, w, pks...)
|
||||
|
||||
Reference in New Issue
Block a user