Commit Graph

223 Commits

Author SHA1 Message Date
Michael Davidsaver
7bc5bc2cbc fix AuthorizationRegistry race
oops.  should only prevent add/remove while iterating,
not concurrent iteration.
2019-10-10 15:12:58 -07:00
Michael Davidsaver
f81ebae455 minor log 2019-10-10 15:12:58 -07:00
Michael Davidsaver
50de6cc58e remove 3.14 compatibility 2019-08-20 15:52:56 -07:00
Michael Davidsaver
99d66750fb Merge remote-tracking branch 'md/txrxstats'
* md/txrxstats:
  stop testing against Base 3.14
  bytes tx/rx stats per socket and per Operation
2019-08-20 15:52:49 -07:00
Michael Davidsaver
a22f866211 mask warnings during shutdown()
On some target (OSX), and interrupted recv() will
return with a a spurious error (EBADF).
2019-07-24 16:08:00 -07:00
Michael Davidsaver
badf14c4fa cleanup and quiet warnings 2019-07-15 14:06:06 -07:00
Michael Davidsaver
a06c829050 bytes tx/rx stats per socket and per Operation 2019-07-15 14:06:06 -07:00
Michael Davidsaver
1e9e4bd2a8 BlockingTCPAcceptor drop unused ctor 2019-07-15 14:03:50 -07:00
Michael Davidsaver
e0dc94a91d always epicsThreadStackBig
on RTEMS at least, c++ code needs the largest standard
stack frame size.
2019-07-15 13:54:36 -07:00
Michael Davidsaver
3a8a24deb3 vxworks fix 2019-06-26 17:02:02 -07:00
Michael Davidsaver
05bf0fc453 CAPlugin handle peer NULL data 2019-06-13 10:52:24 -07:00
Michael Davidsaver
6dd1346ace further dead code 2019-05-21 08:54:14 -07:00
Michael Davidsaver
9e05b29f35 Don't clear client _outgoingIR on beacon anomaly
No reason to do this, especially w/o locking.  Outgoing used by
a TCP send thread, beacon anomaly handling on UDP receive thread.

Probably means that anomaly handling never happens...
2019-05-21 08:54:14 -07:00
Michael Davidsaver
a6e7d7f5fc Remove dead code
aliveNotification() and unresponsiveTransport() never called.
Remove these, and code only referenced through these methods.
2019-05-21 08:54:14 -07:00
Michael Davidsaver
2da60b083e Enable client sending of CMD_ECHO 2019-05-21 08:54:14 -07:00
Michael Davidsaver
111a3dde86 RX timeout
Enable idle timeout if both peers have version>=2.
2019-05-21 08:54:14 -07:00
Michael Davidsaver
79e73ab966 AbstractCodec cleanup 2019-05-21 08:54:14 -07:00
Michael Davidsaver
0f26f39b5b more de-virt getRevision() 2019-05-21 08:51:01 -07:00
Michael Davidsaver
64453e1f1a split client/server protocol version 2019-05-21 08:51:01 -07:00
Michael Davidsaver
1ea70a302b ignore protocol minor version 0
The change from 0 -> 1 included incompatible changes
to CMD_BEACON and several others.

Ignore any UDP messages (beacon or search),
and disconnect any TCP peers, with version==0.
2019-05-21 08:51:01 -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
732fd1f771 Troubleshoot "no more data in UDP packet" 2019-05-21 08:45:50 -07:00
Michael Davidsaver
75befddf46 minor 2019-05-20 17:48:10 -07:00
Michael Davidsaver
3a2a3ac148 remove unused getSocketReceiveBufferSize() 2019-05-20 17:48:10 -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
a697008f13 demagic 2019-04-17 09:35:43 -07:00
Michael Davidsaver
37cb765ed5 minor log message 2019-02-19 19:58:33 -08:00
Michael Davidsaver
bdd2730315 auth status void accidental success.
The default value of _verificationStatus is reported
on auth timeout.  Make sure it isn't success.
2019-01-13 19:04:59 -08:00
Michael Davidsaver
b46e0972ea minor doc 2019-01-13 19:04:59 -08:00
Michael Davidsaver
50302d31ac authorize with local group lookup 2019-01-12 15:14:19 -08:00
Michael Davidsaver
b168c51aac Add osdGetRoles() 2019-01-12 15:14:19 -08:00
Michael Davidsaver
3209899172 authorization framework 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
3b4a52a360 remove usage of NoDefaultMethods 2019-01-12 12:02:25 -08:00
Michael Davidsaver
0d1ba091a2 remove unused, and un-useful, IP address utils 2019-01-12 12:02:25 -08:00
Michael Davidsaver
d48971dbb9 BlockingUDPConnector cleanup
remove unused options and arguments.  Avoid alloc.
2019-01-12 12:02:25 -08:00
Michael Davidsaver
eb8be48807 preemptive dllimport 2018-12-08 17:50:09 -08:00
Michael Davidsaver
095011d013 note 2018-11-26 10:40:43 -08:00
Michael Davidsaver
0959f9be88 use epicsGuard 2018-10-31 09:21:23 -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
f6eeeac649 more UDP debugging 2018-10-04 21:08:15 -07:00
Michael Davidsaver
d4f3abf461 more descriptive UDP logging 2018-10-02 12:52:24 -07:00
Michael Davidsaver
2fec84461d use of CMD_* instead of magic numbers 2018-10-02 12:52:24 -07:00
Michael Davidsaver
b97e37da98 de-duplicate address lists 2018-07-02 14:50:24 -07:00
Michael Davidsaver
beb977bd78 revise address list expansion 2018-07-02 14:39:36 -07:00
Michael Davidsaver
c5419f9487 revise discoverInterfaces()
change interface to distingush between bcast and point2point.
add netmask to truly distinguish unicast from bcast.
fix some minor (I think) errors in the bsd socks impl (use of clobbered buffer).
cleanup win32 impl. bcast and p2p handling.
2018-07-02 14:39:36 -07:00
Michael Davidsaver
4baa72c91d avoid data race
destroy() sets _serverSocketChannel=INVALID_SOCKET under the lock.
Other changes are made before the worker thread starts.
2018-06-26 10:45:14 -07:00