[PATCH][MISDNUSER] testlayer3: Normalize successful write() return value in bch_worker()
"Maciej S. Szmigiero" <[email protected]> Fri, 18 Mar 2016 22:44:32 +0100
| Newsgroups | gmane.linux.isdn.i4l.user |
|---|---|
| Message-ID | <[email protected]> |
bch_worker() on {DL,PH}_DATA_IND returns what write() call has returned.
This function returns number of bytes written, however bch_worker() caller
main_worker() treats any non-zero return value of bch_worker() as signal
to disconnect the call.
This all meant that call terminated on first received chunk of data.
Fix it by normalizing a positive return value of write() in bch_worker()
to zero.
Signed-off-by: Maciej S. Szmigiero <[email protected]>
---
example/testlayer3.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/example/testlayer3.c b/example/testlayer3.c
index 38221ff69d0c..cdb474707c42 100644
--- a/example/testlayer3.c
+++ b/example/testlayer3.c
@@ -1296,6 +1296,8 @@ static int bch_worker(devinfo_t *di)
ret = write(di->save, buf + MISDN_HEADER_LEN, len - MISDN_HEADER_LEN);
if (ret < 0)
fprintf(stderr,"got error on write %s\n", strerror(errno));
+ else
+ ret = 0;
break;
case PH_DATA_CNF:
/* get ACK of send data, so we can