Commit Graph

92 Commits

Author SHA1 Message Date
Michael Davidsaver 6fcfd60bd5 BlockingUDPTransport wrap close() to break ref. loop 2017-06-02 12:32:12 +02:00
Michael Davidsaver 48b3b648ef add ServerContext::getCurrentConfig() 2017-06-01 01:56:46 +02:00
Michael Davidsaver 8971d2771c ServerContextImpl::destroyAllTransports()
Better check for ref. leaks
2017-05-31 15:58:15 +02:00
Michael Davidsaver 3fa6a4e4cc TransportRegistry composed
no need for a seperate allocation and shared_ptr
2017-05-31 15:48:30 +02:00
Michael Davidsaver 3ad27665e8 BlockingTCPTransportCodec::close() wait for threads 2017-05-31 15:47:46 +02:00
Michael Davidsaver 634e50e011 startPVAServer() has to keep the pointer 2017-05-31 12:18:42 +02:00
Michael Davidsaver ce25f0b175 ServerContext ref. loop breaking and threading
Drop unnecessary "worker" thread which does no work.
Ensure that returned shared_ptr is unique()==true.

Add ServerContext::create() to start a new server
with specific config and/or providers
2017-05-31 11:40:51 +02:00
Michael Davidsaver 277e5c33fb privatize some API details
hide a number of APIs which should not
be public APIs.
2017-05-30 17:12:31 +02:00
Michael Davidsaver 7c85e6073b move ServerContextImpl into private header 2017-05-30 12:07:23 +02:00
Michael Davidsaver b05e7699b5 remove no-op lock/unlock from Lock sub-classes 2017-05-24 17:20:17 -04:00
Michael Davidsaver 4a9d79f019 sockAddrToA -> sockAddrToDottedIP
Avoid blocking host name lookup for debug log messages.
Can cause long delays when DNS not available.
2017-04-15 11:48:24 -04:00
Matej Sekoranja 4e264f2295 win32: moved osiSockAttach() call before loadConfiguration
should fix #45
2016-04-26 20:48:27 +02:00
Andrew Johnson 6698bb86fb Additional includes needed for MSVC 2016-04-06 17:02:03 -05:00
Andrew Johnson 9a8644033d Prevent redefinition of NOMINMAX
While this protection is not strictly necessary here, if someone
does a cut-and-paste into a header file it should be included.
2016-04-06 15:22:11 -05:00
Andrew Johnson 0ad8ece840 Define and use GETPID() macro 2016-04-06 15:19:35 -05:00
Andrew Johnson e28fd6129e Remove need to undef epicsExportSharedSymbols
This approach works OK, but makes it much harder to find files
that have mistakes in them since they can cause other functions
to get the wrong import/export setting.
2016-04-06 10:59:23 -05:00
Andrew Johnson 12d68fe209 Add epicsExportSharedSymbols, move some includes 2016-04-06 10:59:22 -05:00
Andrew Johnson 7ed5f8b4bf Wrong keyword, use epicsShareFunc 2016-04-06 10:59:22 -05:00
Matej Sekoranja 85e881fbcd send udp transport initialization order, search response broadcast transport null check
closes #39
2016-03-23 21:10:04 +01:00
Michael Davidsaver 15449dde6b used aliased names for Monitor* 2016-03-18 15:01:48 -04:00
Matej Sekoranja 5279d247ca general indent beautification 2016-03-10 23:36:16 +01:00
Matej Sekoranja 56b6279035 manual merge 2016-03-02 13:34:05 +01:00
Matej Sekoranja 0db4a9a342 udp transport initialization refactoring (deduplication) 2016-03-02 12:37:58 +01:00
Matej Sekoranja 87fa71070d automatic broadcast port 2016-03-02 11:08:58 +01:00
Matej Sekoranja 1ca3918afa local multicast reimplemented 2016-03-01 12:11:25 +01:00
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 53d658e190 pipeline server: missing ensureData on free elements report 2016-02-19 15:09:17 +01:00
Michael Davidsaver 069555a524 remove use of throw() specifier 2016-02-10 12:06:35 -05:00
Michael Davidsaver 58914fd093 update Makefiles for pv/
add pv/ prefix for INC
2016-01-26 15:50:49 -05:00
Michael Davidsaver 49058d260b move installed headers to pv/ sub-dir 2016-01-26 15:36:07 -05:00
Michael Davidsaver 5019969d8a getSubField -> getSubFieldT to avoid potential NULL de-ref. 2016-01-25 12:30:25 -05:00
Matej Sekoranja 0beb3149a1 server: channel destroyed before CHANNEL_CREATE message is sent 2016-01-06 22:35:30 +01:00
Michael Davidsaver d7e0365f1e ServerChannelRequesterImpl::channelStateChange not everything is disconnect 2016-01-05 20:04:48 -05:00
Matej Sekoranja db002e51c8 TODO cleanup 2016-01-04 20:12:09 +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 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
Michael Davidsaver 76b414dac6 todo: disable local mcast fanout 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 7b72669860 todo: locking in channelmonitor 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 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 f2b47ef5e9 thread shutdown 2015-12-14 16:59:55 -05:00