Fixed HTTP-client query-string handling bug.
[doldaconnect.git] / daemon / filenet.h
index 5a0caeb..ffb2acb 100644 (file)
@@ -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 <fredrik@dolda2000.com>
  *  
  *  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 *);