summaryrefslogtreecommitdiff
path: root/apps/netutils/ftpc/ftpc_transfer.c
diff options
context:
space:
mode:
Diffstat (limited to 'apps/netutils/ftpc/ftpc_transfer.c')
-rw-r--r--apps/netutils/ftpc/ftpc_transfer.c21
1 files changed, 21 insertions, 0 deletions
diff --git a/apps/netutils/ftpc/ftpc_transfer.c b/apps/netutils/ftpc/ftpc_transfer.c
index bce30e302..640e92276 100644
--- a/apps/netutils/ftpc/ftpc_transfer.c
+++ b/apps/netutils/ftpc/ftpc_transfer.c
@@ -44,11 +44,14 @@
#include <unistd.h>
#include <string.h>
#include <poll.h>
+#include <signal.h>
#include <ctype.h>
#include <errno.h>
#include <assert.h>
#include <debug.h>
+#include <apps/ftpc.h>
+
#include "ftpc_internal.h"
/****************************************************************************
@@ -396,5 +399,23 @@ int ftpc_waitdata(FAR struct ftpc_session_s *session, FAR FILE *stream, bool rdw
return ret;
}
+/****************************************************************************
+ * Name: ftpc_timeout
+ *
+ * Description:
+ * A timeout occurred -- either on a specific command or while waiting
+ * for a reply.
+ *
+ * NOTE:
+ * This function executes in the context of a timer interrupt handler.
+ *
+ ****************************************************************************/
+void ftpc_timeout(int argc, uint32_t arg1, ...)
+{
+ FAR struct ftpc_session_s *session = (FAR struct ftpc_session_s *)arg1;
+ nlldbg("Timeout!\n");
+ DEBUGASSERT(argc == 1 && session);
+ kill(session->pid, CONFIG_FTP_SIGNAL);
+}