summaryrefslogtreecommitdiff
path: root/cpp/src/qpid/sys/posix
Commit message (Collapse)AuthorAgeFilesLines
* Fix --cluster-cman option to enable cman integration.Alan Conway2008-11-191-4/+0
| | | | git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@718961 13f79535-47bb-0310-9956-ffa450edef68
* Fix problem where broker generates empty URL if run on a host with only the ↵Alan Conway2008-11-121-3/+5
| | | | | | 127.0.0.1 loopback interface. git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@713405 13f79535-47bb-0310-9956-ffa450edef68
* QPID-1438: Before registering the rdma daemon transport plugin checkAndrew Stitcher2008-11-071-2/+1
| | | | | | | whether there are any rdma devices - if not don't register git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@712182 13f79535-47bb-0310-9956-ffa450edef68
* Disable SIGPIPE for client as well as brokerGordon Sim2008-11-051-8/+10
| | | | git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@711624 13f79535-47bb-0310-9956-ffa450edef68
* Allow AbsTime and Duration to be used cross-platform; add usleep() wrapper. ↵Stephen D. Huston2008-10-292-3/+65
| | | | | | Related to QPID-1209 git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@709028 13f79535-47bb-0310-9956-ffa450edef68
* Refactor sys::AsynchIO class to allow reimplementing on other platforms ↵Stephen D. Huston2008-10-211-6/+161
| | | | | | without affecting upper level usage. Resolves QPID-1377 and supplies Windows AsynchIO.cpp git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@706709 13f79535-47bb-0310-9956-ffa450edef68
* Make Address/TcpAddress manipulation portable; extend SystemInfo functions ↵Stephen D. Huston2008-10-091-0/+95
| | | | | | to Windows; resolves QPID-1325 git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@703179 13f79535-47bb-0310-9956-ffa450edef68
* Abstract native file-locking and directory detection/creation to portable ↵Stephen D. Huston2008-10-073-58/+143
| | | | | | classes LockFile and FileSysDir; resolves QPID-1148 git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@702513 13f79535-47bb-0310-9956-ffa450edef68
* Resolve QPID-1311Stephen D. Huston2008-10-021-0/+26
| | | | git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@701231 13f79535-47bb-0310-9956-ffa450edef68
* Moved PollableCondition into sys/posix, posix only impl.Alan Conway2008-09-122-0/+156
| | | | git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@694812 13f79535-47bb-0310-9956-ffa450edef68
* Refactor Thread platform code so that the implementation is completelyAndrew Stitcher2008-08-062-90/+48
| | | | | | | decoupled from its interface git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@683402 13f79535-47bb-0310-9956-ffa450edef68
* * revised approach for setting tcp-nodelay on client to avoid breaking ↵Gordon Sim2008-08-051-2/+7
| | | | | | | | | | | | platform abstractions * added ability to set tcp-nodelay on server side of the socket also Merged from r682785. git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@682791 13f79535-47bb-0310-9956-ffa450edef68
* Modified error checking on TCP socket read so that it's no longer fatalAndrew Stitcher2008-08-051-1/+5
| | | | git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@682685 13f79535-47bb-0310-9956-ffa450edef68
* The previous attempt to only get an xpg strerror_r with the GNU failedAndrew Stitcher2008-07-301-10/+7
| | | | | | | instead use the definition of _GNU_SOURCE as a proxy for the gnu version git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@681193 13f79535-47bb-0310-9956-ffa450edef68
* Merged r680937. Added error handling for case where socket cannot be ↵Gordon Sim2008-07-301-5/+10
| | | | | | accepted e.g. due to constraints on file handles. git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@680939 13f79535-47bb-0310-9956-ffa450edef68
* Related to QPID-1198: Moved posix platform specific "strerror" code toAndrew Stitcher2008-07-302-1/+46
| | | | | | | platform specific directory git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@680920 13f79535-47bb-0310-9956-ffa450edef68
* Removed unused functionsAndrew Stitcher2008-07-292-33/+4
| | | | | | | | | Removed unused Thread and Socket functions - These functions also cause problems with Solaris compilations Remove unused client connector functionality git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@680833 13f79535-47bb-0310-9956-ffa450edef68
* Small comment tidyAndrew Stitcher2008-07-291-1/+0
| | | | git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@680831 13f79535-47bb-0310-9956-ffa450edef68
* QPID-1198 (Partial): Missing header files that are really neededAndrew Stitcher2008-07-295-3/+8
| | | | | | | | | | Patches from Manuel Teira. Compilation works on Linux due to implicit header inclusions but fails on Solaris Some tightening up of std and global namespace use. git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@680830 13f79535-47bb-0310-9956-ffa450edef68
* Fix "ignoring return value" warning from LockFile.h.Alan Conway2008-07-151-1/+1
| | | | git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@676963 13f79535-47bb-0310-9956-ffa450edef68
* Some small changes which clean up header file inclusionsAndrew Stitcher2008-07-091-0/+1
| | | | | | | | and generally start to tidy up the network layer so that it's a bit easier to implement new network transports git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@675338 13f79535-47bb-0310-9956-ffa450edef68
* QPID-1148 - from Manuel TieraAlan Conway2008-07-082-14/+67
| | | | | | | | | | | | | | | | Lock file abstraction in sys/ with implementation portable to Linux and Solaris. Changes by myself: - Makefile.am - must be updated for any new/renamed/removed source files. - Exception.h, Daemon.h, LockFile.h: Replaced throwIf() with if (...) throw ErrnoException(...) The idiom throwIf(call-system-function(), "msg", errno) is incorret (my fault, not Manuels). It assumes the first argument that makes a system call call will be evaluated before the last one which fetches errno. This may not be true on some compilers/platforms. git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@674865 13f79535-47bb-0310-9956-ffa450edef68
* Cluster prototype: handles client-initiated commands (not dequeues)Alan Conway2008-07-043-4/+217
| | | | | | | | | | | | | | | | Details - Cluster.cpp: serializes all frames thru cluster (see below) - broker/ConnectionManager: Added handler chain in front of Connection::received. - sys::Fork and ForkWithMessage - abstractions for forking with posix impl. - tests/ForkedBroker.h: test utility to fork a broker process. - broker/SignalHandler: Encapsulated signal handling from qpidd.cpp - Various minor logging & error message improvements to aid debugging. NB: current impl will not scale. It is functional working starting point so we can start testing & profiling to find the right optimizations. git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@674107 13f79535-47bb-0310-9956-ffa450edef68
* - use flock to lock data dir rather than a lock file.Alan Conway2008-06-252-27/+48
| | | | | | | - removed troublesome global constructor in Mutex initialization. git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@671604 13f79535-47bb-0310-9956-ffa450edef68
* QPID-1108 patch from Manuel TeiraCarl C. Trieloff2008-06-031-20/+2
| | | | git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@662613 13f79535-47bb-0310-9956-ffa450edef68
* QPID-1087Ted Ross2008-05-211-0/+7
| | | | git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@658886 13f79535-47bb-0310-9956-ffa450edef68
* QPID-1050: Patch from Ted Ross:Gordon Sim2008-05-121-1/+2
| | | | | | | | | | | | | | | | | 1) Durability for federation links (broker-to-broker connections) 2) Improved handling of federation links: a) Links can be created even if the remote broker is not reachable b) If links are lost, re-establishment will occur using an exponential back-off algorithm 3) Durability of exchanges is now viewable through management 4) ManagementAgent API has been moved to an interface class to reduce coupling between the broker and manageable plug-ins. 5) General configuration storage capability has been added to the store/recover interface. This is used for federation links. 6) Management object-ids for durable objects are now themselves durable. (Note: some refactoring needed around ProtocolAccess needed to try and reduce dependencies) git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@655563 13f79535-47bb-0310-9956-ffa450edef68
* QPID-1040: Patch from Ted Ross: Asynchronous ConnectorAndrew Stitcher2008-05-092-1/+64
| | | | | | | Code to allow non-blocking connection of new sockets git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@654666 13f79535-47bb-0310-9956-ffa450edef68
* QPID-974: allow the size of the queue of outgoing frames to be restrictedGordon Sim2008-04-291-14/+19
| | | | | | | | QPID-544: tidy up configuration (ensuring desired settings are used correctly, allowing tcp socket options to be set etc) git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@652083 13f79535-47bb-0310-9956-ffa450edef68
* Refactored the IO framework that sits on top of Poller so that it uses a ↵Andrew Stitcher2008-04-154-46/+75
| | | | | | | | | | generalised IOHandle. This means that you can define new classes derived from IOHandle (other than Socket) that can also be added to a Poller and waited for. git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@648288 13f79535-47bb-0310-9956-ffa450edef68
* Fixed time classes for some changes that misunderstood how they are supposedAndrew Stitcher2008-04-071-1/+1
| | | | | | | to be used (and documented them better to hopefully avoid this in the future) git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@645685 13f79535-47bb-0310-9956-ffa450edef68
* Fixed logger warning on F9.Alan Conway2008-04-021-4/+4
| | | | git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@643957 13f79535-47bb-0310-9956-ffa450edef68
* Fix compile errors/warnings with gcc 4.3Alan Conway2008-03-251-3/+4
| | | | | | | | | | | | | - added missing #includes that were implicitly included via old headers. - add namespace-qualifiers to fix "changes meaning of name" warnings. - ./qpid/ptr_map.h:51: fixed "qualified return value" warning. - use const char* for "conversion from string constant to ‘char*’" warnings Applied patch from https://issues.apache.org/jira/browse/QPID-869 remove depenency on boost/date_time, causes warnings with gcc 4.3. git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@640806 13f79535-47bb-0310-9956-ffa450edef68
* Qualify names to fix gcc 4.3 compile errors.Alan Conway2008-03-181-5/+5
| | | | git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@638604 13f79535-47bb-0310-9956-ffa450edef68
* rubygen/0-10/specification.rb:Alan Conway2008-03-111-2/+26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - Simplified enum mapping/encoding. - struct encoding - ostream << operators src/qpid/Serializer.h - free funciton serialization - separate Encoder/Decoder for const correctness - split() to allow separate encode/decode for complex cases. src/qpid/amqp_0_10/Assembly.cpp, Assembly.h: AMQP 0-10 final Assembly src/qpid/amqp_0_10/Codec.h - Replaced enable_if with overloads, simpler & more flexible. src/qpid/amqp_0_10/Frame.cpp, .h: AMQP 0-10 final frame. src/qpid/amqp_0_10/Holder.h: - provide const and non-const apply src/qpid/amqp_0_10/Segment.cpp, .h: AMQP 0-10 final Segment. src/qpid/amqp_0_10/apply.h - ConstApplyFunctor for const apply. src/qpid/amqp_0_10/built_in_types.h - SerializableString encoding src/qpid/amqp_0_10/complex_types.cpp, .h - const application - Action base class for command/control. src/qpid/framing/AMQBody.h - removed 0-10 final changes, moving integration point down the stack. src/qpid/sys/Shlib.h - removed unused and uncompilable (on some compilers) function. src/qpid/sys/Time.h, .cpp - ostream << for AbsTime and Duration. src/tests/Assembly.cpp, Segment.cpp, apply.cpp, serialize.cpp: testing new code. git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@636126 13f79535-47bb-0310-9956-ffa450edef68
* Make ports accesible through socket interface.Gordon Sim2008-01-311-0/+39
| | | | | | | | Add local port to each logged frame in the client Connector git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@617188 13f79535-47bb-0310-9956-ffa450edef68
* Fix error in NDEBUG builds.Alan Conway2008-01-241-2/+1
| | | | git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@615073 13f79535-47bb-0310-9956-ffa450edef68
* Improved/additional client API tests.Alan Conway2008-01-245-26/+40
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - Replaced InProcessBroker with a more accurate loopback BrokerFixture. - Added asserts for mutex/condition/thread errors in debug build. - Added client tests for several exception conditions. - Added peer address to log ouput, client/server distinguished by (addr) or [addr] - Fixed various deadlocks & races exposed by the new asserts & tests. File-by-file: New BrokerFixture replaces InProcessBroker D src/tests/InProcessBroker.h M src/tests/BrokerFixture.h M src/tests/SocketProxy.h M src/tests/Makefile.am Made it run a bit faster. M src/tests/quick_perftest Redundant D src/tests/APRBaseTest.cpp Updated tests to use BrokerFixture M src/tests/ClientChannelTest.cpp M src/tests/exception_test.cpp M src/tests/ClientSessionTest.cpp Print thread IDs in decimal, same as GDB. M src/qpid/log/Logger.cpp Assert mutex/condition ops in debug build. M src/qpid/sys/posix/check.h M src/qpid/sys/posix/Mutex.h M src/qpid/sys/posix/Condition.h M src/qpid/sys/posix/Thread.h Added toFd() so SocketProxy can use ::select() M src/qpid/sys/Socket.h M src/qpid/sys/posix/Socket.cpp Fixes for races & deadlocks shown up by new tests & asserts. Mostly shutdown/close issues. M src/qpid/client/ConnectionHandler.h M src/qpid/client/ConnectionImpl.cpp M src/qpid/client/Demux.h M src/qpid/client/SessionCore.cpp M src/qpid/client/ConnectionHandler.cpp M src/qpid/client/Connector.h M src/qpid/client/Demux.cpp M src/qpid/client/Dispatcher.cpp M src/qpid/client/ConnectionImpl.h Logging peer address. M src/qpid/sys/AsynchIOAcceptor.cpp git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@615063 13f79535-47bb-0310-9956-ffa450edef68
* Add optional host, port arguments to all example clients.Alan Conway2008-01-182-3/+15
| | | | | | | | | | Verify can start private broker & pass host/port to examples, by default it still uses local host/standard port. Added host:port to Socket error messages. git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@613018 13f79535-47bb-0310-9956-ffa450edef68
* Client always collects at least an entire frameset into a single bufferAlan Conway2008-01-101-28/+31
| | | | | | | | | | | | | when possible. Based on patch from Gordon Sim. - Refactor Connector::writebuff, ::send as Connector::Writer - Collect frames up to EOF notifying AIO write. - Encode all available complete framesets into buffers as compactly as possible. - Logging buffer size and frames encoded per write for client and broker. - framing::Buffer added getPosition(), getSize(), default ctor, copy ctor. git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@610972 13f79535-47bb-0310-9956-ffa450edef68
* * Limited time allowed for reading on a single connection in a single go to 2msAndrew Stitcher2007-12-172-15/+58
| | | | | | | | * Limit bytes allowed to be written on a connection on a single go to the max ever read * Small performance fix for appending to FrameSets git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@604983 13f79535-47bb-0310-9956-ffa450edef68
* Changes to threading: queues serialiser removed, io threads used to drive ↵Gordon Sim2007-11-291-21/+29
| | | | | | | | | | dispatch to consumers Fix to PersistableMessage: use correct lock when accessing synclist, don't hold enqueue lock when notifying queues git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@599395 13f79535-47bb-0310-9956-ffa450edef68
* Modified comment for last change to explain the reasoningGordon Sim2007-11-051-1/+1
| | | | git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@591951 13f79535-47bb-0310-9956-ffa450edef68
* Push buffer back on front when read fails (esp. important when result was ↵Gordon Sim2007-11-051-1/+1
| | | | | | EAGAIN as the buffer may contain unread data) git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@591950 13f79535-47bb-0310-9956-ffa450edef68
* Session resume support in client & broker: Client can resume a sessionAlan Conway2007-10-264-79/+9
| | | | | | | | | | | | | | | | | | | | | | | | | after voluntary suspend() or network failure. Frames lost in network failure are automatically re-transmitted for transparent re-connection. client::Session improvements: - Locking to avoid races between network & user threads. - Replaced client::StateManager with sys::StateMonitor - avoid heap allocation. qpid::Exception clean up: - use QPID_MSG consistently to format exception messages. - throw typed exceptions (in reply_exceptions.h) for AMQP exceptions. - re-throw correct typed exception on client for exceptions from broker. - Removed QpidError.h rubygen/templates/constants.rb: - constants.h: Added FOO_CLASS_ID and FOO_BAR_METHOD_ID constants. - reply_constants.h: Added throwReplyException(code, text) log::Logger: - Fixed shutdown race in Statement::~Initializer() git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@588761 13f79535-47bb-0310-9956-ffa450edef68
* Fix for leak on receiving eof on networkAndrew Stitcher2007-10-191-7/+3
| | | | git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@586345 13f79535-47bb-0310-9956-ffa450edef68
* * Revised allocation algorithm to ensure all consumers are given the ↵Gordon Sim2007-10-161-6/+4
| | | | | | | | | | | opportunity to consume a message * If already have infinit credit, don't try to add to it * If get disconnected while processing close, just finish off the close and don't signal the disconnection git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@585085 13f79535-47bb-0310-9956-ffa450edef68
* Include information on the client connection in io traces.Gordon Sim2007-10-151-14/+47
| | | | git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@584755 13f79535-47bb-0310-9956-ffa450edef68
* Close connection when a framing error is encountered during decoding.Gordon Sim2007-10-121-1/+2
| | | | git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@584143 13f79535-47bb-0310-9956-ffa450edef68
* * Changes to make C++ client code use the asynchronous network IOAndrew Stitcher2007-08-311-7/+7
| | | | | | | | * Fixed up the test for buffer changes * Removed unused buffer operations git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@571529 13f79535-47bb-0310-9956-ffa450edef68