Age | Commit message (Collapse) | Author | Files | Lines |
|
This patch includes packaging changes related to files move.
|
|
|
|
Name and value in each header are 0-terminated, so additional 2 bytes
should be allocated for them. There were several attempts to add these
2 bytes to headers in language modules, but some modules weren't updated.
Also, adding these 2 bytes is specific to the implementation which may be
changed later, so extending this mechanics to modules may cause errors.
|
|
Header names and values are stored 0-terminated for ease of use in different
languages, so magic number 2 should be added to each name-value pair size.
|
|
One small step to Go modules support.
|
|
To pass Go object references to C and back we use hack with casting to
unsafe and then to uintptr. However, we should not store such references
because Go not guaratnee it will be available by the same address.
Introducing map with integer key helps to avoid dereference stored address.
This closes #253 and #309 issues on GitHub.
|
|
This closes #223 issue on GitHub.
|
|
Previously, the nxt_router_prepare_msg() function expected server host among
other headers unmodified. It's not true anymore since normalization of the
Host header has been introduced in 77aad2c142a0.
The nxt_unit_split_host() function was removed. It didn't work correctly with
IPv6 literals. Anyway, after 77aad2c142a0 the port splitting is done in router
while Host header processing.
|
|
|
|
Library now used in all language modules.
Old 'nxt_app_*' code removed.
See src/test/nxt_unit_app_test.c for usage sample.
|
|
This closes #133 issue on GitHub.
|
|
|
|
|
|
This closes #108 issue on GitHub.
|
|
Application should create response for every request.
If not, Unit package will do it.
|
|
|
|
|
|
Go package and PHP module could not be built after changeset 5817734dd9b9.
|
|
|
|
|
|
To communicate with the Go program, Unit setup environment variable
named NXT_GO_PORTS with value contains Unit version, stream id to confirm
application is started, and Unit ports information. Go Unit package parses
this string and compares runtime version with compile time version. In case
of parse error or version mismatch, ListenAndServe() returns with the error.
|
|
Passing unsafe.Pointers (void *) from Go to C is complicated by an attempt
to make such pointers less unsafe.
A straightforward optimization is to replace 'unsafe.Pointer' with 'uintptr'
(thanks to Xin Huang for the idea: https://stackoverflow.com/a/44826533 ).
As a result, request registry with mutex is gone.
|
|
Bug introduced in 585c8068a6d7.
|
|
All header files are copied to Go package sources. As the result,
package can be (re-)build when required.
This closes #23 issue on GitHub.
|
|
|
|
|
|
Go request registration should be removed before C request memory freed.
C request address used as a key in Go map. Freed memory can be instantly
reused for other request and older request registration should removed at this
point to avoid collisions.
|
|
Go package build was broken by change 365:28b2a468be43.
|
|
This allows to use shared memory to communicate with main process.
This patch changes shared memory segment format and breaks compatibility
with older modules.
|
|
Do not reuse shared memory segment with different port until this segment
successfully received and indexed on other side. However, segment can be used
to transfer data via the port it was sent at any time.
|
|
|
|
This closes #5 on GitHub.
From 615369a29511c6021e5623070f082fdb17ff37a2
|
|
|
|
|