Commit Graph

464 Commits

Author SHA1 Message Date
Emiel Bruijntjes 5ccfd858d1 removed examples from cmakelists 2016-10-03 23:23:39 +02:00
Emiel Bruijntjes 1392e2b873 removed examples because i did not write them, dont like the coding style, and people keep asking questions about why they dont work (questions that i cannot answer) 2016-10-03 23:22:08 +02:00
Emiel Bruijntjes 98d808e49d removed boost example dir because it was almost empty 2016-10-03 23:19:51 +02:00
Rafal Goslawski a1df9e482c Update Makefile 2016-09-22 13:20:56 +02:00
Emiel Bruijntjes ed2ffd3f03 added method tcpconnection::flush() 2016-09-19 10:19:06 +02:00
Emiel Bruijntjes 5bb7b1a36f added const char * constructors to AMQP::Login class 2016-09-15 12:53:55 +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
Martijn Otto afb04a8f30 Re-introduced the casting operators with a note explaining why we need this. 2016-09-05 10:11:31 +02:00
Emiel Bruijntjes c1b88fd42b Merge pull request #94 from theirix/self-casts
Fixed warnings: self-casts, const qual
2016-09-02 22:07:39 +02:00
theirix e6e70e69de Removed unneeded const qual 2016-09-02 22:44:11 +03:00
theirix c6643062b6 Removed unneeded self-cast operators
They are not used and caused a lot of warnings
while compiling and using AMQP-CPP
2016-09-02 22:33:12 +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
Martijn Otto 53dd7c74c5 Merge pull request #86 from ogapo/master
libuv drop in implementation for TcpHandler
2016-07-18 15:12:24 +02:00
Emiel Bruijntjes 3ceeeb9204 Merge pull request #85 from javeme/monitor-copy
Implement copy constructor for class Monitor
2016-07-18 04:41:14 -04:00
David Nikdel fd69a4c01d map closed sockets to both read and write
- this is more consistent with libev so probably will match what existing code expects
2016-07-16 20:43:19 -04:00
David Nikdel 584d92e751 can't use struct elaboration with typedef 2016-07-16 20:30:03 -04:00
David Nikdel 1e1ec0c133 Update libuv.h
- if status is not ok, report that as readable
- no need to stop uv_poll_t before changing events according to the docs
2016-07-16 20:27:00 -04:00
javeme 4b7874c5b6 Implement copy constructor for class Monitor
To support the instance copy of Monitor like the following:
    AMQP::Monitor monitor(consumer);
    consumer->bindExchange(exchange, AMQP::direct).onSuccess([&, monitor](){
        // do something when the consumer is ready!
        if(monitor.valid())
            consumer->doSomething();
    });
2016-07-17 00:54:42 +08:00
David Nikdel b8d2c0c600 fix casting 2016-07-14 23:49:31 -04:00
David Nikdel 5042b699bd create libuv.h based on libev.h 2016-07-14 23:30:43 -04:00
Martijn Otto fe01610e96 Merge pull request #81 from theirix/shared-cmake
Build shared library with CMake
2016-07-11 09:32:38 +02: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
Rafal Goslawski 14acb6bbed Bump version to 2.6.1 2016-07-08 15:20:57 +02: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 28d440449d Merge pull request #78 from maxim-ky/master
Add ln --relative to Makefile (install target)
2016-07-04 11:09:04 +02:00
Maksim Kuzevanov 9f1bf17a03 ln --relative in make install target 2016-07-04 11:58:38 +03:00
Martijn Otto 5d741bfd2d Merge branch 'master' of github.com:CopernicaMarketingSoftware/AMQP-CPP 2016-07-04 10:14:00 +02:00
Martijn Otto 5b40c04f2a Added documentation about missing RabbitMQ functionality 2016-07-04 10:13:50 +02:00
Martijn Otto c055b1a439 Merge pull request #77 from javeme/return-type-of-waiting
Correct the returning type of Connection::waiting()
2016-07-04 09:41:54 +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
javeme 5cff314d88 Correct the returning type of Connection::waiting()
The returning type of Connection::waiting() should be bool,
but currently it's size_t type.
2016-07-03 21:35:44 +08: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 89eda45df2 don't ignore a given PREFIX in makefile 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
Rafal Goslawski f3343ad1cb Bump version to 2.6.0 2016-06-30 11:19:54 +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
Martijn Otto 3292424daa Merge branch 'deferredconsumerbase-missing-include' of git://github.com/javeme/AMQP-CPP 2016-06-27 10:53:13 +02:00
Martijn Otto d911d71dfa Removed the ugly typedef 2016-06-27 10:52:58 +02:00
Martijn Otto 45131a1884 Merge branch 'javeme-aligned_storage-crash' 2016-06-27 10:48:51 +02:00
javeme 5c3ba7b00a Program crashes when receiving a message due to memory corruption
crashes due to the wrong way using aligned_storage.

Steps to reproduce:
1. Start a consumer
  channel.consume(queue, tag).onMessage(msgCallback)
2. Send a message to the consumer
3. The program crashes

Environment:
Windows 7 / VS2010

The reason:
The Windows prompted to memory corruption, I found some strange phenomenon
about stack_ptr<Message>, such as:
  1.sizeof(stack_ptr<Message>) is equal to 2
  2.stack_ptr._initialized becomes true after construct() called (actually,
    it never has been assigned true, please see [1])

Finally I found that the root cause was stack_ptr._data, we directly used
aligned_storage rather than aligned_storage::type[2] as the type of _data.
so the _data was just an empty struct, and subsequent operations were
performed in illegal memory. It eventually led to the crash.

This patch we fixed the bug and add "_initialized = true" at the end of the
method stack_ptr::construct().

[1] https://github.com/CopernicaMarketingSoftware/AMQP-CPP/blob/master/include/stack_ptr.h#L83
[2] http://www.cplusplus.com/reference/type_traits/aligned_storage/
2016-06-27 02:03:15 +08: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 55aba43078 portability fix for pow overload resolution
On Solaris the compiler is missing the template overload.
2016-06-25 20:15:44 +08:00
Carl Lei 6d71b73063 portability fix for FIONREAD on Solaris 2016-06-25 20:15:12 +08:00
Martijn Otto ba6b3e2923 Copied the methods to both implementations so they can return their concrete type 2016-06-23 16:02:04 +02:00
Martijn Otto 434a0fad52 Merge branch 'master' of github.com:CopernicaMarketingSoftware/AMQP-CPP 2016-06-23 14:43:10 +02:00