From 02b26de9634dcf793f4edef0b33ea71e34fceee6 Mon Sep 17 00:00:00 2001 From: Michael Brown Date: Fri, 16 Aug 2019 21:23:55 +0100 Subject: [peerdist] Start block download timers from within opener methods Move the responsibility for starting the block download timers from peerblk_expired() to peerblk_raw_open() and peerblk_retrieval_open(), in preparation for adding the ability to defer calls to peerblk_raw_open() via a block download queue. Signed-off-by: Michael Brown --- src/net/peerblk.c | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/src/net/peerblk.c b/src/net/peerblk.c index 78888d2d..27184e2d 100644 --- a/src/net/peerblk.c +++ b/src/net/peerblk.c @@ -358,6 +358,10 @@ static int peerblk_raw_open ( struct peerdist_block *peerblk ) { if ( inject_fault ( PEERBLK_ANNUL_RATE ) ) intf_restart ( &peerblk->raw, 0 ); + /* Start download attempt timer */ + peerblk->rc = -ETIMEDOUT; + start_timer_fixed ( &peerblk->timer, PEERBLK_RAW_OPEN_TIMEOUT ); + return 0; } @@ -522,6 +526,10 @@ static int peerblk_retrieval_open ( struct peerdist_block *peerblk, if ( inject_fault ( PEERBLK_ANNUL_RATE ) ) intf_restart ( &peerblk->retrieval, 0 ); + /* Start download attempt timer */ + peerblk->rc = -ETIMEDOUT; + start_timer_fixed ( &peerblk->timer, PEERBLK_RETRIEVAL_OPEN_TIMEOUT ); + err_open: uri_put ( uri ); err_uri: @@ -1201,10 +1209,7 @@ static void peerblk_expired ( struct retry_timer *timer, int over __unused ) { continue; } - /* Start download attempt timer */ - peerblk->rc = -ETIMEDOUT; - start_timer_fixed ( &peerblk->timer, - PEERBLK_RETRIEVAL_OPEN_TIMEOUT ); + /* Peer download started */ return; } @@ -1212,9 +1217,6 @@ static void peerblk_expired ( struct retry_timer *timer, int over __unused ) { if ( ( rc = peerblk_raw_open ( peerblk ) ) != 0 ) goto err; - /* Start download attempt timer */ - peerblk->rc = -ETIMEDOUT; - start_timer_fixed ( &peerblk->timer, PEERBLK_RAW_OPEN_TIMEOUT ); return; err: -- cgit v1.2.3-55-g7522