{
struct fnet *next;
wchar_t *name;
- void (*connect)(struct fnetnode *fn);
+ void (*connect)(struct fnetnode *fn, struct socket *sk);
void (*destroy)(struct fnetnode *fn);
+ void (*kill)(struct fnetnode *fn);
int (*setnick)(struct fnetnode *fn, wchar_t *newnick);
int (*reqconn)(struct fnetpeer *peer);
int (*sendchat)(struct fnetnode *fn, int public, wchar_t *to, wchar_t *string);
struct fnetpeer
{
- struct fnetpeer *next, *prev;
struct fnetnode *fn;
wchar_t *id;
wchar_t *nick;
int state;
int linked;
int regstatus;
+ int connected;
time_t srchwait, lastsrch;
wchar_t *name, *pubid;
wchar_t *mynick;
wchar_t *owner;
struct fnet *fnet;
- struct socket *sk;
struct fnetpeerdatum *peerdata;
- struct fnetpeer *peers;
+ struct btree *peers;
struct wcspair *args;
int numpeers;
void *data;
void killfnetnode(struct fnetnode *fn);
struct fnetpeer *fnetaddpeer(struct fnetnode *fn, wchar_t *id, wchar_t *nick);
void fnetdelpeer(struct fnetpeer *peer);
+void fnetpeerdm(struct fnetnode *fn);
struct fnetpeer *fnetfindpeer(struct fnetnode *fn, wchar_t *id);
void fnetpeersetstr(struct fnetpeer *peer, wchar_t *id, wchar_t *value);
void fnetpeersetnum(struct fnetpeer *peer, wchar_t *id, int value);