Mercurial > prosody-hg
comparison plugins/mod_http_file_share.lua @ 11320:817cadf6be92
mod_http_file_share: Handle content-type being optional
| author | Kim Alvefur <zash@zash.se> |
|---|---|
| date | Wed, 27 Jan 2021 09:47:21 +0100 |
| parents | a4b299e37909 |
| children | 15ab878a7d23 |
comparison
equal
deleted
inserted
replaced
| 11319:a4b299e37909 | 11320:817cadf6be92 |
|---|---|
| 107 local stanza, origin = event.stanza, event.origin; | 107 local stanza, origin = event.stanza, event.origin; |
| 108 | 108 |
| 109 local request = st.clone(stanza.tags[1], true); | 109 local request = st.clone(stanza.tags[1], true); |
| 110 local filename = request.attr.filename; | 110 local filename = request.attr.filename; |
| 111 local filesize = tonumber(request.attr.size); | 111 local filesize = tonumber(request.attr.size); |
| 112 local filetype = request.attr["content-type"]; | 112 local filetype = request.attr["content-type"] or "application/octet-stream"; |
| 113 local uploader = jid.bare(stanza.attr.from); | 113 local uploader = jid.bare(stanza.attr.from); |
| 114 | 114 |
| 115 local may, why_not = may_upload(uploader, filename, filesize, filetype); | 115 local may, why_not = may_upload(uploader, filename, filesize, filetype); |
| 116 if not may then | 116 if not may then |
| 117 origin.send(st.error_reply(stanza, why_not)); | 117 origin.send(st.error_reply(stanza, why_not)); |
| 214 if not handle then | 214 if not handle then |
| 215 return ferr or 410; | 215 return ferr or 410; |
| 216 end | 216 end |
| 217 response.headers.last_modified = last_modified; | 217 response.headers.last_modified = last_modified; |
| 218 response.headers.content_length = slot.attr.size; | 218 response.headers.content_length = slot.attr.size; |
| 219 response.headers.content_type = slot.attr["content-type"]; | 219 response.headers.content_type = slot.attr["content-type"] or "application/octet-stream"; |
| 220 response.headers.content_disposition = string.format("attachment; filename=%q", slot.attr.filename); | 220 response.headers.content_disposition = string.format("attachment; filename=%q", slot.attr.filename); |
| 221 | 221 |
| 222 response.headers.cache_control = "max-age=31556952, immutable"; | 222 response.headers.cache_control = "max-age=31556952, immutable"; |
| 223 response.headers.content_security_policy = "default-src 'none'; frame-ancestors 'none';" | 223 response.headers.content_security_policy = "default-src 'none'; frame-ancestors 'none';" |
| 224 | 224 |
