mirror of
https://gitea.invidious.io/iv-org/lsquic.cr
synced 2024-08-15 00:43:31 +00:00
Minor cleanup
This commit is contained in:
parent
681ec162a4
commit
10e2894eef
4 changed files with 8 additions and 39 deletions
14
README.md
14
README.md
|
@ -1,6 +1,6 @@
|
|||
# lsquic
|
||||
|
||||
TODO: Write a description here
|
||||
Crystal bindings to the excellent [LSQUIC](https://github.com/litespeedtech/lsquic) library.
|
||||
|
||||
## Installation
|
||||
|
||||
|
@ -14,18 +14,6 @@ TODO: Write a description here
|
|||
|
||||
2. Run `shards install`
|
||||
|
||||
## Usage
|
||||
|
||||
```crystal
|
||||
require "lsquic.cr"
|
||||
```
|
||||
|
||||
TODO: Write usage instructions here
|
||||
|
||||
## Development
|
||||
|
||||
TODO: Write development instructions here
|
||||
|
||||
## Contributing
|
||||
|
||||
1. Fork it (<https://github.com/omarroth/lsquic.cr/fork>)
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
require "./lsquic/*"
|
||||
require "http"
|
||||
require "./lsquic/patch"
|
||||
require "./lsquic/liblsquic"
|
||||
require "http/headers"
|
||||
require "socket"
|
||||
|
||||
# TODO: Move into StreamCtx as HTTP::Client::Request
|
||||
PATH = "/watch?v=QmyhcjpsF6E"
|
||||
METHOD = "GET"
|
||||
HEADERS = HTTP::Headers{
|
||||
|
@ -10,23 +10,14 @@ HEADERS = HTTP::Headers{
|
|||
":scheme" => "https",
|
||||
":path" => PATH,
|
||||
":authority" => "www.youtube.com",
|
||||
"user-agent" => "lsquic/2.6.1",
|
||||
# TODO: Send if payload
|
||||
"user-agent" => "Chrome/78.0.3904.97 Linux x86_64",
|
||||
# "content-type" => "application/octet-stream"
|
||||
# "content-length" => "0",
|
||||
}
|
||||
|
||||
pp HTTP::Client.get("https://www.youtube.com#{PATH}").status_code
|
||||
|
||||
# logger_if = LibLsquic::LoggerIf.new
|
||||
# logger_if.log_buf = ->(logger_ctx : Void*, msg_buf : LibC::Char*, msg_size : LibC::SizeT) { puts String.new(msg_buf); 0 }
|
||||
# LibLsquic.logger_init(pointerof(logger_if), nil, LibLsquic::LoggerTimestampStyle::LltsHhmmssms)
|
||||
# LibLsquic.set_log_level("debug")
|
||||
# LibLsquic.logger_lopt("conn=debug")
|
||||
|
||||
engine_flags = LibLsquic::LSENG_HTTP
|
||||
LibLsquic.engine_init_settings(out engine_settings, engine_flags)
|
||||
engine_settings.es_ua = "lsquic/2.6.1"
|
||||
engine_settings.es_ua = "Chrome/78.0.3904.97 Linux x86_64"
|
||||
engine_settings.es_ecn = 0
|
||||
|
||||
LibLsquic.global_init(engine_flags & LibLsquic::LSENG_SERVER ? LibLsquic::GLOBAL_SERVER : LibLsquic::GLOBAL_CLIENT)
|
||||
|
@ -37,7 +28,6 @@ raise String.new(err_buf) if err_code != 0
|
|||
|
||||
stream_if = LibLsquic::StreamIf.new
|
||||
stream_if.on_new_conn = ->(stream_if_ctx : Void*, c : LibLsquic::ConnT) { LibLsquic.conn_make_stream(c); stream_if_ctx }
|
||||
# stream_if.on_goaway_received = ->(c : LibLsquic::ConnT) { Box.box(nil) }
|
||||
stream_if.on_conn_closed = ->(c : LibLsquic::ConnT) { Box.box(nil) }
|
||||
|
||||
stream_if.on_new_stream = ->(stream_if_ctx : Void*, s : LibLsquic::StreamT) do
|
||||
|
@ -58,8 +48,6 @@ stream_if.on_read = ->(s : LibLsquic::StreamT, stream_if_ctx : Void*) do
|
|||
print String.new(buffer[0, bytes_read])
|
||||
elsif bytes_read == 0
|
||||
LibLsquic.stream_shutdown(s, 0)
|
||||
# LibLsquic.stream_wantread(s, 0)
|
||||
# LibLsquic.stream_close(s)
|
||||
elsif LibLsquic.stream_is_rejected(s)
|
||||
LibLsquic.stream_close(s)
|
||||
else
|
||||
|
@ -113,7 +101,6 @@ engine_api = LibLsquic::EngineApi.new
|
|||
engine_api.ea_settings = pointerof(engine_settings)
|
||||
engine_api.ea_stream_if = pointerof(stream_if)
|
||||
engine_api.ea_stream_if_ctx = Box.box(IO::Memory.new) # TODO
|
||||
# engine_api.ea_get_ssl_ctx = ->(peer_ctx : Void*) {}
|
||||
|
||||
engine_api.ea_packets_out = ->(peer_ctx : Void*, specs : LibLsquic::OutSpec*, count : LibC::UInt) do
|
||||
count.times do |i|
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
@[Link(ldflags: "#{__DIR__}/ext/liblsquic.a")]
|
||||
@[Link(ldflags: "#{__DIR__}/ext/liblsquic.a -lz")]
|
||||
lib LibLsquic
|
||||
MAX_CID_LEN = 20
|
||||
QQUIC_CID_LEN = 8
|
||||
|
|
|
@ -1,6 +1,4 @@
|
|||
require "openssl/lib_ssl"
|
||||
require "openssl/lib_crypto"
|
||||
require "openssl/bio"
|
||||
require "openssl"
|
||||
|
||||
@[Link(ldflags: "#{__DIR__}/ext/liblsquic.a #{__DIR__}/ext/libcrypto.a")]
|
||||
lib LibCrypto
|
||||
|
@ -20,8 +18,6 @@ lib LibSSL
|
|||
fun ssl_ctx_clear_mode = SSL_CTX_clear_mode(ctx : SSLContext, mode : ULong) : ULong
|
||||
end
|
||||
|
||||
require "openssl/ssl/context"
|
||||
|
||||
abstract class OpenSSL::SSL::Context
|
||||
def set_tmp_ecdh_key(curve = LibCrypto::NID_X9_62_prime256v1)
|
||||
key = LibCrypto.ec_key_new_by_curve_name(curve)
|
||||
|
@ -145,8 +141,6 @@ struct OpenSSL::BIO
|
|||
end
|
||||
end
|
||||
|
||||
require "openssl/ssl/socket"
|
||||
|
||||
abstract class OpenSSL::SSL::Socket < IO
|
||||
class Client < Socket
|
||||
def initialize(io, context : Context::Client = Context::Client.new, sync_close : Bool = false, hostname : String? = nil)
|
||||
|
|
Loading…
Reference in a new issue