Emiel Bruijntjes
f05aba0782
added TcpConnection::fileno() to expose the internal filedescriptor / socket
2017-12-12 17:10:51 +01:00
Emiel Bruijntjes
562703b1cf
renamed major() and minor() methods of the ConnectionStartFrame class to fix warning from new gcc version that these function names are more or less reserved
2017-11-01 08:20:52 +01:00
Emiel Bruijntjes
49337d078d
heartbeats will now only be sent if the connection is idle
2017-06-19 10:24:03 +02:00
Emiel Bruijntjes
a091921e88
added connection::heartbeat() method, userspace programs are responsible for calling this method once every 60 seconds
2017-06-16 10:14:42 +01:00
Rafal Goslawski
a976f5bea4
removed unneeded reference to endian.h. fixes #123
2017-05-04 15:15:51 +02:00
RafalGoslawski
5e895f3b9f
Update CMakeLists.txt. fixes #123
2017-05-04 11:34:17 +02:00
Emiel Bruijntjes
16e2d21aa3
fixed issue that a tcp connection could crash if the user space code deconstructed a handler in a onClosed() handler
2017-04-26 15:33:17 +02:00
Okke
bdae991324
Moved header files to include/ because of broken header dependencies
2017-03-09 11:53:13 +01:00
Emiel Bruijntjes
71eba4c5d3
prevent copying of buffers
2017-03-09 09:25:26 +01:00
Emiel Bruijntjes
1f5f641d8b
we now use passthrough buffers, so we no longer have to dynamically allocate a buffer for each and every outgoing message
2017-03-09 00:18:53 +01:00
Emiel Bruijntjes
00b81949d3
the AMQP::Message and AMQP::Envelope objects can now longer be copied or moved, and the signatures for creating an envelope and publishing a message have been made much more strict. This could be a API breaking change, to the version number should be upped
2017-03-08 13:32:51 +01:00
Okke
c6608cee0a
Added even more debug code for the channelimpl class
2017-03-07 10:10:11 +01:00
Okke
055431de6e
Fixed compilation issue due to recent changes in ChannelImpl
2017-03-03 12:56:54 +01:00
Emiel Bruijntjes
ed2ffd3f03
added method tcpconnection::flush()
2016-09-19 10:19:06 +02:00
Emiel Bruijntjes
173225071e
we no longer use "emit" for method names, because it seems to conflict with the Qt library that uses emit as some sort of macro
2016-09-10 20:36:06 +02:00
theirix
e6e70e69de
Removed unneeded const qual
2016-09-02 22:44:11 +03:00
Emiel Bruijntjes
383914c0c7
Merge pull request #80 from theirix/sigpipe-osx
...
Avoid SIGPIPE on OS X without MSG_NOSIGNAL
2016-07-27 05:09:44 -04:00
theirix
fbe287c795
Build shared library with CMake
...
Added option BUILD_SHARED to build shared library instead of static.
2016-07-10 22:24:24 +03:00
theirix
66f2001c7b
Avoid SIGPIPE on OS X without MSG_NOSIGNAL
...
OS X does not have Linux-specific option MSG_NOSIGNAL.
SIGPIPE can be avoided on OS X by using sockopt SO_NOSIGPIPE.
Credits: https://noahdesu.github.io/2014/01/16/port-sendmsg.html
2016-07-10 21:44:14 +03:00
David van Erkelens
ad9171f226
Changed writev to sendmsg to prevent SIGPIPE errors
2016-07-06 14:08:45 +02:00
Emiel Bruijntjes
aad09a1dd2
work in progress to prevent SIGPIPE signals (this is going to fix #79 )
2016-07-06 13:03:51 +02:00
David van Erkelens
dddd16b74d
Make sure single gets are processed correctly as well
2016-07-05 16:39:12 +02:00
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