Commit Graph

529 Commits

Author SHA1 Message Date
Michael Davidsaver
5f9508a3b1 demote getTransport() fialure message to debug
the connect() will be retried, so this isn't fatal.
2018-02-01 20:04:03 -08:00
Michael Davidsaver
d41d15d59e drop some dead code 2018-02-01 19:51:32 -08:00
Michael Davidsaver
606669c62b less verbose error message when ::connect() fails 2018-02-01 19:51:15 -08: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
f1defe4e9f mark NamedLockPattern as deprecated
just too hard to use (exception) safely
2018-02-01 19:00:38 -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
5a86835a6f add ref-counter for Transport ABC 2018-02-01 11:17:56 -08:00
Michael Davidsaver
a039b48c1f caProvider: remove deprecation warnings
make no-op destroy() private to prevent
accidental usage.
2018-01-31 12:49:10 -08:00
Michael Davidsaver
d33356ced6 drop deprecated 2018-01-31 12:48:59 -08:00
Michael Davidsaver
49b2507985 convert global string "constants" to macros
avoid instantiating in all compilation units.
2018-01-31 12:48:25 -08:00
Michael Davidsaver
3bb2f25bed Merge remote-tracking branch 'origin/master'
* origin/master:
  prevent CAChannel::disconnectChannel() from calling ca_clear_channel twice This was causing a crash when exiting
  Revert "When caProvider is destroyed make sure all channels are cleared"
  make changes suggested by andrew that remove warning messages
  Clean up compiler warnings
  fix issue #77
2018-01-31 11:51:57 -08:00
Michael Davidsaver
abce3faa86 fix 'pva' provider registration during static linking
Move 'pva' provider registration into registry singleton
construction to ensure that it is done.
2018-01-31 11:51:13 -08:00
Michael Davidsaver
c6b1786008 minor doc 2018-01-31 11:51:13 -08:00
Michael Davidsaver
9daf7a0cad remove unnecessary includes 2018-01-31 11:51:13 -08:00
Michael Davidsaver
cce7e10ac4 minor 2018-01-31 11:51:13 -08:00
mrkraimer
595e54eea1 Merge https://github.com/epics-base/pvAccessCPP 2018-01-30 05:35:00 -05:00
mrkraimer
cb21eb4f1e prevent CAChannel::disconnectChannel() from calling ca_clear_channel twice
This was causing a crash when exiting
2018-01-30 05:08:43 -05:00
Marty Kraimer
5c5da3b515 Revert "When caProvider is destroyed make sure all channels are cleared" 2018-01-29 13:53:25 -05:00
Marty Kraimer
a14cca78e0 Merge pull request #79 from mrkraimer/master
When caProvider is destroyed make sure all channels are cleared
2018-01-29 13:00:14 -05:00
mrkraimer
4d2e682a95 make changes suggested by andrew that remove warning messages 2018-01-29 10:19:56 -05:00
Andrew Johnson
fa46935d35 Clean up compiler warnings 2018-01-04 17:52:36 -06:00
Michael Davidsaver
d1fca67cf2 ioc: shutdown PVA server via epicsAtExit()
Otherwise is shutdown in global dtor.
Better to use epicsAtExit() which has
some ordering
2017-12-28 11:08:13 -06:00
Michael Davidsaver
903d117485 pvAccessLog() add EPICS_PRINTF_STYLE()
and fixup incorrect specifiers
2017-12-28 10:49:54 -06:00
Michael Davidsaver
f076adc1ae remove unnecessary atexit
The client factory is installed by global
ctor.
2017-12-28 10:38:05 -06:00
mrkraimer
d3ce104c33 fix issue #77 2017-12-23 06:35:23 -05:00
Michael Davidsaver
c30d4347d0 notate BlockingUDPTransport w/ OVERRIDE FINAL
and de-virtualize methods never actual overridden
2017-12-19 11:38:26 -06:00
Michael Davidsaver
c4fe7150c9 caChannel: no need for weak pvRequest
Operations should keep their pvRequest alive.
The only danger of ref. loops with pvRequest
is via PVUnion, which is outside the scope
of pvAccessCPP.
2017-12-19 11:38:26 -06:00
Michael Davidsaver
a10534d74d eliminate Connector interface
no code generically creates UDP or TCP connections,
so this abstraction results only in unnecessary
virtual calls and casts.
2017-12-19 11:38:26 -06:00
Michael Davidsaver
457d03508d reduce noise 2017-12-12 09:57:24 -06:00
Michael Davidsaver
4dcc8bffe1 minor 2017-12-12 09:57:24 -06:00
Andrew Johnson
65b0ac1a32 Fixes needed for older VxWorks GCC 2017-11-29 16:44:19 -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
bc0892a1ad workaround for older gcc 2017-11-28 17:54:25 -06:00
Michael Davidsaver
d4eb31e729 silence warning
the 'done' flag avoids actual use of uninitialized 'size'.
2017-11-28 17:54:25 -06:00
Andrew Johnson
e61d10200e Merge pull request #74 from mrkraimer/master
This fixes the problems raised in issue #71
2017-11-28 09:04:47 -06:00
Michael Davidsaver
d1cbb0abd5 pvac: ensure that listeners are done in ClientChannel
ensure no concurrent callback in progress
when removing listeners.
2017-11-22 14:20:26 -06:00
Michael Davidsaver
6055dbb983 pvac user internal/external refs. 2017-11-22 14:14:05 -06:00
Michael Davidsaver
250826ffb9 add reftrack to pvac 2017-11-22 12:32:38 -06:00
mrkraimer
46b19866c7 Merge https://github.com/epics-base/pvAccessCPP 2017-11-20 08:46:58 -05:00
mrkraimer
e4182d0b00 fix incorrect logic 2017-11-18 07:05:34 -05:00
mrkraimer
32d0ece858 fix all problems raised in issue #71 2017-11-17 15:18:21 -05:00
Michael Davidsaver
3f51c74ba1 fix mingw build error 2017-11-16 18:47:39 -06:00
Michael Davidsaver
cf7827ceab quiet mingw include order warning
#warning Please include winsock2.h before windows.h
2017-11-16 18:45:44 -06:00
Michael Davidsaver
e626ca0aaf client const-ify where possible 2017-11-16 17:38:11 -06:00
Michael Davidsaver
f45de1de68 client minor locking 2017-11-16 17:38:11 -06:00
Michael Davidsaver
8e846b02bc tighten up validation 2017-11-16 17:38:11 -06: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
00e01d5211 tighten up client operation send state handling 2017-11-16 17:03:10 -06:00
Michael Davidsaver
1d56ee7283 pva client ignore CMD_DESTROY_REQUEST reply.
Presently CMD_DESTROY_REQUEST and CMD_CANCEL_REQUEST aren't acknowledged.
This allows ambiguity in when the request ioid goes out of scope.

Currently, the client forgets about an ioid as soon as the destroy request is sent.
So any in-flight response will be erroneously flagged as "Undecipherable message".

Similarly, a cancel request can cross paths with a reply.
This creates confusion in the event the client starts a new
request immediately after canceling the first.

Let's build some forward compatibility by ignoring replies to
cancel and destroy requests.
2017-11-16 17:03:10 -06:00
Michael Davidsaver
b3fcffb18e avoid magic number 2017-11-16 14:56:59 -06:00