Commit Graph

64 Commits (26b524e1d7b9a00045882d3c0f25486485b1d6a8)

Author SHA1 Message Date
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
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
E. Westbrook 8b2dcdcf7d usocket: pragma visibility 2019-03-10 00:04:20 -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 d7ffc2f4e6 usocket.c use LUASOCKET_PRIVATE 2019-02-25 16:04:16 -07:00
Elliptica aef7bcf288 Fix typo 2017-04-17 18:47:48 +03:00
Diego Nehab 96965b179c New agnostic IPv4 IPv6 functions.
Also dealing with EPROTOTYPE Yosemite seems to be throwing
at us for no reason.
2015-08-22 19:52:01 -03:00
Diego Nehab 863a54cbaf Fix cut-paste typo on PIE_HOST_NOT_FOUND. 2015-03-03 19:20:13 -03:00
Thijs Schreijer d3ed08616b updated error messages, less error prone, platform independent 2015-03-03 21:17:06 +01:00
daurnimator 4f122e60b1 src/usocket: Don't unset/set O_NONBLOCK around listen() or shutdown() calls.
It doesn't effect them.
Not true on windows
2014-10-27 14:07:38 -04:00
daurnimator e602c2b271 src/usocket: Do not setblocking on destroy;
This results in unexpected behaviour if the socket has been `dup()`d, as O_NONBLOCK is shared.
Close is always 'blocking' anyway

See https://github.com/wahern/cqueues/issues/13 for an example use case
2014-10-27 13:35:36 -04:00
Diego Nehab 618ce43ee3 Fix socket_accept usage to depend on family. 2012-12-11 16:35:27 -02:00
Sam Roberts 156669c28b socket.connect now implemented in the C core
This avoid socket.lua duplicating the iteration over the results
of getaddrinfo(). Some problems with the C implementation not
initializing sockets or the luasocket family have also been fixed,
and error reporting made more robust.
2012-05-10 14:14:22 -07:00
Sam Roberts ac59bcbeac Reword error msg to distinguish between service and server
servname is easily confused with "server name", making it seem
as if the server name couldn't be resolved.
2012-05-08 10:55:33 -07:00
Diego Nehab f960b3872a Making progress toward a release
Documented headers.lua
Update copyright date everywhere
Remove RCSID from files
Move version back to 2.1 rather than 2.1.1
Fixed url package to support ipv6 hosts
Changed "domain" to "family" in tcp and udp structures
Implemented getfamily methods
2012-04-23 00:18:45 +08:00
Sam Roberts 4b671f4551 Merge branch 'git-sam' into diego-sam-mwild-integration
Conflicts in options.c were just due to independent small functions
being close to each other.

unix.c in mwild was broken, it wasn't using LUASOCKET_API.

serial.c needed luaL_reg renamed, and to use LUASOCKET_API.

makefile didn't respect standard DESTDIR and prefix makefile
variables, and didn't allow LUAV variable to select lua version to build
against.

I've tested the top-level install-both target builds and installs
against both lua5.1 and lua5.2, but not done further testing.

Conflicts:
	README
	config
	gem/ltn012.tex
	makefile
	src/makefile
	src/options.c
	src/options.h
	src/tcp.c
	src/usocket.c
2012-04-11 14:18:20 -07:00
Sam Roberts 0716cb868e Bounds check the argument to FD_SET
Failing to check the FD_SET argument against FD_SETSIZE causes
undefined behaviour (segfaults, for example).
2012-04-11 13:54:01 -07:00
Sam Roberts 27a3964ff7 socket_strerror() sometimes maps errno, instead of its argument
Looks like a historical bug. Its err argument is an error number, but
if it isn't using a custom error message for it, it just calls
strerror() with the errno global, effectively ignoring its argument
and returning a semi-random string.
2012-04-11 13:54:01 -07:00
Sam Roberts b1f7c349b5 Add support for serial devices as socket streams on unix. 2012-04-11 13:45:59 -07:00
Sam Roberts f63d616bc0 Use poll by default for socket.connect(), instead of select().
Connect timeouts are implemented by waiting on the new socket
descriptor. When select() is used for this, it imposes an arbitrary
limit on the number of connections that can be made, usually 1024-3.
Using poll() removes this limit on the number of simultaneous TCP
connections can be made using luasocket. The previous default
implementation using select() is available by defining SOCKET_SELECT.
Note that using socket.select() always uses select(), so it isn't
possible to wait on an arbitrary number of connections at once.
2012-04-11 13:45:59 -07:00
Sam Roberts 51acb54760 Stop returning an error after successful send of zero length UDP packets
A zero-length send is invalid with TCP, but well defined with UDP.
udp:send"" was returning (nil,"refused"), indicating that it failed when
the packet was actually sent. The test script reproduces the bug, and
includes a tcpdump of the zero length packet being sent.
2012-04-11 13:45:59 -07:00
Matthew Wild dd83e0a849 #ifdef EAI_BADHINTS and EAI_PROTOCOL which don't seem available on my system (Linux/glibc 2.11) 2012-04-11 13:33:34 -07:00
Diego Nehab 2778766d67 Preliminary IPv6 support for v2.1 2012-04-11 13:25:11 -07:00
Diego Nehab 3a8ba90dfb Saving before big changes to support IPv6. 2011-05-25 20:57:22 +00:00
Diego Nehab d1a72435d5 New release. 2007-10-13 23:55:20 +00:00
Diego Nehab 3cd10f5ab6 Crashy bug fixed in recvraw.
Also fixed returns on closed socket.
2007-06-11 23:44:54 +00:00
Diego Nehab d55a5826e8 Few tweaks in installation, some missing files, etc. 2005-11-22 08:33:29 +00:00
Diego Nehab f20f4889bf Changed prefix of function names to match module names.
Removed some warnings and useless code.
2005-11-20 07:20:26 +00:00
Diego Nehab f4dadea763 Before compiling on Windows. 2005-10-07 04:40:59 +00:00
Diego Nehab a32c6d9140 Almost ready to release. 2005-09-29 06:11:42 +00:00
Diego Nehab 2a00a5ad50 Trying to get non-blocking connect to work. 2005-04-20 18:57:47 +00:00
Diego Nehab e57f9e9964 Apparently, non-blocking connect doesn't work on windows if you use 0
timeout in the select call...
2005-03-11 00:20:21 +00:00
Diego Nehab 8d4e240f6a Forward server working on Mac OS X... 2005-02-08 10:01:01 +00:00
Diego Nehab 4e5ad6d5ee Bug in poll.
Debug garbage in compat-5.1.c.
Improvements to the user manual.
2004-11-29 06:55:47 +00:00
Diego Nehab 50da56dbee Using poll instead of select by default. 2004-11-27 08:47:09 +00:00
Diego Nehab cd994f306a Gonna try my luck on windows... 2004-07-26 04:03:55 +00:00
Diego Nehab e4e2223cff Fixed a bunch of stuff. Added mike's patches. 2004-07-16 06:48:48 +00:00
Diego Nehab 9a79d500eb Still need to fix windows. :o/ 2004-07-15 06:11:53 +00:00
Diego Nehab b2b7e9cef1 tiny bug in test. 2004-07-02 18:58:23 +00:00
Diego Nehab b1a4ad2b19 Compiles and runs on windows. 2004-07-02 18:44:05 +00:00
Diego Nehab 596602f2ca Seems good. 2004-07-01 03:47:22 +00:00
Diego Nehab 7115c12fbc Moving on to beta2. 2004-07-01 03:32:09 +00:00
Diego Nehab a193c087a4 Fixing send/recv and optimizing. 2004-06-23 01:08:54 +00:00
Diego Nehab bce1cb30d8 More adjustments/bugfixes. 2004-06-21 06:07:58 +00:00
Diego Nehab f7579db9e8 Fixing bugs... 2004-06-20 22:19:54 +00:00
Diego Nehab 5ca1049ab4 Fine tuning the "require" business. 2004-05-30 21:36:22 +00:00
Diego Nehab c98dc99199 Bug feioso no UDP e possivelmente no TCP também. 2004-05-28 07:24:43 +00:00
Diego Nehab 0b2542d1a6 Worked on the manual.
Implemented stuffing (needs test)
Added cddb and qp examples.
2004-02-04 14:29:11 +00:00