X-Git-Url: http://dolda2000.com/gitweb/?a=blobdiff_plain;f=daemon%2Ffilenet.h;h=ffb2acb20297da48d6aa42271613a83256dc67b5;hb=78ba3ee1d71032a1325036d5cefa8d0549d76ccd;hp=f0cb77715e9595817627174807399a0c389f70c4;hpb=efc05613724470915c842b3217ec0625dc8147a7;p=doldaconnect.git diff --git a/daemon/filenet.h b/daemon/filenet.h index f0cb777..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 @@ -29,6 +29,10 @@ #define FNN_EST 2 #define FNN_DEAD 3 +#define FNNS_PUB 0 +#define FNNS_REG 1 +#define FNNS_OP 2 + #define FNPD_INT 0 #define FNPD_LL 1 #define FNPD_STR 2 @@ -40,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 @@ -70,7 +74,6 @@ struct fnetpeerdi struct fnetpeer { - struct fnetpeer *next, *prev; struct fnetnode *fn; wchar_t *id; wchar_t *nick; @@ -94,13 +97,15 @@ struct fnetnode int id; int state; int linked; + int regstatus; + int connected; time_t srchwait, lastsrch; - wchar_t *name; + 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; @@ -118,7 +123,7 @@ void fnetsetname(struct fnetnode *fn, wchar_t *newname); void fnetsetstate(struct fnetnode *fn, int newstate); int fnetsetnick(struct fnetnode *fn, wchar_t *newnick); struct fnet *findfnet(wchar_t *name); -struct fnetnode *fnetinitconnect(wchar_t *name, char *addr, struct wcspair *args); +struct fnetnode *fnetinitconnect(wchar_t *name, wchar_t *owner, char *addr, struct wcspair *args); void linkfnetnode(struct fnetnode *fn); void unlinkfnetnode(struct fnetnode *fn); void getfnetnode(struct fnetnode *fn); @@ -126,6 +131,7 @@ 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); @@ -135,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 *);