Fix bug about NSProvider Config
[platform/upstream/iotivity.git] / service / notification / src / provider / NSProviderSystem.c
1 //******************************************************************\r
2 //\r
3 // Copyright 2016 Samsung Electronics All Rights Reserved.\r
4 //\r
5 //-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=\r
6 //\r
7 // Licensed under the Apache License, Version 2.0 (the "License");\r
8 // you may not use this file except in compliance with the License.\r
9 // You may obtain a copy of the License at\r
10 //\r
11 //      http://www.apache.org/licenses/LICENSE-2.0\r
12 //\r
13 // Unless required by applicable law or agreed to in writing, software\r
14 // distributed under the License is distributed on an "AS IS" BASIS,\r
15 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
16 // See the License for the specific language governing permissions and\r
17 // limitations under the License.\r
18 //\r
19 //-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=\r
20 #include "NSProviderSystem.h"\r
21 \r
22 #if(defined WITH_CLOUD && defined RD_CLIENT)\r
23 #define MAX_SERVER_ADDRESS 32\r
24 static char NSRemoteServerAddress[MAX_SERVER_ADDRESS] = {0,};\r
25 #endif\r
26 \r
27 static NSConnectionState NSProviderConnectionState;\r
28 \r
29 NSProviderInfo * providerInfo;\r
30 bool NSPolicy = true;\r
31 bool NSResourceSecurity = true;\r
32 \r
33 void NSSetProviderConnectionState(NSConnectionState state)\r
34 {\r
35     NS_LOG(DEBUG, "NSSetProviderConnectionState");\r
36 \r
37     NSProviderConnectionState = state;\r
38 }\r
39 \r
40 NSConnectionState NSGetProviderConnectionState()\r
41 {\r
42     NS_LOG(DEBUG, "Change Connection State");\r
43 \r
44     return NSProviderConnectionState;\r
45 }\r
46 \r
47 #if(defined WITH_CLOUD && defined RD_CLIENT)\r
48 void NSSetRemoteServerAddress(char *serverAddress)\r
49 {\r
50 \r
51     OICStrcpy(NSRemoteServerAddress, MAX_SERVER_ADDRESS, serverAddress);\r
52 }\r
53 \r
54 void NSDeleteRemoteServerAddress(char *serverAddress)\r
55 {\r
56     NS_LOG_V(DEBUG, "Delete cloud address: %s", serverAddress);\r
57 \r
58     memset(NSRemoteServerAddress, 0, MAX_SERVER_ADDRESS);\r
59 }\r
60 \r
61 bool NSIsRemoteServerAddress(char *serverAddress)\r
62 {\r
63     NS_LOG_V(DEBUG, "Check server address: %s", serverAddress);\r
64 \r
65     if(serverAddress != NULL)\r
66     {\r
67         return strstr(NSRemoteServerAddress, serverAddress);\r
68     }\r
69 \r
70     return false;\r
71 }\r
72 #endif\r
73 \r
74 void NSInitProviderInfo(const char * userInfo)\r
75 {\r
76     NS_LOG(DEBUG, "NSInitProviderInfo");\r
77 \r
78     providerInfo = (NSProviderInfo *) OICMalloc(sizeof(NSProviderInfo));\r
79     const char * generatedUuid = (char *)OCGetServerInstanceIDString();\r
80     NS_LOG_V(DEBUG, "Generate Provider ID: %s", generatedUuid);\r
81     OICStrcpy(providerInfo->providerId, UUID_STRING_SIZE, generatedUuid);\r
82 \r
83     providerInfo->providerName = NULL;\r
84     providerInfo->userInfo = NULL;\r
85 \r
86     if(userInfo)\r
87         providerInfo->userInfo = OICStrdup(userInfo);\r
88 }\r
89 \r
90 void NSDeinitProviderInfo()\r
91 {\r
92     NS_LOG(DEBUG, "NSDeinitProviderInfo");\r
93 \r
94     if(!providerInfo)\r
95     {\r
96         NS_LOG(DEBUG, "providerInfo is NULL");\r
97         return;\r
98     }\r
99 \r
100     if(providerInfo->providerName)\r
101     {\r
102         OICFree(providerInfo->providerName);\r
103         providerInfo->providerName = NULL;\r
104     }\r
105 \r
106     if(providerInfo->userInfo)\r
107     {\r
108         OICFree(providerInfo->userInfo);\r
109         providerInfo->userInfo = NULL;\r
110     }\r
111 \r
112     OICFree(providerInfo);\r
113     providerInfo = NULL;\r
114 }\r
115 \r
116 NSProviderInfo * NSGetProviderInfo()\r
117 {\r
118     NS_LOG_V(DEBUG, "ProviderInfo: %s", providerInfo->providerId);\r
119 \r
120     return providerInfo;\r
121 }\r
122 \r
123 bool NSGetPolicy()\r
124 {\r
125     return NSPolicy;\r
126 }\r
127 \r
128 void NSSetPolicy(bool policy)\r
129 {\r
130     NSPolicy = policy;\r
131 }\r
132 \r
133 bool NSGetResourceSecurity()\r
134 {\r
135     return NSResourceSecurity;\r
136 }\r
137 \r
138 void NSSetResourceSecurity(bool secured)\r
139 {\r
140     NSResourceSecurity = secured;\r
141 }\r
142 \r
143 const char * NSGetUserInfo()\r
144 {\r
145     return providerInfo->userInfo;\r
146 }\r