Commit Graph

1997 Commits

Author SHA1 Message Date
Andrew Johnson
fbcc7b4a0d ca: Merged Jeff's tcpiiu changes
In disconnectAllChannels mark channels as unassigned to any list
because in some unusual situations (abrupt shutdown) the channels are
not immediately assigned to another list.
2011-02-11 14:55:04 -06:00
Jeff Hill
a2c87268f5 in disconnectAllChannels mark channels as unassigned to any list because in some unusual situations (abrupt shutdown) the channels are not immediately assigned to another list 2011-01-14 17:53:33 -07:00
Ralph Lange
3ca705752a catools: Fix help text for "-s" option (also in CA RefMan) 2010-11-24 13:31:47 -05:00
Ralph Lange
e65253f8b9 ca: Minor fix in CA Reference Manual 2010-11-05 15:57:34 -04:00
Ralph Lange
3398950f9d ca: Added chapter about firewalls to CA Reference Manual 2010-11-05 15:41:39 -04:00
Jeff Hill
f340b3e153 o removed -O3 from mingw debug builds (so the issues below are reproduced on mingw)
o gnu compiler for windows doesnt support well dll exporting individual functions from a class
in debug builds so I switched to exporting the entire interface class in several places
o fixed several places in ca lib where include of epicsTimer.h wasnt properly ifdef'd so
that it is imported by ca header files
--- these issues were already fixed on cvs main trunk ---
2010-11-04 10:19:54 -06:00
Andrew Johnson
d6c6a07cc3 CAref: Under DBR_STSACK_STRING s/ackv/acks/ 2010-09-29 11:20:00 -05:00
Ralph Lange
534bee1a2e Merged Ralph Lange's 'cac-dtor-racecond-fix' branch. 2010-09-27 18:39:50 -04:00
Andrew Johnson
a9b5f0c6a0 Merged Michael Abbott's dynamic-array branch, rebased.
I added Perl support, and wrote some release notes.
2010-09-20 16:21:50 -05:00
Ralph Lange
a0a9ee4553 ca: Avoid possible race condition during cac shutdown.
While the cac dtor runs and waits for TCP circuit threads to exit,
new circuits could be opened by name resolution replies on existing
(still active) circuits.
Avoid this by setting a flag (lock being held) in the dtor, and
checking it in cac::transferChanToVirtCircuit.
2010-08-23 16:17:16 -04:00
Andrew Johnson
85c2877746 Document the dynamic-array changes. 2010-08-17 18:06:19 -05:00
Jeff Hill
7af0397d58 Examining the previous change I see that it will introduce a race condition when circuits are being created and destroyed at close to the same instant in time. See revision 11786 of cac.cpp which fixes mantis 334 if you are interested in what this code does. After running the regression tests, I pushed in a fix (which is removing above mentioned change and restoring the increment of iiuExistenceCount in cac::findOrCreateVirtCircuit. 2010-08-16 17:45:06 -06:00
Ralph Lange
2666e9d62b Bug fixes to CA client introduced by CA-over-TCP code. 2010-08-16 15:49:52 -05:00
Andrew Johnson
1bab392da7 Deleted trailing ';' from epicsPlacementDeleteOperator macro
(which looks like a member function, but isn't).
2010-08-13 13:12:06 -05:00
Michael Abbott
519c94a6e3 Update rsrv to support V4.13 protocol extension.
The rsrv server is updated in this commit to deliver variable sized
waveforms in response to a zero length request, implementing an
extension to the v4 EPICS protocol tied to minor version 13.

The core of the changes are in read_reply, rsrv/camessage.c, which first
reserves packet space for the largest possible response, but then resizes
the packet according to how much data is actually returned from the
database.
2010-08-11 17:36:11 -05:00
Michael Abbott
ee4a615caa Client side support for automatic resizing arrays.
In this commit the channel access client is modified to allow a zero
size request in a caget or camonitor call.  This is passed through to
the corresponding CA_PROTO_READ_NOTIFY or CA_PROTO_EVENT__ADD message,
but only if the minor version of the protocol is >=13.

This commit also adds a new protocol test, CA_V413(), which detects a
server which claims to understand the new zero length request.

Finally, this commit prepares for a subtle change in the CA protocol.
A request for a zero length subscription or data request, which will
only be made for protocol version 4.13 and above, is interpreted as a
request for autosized data, where the intrinsic dynamic length of the
requested waveform should be returned.

With the synchronous ca_array_get() call there is no mechanism available
to pass back the size of the retrieved data if it is different from
the requested count, so the simplest thing is to ensure we don't
request autosizing data through this api.
2010-08-11 17:35:23 -05:00
Michael Abbott
e87bbef75c Update rsrv to support V4.13 protocol extension.
The rsrv server is updated in this commit to deliver variable sized
waveforms in response to a zero length request, implementing an
extension to the v4 EPICS protocol tied to minor version 13.

The core of the changes are in read_reply, rsrv/camessage.c, which first
reserves packet space for the largest possible response, but then resizes
the packet according to how much data is actually returned from the
database.
2010-08-11 16:38:49 -05:00
Michael Abbott
a0c0c55347 Client side support for automatic resizing arrays.
In this commit the channel access client is modified to allow a zero
size request in a caget or camonitor call.  This is passed through to
the corresponding CA_PROTO_READ_NOTIFY or CA_PROTO_EVENT__ADD message,
but only if the minor version of the protocol is >=13.

This commit also adds a new protocol test, CA_V413(), which detects a
server which claims to understand the new zero length request.

Finally, this commit prepares for a subtle change in the CA protocol.
A request for a zero length subscription or data request, which will
only be made for protocol version 4.13 and above, is interpreted as a
request for autosized data, where the intrinsic dynamic length of the
requested waveform should be returned.

With the synchronous ca_array_get() call there is no mechanism available
to pass back the size of the retrieved data if it is different from
the requested count, so the simplest thing is to ensure we don't
request autosizing data through this api.
2010-08-11 16:22:54 -05:00
Andrew Johnson
eda402cf66 Merged Ralph's ca-over-tcp branch.
Fixed some vxWorks compile errors, and made a number of edits
to the HTML in the CAref.html documentation.
2010-08-10 16:05:46 -05:00
Ralph Lange
0666207393 Removed comment about ellfree @Windows in udpiiu.cpp (suggested by Jeff). 2010-05-14 09:34:40 -04:00
Ralph Lange
be978d6499 Fixed issue "TCP Nameserver Connection Down Blocks All Callbacks" and cleaned up the SearchDest list / TCP circuit relation
* Pulled out tcpiiu::SearchDestTCP to have cac create the SearchDest independent from the TCP circuit
* Reorganized the relation between the SearchDestTCP and the TCP circuit:
  - SearchDest stays always on the cac list
  - TCP connection going down sets SearchDest inactive and SearchDestTCP's circuit member to NULL
  - Next seach request creates the new TCP circuit and sets SearchDestTCP's member, but leaves SearchDest inactive
  - Successful connect sets SearchDest active
* ReceiveThread releases the cac mutex before going to sleep in connect loop
2010-04-15 17:06:16 -04:00
Ralph Lange
a0e868e2e1 Make SearchDest.h include all the headers it needs 2010-04-09 10:59:57 -04:00
Ralph Lange
d539db4053 Fix for: TCP Nameserver Connections Do Not Reconnect 2010-04-09 10:38:18 -04:00
Ralph Lange
82551fd175 Added EPICS_CA_NAME_SERVERS paragraph. Fixed lots of minor issues (unprintable characters). 2010-04-07 17:15:39 -04:00
Ralph Lange
23612a7afe Merged Codeathon 2008 changes (10292..10293 on cvs-trunk branch).
* Fixed conflicts until base compiles
 * COMPLETELY UNTESTED
2010-04-06 17:59:35 -04:00
Ralph Lange
bf5e456e2b Added doc for new DBE_PROPERTY flag in CA Reference Manual 2009-12-15 22:42:57 +00:00
Ralph Lange
c8470a2473 Added -l.. commandline options to catools (by Stephanie Allison) 2009-12-15 22:05:55 +00:00
Jeff Hill
d24c66f83d fix for mantis 366 2009-09-11 00:49:02 +00:00
Jeff Hill
955e9cd4d1 improved test id in diag message 2009-08-31 19:47:58 +00:00
Jeff Hill
3fe4def288 monitorAddConnectionCallbackTest test was too specific -
we shouldnt test for exactly two subscription updates when
more than two is sufficent
2009-08-28 23:28:29 +00:00
Jeff Hill
a4e5e540a9 added \n to printf diagnostic 2009-08-25 15:45:20 +00:00
Jeff Hill
33911cd0af improved failure diagnostic 2009-08-25 14:50:11 +00:00
Jeff Hill
4921187178 use verify instead of assert 2009-08-24 17:04:40 +00:00
Jeff Hill
794811b95a exp passed to assert must not change the state of the data structures 2009-08-24 17:03:17 +00:00
Jeff Hill
aa904449c0 we dont need tocheck the return from new with assert 2009-08-24 17:01:21 +00:00
Jeff Hill
8c2278784c fixed mantis 361 2009-08-21 00:53:55 +00:00
Jeff Hill
1fba8dd866 improved fdManagerVerify progress diagnostics 2009-08-20 22:29:53 +00:00
Jeff Hill
782ff1b303 improved create channel unexpected exception diagnostic 2009-08-14 19:12:50 +00:00
Jeff Hill
2fb6b2100f improved test diagnostic 2009-08-14 17:44:33 +00:00
Jeff Hill
0012042a5e accomodate archaic vxWorks gnu compiler 2009-08-14 17:31:34 +00:00
Jeff Hill
e0d16659e1 improved TCP circuit creation failure exception diagnostics 2009-08-14 16:57:48 +00:00
Jeff Hill
8303cf053b improved VC creation failure exception diagnostics 2009-08-14 16:56:31 +00:00
Jeff Hill
0fdda3f794 back out prev change 2009-08-14 00:29:56 +00:00
Jeff Hill
b344841365 fixed the following issues with detection of flow control mode
o the flow control contig frame thresh should be based on max array size
o it appears that the wakeup mechanism for the send thread, who sends
the flow control on/off messages was broken
o looking at full buffers isnt a perfect detection scheme compared to
the simpler approach of just checking to see if bytes are pending in
the socket before calling recv
2009-08-13 23:29:02 +00:00
Jeff Hill
b867dabad0 cache the client ctx ref prior to calling callback in case they delete the
channel in the callback
2009-08-13 22:46:47 +00:00
Jeff Hill
0cea525682 destroy putCallback prior to calling callback in case they delete the
channel in the callback
2009-08-13 22:44:30 +00:00
Jeff Hill
2df7da052a destroy getCallback prior to calling callback in case they delete the
channel in the callback
2009-08-13 22:43:21 +00:00
Jeff Hill
59b820d2f5 added missing epicsShareExtern 2009-08-13 22:42:05 +00:00
Jeff Hill
3fda8dc2b0 added test failure diagnostic 2009-08-13 22:40:02 +00:00
Jeff Hill
44a6e9a005 added SEVCHK string 2009-08-12 00:37:10 +00:00