1c8a96e64Sopenharmony_ci/* 2c8a96e64Sopenharmony_ci * Copyright (c) 2024 Huawei Device Co., Ltd. 3c8a96e64Sopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License"); 4c8a96e64Sopenharmony_ci * you may not use this file except in compliance with the License. 5c8a96e64Sopenharmony_ci * You may obtain a copy of the License at 6c8a96e64Sopenharmony_ci * 7c8a96e64Sopenharmony_ci * http://www.apache.org/licenses/LICENSE-2.0 8c8a96e64Sopenharmony_ci * 9c8a96e64Sopenharmony_ci * Unless required by applicable law or agreed to in writing, software 10c8a96e64Sopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS, 11c8a96e64Sopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12c8a96e64Sopenharmony_ci * See the License for the specific language governing permissions and 13c8a96e64Sopenharmony_ci * limitations under the License. 14c8a96e64Sopenharmony_ci */ 15c8a96e64Sopenharmony_ci 16c8a96e64Sopenharmony_ci#include "api_policy_adapter.h" 17c8a96e64Sopenharmony_ci 18c8a96e64Sopenharmony_ciApiPolicyAdapter::ApiPolicyAdapter() 19c8a96e64Sopenharmony_ci{ 20c8a96e64Sopenharmony_ci#ifndef __WIN32 21c8a96e64Sopenharmony_ci handle = dlopen("/system/lib64/platformsdk/libapipolicy_client.z.so", RTLD_NOW); 22c8a96e64Sopenharmony_ci if (!handle) { 23c8a96e64Sopenharmony_ci return; 24c8a96e64Sopenharmony_ci } 25c8a96e64Sopenharmony_ci func = reinterpret_cast<CheckUrlFunc>(dlsym(handle, "CheckUrl")); 26c8a96e64Sopenharmony_ci#endif 27c8a96e64Sopenharmony_ci} 28c8a96e64Sopenharmony_ci 29c8a96e64Sopenharmony_ciApiPolicyAdapter::~ApiPolicyAdapter() 30c8a96e64Sopenharmony_ci{ 31c8a96e64Sopenharmony_ci#ifndef __WIN32 32c8a96e64Sopenharmony_ci if (handle) { 33c8a96e64Sopenharmony_ci dlclose(handle); 34c8a96e64Sopenharmony_ci handle = nullptr; 35c8a96e64Sopenharmony_ci } 36c8a96e64Sopenharmony_ci#endif 37c8a96e64Sopenharmony_ci} 38c8a96e64Sopenharmony_ci 39c8a96e64Sopenharmony_ciint32_t ApiPolicyAdapter::CheckUrl(const std::string& bundleName, const std::string& domainType, const std::string& url) 40c8a96e64Sopenharmony_ci{ 41c8a96e64Sopenharmony_ci int32_t res = 0; 42c8a96e64Sopenharmony_ci if (func == nullptr) { 43c8a96e64Sopenharmony_ci return res; 44c8a96e64Sopenharmony_ci } 45c8a96e64Sopenharmony_ci res = func(bundleName, domainType, url); 46c8a96e64Sopenharmony_ci return res; 47c8a96e64Sopenharmony_ci} 48