aboutsummaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)Author
2013-01-15Allow raw socket options for TCP and SSLFred Hebert
This patch lets the user set and use raw socket options as described in inet:setopts/2 documentation. The raw options can be useful to use TCP features that are platform- specific and not supported in inet in general, such as TCP_DEFER_ACCEPT or TCP_LINGER2 in linux stacks, for example.
2012-12-24Update version to 0.6.00.6.0Loïc Hoguin
2012-12-24Add #ninenines IRC channel + support options to the READMELoïc Hoguin
2012-12-24Update AUTHORSLoïc Hoguin
2012-12-24Update ROADMAPLoïc Hoguin
2012-12-24Improve max_connections typeLoïc Hoguin
It is non_neg_integer() | infinity. Introduce the type `ranch:max_conns/0` for easier manipulation.
2012-12-24Add ranch:set_max_connections/2 and get_max_connections/1Loïc Hoguin
2012-12-21Merge branch 'fix/listener_sup_failures' of git://github.com/keynslug/syncranchLoïc Hoguin
2012-12-21Assure we manually close right socket in testcasesAndrew Majorov
Concerning supervisor tests subtle issue. Before we just presumed that last port in the global list of ports is the listening socket. From now we trace the return value of the `ranch_tcp:listen` call.
2012-12-21Ensure transport module is loaded before checking exportsAndrew Majorov
Tests were constantly failing without this patch. It seems ct starts erlang code server in interactive mode, so application module loading is defered.
2012-12-21Test cases for the listener supervisor behaviorAndrew Majorov
2012-12-21Fix for cases when listener dies before acceptorsAndrew Majorov
2012-12-21Make listener supervisor failures less painfulAndrew Majorov
Two general issues were addressed. The first one is the issue with statically defined pids passed into childspecs. This issue prevents regular supervisor' children restarts in the case of someone's failure. The second one is the not quite appropriate restart strategy. Changed to rest_for_one which in pair with previous fixes assures that live connections will not die in the case of partial failure. Among possible failures are listening socket shutdown or frequent accept errors.
2012-12-20Merge branch 'adt-socket-transport-opt' of git://github.com/basho/ranchLoïc Hoguin
2012-12-20Add {socket, Socket} transport option, for accepting on existing socketsAndrew Thompson
2012-12-20Return {error, badarg} if start_listener got a bad transport moduleLoïc Hoguin
2012-12-13Improve guide on listening on privileged portsLoïc Hoguin
Making people happy one IRC channel at a time.
2012-12-01Add Transport:sendfile/2 supportLoïc Hoguin
Uses file:sendfile/2 for TCP, a fallback function for SSL.
2012-12-01Fix typespecs for Transport:send/2Loïc Hoguin
2012-11-22Small clarification on the last ssl_auth snippetLoïc Hoguin
2012-11-22Add "SSL client authentication" chapter to the guideLoïc Hoguin
2012-11-20Error out if Ranch can't be started in the test suiteLoïc Hoguin
2012-11-13Better markdown in the READMELoïc Hoguin
2012-11-12Add two values to Ranch application for private useLoïc Hoguin
2012-11-12Fix Markdown in the guideLoïc Hoguin
2012-11-12Allow IP tuples and more when connecting transportsLoïc Hoguin
2012-10-24Allow passing the 'verify' option in ranch_sslLoïc Hoguin
2012-10-24Small README fixesLoïc Hoguin
2012-09-26Add the {nodelay, boolean()} option controlling TCP_NODELAYLoïc Hoguin
Enabled by default. A comprehensive explanation about TCP_NODELAY and the Nagle algorithm can be found at http://www.stuartcheshire.org/papers/NagleDelayedAck/
2012-08-22Update version to 0.4.00.4.0Loïc Hoguin
2012-08-22Add initial Ranch guideLoïc Hoguin
2012-08-20Add the 'ranch_protocol' behaviourLoïc Hoguin
2012-08-20Add the 'ranch_transport' behaviourLoïc Hoguin
At the same time we make the 'port' option optional, defaulting to 0.
2012-08-15Add tests for {active, once} for both TCP and SSLLoïc Hoguin
2012-08-07Add a TCP Echo protocol exampleLoïc Hoguin
2012-08-06Make ranch_sup the owner of the ranch_server ets tableLoïc Hoguin
Should prove itself more robust when things go wrong.
2012-08-06Check the accept/2 return value for errorsLoïc Hoguin
Distinguish the errors from transport_accept and ssl_accept in ranch_ssl. {error, closed} for the first one means the listening socket got closed; for the second one it means the connection socket was. Ignore all errors except when the listening socket got closed, where we want to crash to allow opening the socket again.
2012-08-06Make accept asynchronousLoïc Hoguin
Ranch now accepts connection asynchronously through a separate process. The accept process is linked to the acceptor, calls accept and does nothing else but send the socket back to the acceptor. This allows us to receive messages in the acceptor to handle upgrades instead of polling. This will also allow us later to make acceptors system processes. Remove support for connection pools in favor of a simpler max_connections setting. Connections can be removed from the count, allowing us to have as many long-lived connections as we want while still limiting the number of short-lived ones. Add max_connections, max_connections with long-lived connections, and upgrade tests.
2012-07-25Make acceptors query the protocol opts on startupLoïc Hoguin
This way, if a crash happens in one of them after a protocol options upgrade has occured, the restarted acceptor will get the upgraded options as expected, and not the initial ones.
2012-07-25Register acceptors through ranch_serverLoïc Hoguin
2012-07-25Introduce the ranch_server registry, make it handle listenersLoïc Hoguin
2012-07-22Add an SSL testLoïc Hoguin
2012-07-22Add support for listening on random port numbers (port 0)Loïc Hoguin
ranch:get_port/1 returns the given listener's port.
2012-06-04Add Transport:connect/3 and remove types unneeded by R15B+0.2.1Loïc Hoguin
Also use one export per line to improve future diffs. Bump the version to 0.2.1 to reflect this change.
2012-04-14Update version to 0.2.00.2.0Loïc Hoguin
2012-04-14Import the acceptor code from CowboyLoïc Hoguin
Modules were renamed. The 'cowboy_' prefix became 'ranch_'. At the same time, ranch_ssl_transport became ranch_ssl, and ranch_tcp_transport became ranch_tcp, because appending '_transport' felt a bit redundant considering SSL and TCP clearly are transports. One test has been added to make sure everything is working.
2012-04-12Initial commit.Loïc Hoguin