diff --git a/cns/dockerclient/dockerclient.go b/cns/dockerclient/dockerclient.go index 4760d63d6c..86384d848c 100644 --- a/cns/dockerclient/dockerclient.go +++ b/cns/dockerclient/dockerclient.go @@ -55,6 +55,8 @@ func (dockerClient *DockerClient) NetworkExists(networkName string) error { return err } + defer res.Body.Close() + // network exists if res.StatusCode == 200 { log.Debugf("[Azure CNS] Network with name %v already exists. Docker return code: %v", networkName, res.StatusCode) @@ -122,6 +124,9 @@ func (dockerClient *DockerClient) CreateNetwork(networkName string, nicInfo *imd log.Printf("[Azure CNS] Error received from http Post for docker network create %v", networkName) return err } + + defer res.Body.Close() + if res.StatusCode != 201 { var createNetworkResponse DockerErrorResponse err = json.NewDecoder(res.Body).Decode(&createNetworkResponse) @@ -158,6 +163,12 @@ func (dockerClient *DockerClient) DeleteNetwork(networkName string) error { req.Header.Set("Content-Type", "application/json; charset=utf-8") client := &http.Client{} res, err := client.Do(req) + if err != nil { + log.Printf("[Azure CNS] HTTP Post returned error %v", err.Error()) + return err + } + + defer res.Body.Close() // network successfully deleted. if res.StatusCode == 204 { diff --git a/cns/imdsclient/imdsclient.go b/cns/imdsclient/imdsclient.go index de1cffabc9..e0737a0d9f 100644 --- a/cns/imdsclient/imdsclient.go +++ b/cns/imdsclient/imdsclient.go @@ -25,6 +25,8 @@ func (imdsClient *ImdsClient) GetNetworkContainerInfoFromHost(networkContainerID return nil, err } + defer jsonResponse.Body.Close() + log.Printf("[Azure CNS] Response received from Azure Host for NetworkManagement/interfaces: %v", jsonResponse.Body) var response containerVersionJsonResponse @@ -51,6 +53,8 @@ func (imdsClient *ImdsClient) GetPrimaryInterfaceInfoFromHost() (*InterfaceInfo, return nil, err } + defer resp.Body.Close() + log.Printf("[Azure CNS] Response received from NMAgent for get interface details: %v", resp.Body) var doc xmlDocument diff --git a/cns/ipamclient/ipamclient.go b/cns/ipamclient/ipamclient.go index 6d494ee851..ed58a15829 100644 --- a/cns/ipamclient/ipamclient.go +++ b/cns/ipamclient/ipamclient.go @@ -45,6 +45,8 @@ func (ic *IpamClient) GetAddressSpace() (string, error) { return "", err } + defer res.Body.Close() + if res.StatusCode == 200 { var resp cnmIpam.GetDefaultAddressSpacesResponse err := json.NewDecoder(res.Body).Decode(&resp) @@ -89,6 +91,8 @@ func (ic *IpamClient) GetPoolID(asID, subnet string) (string, error) { return "", err } + defer res.Body.Close() + if res.StatusCode == 200 { var resp cnmIpam.RequestPoolResponse err := json.NewDecoder(res.Body).Decode(&resp) @@ -135,6 +139,8 @@ func (ic *IpamClient) ReserveIPAddress(poolID string, reservationID string) (str return "", err } + defer res.Body.Close() + if res.StatusCode == 200 { var reserveResp cnmIpam.RequestAddressResponse @@ -184,6 +190,8 @@ func (ic *IpamClient) ReleaseIPAddress(poolID string, reservationID string) erro return err } + defer res.Body.Close() + if res.StatusCode == 200 { var releaseResp cnmIpam.ReleaseAddressResponse err := json.NewDecoder(res.Body).Decode(&releaseResp) @@ -227,6 +235,8 @@ func (ic *IpamClient) GetIPAddressUtilization(poolID string) (int, int, []string return 0, 0, nil, err } + defer res.Body.Close() + if res.StatusCode == 200 { var poolInfoResp cnmIpam.GetPoolInfoResponse err := json.NewDecoder(res.Body).Decode(&poolInfoResp) diff --git a/telemetry/telemetry.go b/telemetry/telemetry.go index 4a24d8d5b8..13b09f6eb5 100644 --- a/telemetry/telemetry.go +++ b/telemetry/telemetry.go @@ -165,6 +165,8 @@ func (reportMgr *ReportManager) SendReport() error { return fmt.Errorf("[Azure CNI] HTTP Post returned error %v", err) } + defer res.Body.Close() + if res.StatusCode != 200 { if res.StatusCode == 400 { return fmt.Errorf(`"[Azure CNI] HTTP Post returned statuscode %d.