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