Skip to Content.
Sympa Menu

freetds - Cancel problem

freetds AT lists.ibiblio.org

Subject: FreeTDS Development Group

List archive

Chronological Thread  
  • From: ZIGLIO Frediano <Frediano.Ziglio AT vodafoneomnitel.it>
  • To: "Freetds (E-mail)" <freetds AT franklin.metalab.unc.edu>
  • Subject: Cancel problem
  • Date: Wed, 4 Sep 2002 12:16:41 +0200


Ok, understood the problem.

You send cancel
Server return a cancel only-header packet.
tds_process_cancel read a byte.
If only-header packet is received tds_get_byte return a zero.
tds_process_cancel on received zero act as a done/cancel token (this patch
is not so good, see diff between version 1.25 and 1.26 in token.c at
http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/freetds/freetds/src/tds/token
.c.diff?r1=1.25&r2=1.26&sortby=date, IMHO should be removed..).
Replacing the if in tds_get_byte with a while whould resolve partially the
problem.

Note that while sending cancel server can send another packet...
I suggest to add a TDS_CANCELLING state, read should discard all packet in
cancelling and stop reading the only-header cancel packet, then change state
(TDS_CANCELLED ??) and act in the usually mode.

Also before sending cancel packet we should discard partial packet (just a
init packet before sending it).

Seem not so difficult but should be tested accurately...

freddy77

=================================
"STRICTLY PERSONAL AND CONFIDENTIAL

This message may contain confidential and proprietary material for the sole
use of the intended recipient. Any review or distribution by others is
strictly prohibited. If you are not the intended recipient please contact
the sender and delete all copies.
The contents of this message that do not relate to the official business of
our company shall be understood as neither given nor endorsed by it."

=================================




Archive powered by MHonArc 2.6.24.

Top of Page