#define DC_FNN_STATE_EST 2
#define DC_FNN_STATE_DEAD 3
+#define DC_FNPD_INT 0
+#define DC_FNPD_LL 1
+#define DC_FNPD_STR 2
+
#define DC_TRNS_WAITING 0
#define DC_TRNS_HS 1
#define DC_TRNS_MAIN 2
int found;
void (*destroycb)(struct dc_fnetnode *fn);
void *udata;
+ struct dc_fnetpeer *peers;
+ struct dc_fnetpeerdatum *peerdata;
+ void (*newpeercb)(struct dc_fnetpeer *peer);
+ void (*delpeercb)(struct dc_fnetpeer *peer);
+ void (*chpeercb)(struct dc_fnetpeer *peer);
+ wchar_t *pubid;
+};
+
+struct dc_fnetpeerdatum
+{
+ struct dc_fnetpeerdatum *next, *prev;
+ int refcount;
+ int dt;
+ wchar_t *id;
+};
+
+struct dc_fnetpeerdi
+{
+ struct dc_fnetpeerdatum *datum;
+ union
+ {
+ int num;
+ long long lnum;
+ wchar_t *str;
+ } d;
+};
+
+struct dc_fnetpeer
+{
+ struct dc_fnetpeer *next, *prev;
+ struct dc_fnetnode *fn;
+ wchar_t *id;
+ wchar_t *nick;
+ int dinum;
+ int found;
+ struct dc_fnetpeerdi *di;
};
struct dc_transfer
int dir, state;
wchar_t *peerid, *peernick;
wchar_t *path;
- int size, curpos;
+ dc_lnum_t size, curpos;
int found;
int error;
time_t errortime;
+ wchar_t *hash;
void (*destroycb)(struct dc_transfer *transfer);
void *udata;
};
+int dc_convtty(int type, wchar_t *text, char **resp, void *data);
+int dc_convnone(int type, wchar_t *text, char **resp, void *data);
void dc_loginasync(char *username, int useauthless, int (*conv)(int, wchar_t *, char **, void *), void (*callback)(int, wchar_t *, void *), void *udata);
+int dc_login(char *username, int useauthless, int (*conv)(int, wchar_t *, char **, void *), wchar_t **reason);
struct dc_fnetnode *dc_findfnetnode(int id);
void dc_getfnlistasync(void (*callback)(int, void *), void *udata);
void dc_uimisc_handlenotify(struct dc_response *resp);
void dc_gettrlistasync(void (*callback)(int, void *), void *udata);
wchar_t **dc_lexsexpr(wchar_t *sexpr);
void dc_freewcsarr(wchar_t **arr);
+void dc_getpeerlistasync(struct dc_fnetnode *fn, void (*callback)(struct dc_fnetnode *, int, void *), void *udata);
+struct dc_fnetpeer *dc_fnetfindpeer(struct dc_fnetnode *fn, wchar_t *id);
extern struct dc_fnetnode *dc_fnetnodes;
extern struct dc_transfer *dc_transfers;