Selaa lähdekoodia

【修复】telnet 客户端关闭连接后,finsh 状态无法还原的问题。

Signed-off-by: armink <armink.ztl@gmail.com>
armink 7 vuotta sitten
vanhempi
sitoutus
76fb5ed9c6
1 muutettua tiedostoa jossa 9 lisäystä ja 0 poistoa
  1. 9 0
      telnet/telnet.c

+ 9 - 0
telnet/telnet.c

@@ -266,6 +266,15 @@ static rt_size_t telnet_read(rt_device_t dev, rt_off_t pos, void* buffer, rt_siz
     /* read from rx ring buffer */
     rt_mutex_take(telnet->rx_ringbuffer_lock, RT_WAITING_FOREVER);
     result = rt_ringbuffer_get(&(telnet->rx_ringbuffer), buffer, size);
+    if (result == 0)
+    {
+        /**
+         * MUST return unless **1** byte for support sync read data.
+         * It will return empty string when read no data
+         */
+        *(char *) buffer = '\0';
+        result = 1;
+    }
     rt_mutex_release(telnet->rx_ringbuffer_lock);
 
     return result;