From f2788d66cd944c0919ef884b4422b865ada4ccd4 Mon Sep 17 00:00:00 2001 From: Jing Chen Date: Fri, 3 Aug 2012 14:09:55 +1000 Subject: [PATCH] Fixing hang-on bug in lfgen protocol r3690 | jgn | 2012-08-03 14:09:55 +1000 (Fri, 03 Aug 2012) | 1 line --- site_ansto/hardsup/sct_lfprot.c | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/site_ansto/hardsup/sct_lfprot.c b/site_ansto/hardsup/sct_lfprot.c index 7ed7f734..3733959a 100644 --- a/site_ansto/hardsup/sct_lfprot.c +++ b/site_ansto/hardsup/sct_lfprot.c @@ -145,17 +145,20 @@ int LFGenReading(Ascon *a) // Read HEAD info do { ret = AsconReadChar(a->fd, &chr); - if(ret<0) { - AsconError(a, "AsconReadChar failed:", errno); + if(ret<=0) { + AsconError(a, "AsconReadChar failed:", 0); + a->state = AsconReadDone; return 0; + } else { + HEAD = (BYTE)chr; } - HEAD = (BYTE)chr; } while (HEAD!=0x96); // read LEN info ret = AsconReadChar(a->fd, &chr); - if(ret<0) { - AsconError(a, "AsconReadChar failed:", errno); + if(ret<=0) { + AsconError(a, "AsconReadChar failed:", 0); + a->state = AsconReadDone; return 0; } LEN = (BYTE)chr; @@ -173,8 +176,8 @@ int LFGenReading(Ascon *a) // read all other chars while(indfd, &chr); - if (ret < 0) { - AsconError(a, "AsconReadChar failed:", errno); + if (ret <= 0) { + AsconError(a, "AsconReadChar failed:", 0); a->state = AsconReadDone; return 0; }