static gboolean duplicate_org_group_name (CcnetGroupManager *mgr, int org_id, const char *group_name) { GList *org_groups = NULL, *ptr; CcnetOrgManager *org_mgr = ((CcnetServerSession *)(mgr->session))->org_mgr; org_groups = ccnet_org_manager_get_org_groups (org_mgr, org_id, -1, -1); if (!org_groups) return FALSE; for (ptr = org_groups; ptr; ptr = ptr->next) { int group_id = (int)(long)ptr->data; CcnetGroup *group = ccnet_group_manager_get_group (mgr, group_id, NULL); if (!group) continue; if (g_strcmp0 (group_name, ccnet_group_get_group_name(group)) == 0) { g_list_free (org_groups); g_object_unref (group); return TRUE; } else { g_object_unref (group); } } g_list_free (org_groups); return FALSE; }
GObject * ccnet_rpc_get_group (int group_id, GError **error) { CcnetGroupManager *group_mgr = ((CcnetServerSession *)session)->group_mgr; CcnetGroup *group = NULL; group = ccnet_group_manager_get_group (group_mgr, group_id, error); if (!group) { return NULL; } /* g_object_ref (group); */ return (GObject *)group; }
static GList * convert_group_list (CcnetGroupManager *mgr, GList *group_ids) { GList *ret = NULL, *ptr; for (ptr = group_ids; ptr; ptr = ptr->next) { int group_id = (int)(long)ptr->data; CcnetGroup *group = ccnet_group_manager_get_group (mgr, group_id, NULL); if (group != NULL) { ret = g_list_prepend (ret, group); } } return g_list_reverse (ret); }
static gboolean need_send_bloom (CcnetProcessor *processor, CcnetMessage *msg) { CcnetGroupManager *group_mgr = processor->session->groupMgr; CcnetGroup *group; /* just pass through relayed message */ if (g_strcmp0 (processor->session->base.id, msg->from) != 0) return TRUE; group = ccnet_group_manager_get_group (group_mgr, msg->to); if (!group) return FALSE; if (!ccnet_group_is_a_maintainer (group, processor->peer->id)) return FALSE; return TRUE; }