Martijn Otto
979128782b
Merge pull request #76 from maxim-ky/master
...
Made some destructors virtual and fixed a user-after-free bug
2016-07-04 09:38:31 +02:00
Maksim Kuzevanov
e3b7e6abd6
fix undefined behaviour due to a reference to a destroyed temporary object
2016-07-01 17:29:40 +03:00
Maksim Kuzevanov
1dcbc33b53
make it compile with cmake 2.8/gcc 4.7.3
2016-07-01 17:29:35 +03:00
Martijn Otto
17693ef549
Correctly remove the dependency files on clean and fix frame errors on architectures where chars default to unsigned,
...
fixes issue #52
2016-07-01 16:00:44 +02:00
Martijn Otto
b91e0589f6
Updated cmake lists and added include, closes issue #75
2016-06-28 14:14:07 +02:00
Martijn Otto
2f1851728c
Merge pull request #72 from XeCycle/fionread-solaris
...
Some portability fixes for Solaris-like systems
2016-06-27 10:57:24 +02:00
javeme
49eef84883
Bugfix: add missing include "includes.h" for deferredconsumerbase.cpp
...
When I compiled on the windows, there was a lot of errors like:
error C2065: "xxx": undeclared identifier...
2016-06-27 00:37:31 +08:00
Carl Lei
6d71b73063
portability fix for FIONREAD on Solaris
2016-06-25 20:15:12 +08:00
Martijn Otto
434a0fad52
Merge branch 'master' of github.com:CopernicaMarketingSoftware/AMQP-CPP
2016-06-23 14:43:10 +02:00
Martijn Otto
2c60151d31
Only allocate a message and its data when a consumer wants to and allow consumers to receive the individual parts
2016-06-23 14:42:50 +02:00
Emiel Bruijntjes
5e88fd3e75
fixed reallocation bug
2016-06-22 13:49:49 +02:00
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