Commit Graph

833 Commits

Author SHA1 Message Date
Michael Davidsaver
3f050f3533 avoid unnecessary re-throw
"Failed to initialize UDP transport"
is not a useful error message
2020-06-06 08:01:52 -07:00
Michael Davidsaver
598fa1e596 make Destroyable::destroy() optional 2020-06-03 15:55:09 -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
ef4bf9120e client: fix mixed up CID/SID in CMD_DESTROY_CHANNEL handler
servers send SID then CID
2020-04-07 13:13:23 -07:00
Michael Davidsaver
19d868eb7d start CID, SID, and IOID from different non-zero
Help to detect situations where these IDs get mixed up
2020-04-07 13:08:55 -07:00
Michael Davidsaver
4ef9c1102b no "invalid bit-set length"
Not actually an error case as BitSet storage is compacted.
2020-03-18 09:35:34 -07:00
Michael Davidsaver
245a09a199 client unconditionally clear existingBitSet
When reused (after reconnect) need to clear mask from previous
operation, which may be a different type from a different server
and just happen to have the same number of bits.
2020-03-18 09:35:34 -07:00
Heesterman, Peter J
208eef0962 Static analysis of epics base during the Codathon at Diamond. 2020-02-17 12:04:43 +00:00
Heesterman, Peter J
ddc5d261cb #inlcude <pv/refTrack.h> is incorrectly located w.r.t. #define epicsExportSharedSymbols.
The header file imports definitions from pvData into the module.
It does not export from this module.

This causes DLL build problems on Windows.
2020-02-17 12:04:05 +00:00
Michael Davidsaver
4c1ed86f96 add pval
List names from all ChannelProviders.
2020-01-16 09:50:34 -08: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
0fdd3a7079 bind() error msg buffer too small 2020-01-16 09:16:23 -08:00
Michael Davidsaver
7903a736d4 avoid ipAddrToA() 2019-11-24 19:37:08 -08:00
Michael Davidsaver
135bf7265c fully fix AuthorizationRegistry race 2019-10-31 07:43:48 -07:00
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
b24afb9d33 osdGetRoles() avoid fault when gid==0
Attempt to detect misbehaving getgrouplist()
fails when user is actually a member of
group 0 (aka. root).

Instead, fill with (gid_t)-1 which seems less likely
to cause problems if erroneously grant.
2019-09-12 09:32:57 -07:00
Michael Davidsaver
24e83daaba pvac::Monitor::cancel() don't clear data members
Clearing root, overrun, and changed makes it difficult
to avoid a race during an async. cancel (very common).
2019-09-11 18:05:08 -07: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
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
b06aa1831f minor
disambiguate error messages
2019-07-15 14:03:50 -07:00
Michael Davidsaver
1e9e4bd2a8 BlockingTCPAcceptor drop unused ctor 2019-07-15 14:03:50 -07:00
Michael Davidsaver
34009d2a3a update pvasr 2019-07-15 13:54:36 -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
fd95f90acc hexDump, now with ascii!
... again
2019-06-26 16:48:31 -07:00
Michael Davidsaver
f44dcbfc77 WIN32 fix 2019-06-26 16:48:31 -07:00
mdavidsaver
9eb5843def Merge pull request #144 from mdavidsaver/idletimeout
TCP Idle Timeout
2019-06-26 15:57:37 -07:00
Michael Davidsaver
05bf0fc453 CAPlugin handle peer NULL data 2019-06-13 10:52:24 -07:00
Michael Davidsaver
5abfc10a82 really echo this time... 2019-06-12 13:25:35 -07:00
Michael Davidsaver
a2c106378a avoid deadlock involving fair_queue<T>::clear()
Avoid destroying items while the queue lock is held.
2019-05-29 11:09: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
c9bd214f7c client proto v2 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
8d18b4ca3d PVA server protocol v2
Now with idle timeout!
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
a1af3c2c8e echo content 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