Commit Graph

978 Commits

Author SHA1 Message Date
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
Michael Davidsaver
0fe4e41099 don't silently swallow exceptions 2015-11-23 16:41:31 -05:00
Michael Davidsaver
839faf66c0 AtomicValue use epicsAtomic if available 2015-11-23 16:41:31 -05:00
Michael Davidsaver
c59715f687 cleanup commented code blocks 2015-11-23 16:41:31 -05:00