Commit Graph

237 Commits

Author SHA1 Message Date
Michael Davidsaver
53d18e6a03 SharedPV handle bad_weak_ptr earlier
Avoid operating on partly destroyed object.
2020-06-15 09:37:11 -07:00
Michael Davidsaver
a97c5b1cbb SharedPV::post() handle bad_weak_ptr 2020-06-15 09:25:31 -07:00
3ba6679e67 removed spaces at end of line 2020-04-15 08:17:03 -07:00
40300a12cb replaced tabs with spaces 2020-04-15 08:17:03 -07:00
Michael Davidsaver
642168efe1 ipAddrToDottedIP() consistent buffer size
IPv4 + port "XXX.XXX.XXX.XXX:12345" is 4*4 + 5 + 1 == 22

rounding up to 24 for no good reason.
2020-01-16 09:22:23 -08:00
Michael Davidsaver
7903a736d4 avoid ipAddrToA() 2019-11-24 19:37:08 -08:00
Michael Davidsaver
03b0121021 server fail to start w/ invalid EPICS_PVAS_INTF_ADDR_LIST 2019-08-20 15:53:06 -07:00
Michael Davidsaver
89bbe09b02 cleanup unused accessors 2019-08-20 15:53:03 -07:00
Michael Davidsaver
aafb12f562 SharedPV separate close() and disconnect()
Previously, SharedPV::close() and StaticProvider::close()
would both disconnect all active clients, and put the SharedPV
in a closed (untyped) state.

SharedPV::close() remains unchanged.

StaticProvider::close() now only disconnects Channels created
through it, and leaves SharedPVs in the opened state.
2019-08-20 15:52:59 -07:00
Michael Davidsaver
a06c829050 bytes tx/rx stats per socket and per Operation 2019-07-15 14:06:06 -07:00
Michael Davidsaver
badf14c4fa cleanup and quiet warnings 2019-07-15 14:06:06 -07:00
Michael Davidsaver
34009d2a3a update pvasr 2019-07-15 13:54:36 -07:00
Michael Davidsaver
5abfc10a82 really echo this time... 2019-06-12 13:25:35 -07:00
Michael Davidsaver
a1af3c2c8e echo content 2019-05-21 08:54:14 -07:00
Michael Davidsaver
dfeb9fd5a5 more Troubleshoot "no more data in UDP packet" 2019-05-21 08:51:00 -07:00
Michael Davidsaver
ecee708d3a redo hexDump
ludicrously inefficient (cf. toHex() ), and inflexible.
2019-05-21 08:51:00 -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
32ba2f32d0 avoid deprecated ByteBuffer::getArray()
use identical, but not overloaded, getBuffer()
2019-05-19 14:09:38 -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
3fa1e83b55 avoid redundant sockaddr -> string 2019-04-17 09:35:43 -07:00
Michael Davidsaver
22622e91a9 server: detect duplicate channelCreated() calls 2019-02-19 19:58:13 -08:00
Michael Davidsaver
d52d8cf5d4 pva/server.h allow createChannel() to return NULL 2019-02-19 19:55:58 -08:00
Michael Davidsaver
c5fe16eff2 fix search PeerInfo 2019-02-19 19:54:42 -08:00
Michael Davidsaver
34f53c123a PeerInfo in pva/server.h and pva/sharedstate.h 2019-01-29 19:59:53 -08:00
Michael Davidsaver
d8f9ef2557 make PeerInfo available during search phase 2019-01-29 19:59:53 -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
13cac5f4cc remove asCheck
This interface will be removed.
2019-01-12 14:31:19 -08:00
Michael Davidsaver
f84774e3ec PVA server earlier check of monitor window
Check window size before attemting poll() as apparently
"spurious" send() is possible.
2018-10-22 14:07:22 -07:00
Michael Davidsaver
3f85f7c2ad cleanup 2018-10-22 10:04:57 -07:00
Michael Davidsaver
a486f3d4c7 SharedPV::Handler better defaults 2018-10-18 17:52:56 -07:00
Michael Davidsaver
31ed0b55ec minor 2018-10-18 17:52:56 -07:00
Michael Davidsaver
729f16f94e SharedPV move internal names under detail:: 2018-10-18 17:52:35 -07:00
Michael Davidsaver
0a5f8b44db doc 2018-10-18 15:18:00 -07:00
Michael Davidsaver
ac9ebc47ba improper use of rand() w/o RAND_MAX
... with an extra dose of integer modulo thrown in.
2018-10-18 15:18:00 -07:00
Michael Davidsaver
9de8676a6f pvlist debugging 2018-10-18 15:18:00 -07:00
Michael Davidsaver
731767b086 SharedPV fix onFirstConnect() on monitor creation 2018-10-08 07:10:13 -07:00
Michael Davidsaver
9ca7487e29 SharedPV allow use of Channel::destroy() to trigger onLastDisconnect()
Add dead flag to catch double destroy() or use after destroy()
2018-10-07 20:07:40 -07:00
Michael Davidsaver
ed1bd1b962 SharedPV defer onFirstConnect() to first getField/Put/Monitor 2018-10-07 20:07:40 -07:00
Michael Davidsaver
53b95dd336 more SharedPV rpc state tracking
handle re-open() with RPC
2018-10-06 17:55:57 -07:00
Michael Davidsaver
605c172d3c fix SharedPV allow rpc() while close()'d
Don't call channelRPCConnect() again during open().

Turns out that a second channelRPCConnect() has
the effect of sending a reply with OK and NULL.
2018-10-04 07:31:01 -07:00
Michael Davidsaver
542d51a215 RPC troubleshooting
something funny is going on
2018-10-03 23:41:30 -07:00
Michael Davidsaver
421d50e3ba SharedPV too many notifiedConn
notifiedConn set more often than it should.
2018-10-03 18:36:32 -07:00
Michael Davidsaver
2fec84461d use of CMD_* instead of magic numbers 2018-10-02 12:52:24 -07:00
Michael Davidsaver
4e5aef3e42 SharedPV allow rpc() while close()'d
No reason to prevent this as RPCs need not use
the same type (Structure) as get/put/monitor.
2018-10-02 12:52:24 -07:00
Michael Davidsaver
4296c5e015 more SharedPV::close() 2018-09-27 13:56:13 -07:00
Michael Davidsaver
83b2105241 StaticProvider createChannel() avoid possible deadlock
connect() may invoke SharedPV onFirstConnect() callback.
2018-09-26 16:38:22 -07:00
Michael Davidsaver
7ed6f1315f SharedPV::open() less work under lock 2018-09-26 10:31:33 -07:00
Michael Davidsaver
6b463d77e1 SharedPV ensure callback pairing
Ensure that onLastDisconnect() isn't called
unless onFirstConnect() is/has been called.
2018-09-21 11:35:57 -07:00