Commit Graph

981 Commits

Author SHA1 Message Date
Matej Sekoranja db002e51c8 TODO cleanup 2016-01-04 20:12:09 +01:00
Matej Sekoranja 9eae48aef4 client: multiple NIF support 2016-01-04 19:28:17 +01:00
Matej Sekoranja 21a1dad07f server: multiple NIF support for UDP 2016-01-04 14:12:19 +01:00
Matej Sekoranja 708379ec0a udp init cleanup, auto beacon addr list 2015-12-31 11:53:12 +01:00
Matej Sekoranja 63a0c71fe9 local multicast revised for multiple NIF (server side only) 2015-12-31 11:18:49 +01:00
Matej Sekoranja 52161dff60 udp cntd 2015-12-17 22:05:25 +01:00
Matej Sekoranja fed3bba0dc more descriptive error logs 2015-12-17 14:36:18 +01:00
Matej Sekoranja 523af71b7f duplicate search responses from the same server bound to multiple NIFs filtered out 2015-12-17 14:02:11 +01:00
Matej Sekoranja 125822d18f one instance of responseHandler per context 2015-12-17 09:12:33 +01:00
Matej Sekoranja a692546170 ServerChannelRequesterImpl::getRequesterName() returns client's address 2015-12-16 23:30:53 +01:00
Matej Sekoranja 4a7f057af1 server channel destroy notification to the client 2015-12-16 14:45:20 +01:00
Matej Sekoranja 0b9cdb9633 added QtCreator files to .gitignore 2015-12-16 13:54:26 +01:00
Matej Sekoranja 91b5cc707d fixed testChannelAccess 2015-12-16 13:52:56 +01:00
Matej Sekoranja 22d6db2818 fixed testServer 2015-12-16 12:00:20 +01:00
Matej Sekoranja d7eafcb9c5 EPICS base 3.14/clang compilation, TCPAcceptor shutdown on OSX (BSD) fixed 2015-12-16 11:46:58 +01:00
Michael Davidsaver 76b414dac6 todo: disable local mcast fanout 2015-12-14 17:04:58 -05:00
Michael Davidsaver b350046427 todo: udprepeat 2015-12-14 17:04:58 -05:00
Michael Davidsaver 96deab1e77 todo: placeholder needs to be filled in 2015-12-14 17:04:58 -05:00
Michael Davidsaver b64e99c680 todo: attempt to fix testChannelAccess 2015-12-14 17:04:58 -05:00
Michael Davidsaver 7b72669860 todo: locking in channelmonitor 2015-12-14 17:04:58 -05:00
Michael Davidsaver 609237a551 TODO: add virtual dtor for all classes w/ virtual methods 2015-12-14 17:04:58 -05:00
Michael Davidsaver b3d58266a7 ServerContextImpl: bind to a single interface
Allow config option EPICS_PVAS_INTF_ADDR_LIST specify a single
interface (multiple interfaces to be handled later)

Bind TCP listen and UDP sender to the interface address.
For non-windows, bind a second UDP socket to the interface
broadcast address.

Allow dynamic broadcast port
2015-12-14 17:04:58 -05:00
Michael Davidsaver 5d744dbebe BlockingUDPTransport: add replyTransport
allow replies to be sent out on a different socket.
Needed when binding the an interface broadcast address.

Also, expose the ctor and deprecate pointless create() method.
2015-12-14 17:04:58 -05:00
Michael Davidsaver 5206966875 BlockingTCPAcceptor allow bind to specific interface 2015-12-14 17:04:58 -05:00
Michael Davidsaver c0ee432598 Allow ChannelProviderFactory::newInstance to accept a Configuration
Deprecate ChannelProvider::configure(), which doesn't do much and
is incompatible with the idea of shared context.

A lot of down-stream mess related to the confused relationship
between InternalClientContextImpl and InternalClientContextImpl::ChannelProviderImpl.
This is changed to compose the provider within the context
and use a nested shared_ptr so that references to the provider
are really references to the context.

This brings the ownership semantic in line with what the API
suggests, and what other providers implement.
2015-12-14 17:04:57 -05:00
Michael Davidsaver 03e5b0c747 Allow ServerContextImpl to be created w/ specific conf. 2015-12-14 17:04:57 -05:00
Michael Davidsaver b9dd9e8e6c getRemoteName()
Cache the TCP peer address as a string and pass it to createChannel().
2015-12-14 17:04:57 -05:00
Michael Davidsaver 4a1bfff40f Remove clearSendQueue
Use BreakTransport exception instead
2015-12-14 16:59:55 -05:00
Michael Davidsaver f2b47ef5e9 thread shutdown 2015-12-14 16:59:55 -05:00
Michael Davidsaver 730d30fe54 AbstractCodec use fair_queue 2015-12-14 16:59:55 -05:00
Michael Davidsaver db86e47659 add fair_queue 2015-12-14 16:59:55 -05:00
Michael Davidsaver 9068fa3950 ServerContextImpl::setServerPort not fully implemented
actually calling this can only break things.
2015-12-14 16:59:55 -05:00
Michael Davidsaver d68b19e703 BlockingTCPAcceptor: smaller listen queue
No good can come from making this large.
2015-12-14 16:59:55 -05:00
Michael Davidsaver 6254525cba use epicsThread and Thread::Config
Catches errant c++ exceptions and is joinable
2015-12-14 16:59:47 -05:00
Michael Davidsaver b4048c3bfd blockingUDP: error checking 2015-12-14 14:25:20 -05:00
Michael Davidsaver bcc16bdf00 serverContext: remove scary leftover 2015-12-14 14:25:20 -05:00
Michael Davidsaver 3eb7775493 introduce ConfigurationBuilder 2015-12-14 14:25:20 -05:00
Michael Davidsaver b3f78718b0 update Configuration
move string parsing into the base class.
Add several sub-classes for different configuration
sources (environment, std::map), and ConfigurationStack
to allow  chaining of different sources.

Mark Properties as deprecated, just use std::map by way
of ConfigurationMap.
2015-12-14 14:25:20 -05:00
Michael Davidsaver 7a2e25f79c rewrite Properties
let's be rid of some egregiously bad C++ code...
2015-12-14 14:24:40 -05:00
Michael Davidsaver 9b43a07b47 configurationTest now uses htons, needs winsock dll 2015-11-24 20:22:37 -05:00
Matej Sekoranja 4ae0a12614 Merge pull request #17 from mdavidsaver/miscclean
Misc. cleanup and minor features
2015-11-25 00:25:38 +01:00
Michael Davidsaver 0fd7b111a1 pre-processor fun 2015-11-24 14:51:25 -05:00
Michael Davidsaver fccf7c1b93 quiet (un)signed warning 2015-11-23 16:51:53 -05:00
Michael Davidsaver be01b418f2 use CMD_* instead of magic number 2015-11-23 16:41:31 -05:00
Michael Davidsaver f561cb97dc shorten thread names
so more of the interesting part is shown by epicsThreadShowAll()
2015-11-23 16:41:31 -05:00
Michael Davidsaver 9696b17196 use shared_ptr immediately 2015-11-23 16:41:31 -05:00
Michael Davidsaver 2e64b1b785 Message for unhandled exceptions in UDP message processing 2015-11-23 16:41:31 -05:00
Michael Davidsaver e08db19ddc avoid unnecessary vector copy 2015-11-23 16:41:31 -05:00
Michael Davidsaver 87af5b308f config get socket address
revamp configurationTest
2015-11-23 16:41:31 -05:00
Michael Davidsaver 1d30949690 no point in using envGetConfigParamPtr except for predefine parameters
Unless a default is provided, this is equivlent to getenv()
2015-11-23 16:41:31 -05:00