The port_forward_to() method clobbers the specific error code returned
by the transport layer with -1.  This patch lets the code preserve the
specific error in question.

Signed-off-by: Richard Cochran <richardcoch...@gmail.com>
---
 port.c | 6 ++++--
 port.h | 2 +-
 2 files changed, 5 insertions(+), 3 deletions(-)

diff --git a/port.c b/port.c
index 6104061..48fff1c 100644
--- a/port.c
+++ b/port.c
@@ -2737,8 +2737,10 @@ int port_forward_to(struct port *p, struct ptp_message 
*msg)
 {
        int cnt;
        cnt = transport_sendto(p->trp, &p->fda, TRANS_GENERAL, msg);
-       if (cnt <= 0) {
-               return -1;
+       if (cnt < 0) {
+               return cnt;
+       } else if (!cnt) {
+               return -EIO;
        }
        port_stats_inc_tx(p, msg);
        return 0;
diff --git a/port.h b/port.h
index a45a7a4..e347e36 100644
--- a/port.h
+++ b/port.h
@@ -94,7 +94,7 @@ int port_forward(struct port *p, struct ptp_message *msg);
  * Forward a message on a given port to the address stored in the message.
  * @param port    A pointer previously obtained via port_open().
  * @param msg     The message to send. Must be in network byte order.
- * @return        Zero on success, non-zero otherwise.
+ * @return        Zero on success, negative errno value otherwise.
  */
 int port_forward_to(struct port *p, struct ptp_message *msg);
 
-- 
2.20.1



_______________________________________________
Linuxptp-devel mailing list
Linuxptp-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/linuxptp-devel

Reply via email to