}
static void __get_service_user_list(
- uam_db_service_info_t* service, uam_user_info_s **user_list, int *count)
+ const char* svc_name, uam_user_info_s **user_list, int *count, const int app_num)
{
FUNC_ENTRY;
- GSList *l;
+ GSList *l, *ll;
int indx = 0;
GSList *svc_user_list = NULL;
*count = 0;
/* Calculate number of users */
- for (l = service->dev_techs; NULL != l; l = g_slist_next(l)) {
- uam_db_tech_info_t *tech = l->data;
- if (!tech || !tech->addresses)
+ for (l = svc_users; NULL != l; l = g_slist_next(l)) {
+ uam_svc_user_info_t *svc_user = l->data;
+ if (!svc_user || !svc_user->svc_name || !svc_user->account)
continue;
- GSList *l1;
- uam_db_user_info_t *db_info = tech->device->user;
- l1 = g_slist_find_custom(svc_user_list , db_info->account, __compare_user_account);
- if (NULL == l1)
- svc_user_list = g_slist_append(svc_user_list, db_info);
+ if (g_strcmp0(svc_user->svc_name, svc_name) == 0)
+ if (svc_user->app_num == app_num)
+ svc_user_list = g_slist_append(svc_user_list, svc_user);
+
}
*count = g_slist_length(svc_user_list);
/* Copy users */
for (l = svc_user_list; l; l = g_slist_next(l)) {
- uam_db_user_info_t *db_info = l->data;
+ uam_svc_user_info_t *svc_user = l->data;
+ uam_db_user_info_t *user;
- if (!db_info || !db_info->account)
+ if (!svc_user || !svc_user->svc_name || !svc_user->account)
+ continue;
+
+ /* Retrieve user from list */
+ ll = __search_user(svc_user->account, app_num);
+ if (NULL == ll)
continue;
+ user = ll->data;
+
g_strlcpy((*user_list)[indx].account,
- db_info->account, UAM_USER_ACCOUNT_MAX_STRING_LEN);
- if (db_info->name)
- g_strlcpy((*user_list)[indx].name,
- db_info->name, UAM_USER_NAME_MAX_STRING_LEN);
+ svc_user->account, UAM_USER_ACCOUNT_MAX_STRING_LEN);
+
+ g_strlcpy((*user_list)[indx].name,
+ user->name, UAM_USER_NAME_MAX_STRING_LEN);
+
+ (*user_list)[indx].app_num = app_num;
indx += 1;
}
int *count, uam_user_info_s **user_list, const int app_num)
{
FUNC_ENTRY;
- uam_db_service_info_t *service;
- GSList *l;
-
- l = g_slist_find_custom(services, svc_name, __compare_svc_name);
- retv_if(NULL == l, UAM_ERROR_INVALID_PARAMETER);
- service = l->data;
- __get_service_user_list(service, user_list, count);
+ __get_service_user_list(svc_name, user_list, count, app_num);
FUNC_EXIT;
return UAM_ERROR_NONE;