tizen 2.3.1 release
[kernel/api/system-resource.git] / src / common / appid-helper.c
1 /*
2  * resourced
3  *
4  * Copyright (c) 2000 - 2013 Samsung Electronics Co., Ltd. All rights reserved.
5  *
6  * Licensed under the Apache License, Version 2.0 (the "License");
7  * you may not use this file except in compliance with the License.
8  * You may obtain a copy of the License at
9  *
10  * http://www.apache.org/licenses/LICENSE-2.0
11  *
12  * Unless required by applicable law or agreed to in writing, software
13  * distributed under the License is distributed on an "AS IS" BASIS,
14  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15  * See the License for the specific language governing permissions and
16  * limitations under the License.
17  *
18 */
19
20 #include <stdlib.h>
21 #include <string.h>
22
23 #define BASE_NAME_PREFIX "com.samsung."
24 #define DOT_DELIMETER '.'
25
26 static int is_base_name(const char *appid)
27 {
28         return strstr(appid, BASE_NAME_PREFIX) != NULL;
29 }
30
31 void extract_pkgname(const char *appid, char *pkgname,
32         const int pkgname_size)
33 {
34         char *delim_pos; /* delimeter position */
35         size_t pkgname_res_size;
36
37         if (is_base_name(appid)) {
38                 strncpy(pkgname, appid, pkgname_size);
39                 return;
40         }
41
42         /* no a base name case try to dedicate pkg name */
43         delim_pos = strchr(appid, DOT_DELIMETER);
44         if (delim_pos) {
45                 pkgname_res_size = abs(delim_pos - appid);
46                 pkgname_res_size = pkgname_res_size > pkgname_size ?
47                         pkgname_size : pkgname_res_size;
48         } else
49                 pkgname_res_size = pkgname_size -1;
50
51         strncpy(pkgname, appid, pkgname_res_size);
52         pkgname[pkgname_res_size] = '\0';
53 }