Commit Graph

62 Commits

Author SHA1 Message Date
Michael Davidsaver
58f996fd98 update transportRegistry
avoid leaks of SOCKET and leaving mutex locked
when exceptions are thrown.
2018-02-01 18:54:25 -08:00
Michael Davidsaver
d33356ced6 drop deprecated 2018-01-31 12:48:59 -08:00
Michael Davidsaver
903d117485 pvAccessLog() add EPICS_PRINTF_STYLE()
and fixup incorrect specifiers
2017-12-28 10:49:54 -06:00
Michael Davidsaver
457d03508d reduce noise 2017-12-12 09:57:24 -06:00
Michael Davidsaver
0161799c93 must zero osiSockAddr prior to use!
RTEMS depends on this or eg. bind()
will fail because comparison with
list of interface addresses is done
with memcmp()!
2017-11-28 17:54:25 -06:00
Michael Davidsaver
073c77b1ef consolidate ServerChannel and ServerChannelImpl
"interface" with a single implementation.
combine and de-virtualize.
2017-11-06 15:14:41 -06:00
Michael Davidsaver
7b301c4c98 pvasr() call Channel::printInfo() 2017-11-05 17:26:52 -06:00
Michael Davidsaver
8d5c27143b pvasr list client channels 2017-11-05 17:11:28 -06:00
Michael Davidsaver
47332fdf90 server status reporting via iocsh 2017-11-05 15:59:01 -06:00
Michael Davidsaver
98df225583 insturment with reftrack 2017-08-30 11:17:03 -05:00
Michael Davidsaver
e457e2d0c3 attempt to fix dllimport/export error 2017-07-04 19:01:23 +02:00
Michael Davidsaver
05b6da623a rename GUID -> ServerGUID
avoid ambigious name on windows/mingw
2017-07-04 17:57:20 +02:00
Michael Davidsaver
42e12896d4 serverContext: shared_ptr debugging 2017-06-26 16:41:55 +02:00
Michael Davidsaver
d5481cc277 minor 2017-06-26 16:24:36 +02:00
Michael Davidsaver
0c02625aa5 servercontext wait for transport worker threads to finish
doing this through Transport::close()
causes deadlock in client code due to locking.
So make this an extra step.
2017-06-26 14:16:41 +02:00
Michael Davidsaver
3dca3dc38f ServerContext clear timer queue 2017-06-22 13:51:38 +02:00
Michael Davidsaver
8270a25791 Re-add ServerContext::getChannelProviders() 2017-06-21 15:13:58 +02:00
Michael Davidsaver
35d2c610bf separate ChannelProviderRegistry for client/server 2017-06-21 14:41:24 +02:00
Michael Davidsaver
46137f96bb deprecate dispose()
bad practice
2017-06-20 20:30:37 +02:00
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
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
Matej Sekoranja
5279d247ca general indent beautification 2016-03-10 23:36:16 +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
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
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
f2b47ef5e9 thread shutdown 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
bcc16bdf00 serverContext: remove scary leftover 2015-12-14 14:25:20 -05:00
Michael Davidsaver
0fe4e41099 don't silently swallow exceptions 2015-11-23 16:41:31 -05:00
Matej Sekoranja
5a6b681bf7 server search response delay 2014-11-24 11:00:04 +01:00
Matej Sekoranja
66f2995a71 pvlist for servers w/ multiple providers 2014-10-15 14:13:55 +02:00