# HG changeset patch # User fbeaulier # Date 1314631915 -7200 # Node ID 90e6cf84a0d78b507158305627ac34cba401ad0b # Parent a03f0aa7d219fda483ea369ad570950e0c9c8d18 patch from Christian Taedcke : fix-wrong-resetSDOline-for-sdo-timeout.patch FIXED: - The sdo line must not be closed at the end of SDOTimeoutAlarm() if the same sdo line is closed and reopened for a new transfer inside the callback. (Patch from Jaroslav Fojtik) diff -r a03f0aa7d219 -r 90e6cf84a0d7 src/sdo.c --- a/src/sdo.c Mon Aug 29 16:59:55 2011 +0200 +++ b/src/sdo.c Mon Aug 29 17:31:55 2011 +0200 @@ -156,10 +156,10 @@ if(d->transfers[id].Callback) /*If ther is a callback, it is responsible to close SDO transfer (client)*/ (*d->transfers[id].Callback)(d, nodeId); - /*Reset the line if (whoami == SDO_SERVER) or the callback did not close the line. Otherwise this sdo transfer would never be closed. */ - resetSDOline(d, (UNS8)id); + if(d->transfers[id].abortCode == SDOABT_TIMED_OUT) + resetSDOline(d, (UNS8)id); } #define StopSDO_TIMER(id) \