mirror of
https://github.com/haiwen/ccnet-server.git
synced 2025-06-02 18:55:08 +00:00
75 lines
1.6 KiB
C
75 lines
1.6 KiB
C
/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
|
|
|
|
#include "include.h"
|
|
#include "peer.h"
|
|
#include "ccnet-client.h"
|
|
#include "peer-common.h"
|
|
|
|
static void ccnet_peer_free (GObject *object);
|
|
|
|
|
|
static void
|
|
set_property (GObject *object, guint property_id,
|
|
const GValue *v, GParamSpec *pspec)
|
|
{
|
|
set_property_common (object, property_id, v, pspec);
|
|
}
|
|
|
|
static void
|
|
ccnet_peer_class_init (CcnetPeerClass *klass)
|
|
{
|
|
GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
|
|
|
|
gobject_class->set_property = set_property;
|
|
gobject_class->get_property = get_property;
|
|
gobject_class->finalize = ccnet_peer_free;
|
|
|
|
define_properties (gobject_class);
|
|
}
|
|
|
|
static void
|
|
ccnet_peer_init (CcnetPeer *peer)
|
|
{
|
|
}
|
|
|
|
|
|
CcnetPeer*
|
|
ccnet_peer_new (const char *id)
|
|
{
|
|
CcnetPeer *peer;
|
|
|
|
peer = g_object_new (CCNET_TYPE_PEER, NULL);
|
|
memcpy (peer->id, id, 40);
|
|
peer->id[40] = '\0';
|
|
|
|
peer->net_state = PEER_DOWN;
|
|
peer->public_port = 0;
|
|
peer->port = 0;
|
|
return peer;
|
|
}
|
|
|
|
void
|
|
ccnet_peer_free (GObject *object)
|
|
{
|
|
CcnetPeer *peer = CCNET_PEER (object);
|
|
GList *ptr;
|
|
|
|
g_free (peer->name);
|
|
g_free (peer->addr_str);
|
|
g_free (peer->service_url);
|
|
g_free (peer->public_addr);
|
|
g_free (peer->login_error);
|
|
g_free (peer->bind_email);
|
|
g_free (peer->session_key);
|
|
for (ptr = peer->role_list; ptr; ptr = ptr->next)
|
|
g_free (ptr->data);
|
|
g_list_free (peer->role_list);
|
|
|
|
for (ptr = peer->myrole_list; ptr; ptr = ptr->next)
|
|
g_free (ptr->data);
|
|
g_list_free (peer->myrole_list);
|
|
|
|
G_OBJECT_CLASS(ccnet_peer_parent_class)->finalize (object);
|
|
}
|
|
|