Commit Graph

139 Commits

Author SHA1 Message Date
Emiel Bruijntjes 3d9b5b444b fixed issues that caused reading data to be broken 2016-06-15 14:50:33 -04:00
Emiel Bruijntjes 99abd157e5 removed tcpbuffer and replaced it with a tcpoutbuffer 2016-06-15 13:41:14 -04:00
Emiel Bruijntjes bc01c82e80 added buffer 2016-06-15 13:32:40 -04:00
Emiel Bruijntjes 24c8527b5d added tcpinbuffer with much less allocation 2016-06-15 13:32:30 -04:00
Emiel Bruijntjes 6320e2ae0e added consistent-hash exchange (same as pull request #68) 2016-06-15 11:20:31 -04:00
Emiel Bruijntjes 59830c659c added connection::maxFrame() and connection::expected() methods to give hints about the amount of data that the connection::parse() method ideally expects 2016-06-15 04:57:46 -04:00
Jan Westerdiep 7384b521ac small legibility fixes 2016-06-10 15:21:10 +02:00
hoxnox 6e31cecdbd Buildfix: tcpconnection.cpp added to build sources 2016-03-27 22:17:40 +03:00
Emiel Bruijntjes 1681fd6072 Merge pull request #51 from indrekj/yosemite
Fix compiling on OS X Yosemite
2016-03-22 09:21:19 +01:00
Aljar Meesters 70a7565c4e fixed bug when connection goes out of scope 2016-03-04 17:34:28 +01:00
Emiel Bruijntjes a5e86d4b95 Merge pull request #55 from swordflychen/master
fix `std:max` type mismatch
2016-02-22 16:38:41 +01:00
Martijn Otto 89c2075a5f Fix segfault when the handler is destructed from within a callback 2016-01-15 14:19:09 +01:00
Jerry Chen 2e350040b4 fix `std:max` type mismatch
env:
```
OS: Centos6.5 Linux 2.6.32-431.el6.i686
gcc: 4.8.2
```
make error:
```
g++ -Wall -c -I. -std=c++11 -g -fpic -o tcpconnection.o tcpconnection.cpp
In file included from tcpconnected.h:19:0,
                 from tcpresolver.h:22,
                 from tcpconnection.cpp:14:
tcpbuffer.h: In member function ‘ssize_t AMQP::TcpBuffer::receivefrom(int)’:
tcpbuffer.h:406:66: error: no matching function for call to ‘max(long int, int&)’
         if (result < available) buffer.resize(std::max(0L, result));
                                                                  ^
tcpbuffer.h:406:66: note: candidates are:
In file included from /usr/local/include/c++/4.8.2/bits/char_traits.h:39:0,
                 from /usr/local/include/c++/4.8.2/string:40,
                 from includes.h:14,
                 from tcpconnection.cpp:13:
/usr/local/include/c++/4.8.2/bits/stl_algobase.h:216:5: note: template<class _Tp> const _Tp& std::max(const _Tp&, const _Tp&)
     max(const _Tp& __a, const _Tp& __b)
     ^
/usr/local/include/c++/4.8.2/bits/stl_algobase.h:216:5: note:   template argument deduction/substitution failed:
In file included from tcpconnected.h:19:0,
                 from tcpresolver.h:22,
                 from tcpconnection.cpp:14:
tcpbuffer.h:406:66: note:   deduced conflicting types for parameter ‘const _Tp’ (‘long int’ and ‘int’)
         if (result < available) buffer.resize(std::max(0L, result));
                                                                  ^
...
```
2016-01-15 13:44:29 +08:00
Toon Schoenmakers d6f6dba660 Better to set multiple socket flags at once 2015-12-22 15:02:37 +01:00
Emiel Bruijntjes 226ef47beb socket connections have close-on-exit bit set 2015-12-14 20:20:03 +01:00
Emiel Bruijntjes e2ce7103aa disable the nagle algorithm to speed up write operations to the tcp connections (and dramatically improving write performance) fixes issue 50 2015-12-07 14:05:49 +01:00
Indrek Juhkam 40687f3572 Include sys/uio.h to fix writev compile error on os x 2015-12-04 20:09:32 +02:00
Indrek Juhkam 767fb175b1 Provide an alternative to pipe2() on non-Linux systems 2015-12-04 19:38:24 +02:00
Toon Schoenmakers 93a0b60b6e clients can now intercept the heartbeat negotiation, and install a shorter of longer heartbeat interval, and clients can be notified for received heartbeat frames 2015-12-02 10:46:55 +01:00
Emiel Bruijntjes 9ec63a1869 Merge branch 'master' of https://github.com/CopernicaMarketingSoftware/AMQP-CPP 2015-11-28 12:02:22 +01:00
Emiel Bruijntjes 155c989db5 added "override" keywords to overridden methods, fixed buffer overflow in setting up a connection 2015-11-28 11:38:15 +01:00
Emiel Bruijntjes 38e4b97eed fixed that tcp connection ended up in an infinite loop when write operation failed because of broken pipe 2015-11-23 09:40:54 +01:00
Emiel Bruijntjes 08574bcf96 remove fpic from makefile 2015-11-17 13:08:38 +01:00
Emiel Bruijntjes 3ef9cf47b5 Merge branch 'master' of https://github.com/CopernicaMarketingSoftware/AMQP-CPP 2015-11-10 15:29:37 +01:00
Emiel Bruijntjes 41b07672e0 fixed possible crash when connection was destructed while it was still busy resolving the domain name 2015-11-10 15:29:25 +01:00
Toon Schoenmakers 1aeb0ca530 if Connection::close() was called before the handshake was completed, the instructions that were sent in the middle were not sent to the server 2015-11-06 16:02:01 +01:00
Toon Schoenmakers 1cc86e79e8 fix detection of connections that are closed by the server 2015-11-06 15:17:41 +01:00
Emiel Bruijntjes 1370afee94 fix compile error 2015-11-04 13:10:05 +01:00
Emiel Bruijntjes 23fa396683 fix compile error 2015-11-04 13:06:28 +01:00
Emiel Bruijntjes dcf0b3576b fix issue when tcp is closed 2015-11-04 13:05:03 +01:00
Emiel Bruijntjes bfdca4825a added "make pure" option, to make the library without tcp support 2015-11-02 09:08:30 +01:00
Emiel Bruijntjes 89efd4670f fix windows build 2015-11-01 11:11:51 +01:00
Emiel Bruijntjes 0e5024d38a Merge pull request #47 from keenlogics/Heartbeat
The server heartbeat is stored in Connection
2015-11-01 05:03:02 -05:00
Emiel Bruijntjes 481b35ced5 Merge branch 'master' of https://github.com/CopernicaMarketingSoftware/AMQP-CPP 2015-11-01 10:50:56 +01:00
Emiel Bruijntjes d41423d5db Added TcpChannel class so that Connection and Channel class are once again completely protocol agnostic 2015-11-01 09:51:43 +01:00
Emiel Bruijntjes b4bd61580b fixed to parsing incoming tcp data 2015-11-01 09:43:17 +01:00
Emiel Bruijntjes df801953a1 improvements to work directly with tcp connections 2015-10-31 21:13:41 +01:00
Emiel Bruijntjes 189d6c9ef1 added Connection::waiting() method to find out if the connection object is waiting/expecting an answer from the rabbitmq server 2015-10-31 18:26:52 +01:00
Emiel Bruijntjes f3955bcd51 implemented TcpConnection, so that users of the library do not have to setup their own tcp connections 2015-10-31 18:26:04 +01:00
Toon Schoenmakers d79e0e7c7e Added a static_fpic target so we can statically link this library into other libraries
Also got rid of the -flto, which is pretty useless in libraries anyway.
2015-10-30 14:29:55 +01:00
Sebastian Melinat 74a1a17553 During the handshake the heartbeat duration the server wants is stored in the connection so that clients can retrieve and use it for error detection 2015-10-21 15:26:53 +02:00
Jakub Stefanski 6782a7bfd4 Fix Windows build
Fixed windef.h shadowing of 'max' definition and added LEAN_AND_MEAN
definition for more lightweight build.
Added missing 'functional' includes.
2015-10-02 15:54:15 +02:00
Martijn Otto b6c88febbd Special treatment for Mac OS X: It uses a different parameter for setting the soname 2015-07-01 10:04:40 +02:00
RafalGoslawski bcf77ea1c8 Add soname and release build traget, default make target is debug 2015-05-19 13:51:36 +02:00
Martijn Otto a93b88697d Fix double ready bug for channel, fixes #25 2015-05-18 10:56:50 +02:00
Martijn Otto 7ae4f9c5ff Fixed a bug in the envelope, easy retrieval of field type and improved casting operators for numeric fields 2015-05-05 13:38:20 +02:00
Martijn Otto fcc9522e16 Some bugfixes and performance enhancements 2015-04-30 14:18:18 +02:00
Martijn Otto 45deeaa754 Fixed a bug where a frame could be sent exceeding the maximum frame size (resulting in protocol errors) and added some optimizations 2015-04-30 10:59:03 +02:00
Martijn Otto b9caf0199d Received messages are now moved into the callback instead of provided as a const reference 2015-04-28 10:58:49 +02:00
Emiel Bruijntjes ad3b95741e various trics and changes so that windows compilers, and 32bit systems will not complain about stuff 2015-04-24 10:46:44 +02:00