Commit Graph

159 Commits

Author SHA1 Message Date
Alexandru Scvortov 4343df471e expose connection_timeout amqp_params_network option 2011-10-24 15:11:04 +01:00
Alexandru Scvortov 680957725b merge default into bug23117 2011-07-18 14:52:56 +01:00
Alexandru Scvortov 8cd2f37cdd refactor 2011-07-13 12:27:19 +01:00
Alexandru Scvortov 227f0db0f4 reorder clauses and complete specs 2011-07-11 17:29:42 +01:00
Matthew Sackman 339d9473c2 Define ssl port as normal port -1, as we used to 2011-07-10 12:57:26 +01:00
Alexandru Scvortov 8b4fe69c2f handle_info instead of handle_down 2011-07-05 15:42:48 +01:00
Alexandru Scvortov 7cb1e09e09 undefined instead of auto
Because that's a bit more commonly used (e.g. the shovel uses it)
2011-07-05 11:24:15 +01:00
Alexandru Scvortov 0b8d25b4e6 auto-select ports for normal and ssl connections
Also, unbreak SSL tests.
2011-07-04 12:19:04 +01:00
Alexandru Scvortov abec59c14f use monitors instead of links
The consumer module is notified via handle_down/4 that a process it
was monitoring went down.
2011-06-29 12:42:31 +01:00
Alexandru Scvortov a0edd38fba remove channel:subscribe
It's enough to
  amqp_channel:call(Ch, #'basic.consume'{queue = Queue})
now.

The consumer module is also notified of basic.consume methods, so it
can associate Pids with Tags at that point.
2011-06-29 11:32:24 +01:00
Alexandru Scvortov c30773776a turned consumers into separate processes 2011-06-28 15:24:22 +01:00
Simon MacMullen df2569d084 Add an additional info mechanism to the adapter info record. I'm not sure whether this draws the line in the right place, but adding 8 SSL fields to that record didn't feel right. 2011-06-07 18:07:31 +01:00
Vlad Alexandru Ionescu d41da6b2a0 adding possibility of deferred reply in gen consumer's handle_call callback; doc tweak in selective consumer; fixing reply on error in subscribe 2011-06-03 20:32:16 -05:00
Vlad Alexandru Ionescu 8ebc517a29 removing documentation dummy functions in amqp_gen_consumer.erl; fixing license year for new files; fixing style in amqp_gen_consumer's specs 2011-06-03 18:00:46 -05:00
Vlad Alexandru Ionescu af065e3315 merging in from default 2011-06-03 17:01:38 -05:00
Simon MacMullen 5650f0fed0 Separate out different types for network and direct connections, don't check the password for direct ones. 2011-05-03 15:35:25 +01:00
Vlad Alexandru Ionescu 68e174810e fixing amqp_gen_consumer specs and doc 2011-04-19 16:35:14 -05:00
Vlad Alexandru Ionescu 4648e51782 merging in from default 2011-04-19 14:05:07 -05:00
Vlad Alexandru Ionescu 077275abf5 adding amqp_direct_consumer and amqp_selective_consumer implementations; fixing tests 2011-03-30 18:55:19 +01:00
Vlad Alexandru Ionescu e9b272e7ad introducing initial amqp_gen_consumer 2011-03-30 14:30:31 +01:00
Simon MacMullen a7e7d367de Restart bug23350. This sort of works, but still has the problem that connections and channels do not line up. 2011-03-15 17:03:19 +00:00
Matthew Sackman a9880d4a29 Rename 2011-02-21 17:30:26 +00:00
Matthew Sackman b1454d8e0a Add support for consumer death notifications 2011-02-17 17:42:26 +00:00
Matthew Sackman 54ce5ad9fe Adjust direct connection and reabstract to pass through capabilities to direct client channels and over network connection 2011-02-14 18:11:28 +00:00
Vlad Alexandru Ionescu 2359429a5a merging in from default 2011-01-27 13:48:49 +00:00
Vlad Alexandru Ionescu 41f73f2a80 updating license year 2011-01-20 15:40:16 +00:00
Vlad Alexandru Ionescu 8a36584a8f adding support for connecting to broker in another cluster via direct connection 2011-01-19 21:25:44 +00:00
Simon MacMullen a1a26d97cd Pluggable auth mechanisms in the Erlang client, with PLAIN and AMQPLAIN implementations. 2010-11-12 18:32:38 +00:00
Vlad Alexandru Ionescu 9bdcfde17f updating license boilerplate 2010-11-04 17:35:36 +00:00
Vlad Alexandru Ionescu eed0fd2ab2 updating license boilerplate in all files 2010-10-28 16:37:10 +01:00
Vlad Alexandru Ionescu 7196bfac10 merging in from default 2010-08-03 17:06:50 +01:00
Vlad Alexandru Ionescu 992f3ab86e merging in from default 2010-08-02 15:32:44 +01:00
Simon MacMullen 7a5eb8b177 Move changes from amqp_0_9_1 branch to a bug branch. 2010-08-02 15:07:26 +01:00
Vlad Ionescu e51fb6db69 major refactoring to supervise all processes; amqp_connection_{network,direct} processes now lives under amqp_connection_sup which uses amqp_infra_sup; amqp_channel now lives under amqp_channel_sup which uses amqp_infra_sup; amqp_channel_sup lives under amqp_channel_sup_sup which lives under amqp_connection_sup; adapting all processes to work with the supervision model; changing the way to start connections in the API; other smaller fixes 2010-07-26 17:31:21 +01:00
Simon MacMullen fe89002e24 Fix up the Erlang client. 2010-07-02 16:04:46 +01:00
Simon MacMullen 8a61be28ef Make the Erlang client work again. 2010-06-25 12:01:12 +01:00
Vlad Ionescu 10634c3216 additional client properties can now be supplied through #amqp_params 2010-02-14 18:41:32 +00:00
Ben Hood c8e54fc858 Added maximum negotiation and protocol version checking 2009-11-05 17:54:10 +00:00
Ben Hood 525987fa50 Merged default into bug21619 2009-11-05 15:39:18 +00:00
Vlad Ionescu 3f64bb7338 better channel number choosing algorithm; using channel_max field in 'connection.tune' 2009-10-28 21:54:47 +00:00
Vlad Ionescu 3bf9936704 moving rpc server and client state records to their respective modules; adding rpc_test to the direct client suite as well 2009-10-28 16:59:36 +00:00
Vlad Ionescu cdb3e96174 splitting amqp_connection; removing driver modules; adding module for main reader; adding amqp_channel_util module; all tests pass, need to review and test further, some code duplication to be removed 2009-10-21 20:44:27 +01:00
Vlad Ionescu e7687ed879 merging from default 2009-10-16 16:28:16 +01:00
Vlad Ionescu 1040e55b17 removing use of gen_event in return handler; trapping EXITs from handlers to unregister them 2009-10-14 21:08:24 +01:00
Vlad Ionescu cd418bc188 major redesign of amqp_connection's closing mechanism 2009-10-14 16:37:46 +01:00
Vlad Ionescu 35356e4143 framing channel is now started from the channel process and monitored by the main reader; refactoring exit trapping in amqp_connection; refactoring channel registration in amqp_connection 2009-09-11 17:15:38 +01:00
Vlad Ionescu 6358042351 refactoring open_channel: now mostly done in the channel process - simpler, more readable; refactoring of managing the framing channel to follow 2009-09-11 13:41:03 +01:00
Ben Hood 684312d70e Introduced a closing state when the broker initiates the shutdown. This allows
the socket reader process to wait for the broker to close the socket (or
timeout) before stopping amqp_connection process. Squirrel the close
reason away in the state of the connection process. The resulting EXIT message
from the reader process is trapped and then the close reason that was
squirreled away can is used as the EXIT reason of the amqp_connection
process.

Because the amqp_channel process links to the connection process, it will
receive the same EXIT reason and return it to whatever application
process is using the amqp_channel process.

The network driver sees some minor defintion cleanups as well as removing
the link between the amqp_channel_process and the rabbit_framing_channel
process -
this is because the amqp_channel is not able to sensibly handle any exit
the framing channel will send.

Made the teardown routine assert that the channel and connection
processes are in actual fact dead after having closed the connection for every test.

The connection process does not shutdown synchronously.

Also put some repetitions into the tests that were experiencing race conditions.
2009-09-01 13:47:40 +01:00
Ben Hood c7d1554a90 Somehow some io:formats got merged in from the SSL branch I think 2009-08-27 16:05:38 +01:00
Matthew Sackman 2bcad96b6c merge in from default 2009-08-26 16:51:27 +01:00
Ben Hood 37782188e8 Got rid of all io:format calls 2009-08-25 23:32:10 +01:00
Matthew Sackman f33199844a merging in from default 2009-08-25 14:25:07 +01:00
Matthew Sackman ee63ef3a3e merging in from default 2009-08-25 14:00:34 +01:00
Ben Hood 73ecdc58f0 Put a default in for the payload field 2009-08-25 11:44:56 +01:00
Ben Hood c512cfa057 Got all tests working 2009-08-21 19:15:27 +01:00
Ben Hood d738b45fd1 The host name in gen_tcp:connect/3 is a list, not a binary 2009-08-21 17:28:38 +01:00
Ben Hood 9885f7a673 Merged default into bug21336 2009-08-19 10:11:31 +01:00
Ben Hood f2a4cebb38 Deleted code references to amqp_util, just the documentation is left 2009-08-19 00:51:25 +01:00
Ben Hood 80697b3b1c rabbit.hrl and rabbit_framing.hrl now get included in amqp_client.hrl 2009-08-18 18:21:04 +01:00
Ben Hood ceca7be9e5 Fixed some QA remarks 2009-08-16 18:03:29 +01:00
Ben Hood 73d513c8f1 Completed edoc comments, made the amqp_client.hrl include the necessary server headers 2009-08-16 15:45:50 +01:00
Ben Hood 6e07c58f38 Merged bug21406 into default 2009-08-14 18:28:29 +01:00
Matthias Radestock 83720498d7 introduce #amqp_connection_parameters
containing sensible defaults. This is used in all the
amqp_connection:start* methods, replacing the bewildering variety of
previou start* functions.
2009-08-13 07:33:25 +01:00
Matthias Radestock fd8010334c do not export amqp_connection:start_direct/3 2009-08-13 07:03:20 +01:00
Ben Hood 861d2e8f2a Introduced amqp_msg record to be friendlier to higher level code 2009-08-05 14:17:34 +01:00
Matthias Radestock 1b45959879 mostly cosmetic changes
but also:
- use (default) 'undefined' value to indicate absence of ssl opts
- consistently disambiguate start functions by guarding with is_list(SslOpts)
2009-07-21 11:48:54 +01:00
Essien Ita Essien 263fa7e894 Merge with upstream. Port can now explicitly specified 2009-07-21 09:42:19 +01:00
Vlad Ionescu 80c3941dda adding port number as optional parameter to start_connection; removing getting port number from env var 2009-07-10 15:45:27 +01:00
Essien Ita Essien 67410d07aa Just use a proplist. A record is an overkill 2009-01-12 13:38:59 +01:00
Essien Ita Essien 00c8e682ed Merge with upstream. 2009-01-12 13:16:02 +01:00
Essien Ita Essien fcab527afa Replace the 3 ssl fields in the connection_state record with a
single record 'sslopts'.
2009-01-12 12:18:03 +01:00
Ben Hood 70c7c81462 Merged default into 19373 2009-01-07 21:14:49 +00:00
Matthias Radestock ea798a505b merge bug19625 into default 2009-01-07 17:17:57 +00:00
Essien Ita Essien 7d36c0c6a6 Merge with rabbitmq.com repo 2008-12-29 09:02:04 +01:00
Ben Hood 4f4989ce13 Removed unecessary unsubscribe, replaced with channel close 2008-12-23 14:35:43 +00:00
Essien Ita Essien fb73ddff96 Extend the connection_state record to hold needed ssl info
cacertfile, certfile and keyfile
2008-12-20 23:14:05 +01:00
Ben Hood 53836566ae Removed unecessary flag 2008-12-07 16:31:42 +00:00
Ben Hood 33d6b53a3a Massaged module paramterization into something more manageable 2008-12-07 16:21:01 +00:00
Ben Hood 3b8618d974 Merged 19344 into 19625 2008-12-07 14:40:00 +00:00
Ben Hood d0fb16d27e RPC server does not have to be a process 2008-12-07 14:15:57 +00:00
Ben Hood 83194ea15f Merged 19560 into 19344 2008-12-07 13:44:56 +00:00
Ben Hood 9b74a90635 Removed queueing from amqp_channel:call/3 because it could get quite dodgy.
If for example the application times out, the messages will get silently get sent to the broker and the application will be none the wiser.
2008-11-12 23:35:29 +00:00
Ben Hood f7391f1cf5 Added publish call 2008-11-12 19:17:22 +00:00
Ben Hood 26cd77cc37 First cut at handling channel.flow in the Erlang client 2008-11-09 22:19:18 +00:00
Ben Hood 6c1106d5ca Added close handler to network driver 2008-10-27 16:15:19 +00:00
Ben Hood bbc32c42f9 Grepped occurances of tickets 2008-09-11 13:01:52 +01:00
Ben Hood cb8cc4fccb Grepped the source code for references to realms and removed them 2008-09-11 12:53:00 +01:00
Ben Hood 299b71265b Streamlined the client, got it to a compilable state 2008-09-07 23:53:39 +01:00
0x6e6562 fe61df8970 Converted tabs to spaces 2008-05-12 22:02:20 +00:00
0x6e6562 8ea9dde2b0 Channel Writer process is now shutdown in the network case 2008-05-12 20:31:22 +00:00
0x6e6562 2a20c05029 Subscriptions can now be requested concurrently 2008-05-12 18:02:16 +00:00
0x6e6562 00f52e9b86 Synchronous RPC requests are now queued up and dispatched serially 2008-05-09 22:55:14 +00:00
0x6e6562 e7014721d4 Added return handler for basic returns 2008-01-10 12:04:16 +00:00
0x6e6562 a308a6a3ae Ditched next_delivery_tag 2008-01-09 08:57:42 +00:00
0x6e6562 00f6419397 Removed unecessary tx setting 2008-01-07 17:46:31 +00:00
0x6e6562 5a821f018c Upgraded to rabbit 200712231445 snapshot 2008-01-06 22:05:00 +00:00
0x6e6562 0e68ca1411 Added supervisor behaviour for management 2007-12-10 23:26:40 +00:00
0x6e6562 b0b8cc3522 Added java interface to the rabbit_access_control module 2007-12-03 00:08:13 +00:00
simon@lshift.net 2771cc5efa Bug 17356: Add copyright headers since they're currently lacking 2007-10-29 13:33:02 +00:00
0x6e6562@gmail.com f4525ea336 merge of '0e53ebaee463865755981a06f200b7fce3a65534'
and '7941af4b3c4d5de328a342abdcc3513bf8221949'
2007-10-17 22:53:51 +00:00