diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/include/gpxe/retry.h | 1 | ||||
| -rw-r--r-- | src/net/retry.c | 12 | ||||
| -rw-r--r-- | src/net/tcp.c | 2 | ||||
| -rw-r--r-- | src/net/udp/dhcp.c | 2 | ||||
| -rw-r--r-- | src/net/udp/tftp.c | 2 |
5 files changed, 16 insertions, 3 deletions
diff --git a/src/include/gpxe/retry.h b/src/include/gpxe/retry.h index e0c0248b1..e71e7b3bb 100644 --- a/src/include/gpxe/retry.h +++ b/src/include/gpxe/retry.h @@ -35,6 +35,7 @@ struct retry_timer { }; extern void start_timer ( struct retry_timer *timer ); +extern void start_timer_nodelay ( struct retry_timer *timer ); extern void stop_timer ( struct retry_timer *timer ); /** diff --git a/src/net/retry.c b/src/net/retry.c index 6734968f5..0f711e6d1 100644 --- a/src/net/retry.c +++ b/src/net/retry.c @@ -74,6 +74,18 @@ void start_timer ( struct retry_timer *timer ) { } /** + * Start timer with no delay + * + * @v timer Retry timer + * + * This starts the timer running with a zero timeout value. + */ +void start_timer_nodelay ( struct retry_timer *timer ) { + start_timer ( timer ); + timer->timeout = 0; +} + +/** * Stop timer * * @v timer Retry timer diff --git a/src/net/tcp.c b/src/net/tcp.c index 01daf75ab..28cf95fb3 100644 --- a/src/net/tcp.c +++ b/src/net/tcp.c @@ -232,7 +232,7 @@ static int tcp_open ( struct xfer_interface *xfer, struct sockaddr *peer, goto err; /* Start timer to initiate SYN */ - start_timer ( &tcp->timer ); + start_timer_nodelay ( &tcp->timer ); /* Attach parent interface, transfer reference to connection * list and return diff --git a/src/net/udp/dhcp.c b/src/net/udp/dhcp.c index ed4556329..86695f12b 100644 --- a/src/net/udp/dhcp.c +++ b/src/net/udp/dhcp.c @@ -912,7 +912,7 @@ int start_dhcp ( struct job_interface *job, struct net_device *netdev, goto err; /* Start timer to initiate initial DHCPREQUEST */ - start_timer ( &dhcp->timer ); + start_timer_nodelay ( &dhcp->timer ); /* Attach parent interface, mortalise self, and return */ job_plug_plug ( &dhcp->job, job ); diff --git a/src/net/udp/tftp.c b/src/net/udp/tftp.c index ea4d1df30..7f1c4ce64 100644 --- a/src/net/udp/tftp.c +++ b/src/net/udp/tftp.c @@ -657,7 +657,7 @@ int tftp_open ( struct xfer_interface *xfer, struct uri *uri ) { goto err; /* Start timer to initiate RRQ */ - start_timer ( &tftp->timer ); + start_timer_nodelay ( &tftp->timer ); /* Attach to parent interface, mortalise self, and return */ xfer_plug_plug ( &tftp->xfer, xfer ); |
