Commit Graph

393 Commits

Author SHA1 Message Date
mpeterv
a7f21e8ec4 Fix error in ltn12 under Lua 5.3 2016-02-11 15:51:54 +03:00
Jonas Kunze
5d52ffedf4 Added solaris platform
To compile on solaris some libs had to be linked. So far I was only able
to test it on OmniOS r151006
2016-01-15 18:48:57 +01:00
Diego Nehab
83880dbed7 When zero-timeout, only try first address in connect. 2015-12-03 12:56:18 -02:00
Diego Nehab
be67f63f4e Changed buffer-per-socket to buffer-per-operation.
This is a difficult tradeoff to measure. I think large
datagrams won't be used very frequently. So it is better to
not lock a large buffer to each socket object and instead
allocate and deallocate for each operation receiving a
datagram larger than UDP_DATAGRAMSIZE.
2015-10-06 11:33:50 +08:00
Diego Nehab
fd729b32a8 Added support for arbitrary datagram sizes.
The maximum size is still constant per UDP object, but the
size can be speficied at creation time.
2015-10-05 11:47:51 +08:00
Diego Nehab
f4b4720073 Merge branch 'tcp_reuseport' of https://github.com/KateAdams/luasocket into KateAdams-tcp_reuseport 2015-10-05 10:28:29 +08:00
Diego Nehab
4110e4125d Merge branch 'agnostic'
Seems safe to move to master.
2015-08-25 15:43:48 -03:00
Diego Nehab
77bba625d7 Fixes suggested by @Florob in #147. 2015-08-25 15:41:40 -03:00
Diego Nehab
46d7e75f3e Merge pull request #96 from chastabor/master
Generate headers before proxy changes host and port
2015-08-24 16:41:24 -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
b211838648 Fix rockspec and serial.c module. 2015-08-21 22:31:29 -03:00
Diego Nehab
9322eacefd Merge pull request #141 from cjtallman/master
Added missing options for UDP getoption.
2015-08-21 15:51:52 -03:00
Diego Nehab
e75444ccd1 New compat.h module implements luaL_setfuncs.
Makes initialization code simpler everywhere.
2015-08-21 15:39:34 -03:00
cjtallman
67abaf89eb Added missing options for UDP getoption.
Documentation says "dontroute", "broadcast", "reuseaddr", and
"reuseport" are supported as arguments to getoption, however their
implementations were missing.
2015-06-11 09:02:20 -07:00
Diego Nehab
863a54cbaf Fix cut-paste typo on PIE_HOST_NOT_FOUND. 2015-03-03 19:20:13 -03:00
Diego Nehab
892ea1791a Merge branch 'errormsg' of https://github.com/Tieske/luasocket into Tieske-errormsg 2015-03-03 19:17:53 -03:00
Diego Nehab
bbcbbf845e Merge pull request #119 from gatzka/master
Make casts const correct.
2015-03-03 19:01:00 -03:00
Thijs Schreijer
d3ed08616b updated error messages, less error prone, platform independent 2015-03-03 21:17:06 +01:00
Diego Nehab
8396a0291b Better solution to luaL_checkint... 2015-03-01 22:49:04 -03:00
Thijs Schreijer
59869b8bf6 fixed accidental global in ftp.lua 2015-03-01 20:34:53 +01:00
Diego Nehab
76ed24fe8a Fix inet_global_getaddrinfo leak of getnameinfo
Issue #127 closed.
2015-02-18 20:54:27 -02:00
Diego Nehab
ddf4292824 Out of the box support for Lua 5.3. 2015-02-18 20:51:37 -02:00
Stephan Gatzka
d8f77cca64 Remove unused function luaL_typerror(). 2014-12-21 07:45:36 +01:00
Stephan Gatzka
9178451ef9 Add missing prototype for opt_get_reuseport(). 2014-12-21 07:45:17 +01:00
Stephan Gatzka
c6f136c7f5 Make local function udp_strerror() static. 2014-12-21 07:44:11 +01:00
Stephan Gatzka
41692dfb4b Make casts const correct. 2014-12-21 06:57:10 +01:00
Philipp Janda
0b03eec16b make socket.protect yieldable on Lua 5.2/5.3 2014-11-10 18:49:40 +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
d80bb0d82b Fix Host: header according to RFC7230 2014-07-15 14:49:20 -03:00
Charles Tabor
2314235b3a Add proxy authentication headers if present. 2014-03-27 14:40:04 -05:00
Charles Tabor
36aa87e031 Generate headers before proxy changes host and port 2014-03-21 14:25:44 -05:00
kobra
833333e131 Added ability to set the option reuseport of a tcp socket. 2013-09-12 00:46:32 +01:00
Diego Nehab
6d5e40c324 Add MYCFLAGS and MYLDFLAGS go allow for customization 2013-09-09 14:55:20 -03:00
Diego Nehab
d0b1f5b4c1 Add support for FreeBSD in makefile
Thanks to Leryan. See issue #78.
2013-09-09 14:29:14 -03:00
Diego Nehab
396e9e5ee6 Fixed timeout bug introduced by commit e81a6ff 2013-09-09 14:23:00 -03:00
Diego Nehab
244e5d34a0 Merge pull request #74 from catwell/pull-hostport
Include port in default Host header
2013-09-09 09:54:08 -07:00
Diego Nehab
c715993fb8 Merge pull request #65 from fab13n/480a818bf0ef6de32527ba14fc2bb27e754d0612
Support for several filters in ltn12.{sink,source}.chain
2013-09-09 09:48:46 -07:00
Pierre Chapuis
87d72dce4e include port in default Host header
See RFC 2616 section 14.23.
2013-08-14 14:41:57 +02:00
Pierre Chapuis
1f9ccb2b58 http: look for PROXY in _M, not as a global 2013-07-05 18:00:29 +02:00
Pierre Chapuis
ddf88aca09 http: do not set global TIMEOUT 2013-07-05 17:59:52 +02:00
Fabien Fleutot
480a818bf0 support multiple filters in ltn12.{sink,source}.chain() 2013-06-18 11:01:46 +02:00
Diego Nehab
7cad902bb7 Fix makefile and test_socket_error.lua 2013-06-12 21:45:15 +08:00
Diego Nehab
6e00ffd62f Changing from 2.1-rc1 to 3.0-rc1. 2013-06-11 19:10:03 +08:00
Diego Nehab
906abf29d1 Fix unix export marker. 2013-06-11 17:20:27 +08:00
Diego Nehab
bc709ac7b7 Export global table only if "module()" is defined. 2013-06-05 18:36:51 +08:00
Diego Nehab
b1d1e721d1 No need for inet_pton. 2013-06-04 16:26:49 +08:00
Diego Nehab
802567b7de Merge pull request #49 from moteus/moteus-ftp-get-2xx
Fix. recive 2xx while ftp.get cause timeout error
2013-05-30 03:02:33 -07:00
unknown
5eefc73b57 Remove warnings. Move windows specific code. 2013-05-30 16:50:28 +08:00
Diego Nehab
a233e27865 Leaving if in src/ but out of build for now. 2013-05-30 16:20:34 +08:00
moteus
00a06857c9 Fix. recive 2xx while ftp.get cause timeout error
In this example:
>Client send: MDTM test.txt
>Server response: 213 20120824120909
Because FTP server do not open new channel (2XX response)
and LuaSocket try open new channel we get timeout.

```lua
local ftp   = require "socket.ftp"
local ltn12 = require "ltn12"
local url   = require("socket.url")

local URL = "ftp://USER:TEST@127.0.0.1";
local CMD = 'MDTM test.txt';

-- get timeout
ftp.get{
  url = URL;
  command = CMD;
  sink = ltn12.sink.table{};
}

-- or we can use ftp.command
ftp.command{
  url = URL;
  command = URL,
  check = function(...)
    local status, data = ...
    return true
  end;
}
```
2013-05-30 11:01:07 +04:00
moteus
1de617e355 Add. Allow get error option to socket. 2013-05-29 14:33:27 +04:00
Diego Nehab
79e6c4915d Export global only if LUA_COMPAT_MODULE defined. 2013-05-29 16:56:56 +08:00
moteus
5167ddaf49 Merge branch 'unstable' of git://github.com/diegonehab/luasocket into moteus-lua52 2013-05-28 14:06:18 +04:00
unknown
2d51d61688 Fix "final" bug in pton and TCP connreset handling 2013-05-28 17:27:06 +08:00
Diego Nehab
27fd725c6d Typo fixed. 2013-05-28 01:54:49 +08:00
unknown
734cc23e1f Fixed inet_pton and a new Winsock UDP bug.
inet_pton was copying the entire sockaddr_in struct,
rather than just the sin_addr field...

I am a bit unsure about the UDP fix, because it may affect
TCP as well. On UDP sockets, when a sendto fails, the next
receive/receivefrom fails with CONNRESET. I changed
sock_recv/sock_recvfrom in wsocket.c to skip the CONNRESET
from the recv/recvfrom, hoping that if the socket is TCP,
sock_waitfd will get the CONNRESET again. The tests pass,
but this should be tested more thoroughly.
2013-05-28 00:09:30 +08:00
unknown
66cd8cfcee Fix wrong usage of inet_pton. 2013-05-27 22:17:51 +08:00
unknown
056d7653f3 Link only against ws2_32.lib. 2013-05-27 21:58:41 +08:00
Diego Nehab
834a3cf520 Simplifying getaddrinfo treatment. 2013-05-27 21:05:48 +08:00
unknown
5e0b56b8d3 Merge branch 'moteus' of https://github.com/moteus/luasocket into moteus 2013-05-27 20:32:54 +08:00
unknown
26704061a4 Fix Visual Studio 2012 projects 2013-05-27 20:30:06 +08:00
moteus
920bc97629 Build with Lua 5.2 without LUA_COMPAT_MODULE flag.
LUASOCKET_USE_GLOBAL flag enable create global variables when load socket/mime modules.
2013-05-27 12:45:09 +04:00
moteus
e54f78c61c Fix. setsockname fails with "*" as host.
Add. test_bind.lua
2013-05-27 11:25:31 +04:00
moteus
56dbda39ed Fix. getaddrinfo returns garbage as address on Windows.
Add. test_getaddrinfo.lua
2013-05-27 11:20:52 +04:00
Diego Nehab
427220c7b1 Merge tryconnect6 into inet_tryconnect. 2013-05-26 21:26:26 +08:00
Diego Nehab
6d93fd7c8f Fix socket.connect
Previous implementation was not making sure the socket
had the same family as the addr returned by getaddrinfo.
So instead of "connection refused", we could get "invalid
argument", which was our fault.
2013-05-26 15:18:13 +08:00
Diego Nehab
22107bb9fc Check linux build. 2013-05-25 07:25:02 -03:00
unknown
bb0b31301a Add MingW support. 2013-05-25 18:07:38 +08:00
unknown
cbc77440c8 Merge branch 'lua52-mingw' of https://github.com/pkulchenko/luasocket into pkulchenko 2013-05-24 18:33:43 +08:00
Paul Kulchenko
5a58786a39 Added inet_pton/inet_ntop for MinGW on Windows; compiles with Lua52. 2013-04-07 12:39:56 -07:00
Gerardo Marset
56893e9dcd Use the length operator (#) instead of table.getn.
table.getn was deprecated in Lua 5.1 in favor of #, the length operator.
See: http://www.lua.org/manual/5.1/manual.html#7.2
2013-02-25 20:28:28 -02:00
Diego Nehab
d548a78e55 Cookie modifications. 2013-01-10 01:10:34 -02:00
Diego Nehab
72a5347f97 Remove warnings and fix makefile for Win32. 2012-12-11 17:43:49 -02:00
Diego Nehab
618ce43ee3 Fix socket_accept usage to depend on family. 2012-12-11 16:35:27 -02:00
Diego Nehab
9d97d39575 Fix ltn12 version. 2012-12-10 15:50:44 -02:00
Diego Nehab
a4b45edef2 Merge pull request #25 from ewmailing/unstable
Copied socket_gaistrerror implementation from usocket to wsocket to allo...
2012-12-10 09:31:13 -08:00
Eric Wing
5c467b3954 Copied socket_gaistrerror implementation from usocket to wsocket to allow Windows version to compile because it is missing the function. EAI_OVERFLOW and EAI_SYSTEM are commented out because they don't exist on Windows. 2012-11-20 12:58:52 -08:00
Pierre Chapuis
ffddaf4a2e fix use of arg in ltn12 2012-09-17 23:44:04 +02:00
Diego Nehab
a402222464 Merge pull request #22 from Florob/smtp
Send SMTP AUTH LOGIN response using tp:send(). Fixes #18
2012-08-23 15:34:43 -07:00
Diego Nehab
6368caeb5a Fix udp:setpeername("*")
There seems to be a curious difference between MacOS and
Linux and I am not sure if this is documented. When you
break a "connection" on Mac OS, you only eliminate the peer
association, but the local address remains bound. On Linux,
breaking a "connection" eliminates the binding to the local
address. Have you guys ever come accross this?

Another irritating difference is that connect() returns the
error EAFNOSUPPORT on Mac OS. I am going to ignore all
errors when the reason for calling connect() is simply to
break the "connection".
2012-08-23 19:31:15 -03:00
Florian Zeitz
32e7a107e2 Send SMTP AUTH LOGIN response using tp:send(). Fixes #18
tp:command() uppercases the command.
Without a command we would end up with a space in
front of the data. Therefore use send() directly here.
2012-08-07 00:01:48 +02:00
Diego Nehab
f329aae724 Fix HORRIBLE but in b64/qp code.
Bug was caught by user moteus.
Code was checking if arguments was nil after using
luaL_Buffer code, which messes with the stack.
Simple to fix, though.
2012-08-01 03:06:09 -03:00
Diego Nehab
54ffcd483f Fixed default Linux path to work with Ubuntu
Also fixed clean target to remove serial objects
2012-08-01 02:13:27 -03:00
Diego Nehab
6370b61414 Merge pull request #20 from Florob/sendto
IPv6 support for udp:sendto() and udp:receivefrom()
2012-07-31 22:04:06 -07:00
Diego Nehab
5616f3a0ae Merge pull request #15 from darkrain42/unstable
tcp: Initialize clnt->family in :accept()
2012-07-31 22:02:10 -07:00
Florian Zeitz
7503bb0ca3 Add IPv6 support to udp:receivefrom() 2012-07-18 21:05:30 +02:00
Florian Zeitz
a6cf48596d Add IPv6 support to udp:sendto() 2012-07-17 19:02:20 +02:00
Paul Aurich
d777341eaf tcp: Initialize clnt->family in :accept()
Also unconditionally zero out the structs when allocated, for
good measure.
2012-05-21 19:44:08 -07:00
Kim Alvefur
36461db5bb src/makefile: Use install instead of cp and mkdir. 2012-05-15 18:44:38 +02:00
Kim Alvefur
c624761d32 src/makefile: Move mkdir to a variable 2012-05-15 18:27:46 +02:00
Diego Nehab
05535a19f8 Improve makefile to allow overriden variables
Before this change, it was difficult to set default
directories for different platforms that would still
work with different Lua versions.
2012-05-11 15:33:47 +08: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
Diego Nehab
3d3e69c6e4 Merge pull request #8 from sam-github/fix-confusing-servname-reference
Reword error msg to distinguish between service and server
2012-05-08 11:52:23 -07:00
Diego Nehab
1bb586d655 Merge pull request #7 from sam-github/fix-makefiles
Rework makefiles to simplify setting and choosing build options.
2012-05-08 11:51:25 -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
Sam Roberts
c291383ce2 Rework makefiles to simplify setting and choosing build options.
Includes documentation for common build settings, reasonable
defaults, and ability to set common build options in the
environment.
2012-05-08 10:51:56 -07:00
Florian Zeitz
0c3e067af1 Add a getnameinfo() wrapper
This wrapper takes a domain name or an IP as first argument
and a service name or port as second argument.
Either argument may be nil.

It returns a list of names (always only one in the IP case) and a
service name.
2012-05-05 02:13:56 +02:00
Sam Roberts
e86eac96fa :shutdown() errors on all invalid argument strings
It used to error only on invalid argument strings that started with 's',
'r', or 'b'.
2012-04-26 16:50:27 -07:00
Diego Nehab
c2e29537f5 Fixed getpeername/getsockname situation
- Added IPv6 support to getsockname
- Simplified getpeername implementation
- Added family to return of getsockname and getpeername
and added modification to the manual to describe
2012-04-24 00:47:30 +08:00