char* ug_args = data;
char *ug_name = get_ug_path_from_ug_args(ug_args);
- char ug_file_opt[PATH_MAX];
- if (snprintf(ug_file_opt, PATH_MAX, "%s/libug-%s.so", SETTING_UG_PATH, ug_name) < 0)
- return false;
-
+ //1.first do exist-checking in /opt/ug/lib
+ char ug_file[PATH_MAX + 1];
+ snprintf(ug_file, PATH_MAX, "%s/libug-%s.so", SETTING_UG_PATH, ug_name);
struct stat st;
- bool result_opt = false;
-
- if(stat(ug_file_opt, &st) == 0) {
- result_opt = true;
- } else {
- SETTING_TRACE_ERROR(" %s is *NOT* present\n", ug_file_opt);
- result_opt = false;
- }
-
- //-------------------------------------------------------------------------------------
- char ug_file_usr[PATH_MAX];
- bool result_usr = false;
- if (snprintf(ug_file_usr, PATH_MAX, "%s/libug-%s.so", SETTING_UG_PATH_USR, ug_name) < 0)
- return false;
-
- if(stat(ug_file_usr, &st) == 0) {
- result_usr = true;
- } else {
- SETTING_TRACE_ERROR(" %s is *NOT* present\n", ug_file_usr);
- result_usr = false;
+ if(stat(ug_file, &st) != 0) {
+
+ //2.if it does not exit in /opt/ug/lib, then do exist-checking in /usr/ug/lib
+ memset(ug_file, 0x00, PATH_MAX + 1);
+ snprintf(ug_file, PATH_MAX, "%s/libug-%s.so", SETTING_UG_PATH_USR, ug_name);
+ if(stat(ug_file, &st) != 0) {
+ //both not exist,skip it
+ SETTING_TRACE_ERROR(" libug-%s.so is *NOT* present, so skip it..\n", ug_name);
+ return FALSE;
+ }
}
- // false & false --> false
- // true & false --> true
- // false & true --> true
- // true & true --> true
-
- return (result_usr || result_opt);
+ return TRUE;
}
/*other relative function*/