X-Git-Url: http://git.dolda2000.com/gitweb/?a=blobdiff_plain;f=include%2Fdoldaconnect%2Fuimisc.h;h=77bf9077f684722d694c014293f3a49752e7e140;hb=8be1b1e3aca9bb9cb78a7e14e0760ac7e0881592;hp=21806645e1321823d5618ac7e020e862f217a712;hpb=e5c9ece68615be54da39af149edf3ba36eac559d;p=doldaconnect.git diff --git a/include/doldaconnect/uimisc.h b/include/doldaconnect/uimisc.h index 2180664..77bf907 100644 --- a/include/doldaconnect/uimisc.h +++ b/include/doldaconnect/uimisc.h @@ -18,6 +18,10 @@ #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 @@ -44,6 +48,39 @@ struct dc_fnetnode int found; void (*destroycb)(struct dc_fnetnode *fn); void *udata; + int trackpeers; + struct dc_fnetpeer *peers; + struct dc_fnetpeerdatum *peerdata; +}; + +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 @@ -70,6 +107,8 @@ struct dc_transfer *dc_findtransfer(int id); 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;