Skip to content

Commit c1b3c54

Browse files
committed
defer close response body if response is nil
1 parent 1169745 commit c1b3c54

File tree

4 files changed

+47
-10
lines changed

4 files changed

+47
-10
lines changed

node-registrar/client/account.go

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -111,11 +111,15 @@ func (c *RegistrarClient) createAccount(relays []string, rmbEncKey string) (acco
111111
return account, mnemonic, errors.Wrap(err, "failed to send request to the registrar")
112112
}
113113

114+
if resp == nil {
115+
return account, mnemonic, errors.New("failed to create account, no response received")
116+
}
117+
defer resp.Body.Close()
118+
114119
if resp.StatusCode != http.StatusCreated {
115120
err = parseResponseError(resp.Body)
116121
return account, mnemonic, errors.Wrapf(err, "failed to create account with status %s", resp.Status)
117122
}
118-
defer resp.Body.Close()
119123

120124
err = json.NewDecoder(resp.Body).Decode(&account)
121125

@@ -146,6 +150,7 @@ func (c *RegistrarClient) getAccount(id uint64) (account Account, err error) {
146150
if resp == nil {
147151
return account, errors.New("failed to get account, no response received")
148152
}
153+
defer resp.Body.Close()
149154

150155
if resp.StatusCode == http.StatusNotFound {
151156
return account, ErrorAccountNotFound
@@ -155,7 +160,6 @@ func (c *RegistrarClient) getAccount(id uint64) (account Account, err error) {
155160
err = parseResponseError(resp.Body)
156161
return account, errors.Wrapf(err, "failed to get account by twin id with status code %s", resp.Status)
157162
}
158-
defer resp.Body.Close()
159163

160164
err = json.NewDecoder(resp.Body).Decode(&account)
161165
return

node-registrar/client/farm.go

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -156,6 +156,9 @@ func (c *RegistrarClient) createFarm(farmName, stellarAddr string, dedicated boo
156156
return farmID, errors.Wrap(err, "failed to send request to create farm")
157157
}
158158

159+
if resp == nil {
160+
return farmID, errors.New("failed to create farm, no response received")
161+
}
159162
defer resp.Body.Close()
160163

161164
if resp.StatusCode != http.StatusCreated {
@@ -214,6 +217,9 @@ func (c *RegistrarClient) updateFarm(farmID uint64, opts []UpdateFarmOpts) (err
214217
return errors.Wrap(err, "failed to send request to update farm")
215218
}
216219

220+
if resp == nil {
221+
return errors.New("failed to update farm, no response received")
222+
}
217223
defer resp.Body.Close()
218224

219225
if resp.StatusCode != http.StatusOK {
@@ -234,6 +240,11 @@ func (c *RegistrarClient) getFarm(id uint64) (farm Farm, err error) {
234240
return farm, err
235241
}
236242

243+
if resp == nil {
244+
return farm, errors.New("failed to get farm, no response received")
245+
}
246+
defer resp.Body.Close()
247+
237248
if resp.StatusCode == http.StatusNotFound {
238249
return farm, ErrorFarmNotFound
239250
}
@@ -242,7 +253,6 @@ func (c *RegistrarClient) getFarm(id uint64) (farm Farm, err error) {
242253
err = parseResponseError(resp.Body)
243254
return farm, errors.Wrapf(err, "failed to get farm with status code %s", resp.Status)
244255
}
245-
defer resp.Body.Close()
246256

247257
if err = json.NewDecoder(resp.Body).Decode(&farm); err != nil {
248258
return farm, err
@@ -276,11 +286,16 @@ func (c *RegistrarClient) listFarms(opts ...ListFarmOpts) (farms []Farm, err err
276286
return farms, errors.Wrap(err, "failed to send request to list farm")
277287
}
278288

289+
if resp == nil {
290+
return farms, errors.New("failed to list farms, no response received")
291+
}
292+
defer resp.Body.Close()
293+
279294
if resp.StatusCode != http.StatusOK {
280295
err = parseResponseError(resp.Body)
281296
return farms, errors.Wrapf(err, "failed to get list farms with status code %s", resp.Status)
282297
}
283-
defer resp.Body.Close()
298+
284299
if err = json.NewDecoder(resp.Body).Decode(&farms); err != nil {
285300
return farms, errors.Wrap(err, "failed to decode response body")
286301
}

node-registrar/client/node.go

Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -286,11 +286,15 @@ func (c *RegistrarClient) updateNode(opts []UpdateNodeOpts) (err error) {
286286
return errors.Wrap(err, "failed to send request to update node")
287287
}
288288

289+
if resp == nil {
290+
return errors.New("no response received")
291+
}
292+
defer resp.Body.Close()
293+
289294
if resp.StatusCode != http.StatusOK {
290295
err = parseResponseError(resp.Body)
291296
return errors.Wrapf(err, "failed to update node with twin id %d with status code %s", c.twinID, resp.Status)
292297
}
293-
defer resp.Body.Close()
294298

295299
return
296300
}
@@ -330,11 +334,15 @@ func (c *RegistrarClient) reportUptime(report UptimeReport) (err error) {
330334
return errors.Wrap(err, "failed to send request to update uptime of the node")
331335
}
332336

337+
if resp == nil {
338+
return errors.New("no response received")
339+
}
340+
defer resp.Body.Close()
341+
333342
if resp.StatusCode != http.StatusCreated {
334343
err = parseResponseError(resp.Body)
335344
return errors.Wrapf(err, "failed to update node uptime for node with id %d with status code %s", c.nodeID, resp.Status)
336345
}
337-
defer resp.Body.Close()
338346

339347
return
340348
}
@@ -350,6 +358,11 @@ func (c *RegistrarClient) getNode(id uint64) (node Node, err error) {
350358
return
351359
}
352360

361+
if resp == nil {
362+
return node, errors.New("no response received")
363+
}
364+
defer resp.Body.Close()
365+
353366
if resp.StatusCode == http.StatusNotFound {
354367
return node, ErrorNodeNotFound
355368
}
@@ -358,7 +371,6 @@ func (c *RegistrarClient) getNode(id uint64) (node Node, err error) {
358371
err = parseResponseError(resp.Body)
359372
return node, errors.Wrapf(err, "failed to get node with status code %s", resp.Status)
360373
}
361-
defer resp.Body.Close()
362374

363375
err = json.NewDecoder(resp.Body).Decode(&node)
364376
if err != nil {
@@ -409,6 +421,7 @@ func (c *RegistrarClient) listNodes(opts []ListNodeOpts) (nodes []Node, err erro
409421
if resp == nil {
410422
return nodes, errors.New("no response received")
411423
}
424+
defer resp.Body.Close()
412425

413426
if resp.StatusCode == http.StatusNotFound {
414427
return nodes, ErrorNodeNotFound
@@ -418,7 +431,6 @@ func (c *RegistrarClient) listNodes(opts []ListNodeOpts) (nodes []Node, err erro
418431
err = parseResponseError(resp.Body)
419432
return nodes, errors.Wrapf(err, "failed to list nodes with with status code %s", resp.Status)
420433
}
421-
defer resp.Body.Close()
422434

423435
err = json.NewDecoder(resp.Body).Decode(&nodes)
424436
if err != nil {

node-registrar/client/zos_version.go

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,13 +33,16 @@ func (c *RegistrarClient) getZosVersion() (version ZosVersion, err error) {
3333
return version, err
3434
}
3535

36+
if resp == nil {
37+
return version, errors.New("no response received")
38+
}
39+
defer resp.Body.Close()
40+
3641
if resp.StatusCode != http.StatusOK {
3742
err = parseResponseError(resp.Body)
3843
return version, errors.Wrapf(err, "failed to get zos version with status code %s", resp.Status)
3944
}
4045

41-
defer resp.Body.Close()
42-
4346
var versionString string
4447
err = json.NewDecoder(resp.Body).Decode(&versionString)
4548
if err != nil {
@@ -110,6 +113,9 @@ func (c *RegistrarClient) setZosVersion(v string, safeToUpgrade bool) (err error
110113
return errors.Wrap(err, "failed to send request to get zos version from the registrar")
111114
}
112115

116+
if resp == nil {
117+
return errors.New("no response received")
118+
}
113119
defer resp.Body.Close()
114120

115121
if resp.StatusCode != http.StatusOK {

0 commit comments

Comments
 (0)