X-Git-Url: http://dolda2000.com/gitweb/?a=blobdiff_plain;f=daemon%2Ffilenet.h;h=ffb2acb20297da48d6aa42271613a83256dc67b5;hb=78ba3ee1d71032a1325036d5cefa8d0549d76ccd;hp=5a0caeb69418b318ee1f061f0c0a43ce2b1ac81a;hpb=5ec60e4217863b0e2d6a86ba3f60f60c68608227;p=doldaconnect.git diff --git a/daemon/filenet.h b/daemon/filenet.h index 5a0caeb..ffb2acb 100644 --- a/daemon/filenet.h +++ b/daemon/filenet.h @@ -1,6 +1,6 @@ /* * Dolda Connect - Modular multiuser Direct Connect-style client - * Copyright (C) 2004 Fredrik Tolf (fredrik@dolda2000.com) + * Copyright (C) 2004 Fredrik Tolf * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -44,13 +44,13 @@ struct fnet { 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); int (*search)(struct fnetnode *fn, struct search *srch, struct srchfnnlist *ln); - wchar_t *(*filebasename)(wchar_t *filename); }; struct fnetpeerdatum @@ -74,7 +74,6 @@ struct fnetpeerdi struct fnetpeer { - struct fnetpeer *next, *prev; struct fnetnode *fn; wchar_t *id; wchar_t *nick; @@ -99,14 +98,14 @@ struct fnetnode 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; @@ -127,11 +126,12 @@ struct fnet *findfnet(wchar_t *name); struct fnetnode *fnetinitconnect(wchar_t *name, wchar_t *owner, char *addr, struct wcspair *args); void linkfnetnode(struct fnetnode *fn); void unlinkfnetnode(struct fnetnode *fn); -struct fnetnode *getfnetnode(struct fnetnode *fn); +void getfnetnode(struct fnetnode *fn); void putfnetnode(struct fnetnode *fn); 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); @@ -141,6 +141,7 @@ struct fnetnode *findfnetnode(int id); void fnethandlechat(struct fnetnode *fn, int public, wchar_t *name, wchar_t *peer, wchar_t *chat); int fnetsendchat(struct fnetnode *fn, int public, wchar_t *to, wchar_t *string); int fnetsearch(struct fnetnode *fn, struct search *srch, struct srchfnnlist *ln); +wchar_t *fnfilebasename(wchar_t *path); extern struct fnetnode *fnetnodes; EGCBCHAIN(newfncb, struct fnetnode *);