Commit Graph

77 Commits

Author SHA1 Message Date
Michael Davidsaver
34009d2a3a update pvasr 2019-07-15 13:54:36 -07:00
Michael Davidsaver
0084b6e60a de-virt Transport::getRevision()
Makes clear that this is/was only for TCP,
and eliminate redundant storage.  Also apply
locking to this storage.

Use header version directly in search handler.
Correct as only UDP search is actually used atm.
2019-05-20 17:48:10 -07:00
Michael Davidsaver
736e0c169a Merge branch 'auth'
* auth:
  fix osdGetRoles
  oops
  Add showauth executable
  getgrouplist() on OSX has different sig.
  auth fix mingw static
  fix search PeerInfo
  PeerInfo in pva/server.h and pva/sharedstate.h
  make PeerInfo available during search phase
  auth status void accidental success.
  minor doc
  always need to link with netapi32 now
  authorize with local group lookup
  Add osdGetRoles()
  authorization framework
  pvasr show PeerInfo
  redo security (aka. access control)
  remove asCheck

# Conflicts:
#	src/server/pv/responseHandlers.h
#	src/server/responseHandlers.cpp
2019-05-12 14:40:29 -07:00
Michael Davidsaver
d52d8cf5d4 pva/server.h allow createChannel() to return NULL 2019-02-19 19:55:58 -08:00
Michael Davidsaver
b46e0972ea minor doc 2019-01-13 19:04:59 -08:00
Michael Davidsaver
9babc06ab3 pvasr show PeerInfo 2019-01-12 15:14:19 -08:00
Michael Davidsaver
fa484a883a redo security (aka. access control)
Break up monolithic SecurityPlugin API into three parts.

1. Authentication.
2. Authorization.
3. Access Control decision.  Left to ChannelProviders
2019-01-12 15:14:19 -08:00
Michael Davidsaver
31ed0b55ec minor 2018-10-18 17:52:56 -07:00
Michael Davidsaver
ce19199edd cleanup 2018-05-18 11:58:35 -07:00
Michael Davidsaver
6abfe9d196 server: cleanup handling of vector of providers
avoid keeping extra refs.  situation is confusing
enough as it is.
2018-05-18 08:53:52 -07:00
Michael Davidsaver
ff5d51b221 server: shorter name for Timer thread 2018-04-04 20:55:57 -07:00
Michael Davidsaver
fe5780521b Context::getSecurityPlugins() no return of non-const ref.
Return of map as non-const ref. allows callers to modify.
Probably unintended.
2018-04-04 09:09:43 -07:00
Michael Davidsaver
3859793405 serverContext explicitly close/flush Timer queue 2018-04-02 12:40:18 -07:00
Michael Davidsaver
28cec947ae serverContext: collapse destroyAllTransports() into shutdown() 2018-04-02 11:47:20 -07:00
Michael Davidsaver
5c1b638db5 avoid spurious Leak warning
copying an array just to see if it is empty
isn't so efficient.
2018-02-07 20:17:40 -08:00
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