in src/api_proxy/service_control/request_builder.cc [1051:1091]
Status RequestBuilder::FillCheckRequest(const CheckRequestInfo& info,
CheckRequest* request) const {
Status status = VerifyRequiredCheckFields(info);
if (!status.ok()) {
return status;
}
request->set_service_name(service_name_);
request->set_service_config_id(service_config_id_);
Timestamp current_time = CreateTimestamp(info.current_time);
Operation* op = request->mutable_operation();
SetOperationCommonFields(info, current_time, op);
if (!info.api_key.empty()) {
// For check request, we send the API key as is.
op->set_consumer_id(std::string(kConsumerIdApiKey) +
std::string(info.api_key));
}
auto* labels = op->mutable_labels();
if (!info.client_ip.empty()) {
(*labels)[kServiceControlCallerIp] = info.client_ip;
}
if (!info.referer.empty()) {
(*labels)[kServiceControlReferer] = info.referer;
}
(*labels)[kServiceControlUserAgent] = kUserAgent;
(*labels)[kServiceControlServiceAgent] = get_service_agent();
if (!info.android_package_name.empty()) {
(*labels)[kServiceControlAndroidPackageName] = info.android_package_name;
}
if (!info.android_cert_fingerprint.empty()) {
(*labels)[kServiceControlAndroidCertFingerprint] =
info.android_cert_fingerprint;
}
if (!info.ios_bundle_id.empty()) {
(*labels)[kServiceControlIosBundleId] = info.ios_bundle_id;
}
return OkStatus();
}