Commit Graph

989 Commits

Author SHA1 Message Date
Matej Sekoranja 7bfe58f1e2 UDP transport shutdown fixed 2016-02-25 10:37:01 +01:00
Matej Sekoranja f0ca714214 AUTO_ADDR_LIST - no fallback (as in CA) 2016-02-25 10:30:09 +01:00
Matej Sekoranja 0beb3149a1 server: channel destroyed before CHANNEL_CREATE message is sent 2016-01-06 22:35:30 +01:00
Matej Sekoranja 8a0aa1b257 Merge remote-tracking branch 'mdavidsaver/broken' into broken 2016-01-06 22:21:04 +01:00
Michael Davidsaver d7e0365f1e ServerChannelRequesterImpl::channelStateChange not everything is disconnect 2016-01-05 20:04:48 -05:00
Michael Davidsaver 315bd87f8e drop copy of epicsParse* 2016-01-05 13:11:46 -05:00
Michael Davidsaver 6f85c869ba configuration: use typeCast instead of epicsParse*
Since typeCast wraps epicsParse*, including base 3.14
compatibility.
2016-01-05 13:11:33 -05:00
Michael Davidsaver 837c10a003 fair_queue: struct offsetof() only with POD struct
In C++ offsetof() is not specified on non-POD structs
(eg. having methods or non-POD members).
2016-01-05 11:49:32 -05:00
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