Commit Graph

145 Commits

Author SHA1 Message Date
Michael Davidsaver
c92045620a oops 2018-02-06 16:54:54 -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
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
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
9daf7a0cad remove unnecessary includes 2018-01-31 11:51:13 -08:00
Andrew Johnson
fa46935d35 Clean up compiler warnings 2018-01-04 17:52:36 -06:00
Michael Davidsaver
903d117485 pvAccessLog() add EPICS_PRINTF_STYLE()
and fixup incorrect specifiers
2017-12-28 10:49:54 -06: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
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
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
ba3b777978 missed one
cf 2f0bb7d448
2017-11-16 11:18:13 -06:00
Michael Davidsaver
2f0bb7d448 "Not-a-first segmented message" is a critical error
Let's try to scare users into reporting it more promptly.
2017-11-15 19:38:26 -06:00
Michael Davidsaver
576b241faa consolidate TransportClient and ChannelImpl as ClientChannelImpl 2017-11-06 15:51:43 -06:00
Michael Davidsaver
7118e34222 merge DataResponse into ResponseRequest
DataResponse is only sub-"interface"/class of ResponseRequest.
2017-11-06 15:26:05 -06:00
Michael Davidsaver
3154e3431e consolidate SubscriptionRequest with BaseRequestImpl
"interface" with a single implementation.
combine and de-virtualize
2017-11-06 15:22:09 -06:00
Michael Davidsaver
073c77b1ef consolidate ServerChannel and ServerChannelImpl
"interface" with a single implementation.
combine and de-virtualize.
2017-11-06 15:14:41 -06:00
Michael Davidsaver
1d7f15de25 combine AbstractResponseHandler and ResponseHandler 2017-11-06 14:27:46 -06:00
Michael Davidsaver
aaef110507 eliminate ChannelHostingTransport
an "interface" used once.  Drop it and de-virtualize.
2017-11-06 13:41:58 -06:00
Michael Davidsaver
dcb74b781d be explicit about epics::auto_ptr 2017-11-06 12:46:13 -06:00
Michael Davidsaver
9bf03fbfbe no more returning auto_ptr 2017-11-06 12:44:36 -06:00
Michael Davidsaver
0fde239f23 std::auto_ptr -> epics::auto_ptr 2017-11-06 12:37:42 -06:00
Michael Davidsaver
f91b593aea no need to dllexport inline class w/o virtuals 2017-11-06 11:02:08 -06:00
Michael Davidsaver
161280220e avoid std::min 2017-11-06 10:57:09 -06:00
Michael Davidsaver
8d5c27143b pvasr list client channels 2017-11-05 17:11:28 -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
47332fdf90 server status reporting via iocsh 2017-11-05 15:59:01 -06:00
Michael Davidsaver
90394f788e minor 2017-09-06 12:37:42 -05:00
Michael Davidsaver
90e8276758 fixup point to point interface handling.
with bcast interfaces, send searches to bcast address
and !WIN32 binds bcast address to receive searches.

with point to point, send searches to dest address.
can't bind dest address (not local).

quiets spurious error message:

> Error binding socket: Cannot assign requested address.

Encountered with a P2P link setup by openvpn.
2017-09-06 10:38:20 -05:00
Michael Davidsaver
9bf307712b improve UDP bind error 2017-09-06 09:52:53 -05:00
Michael Davidsaver
27ec187bd4 inetAddressUtil no more new vector
no more allocating vector.
2017-09-02 09:55:15 -05:00
Michael Davidsaver
9a09e5790e blockingUDP: simplify vector* members 2017-09-02 09:55:15 -05:00
Michael Davidsaver
79874e1811 reftrack more classes
include the common abstract bases used by all ChannelProviders.
2017-09-02 09:55:15 -05:00
Michael Davidsaver
98df225583 insturment with reftrack 2017-08-30 11:17:03 -05:00
Michael Davidsaver
6aa6a570de minor 2017-08-30 11:17:03 -05:00
Michael Davidsaver
09101fb321 no need to include osdSock.h 2017-07-19 15:22:16 +02:00
Michael Davidsaver
ad5d23f4c8 minor vx fix 2017-07-17 17:38:51 +02:00
Michael Davidsaver
5f788c036a iOS compat 2017-07-17 17:19:10 +02:00
Michael Davidsaver
2c530868f6 split out caprovider as libpvAccessCA
fixup multi-library build
2017-07-17 13:51:20 +02:00
Michael Davidsaver
24257c3035 remove unnecessary exports and installed impl header 2017-07-12 16:34:11 +02:00
Michael Davidsaver
be5047ce04 more import/export 2017-07-10 14:10:48 +02:00
Michael Davidsaver
05b6da623a rename GUID -> ServerGUID
avoid ambigious name on windows/mingw
2017-07-04 17:57:20 +02:00
Michael Davidsaver
c84d41396d pva client: reverse operation -> requester strong ref
make this a weak ref as it is more natural
that the initiator (requester) holds
a strong ref to the operation.
2017-07-03 19:24:00 +02:00
Michael Davidsaver
0c02625aa5 servercontext wait for transport worker threads to finish
doing this through Transport::close()
causes deadlock in client code due to locking.
So make this an extra step.
2017-06-26 14:16:41 +02:00
Michael Davidsaver
3dca3dc38f ServerContext clear timer queue 2017-06-22 13:51:38 +02:00
Michael Davidsaver
cd722388dc fix client Channel ref leak through Context search map 2017-06-19 11:30:08 +02:00
Michael Davidsaver
ad2ad17fe5 drop unused 2017-06-06 15:33:49 +02:00