Skip to content

Commit

Permalink
[tcp] Display "connecting" status until connection is established
Browse files Browse the repository at this point in the history
Provide increased visibility into the progress of TCP connections by
displaying an explicit "connecting" status message while waiting for
the TCP handshake to complete.

Signed-off-by: Michael Brown <mcb30@ipxe.org>
  • Loading branch information
mcb30 committed Mar 10, 2019
1 parent 7b63c12 commit f6b2bf9
Showing 1 changed file with 21 additions and 0 deletions.
21 changes: 21 additions & 0 deletions src/net/tcp.c
Expand Up @@ -17,6 +17,7 @@
#include <ipxe/netdevice.h>
#include <ipxe/profile.h>
#include <ipxe/process.h>
#include <ipxe/job.h>
#include <ipxe/tcpip.h>
#include <ipxe/tcp.h>

Expand Down Expand Up @@ -1704,10 +1705,30 @@ static int tcp_xfer_deliver ( struct tcp_connection *tcp,
return 0;
}

/**
* Report job progress
*
* @v tcp TCP connection
* @v progress Progress report to fill in
* @ret ongoing_rc Ongoing job status code (if known)
*/
static int tcp_progress ( struct tcp_connection *tcp,
struct job_progress *progress ) {

/* Report connection in progress if applicable */
if ( ! TCP_HAS_BEEN_ESTABLISHED ( tcp->tcp_state ) ) {
snprintf ( progress->message, sizeof ( progress->message ),
"connecting" );
}

return 0;
}

/** TCP data transfer interface operations */
static struct interface_operation tcp_xfer_operations[] = {
INTF_OP ( xfer_deliver, struct tcp_connection *, tcp_xfer_deliver ),
INTF_OP ( xfer_window, struct tcp_connection *, tcp_xfer_window ),
INTF_OP ( job_progress, struct tcp_connection *, tcp_progress ),
INTF_OP ( intf_close, struct tcp_connection *, tcp_xfer_close ),
};

Expand Down

0 comments on commit f6b2bf9

Please sign in to comment.