Commit Graph

485 Commits

Author SHA1 Message Date
Caleb Maclennan
3a817a56eb
fix(url): Avoid fragment being part of authority, allows parsing empty paths 2023-11-08 23:27:58 +03:00
Caleb Maclennan
7eaf648056
fix(url): Avoid query string being part of authority, allows parsing empty paths 2023-11-08 14:50:43 +03:00
georgeto
bef62aeb50
fix(inet): Return port as number in getsockname (#392) 2023-11-08 14:29:06 +03:00
leso-kn
708e50f8e6
refactor(core): Replace check for SO_BINDTODEVICE support with platform independent version 2023-10-27 11:34:39 +02:00
leso-kn
0bc8c56043
fix(core): Disable SO_BINDTODEVICE on windows
Co-authored-by: Sewbacca <sebastian.kalus@kolabnow.com>
2023-10-27 09:59:26 +03:00
Leso_KN
f741a88b80
feat(tcp): Add 'bindtodevice' option (#408) 2023-10-23 21:27:01 +03:00
Henri D
8c2ff7217e
fix(http): Allow relative redirect on https (#395)
Location header can now be relative: https://httpwg.org/specs/rfc9110.html#field.location
2022-10-08 09:42:36 +03:00
Caleb Maclennan
26b524e1d7
Revert "fix(usocket): Fix typo in return value function name"
This reverts commit 88c72acd77.

See discussion on #390
2022-08-31 00:34:39 +03:00
zhaozg
159890c366
style(usocket): Remove trailing space at EOL 2022-08-30 13:16:38 +03:00
zhaozg
88c72acd77
fix(usocket): Fix typo in return value function name 2022-08-30 13:15:53 +03:00
George Zhao
30ddf0eaea
style(core) Remove lingering c-style comment (#388) 2022-08-27 21:31:54 +03:00
rpatters1
5a7e3f0888
fix(build): Use gai_strerrorA not gai_strerror on Windows
* Explicitly call gai_strerrorA (for Windows builds), so that the code work correctly in 32bit or 64bit builds.

* Implement GAI_STRERROR macro to deal with Windows vs. Non-Windows compiles for 64-bit.

* make usocket.c consistent with other modules that call macro GAI_STRERROR

* Use different name not just different case for macro wrapping function

Co-authored-by: Caleb Maclennan <caleb@alerque.com>
2022-07-27 09:51:35 +03:00
Kim Alvefur
d1ad8160cb
feat(tcp): Add support for TCP Defer Accept
This makes it so that a listening socket does not become readable for
accept() until a connection has been fully established *and* started
sending something, thus the program doesn't have to wait for the first
data. This only makes sense for client-speaks-first protocols.

Co-authored-by: Caleb Maclennan <caleb@alerque.com>
2022-07-27 09:40:18 +03:00
Kim Alvefur
0c7df119c2
feat(tcp): Add support for TCP Fast Open 2022-07-27 09:16:43 +03:00
Robert Scheck
1d61853ab8
chore: Update internal version references to match release (#370) 2022-03-28 11:53:32 +00:00
Thijs Schreijer
d9c08114da chore; add Lua 5.4 to make files 2022-03-23 17:11:43 +01:00
Julian Squires
2a76cb906c http.lua: set transfer-encoding if source and no content-length
If a source is specified without a content-length header, LuaSocket
sends the data in the chunked transfer coding; however, it doesn't set
the transfer-encoding header.  While I recognize that the user can set
this manually, this is a gotcha that has caught me multiple times.

RFC7230, section 3.3.3
  (https://tools.ietf.org/html/rfc7230#section-3.3.3)
is clear about this; if neither content-length nor transfer-encoding
chunked are specified, the request message body length is zero.  While
some servers may ignore this, I have encountered several that follow
the RFC in this regard, most recently golang's net/http.
2022-03-22 09:38:14 +01:00
david
46ecb7e2dc src/ltn12.lua: remove duplicated codes 2022-03-21 11:07:26 +01:00
Caleb Maclennan
a36818d3f3
Merge pull request #354 from lunarmodules/linter 2022-03-19 17:42:53 +03:00
Thijs Schreijer
601ad8d59f
refactor: Address issues raised by linter 2022-03-19 17:13:15 +03:00
Caleb Maclennan
6952262e6a
style: Use C-style comment syntax throughout (#309)
Co-authored-by: Denise Cullassnekuff <19711487+BlackCutpoint@users.noreply.github.com>
2022-03-18 17:54:11 +03:00
Paul Kulchenko
d9cc531e3b
Fixe an issue with aux buffer init overwriting optional parameters in receive() (#334)
Fixes use on Lua >= 5.4.3
2022-03-18 12:23:09 +03:00
E. Westbrook
78a1657c7d src/makefile: remove -DLUASOCKET_INET_PTON as current mingw builds don't want it 2020-03-28 16:46:49 +00:00
E. Westbrook
21514304be wrap visibility pragmas in #ifndef _WIN32 2019-03-10 00:04:20 -07:00
E. Westbrook
c8d0fdda54 src/makefile: serial += compat 2019-03-10 00:04:20 -07:00
E. Westbrook
8b2dcdcf7d usocket: pragma visibility 2019-03-10 00:04:20 -07:00
E. Westbrook
4e363330a3 unixstream: pragma visibility 2019-03-10 00:04:20 -07:00
E. Westbrook
d27b1a7945 unixdgram: pragma visibility 2019-03-10 00:04:20 -07:00
E. Westbrook
5d07d9b227 unix: include reorg 2019-03-10 00:04:20 -07:00
E. Westbrook
d71e6bc459 udp: pragma visibility 2019-03-10 00:04:20 -07:00
E. Westbrook
42a1a732b7 timeout: pragma visibility 2019-03-10 00:04:20 -07:00
E. Westbrook
86e1b3f45f tcp: pragma visibility 2019-03-10 00:04:20 -07:00
E. Westbrook
1fa10673f7 socket.h: pragma visibility 2019-03-10 00:04:20 -07:00
E. Westbrook
c8b9b40eda serial.c: pragma visibiliity 2019-03-10 00:04:20 -07:00
E. Westbrook
c2245f35c5 select: pragma visibility 2019-03-10 00:04:20 -07:00
E. Westbrook
ce6a08d57d options: pragma visibility 2019-03-10 00:04:20 -07:00
E. Westbrook
83648f8df2 mime: include reorg 2019-03-10 00:04:20 -07:00
E. Westbrook
2015290cb4 luasocket: include centralization 2019-03-10 00:03:04 -07:00
E. Westbrook
ee30e4643d io: pragma visibility 2019-03-10 00:03:04 -07:00
E. Westbrook
611cdd19cc inet: pragma visibility 2019-03-10 00:03:04 -07:00
E. Westbrook
4bf3eb6db2 except: pragma visibility 2019-03-10 00:03:04 -07:00
E. Westbrook
133774cd3d compat: pragma visibility 2019-03-10 00:03:04 -07:00
E. Westbrook
e3ac49efbd buffer: pragma visibility 2019-03-10 00:03:04 -07:00
E. Westbrook
98800e9129 auxiliar: pragma visibility 2019-03-10 00:03:04 -07:00
Diego Nehab
2af4872a40 Fix formatting. 2019-03-10 00:47:17 -03:00
Diego Nehab
03b72d8f7e Use static initialization
This helps with multi-threaded apps.
2019-03-09 23:23:48 -03:00
Diego Nehab
1e4255e2a9 Update Windows projects vor Visual Studio 2017 2019-03-01 20:46:37 -03:00
E. Westbrook
297f9d0277 bugfix: http.lua multischeme change that got dropped during PR conflict resolution 2019-02-28 18:40:30 -07:00
Mojca Miklavec
d9afe3fd9c Only use EAI_OVERFLOW, AI_NUMERICSERV if defined
Some systems like Mac OS X 10.5 (and lower) do not have EAI_OVERFLOW and
AI_NUMERICSERV defined.

These variables are used to avoid a potentially slow name resolution
for the hostname (which will always be an ip address)
and for service name (which will always be an actual port number).

The code might be slower, but it should still work.

Closes: #242
2019-02-26 09:30:15 +01:00
E. Westbrook
2d8f0d9901 src/makefile: remove visibility and dllexport defines in favor of in-source labeling 2019-02-25 16:04:49 -07:00