in sdk/client.go [344:366]
func (client *Client) DoAction(request requests.AcsRequest, response responses.AcsResponse) (err error) {
if (client.SecureTransport == "false" || client.SecureTransport == "true") && client.SourceIp != "" {
t := reflect.TypeOf(request).Elem()
v := reflect.ValueOf(request).Elem()
for i := 0; i < t.NumField(); i++ {
value := v.FieldByName(t.Field(i).Name)
if t.Field(i).Name == "requests.RoaRequest" || t.Field(i).Name == "RoaRequest" {
request.GetHeaders()["x-acs-proxy-source-ip"] = client.SourceIp
request.GetHeaders()["x-acs-proxy-secure-transport"] = client.SecureTransport
return client.DoActionWithSigner(request, response, nil)
} else if t.Field(i).Name == "PathPattern" && !value.IsZero() {
request.GetHeaders()["x-acs-proxy-source-ip"] = client.SourceIp
request.GetHeaders()["x-acs-proxy-secure-transport"] = client.SecureTransport
return client.DoActionWithSigner(request, response, nil)
} else if i == t.NumField()-1 {
request.GetQueryParams()["SourceIp"] = client.SourceIp
request.GetQueryParams()["SecureTransport"] = client.SecureTransport
return client.DoActionWithSigner(request, response, nil)
}
}
}
return client.DoActionWithSigner(request, response, nil)
}