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
cddbabf8bc
auth fix mingw static
2019-04-09 11:07:30 -07:00
Michael Davidsaver
5b14bbef5a
drop display.format
2019-02-19 19:58:47 -08:00
Michael Davidsaver
bfff9275bd
always need to link with netapi32 now
2019-01-12 17:07:24 -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
93a83ffa7e
don't install testServer et. al
...
Not really something most end users care about.
So don't clutter up the install tree. Continue
to build, but not run as, tests.
2018-11-26 10:40:44 -08:00
Michael Davidsaver
1f5c0eedcb
MonitorFIFO: open() handle compute() error internally
...
Introduce Error state when open() fails due to invalid
pvRequest mapping.
2018-09-21 11:35:57 -07:00
Michael Davidsaver
99f68dac04
monitorfifo better default config handling
2018-07-14 15:06:44 -07:00
Michael Davidsaver
74c2ec1ec3
Add SharedPV
2018-06-29 16:55:27 -07:00
Michael Davidsaver
ccb1d1dbe3
missing include
2018-06-29 16:55:27 -07:00
Michael Davidsaver
5e887a6d02
add MonitorFIFO
2018-06-26 19:06:47 -07:00
Michael Davidsaver
7a523dd948
drop unused NOMINMAX
2018-05-18 15:20:26 -07:00
Michael Davidsaver
6ccca1ce58
const-ify string constants
...
yes really...
2018-05-18 10:12:34 -07:00
Michael Davidsaver
eed26a166e
testChannelAccess: loosen timestamp tests to reduce false positive failures
2018-04-02 11:45:33 -07:00
Michael Davidsaver
9b828852c0
Transport::getRemoteAddress() return reference
...
make it clear that result is always !NULL
2018-02-01 19:09:44 -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
cc9c666731
Improve client pvRequest option parsing
...
Give some notice of parse errors
2017-11-16 17:38:11 -06:00
Michael Davidsaver
576b241faa
consolidate TransportClient and ChannelImpl as ClientChannelImpl
2017-11-06 15:51:43 -06:00
Michael Davidsaver
dcb74b781d
be explicit about epics::auto_ptr
2017-11-06 12:46:13 -06:00
Michael Davidsaver
0fde239f23
std::auto_ptr -> epics::auto_ptr
2017-11-06 12:37:42 -06:00
Michael Davidsaver
49173ec884
disable pvAccessMB and unused ref-counting boilerplate
2017-11-05 16:54:10 -06:00
Michael Davidsaver
5e900b1f11
remove super abstract authNZInitialize(void*)
...
with separate client and server calls.
Still dynamic_cast ugliness as Transport and Codec
hierarchies don't have a common root.
2017-11-05 16:41:59 -06:00
Michael Davidsaver
c7fd78af57
more shared_ptr compat
2017-07-18 17:35:32 +02:00
Michael Davidsaver
5d843d3587
RPC cleanup: RPCService is a sub-set of RPCServiceAsync
2017-07-11 14:38:01 +02:00
Michael Davidsaver
c98c872835
fix race in channelAccessIFTest
2017-07-04 12:20:51 +02:00
Michael Davidsaver
aadf428212
test debugging
2017-07-03 19:32:55 +02:00
Michael Davidsaver
4fe837c9a0
add RPC loopback test
2017-07-03 19:24:01 +02:00
Michael Davidsaver
749e8d71d1
replace all internal use of getChannelProviderRegistry()
2017-07-03 19:24:00 +02:00
Michael Davidsaver
a3185f11da
MonitorElement const and state tracking
...
Mark MonitorElement member pointers as const
to prevent user code from accidentally mangling.
Add 'state' tracking to help debugging
2017-06-27 15:42:27 +02:00
Michael Davidsaver
35d2c610bf
separate ChannelProviderRegistry for client/server
2017-06-21 14:41:24 +02:00
Michael Davidsaver
3a190cb572
deprecate RPCClient::sendRequest()
...
Changes to provider factory registery make this
very inefficient (build a new client context of each request)
2017-06-08 20:37:20 +02:00
Michael Davidsaver
3e37781d85
update RPCClient
...
Addition ctor to use specific Provider (w/ custom config).
Start connect immediately.
Remove need to issueConnect()/waitConnect().
2017-06-08 20:35:43 +02:00
Michael Davidsaver
8febd176bb
PVA client ref. loop breaking
...
Adjust ownership of BaseRequestImpl sub-classes.
Keep two weak_ptr<>.
one (internal) for tracking relations with Channel.
one (external) for tracking relations w/ user code, and send Q.
external wraps internal, and calls destroy() to break
ref. loops involving internal.
death to m_thisPointer!
2017-06-07 13:33:10 +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
7c85e6073b
move ServerContextImpl into private header
2017-05-30 12:07:23 +02:00
Michael Davidsaver
3283bed413
drop PVA_ALIGNMENT constant
...
This will forevermore be 1, so no
reason to incur complexity of testing this.
size % PVA_ALIGNMENT -> 0
alignBuffer(PVA_ALIGNMENT) -> no-op
alignedValue(val, PVA_ALIGNMENT) -> val
2017-05-24 17:20:17 -04:00
Michael Davidsaver
87dca19708
codec: avoid indirection when accessing buffers
...
avoid some indirection to make this code easier to follow.
move buffer lower limit to base class.
2017-05-24 17:20:17 -04:00
Michael Davidsaver
b05e7699b5
remove no-op lock/unlock from Lock sub-classes
2017-05-24 17:20:17 -04:00
Michael Davidsaver
9253c31c0b
rework ChannelProviderRegistry
...
Replace interface+impls with a single concrete container
which wraps a map.
This breaks code which was sub-classing.
However, no external code can be found which does this.
A build() method is used instead of simple ctor so
that the ctor is private, which will cause theoretical
external sub-class code to fail to compile.
Code using getChannelProviderRegistry()
and existing methods will behave as before.
Add ChannelProviderRegistry::getFactory() for pass through
to ChannelProviderFactory (Registery is just a proxy()...)
Remove existing get/create virtual method in favor of getFactory.
Update both existing implementations.
Add SimpleChannelProviderFactory to cut down on boilerplace
for the common case.
Add method to clear mapping and release any saved sharedInstance.
2017-04-25 21:15:43 -04:00
Matej Sekoranja
74028c9640
testRAII added
2016-05-19 14:53:16 +02:00
Andrew Johnson
0884a199b3
Adjust time-stamp comparison to be approximately 1 second.
...
Also found another time-stamp comparison test, similar changes there.
2016-04-21 15:34:39 -05:00
Andrew Johnson
6e0b772880
Improve test robustness (was failing on a Mac VM)
...
Store and compare the complete time-stamp, not just the seconds field.
2016-04-21 11:13:19 -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
962e139c1a
Don't use %z modifier, not portable.
2016-04-06 11:40:16 -05:00
Andrew Johnson
d76d7faab6
Prevent redefinition warning on MinGW
2016-04-06 11:33:59 -05:00
Andrew Johnson
8fdf0d7411
Use lower-case header filenames for MinGW cross-compilation
2016-04-06 10:59:22 -05:00
Matej Sekoranja
04a90c4780
c++11 compilation issues
...
references #28
2016-03-23 22:04:09 +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