mirror of
https://gitea.invidious.io/iv-org/shard-kemal.git
synced 2024-08-15 00:53:36 +00:00
Fix #316 caused by Crystal
This commit is contained in:
parent
735a882478
commit
c28abb987e
1 changed files with 43 additions and 0 deletions
43
src/kemal.cr
43
src/kemal.cr
|
@ -2,6 +2,49 @@ require "http"
|
||||||
require "./kemal/*"
|
require "./kemal/*"
|
||||||
require "./kemal/helpers/*"
|
require "./kemal/helpers/*"
|
||||||
|
|
||||||
|
# This is literally `hack` to fix [Crystal issue #4060](https://github.com/crystal-lang/crystal/issues/4060)
|
||||||
|
class Gzip::Header
|
||||||
|
def to_io(io)
|
||||||
|
# header
|
||||||
|
io.write_byte ID1
|
||||||
|
io.write_byte ID2
|
||||||
|
|
||||||
|
# compression method
|
||||||
|
io.write_byte DEFLATE
|
||||||
|
|
||||||
|
# flg
|
||||||
|
flg = Flg::None
|
||||||
|
flg |= Flg::EXTRA if !@extra.empty?
|
||||||
|
flg |= Flg::NAME if @name
|
||||||
|
flg |= Flg::COMMENT if @comment
|
||||||
|
io.write_byte flg.value
|
||||||
|
|
||||||
|
# time
|
||||||
|
io.write_bytes(modification_time.epoch.to_u32, IO::ByteFormat::LittleEndian)
|
||||||
|
|
||||||
|
# xfl
|
||||||
|
io.write_byte 0_u8
|
||||||
|
|
||||||
|
# os
|
||||||
|
io.write_byte os
|
||||||
|
|
||||||
|
if !@extra.empty?
|
||||||
|
io.write_byte @extra.size.to_u8
|
||||||
|
io.write(@extra)
|
||||||
|
end
|
||||||
|
|
||||||
|
if name = @name
|
||||||
|
io << name
|
||||||
|
io.write_byte 0_u8
|
||||||
|
end
|
||||||
|
|
||||||
|
if comment = @comment
|
||||||
|
io << comment
|
||||||
|
io.write_byte 0_u8
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
module Kemal
|
module Kemal
|
||||||
# Overload of self.run with the default startup logging
|
# Overload of self.run with the default startup logging
|
||||||
def self.run(port = nil)
|
def self.run(port = nil)
|
||||||
|
|
Loading…
Reference in a new issue