Skip to content

Commit 4eb0da3

Browse files
authored
Lws refcount fix (#20)
1 parent 2a4b870 commit 4eb0da3

File tree

2 files changed

+36
-19
lines changed

2 files changed

+36
-19
lines changed

Project.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
name = "Libwebsockets"
22
uuid = "30a1cee6-c274-443c-b274-d8ea34e8f87d"
3-
version = "1.2.0"
3+
version = "1.3.0"
44

55
[deps]
66
libwebsockets_jll = "b6b84edf-6aef-5ff6-9b66-656961a84a09"

src/types.jl

Lines changed: 35 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,9 @@ export Lws,
4545
LwsRetryBo,
4646
LwsDll2,
4747
LwsStateNotifyLink,
48-
LwsSortedUsecList
48+
LwsSortedUsecList,
49+
LwsTransportClientOps,
50+
LwsTransportProxyOps
4951

5052
struct LwsContext end
5153
struct LwsVhost end
@@ -61,9 +63,10 @@ struct LwsSpa end
6163
struct LwsAc end
6264
struct LwsX509Cert end
6365
struct LwsSslCtxSt end
66+
struct LwsTransportProxyOps end
67+
struct LwsTransportClientOps end
6468

6569
Base.@kwdef mutable struct LwsLogCxUnion
66-
emit::Ptr{Cvoid} = C_NULL
6770
emit_cx::Ptr{Cvoid} = C_NULL
6871
end
6972

@@ -91,7 +94,7 @@ end
9194

9295
Base.@kwdef mutable struct LwsAcmeCertAgingArgs
9396
vh::Ptr{LwsVhost} = C_NULL
94-
element_overrides::Ptr{Ptr{Cchar}} = C_NULL# max_len = LWS_TLS_TOTAL_COUNT
97+
element_overrides::Ptr{Ptr{Cchar}} = C_NULL # max_len = LWS_TLS_TOTAL_COUNT
9598
end
9699

97100
Base.@kwdef mutable struct LwsExtOptions
@@ -160,7 +163,7 @@ Base.@kwdef mutable struct LwsPluginEvlib
160163
end
161164

162165
Base.@kwdef mutable struct LwsTokenLimits
163-
token_limit::Vector{Cushort} = fill(Cushort(0), WSI_TOKEN_COUNT)# max_len = WSI_TOKEN_COUNT
166+
token_limit::Vector{Cushort} = fill(Cushort(0), WSI_TOKEN_COUNT) # max_len = WSI_TOKEN_COUNT
164167
end
165168

166169
Base.@kwdef mutable struct LwsHttpMount
@@ -239,7 +242,7 @@ Base.@kwdef mutable struct LwsContextCreationInfo
239242
max_http_header_data2::Cuint = 0
240243
max_http_header_pool2::Cuint = 0
241244
keepalive_timeout::Cint = 0
242-
http2_settings::NTuple{7,UInt32} = ntuple(i -> UInt32(0), 7)
245+
http2_settings::NTuple{7,UInt32} = ntuple(_ -> UInt32(0), 7)
243246
max_http_header_data::Cushort = 0
244247
max_http_header_pool::Cushort = 0
245248
ssl_private_key_password::Ptr{Cchar} = C_NULL
@@ -287,7 +290,7 @@ Base.@kwdef mutable struct LwsContextCreationInfo
287290
tls_session_cache_max::Cuint = 0
288291
gid::Cuint = 0
289292
uid::Cuint = 0
290-
options::Cuintmax_t = 0
293+
options::UInt64 = 0
291294
user::Ptr{Cvoid} = C_NULL
292295
count_threads::Cuint = 0
293296
fd_limit_per_thread::Cuint = 0
@@ -311,21 +314,32 @@ Base.@kwdef mutable struct LwsContextCreationInfo
311314
system_ops::Ptr{LwsSystemOpts} = Ptr{LwsSystemOpts}(C_NULL)
312315
retry_and_idle_policy::Ptr{LwsRetryBo} = Ptr{LwsRetryBo}(C_NULL)
313316
register_notifier_list::Ptr{Ptr{LwsStateNotifyLink}} = Ptr{Ptr{LwsStateNotifyLink}}(C_NULL)
317+
pss_policies_json::Ptr{Cchar} = C_NULL
318+
pss_plugins::Ptr{Ptr{LwsSsPlugin}} = Ptr{Ptr{LwsSsPlugin}}(C_NULL)
319+
ss_proxy_bind::Ptr{Cchar} = C_NULL
320+
ss_proxy_address::Ptr{Cchar} = C_NULL
321+
ss_proxy_port::Cushort = 0
322+
txp_ops_ssproxy::Ptr{LwsTransportProxyOps} = Ptr{LwsTransportProxyOps}(C_NULL)
323+
txp_ssproxy_info::Ptr{Cvoid} = C_NULL
324+
txp_ops_sspc::Ptr{LwsTransportClientOps} = Ptr{LwsTransportClientOps}(C_NULL)
314325
rlimit_nofile::Cint = 0
315326
early_smd_cb::Ptr{Cvoid} = C_NULL
316327
early_smd_opaque::Ptr{Cvoid} = C_NULL
317-
early_smd_class_filter::Cint = 0
328+
early_smd_class_filter::UInt32 = UInt32(0)
318329
smd_ttl_us::UInt64 = 0
319330
smd_queue_depth::Cushort = 0
320331
fo_listen_queue::Cint = 0
321332
event_lib_custom::Ptr{LwsPluginEvlib} = C_NULL
322333
log_cx::Ptr{LwsLogCx} = C_NULL
323-
default_loglevel::Cint = 0
324-
vh_listen_sockfd::Cint = 0
325334
http_nsc_filepath::Ptr{Cchar} = C_NULL
326335
http_nsc_heap_max_footprint::Csize_t = 0
327336
http_nsc_heap_max_items::Csize_t = 0
328337
http_nsc_heap_max_payload::Csize_t = 0
338+
default_loglevel::Cint = 0
339+
vh_listen_sockfd::Cint = 0
340+
wol_if::Ptr{Cchar} = C_NULL
341+
argc::Cint = 0
342+
argv::Ptr{Ptr{Cchar}} = Ptr{Ptr{Cchar}}(C_NULL)
329343
_unused::NTuple{2,Ptr{Cvoid}} = (Ptr{Nothing}(C_NULL), Ptr{Nothing}(C_NULL))
330344
end
331345

@@ -348,9 +362,9 @@ Base.@kwdef mutable struct LwsClientConnectInfo
348362
vhost::Ptr{LwsVhost} = C_NULL
349363
pwsi::Ptr{Ptr{Lws}} = C_NULL
350364
iface::Ptr{Cchar} = C_NULL
365+
local_port::Cint = 0
351366
local_protocol_name::Ptr{Cchar} = C_NULL
352367
alpn::Ptr{Cchar} = C_NULL
353-
seq::Ptr{LwsSequencer} = C_NULL
354368
opaque_user_data::Ptr{Cvoid} = C_NULL
355369
retry_and_idle_policy::Ptr{LwsRetryBo} = C_NULL
356370
manual_initial_tx_credit::Cint = 0
@@ -360,6 +374,8 @@ Base.@kwdef mutable struct LwsClientConnectInfo
360374
fi_wsi_name::Ptr{Cchar} = C_NULL
361375
keep_warm_secs::Cushort = 0
362376
log_cx::Ptr{LwsLogCx} = C_NULL
377+
auth_username::Ptr{Cchar} = C_NULL
378+
auth_password::Ptr{Cchar} = C_NULL
363379
_unused::NTuple{4,Ptr{Cvoid}} = (Ptr{Nothing}(C_NULL), Ptr{Nothing}(C_NULL), Ptr{Nothing}(C_NULL), Ptr{Nothing}(C_NULL))
364380
end
365381

@@ -373,15 +389,15 @@ end
373389

374390
Base.@kwdef mutable struct LwsProcessHtmlState
375391
start::Ptr{Cchar} = C_NULL
376-
swallow::Ptr{Cchar} = C_NULL# max_len = 16
392+
swallow::NTuple{16, Cchar} = ntuple(_ -> Cchar('\0'), 16)
377393
pos::Cint = 0
378394
data::Ptr{Cvoid} = C_NULL
379395
vars::Ptr{Ptr{Cchar}} = C_NULL
380396
count_vars::Cint = 0
381397
replace::Ptr{Cvoid} = C_NULL
382398
end
383399

384-
Base.@kwdef mutable struct LwsTokens
400+
Base.@kwdef mutable struct LwswrTokens
385401
token::Ptr{Cuchar} = C_NULL
386402
len::Cint = 0
387403
end
@@ -404,16 +420,17 @@ Base.@kwdef mutable struct LwsWritePassthru
404420
wp::Cuint = 0
405421
end
406422

407-
Base.@kwdef mutable struct LwsTlsCertInfoResults
408-
verified::Cuint = 0
409-
time::Clong = 0
410-
usage::Cuint = 0
423+
Base.@kwdef struct _ns
411424
len::Cint = 0
412-
name::Ptr{Cchar} = C_NULL
425+
name::NTuple{64, Cchar} = ntuple(_ -> Cchar('\0'), 64)
426+
end
427+
428+
Base.@kwdef mutable struct LwsTlsCertInfoResults
429+
ns::_ns = _ns()
413430
end
414431

415432
Base.@kwdef mutable struct LwsTlsSessionDump
416-
tag::Ptr{Cchar} = C_NULL # max_len = LWS_SESSION_TAG_LEN
433+
tag::NTuple{96, Cchar} = ntuple(_ -> Cchar('\0'), 96) # LWS_SESSION_TAG_LEN = 96
417434
blob::Ptr{Cvoid} = C_NULL
418435
opaque::Ptr{Cvoid} = C_NULL
419436
blob_len::Csize_t = 0

0 commit comments

Comments
 (0)