Commit Graph

210 Commits

Author SHA1 Message Date
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
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
2666e9d62b Bug fixes to CA client introduced by CA-over-TCP code. 2010-08-16 15:49:52 -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
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
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
Jeff Hill
d24c66f83d fix for mantis 366 2009-09-11 00:49:02 +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
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
913f724ebf fix for mantis 357 2009-07-31 19:47:46 +00:00
Jeff Hill
b6a22aa844 removed optimization which could make the ca client library
vulnerable if the following function indicates recv bytes are pending but
recv blocks anyways.

osiSockIoctl_t bytesPending = 0;
int status = socket_ioctl ( this->sock, FIONREAD, & bytesPending );
2009-07-17 21:33:18 +00:00
Jeff Hill
d7ae0fbce6 made lib more robust if server sends duplicate connect channel response 2009-07-14 22:39:41 +00:00
Jeff Hill
cba3d9673d fix for mantis 284 2009-07-08 18:00:03 +00:00
Jeff Hill
0e4891201e fix for compiler warnings in mantis 337 2009-07-07 23:47:38 +00:00
Jeff Hill
77669d793d fixed situations where local host name cache is repatedly created and destroyed 2009-02-11 00:50:28 +00:00
Jeff Hill
de1b8a94ff fix for mantis 297 2007-08-23 17:46:28 +00:00
Jeff Hill
57e9e59714 fixed a bug where the callback control gaurd was used from a different thread
than the one that created it
2007-01-11 22:02:47 +00:00
Jeff Hill
94dfec0999 fixed compiler warning 2006-12-05 19:56:28 +00:00
Jeff Hill
ffb5e239f2 catch client initiated write requests with invalid dbr types in the client library 2006-11-18 00:52:09 +00:00
Jeff Hill
363199adfa fixed bug occurring when interfacing with EPICS 3.11 2005-11-22 00:11:16 +00:00
Jeff Hill
343ecd29e8 removed return of void from void function which makes standards incompliant
compiler bark
2005-11-14 16:14:07 +00:00
Jeff Hill
f4aa9c2e33 fix for mantis 153 2005-11-09 23:55:15 +00:00
Jeff Hill
6f6f1d22cd better fix for mantis 111 2005-11-08 21:25:23 +00:00
Jeff Hill
6c69138be0 dont pass time stamp to receive watchdog notify 2005-10-31 22:24:38 +00:00
Jeff Hill
df16e0238a fix for mantis 111: force recv thread to run first when both receive watchdog
and receive thread are blocking for the preeemptive callback control lock

I also added a guard in a place that appeared to be not  adaquately
protected.
2005-10-31 21:57:14 +00:00
Jeff Hill
f5174ef94e fixed ca_host_name() returns name of the local host 2005-04-11 21:38:35 +00:00
Jeff Hill
dfa35d0596 getHostName returns string size 2004-10-19 20:55:39 +00:00
Jeff Hill
400d474bed no longer needs to call exitWaitRelease 2004-10-08 15:44:18 +00:00
Jeff Hill
302cde41b0 removed CVS Id tokens as they cause never ending hassles when merging
in from branches
2004-10-04 18:55:40 +00:00
Jeff Hill
753ecff270 Changes to support communication with protocol revisions prior to 4.2 (EPICS 3.11) 2004-10-04 16:39:00 +00:00
Jeff Hill
f384eee9b6 fixed sunpro warnings 2004-09-24 15:42:54 +00:00
Jeff Hill
7b7a07c667 fixes for bugs 133 and 134 in Mantis 2004-09-23 23:15:22 +00:00
Jeff Hill
0ca4281952 fixed gcc 3.4 issue 2004-07-07 14:58:10 +00:00
Jeff Hill
400c482bb2 fixed the following problems
o application could hang for too long in ca_context_destroy() attempting a
clean shutdown if circuit is known to be unresponsive
o unexpected errno from recv message was improperrly supressed
for locally initiated circuit abort
2004-06-22 18:21:12 +00:00
Jeff Hill
288e8abe90 many changes 2004-06-17 23:49:21 +00:00
Jeff Hill
da5bc3b820 disconnect servers that send missaligned protocol 2004-06-14 17:45:43 +00:00
Jeff Hill
0e0aa7bac5 disconnect servers that send missaligned protocol 2004-06-11 19:27:50 +00:00
Jeff Hill
57d488b7a0 supress disconnect callback when context is destroyed 2004-05-20 17:22:40 +00:00
Jeff Hill
a0e0cd7ef5 fixed channel uninstall message was not sent to server and other problems 2004-04-02 00:01:45 +00:00
Jeff Hill
afb643443f fixed no reconnect 2nd time bug 2004-02-04 02:10:30 +00:00
Ralph Lange
429a135265 Bugfixes for compiling with -DDEBUG 2004-02-03 13:42:42 +00:00
Jeff Hill
b59586dc83 fixed ms warnings 2004-01-27 00:27:52 +00:00
Jeff Hill
57420c3e3c removed legacy unguard incompatible with current structure of code 2004-01-24 00:13:16 +00:00
Jeff Hill
bb05cea3c1 fixed solaris warnings 2004-01-23 19:55:11 +00:00
Jeff Hill
3c8efba3c4 hybernate send/receive threads when there are enobuf problems 2004-01-22 19:17:32 +00:00
Jeff Hill
8bd3d4a8a0 fixed gnu warnings 2004-01-15 03:13:08 +00:00
Jeff Hill
60a797048a many changes associated will disconnecting the channel but not disconnecting
the circuit
2004-01-15 01:42:49 +00:00
Jeff Hill
cde473e4d9 fixed names 2004-01-09 01:05:27 +00:00