Beispiel #1
0
char *
ccnet_rpc_list_peers(GError **error)
{
    CcnetPeerManager *peer_mgr = session->peer_mgr;
    GList *peer_list, *ptr;
    GString *result;
    CcnetPeer *peer;

    peer_list = ccnet_peer_manager_get_peer_list(peer_mgr);
    if (peer_list == NULL) {
        g_set_error(error, CCNET_DOMAIN, CCNET_ERR_INTERNAL, "Failed to get peer list");
        return NULL;
    }

    result = g_string_new("");
    ptr = peer_list;
    while (ptr) {
        peer = ptr->data;
        g_string_append_printf(result, "%s\n", peer->id);
        ptr = ptr->next;
    }
    g_list_free(peer_list);

    return g_string_free(result, FALSE);
}
Beispiel #2
0
void
ccnet_session_shutdown_network (CcnetSession *session)
{
    GList *peers, *ptr;
    
    peers = ccnet_peer_manager_get_peer_list(session->peer_mgr);
    for (ptr = peers; ptr; ptr = ptr->next)
        ccnet_peer_shutdown ((CcnetPeer *)ptr->data);
    g_list_free (peers);

    ccnet_conn_manager_stop (session->connMgr);
}
Beispiel #3
0
GList *
ccnet_rpc_list_peer_stat (GError **error)
{
    GList *res = NULL;
    GList *ptr, *peer_list;
    CcnetPeer *peer;
    CcnetPeerManager *peer_mgr = session->peer_mgr;

    peer_list = ccnet_peer_manager_get_peer_list(peer_mgr);
    if (peer_list == NULL) {
        g_set_error(error, CCNET_DOMAIN, CCNET_ERR_INTERNAL, "Failed to get peer list");
        return NULL;
    }

    ptr = peer_list;
    while (ptr) {
        peer = ptr->data;
        if (peer->is_self) {
            ptr = ptr->next;
            continue;
        }
        
        guint proc_num = g_hash_table_size (peer->processors);

        CcnetPeerStat* stat = ccnet_peer_stat_new ();
        g_object_set (stat, "id", peer->id,
                      "name", peer->name,
                      "ip", peer->addr_str,
                      "encrypt", peer->encrypt_channel,
                      "last_up", (gint64) peer->last_up,
                      "proc_num", (int)proc_num,
                      NULL);
        res = g_list_prepend (res, stat);
        ptr = ptr->next;
    }
    g_list_free(peer_list);

    return g_list_reverse (res);
}