[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