From d1e8b9fdbc499b3148bc3fe80eb50982c0d1ad22 Mon Sep 17 00:00:00 2001 From: fredrik Date: Thu, 16 Mar 2006 04:10:21 +0000 Subject: [PATCH] Add public IDs for fnetnodes. git-svn-id: svn+ssh://svn.dolda2000.com/srv/svn/repos/src/doldaconnect@591 959494ce-11ee-0310-bf91-de5d638817bd --- daemon/filenet.c | 5 +++++ daemon/filenet.h | 2 +- daemon/ui.c | 2 +- include/doldaconnect/uimisc.h | 1 + lib/uicmds | 2 +- lib/uimisc.c | 4 ++++ 6 files changed, 13 insertions(+), 3 deletions(-) diff --git a/daemon/filenet.c b/daemon/filenet.c index 417f6b8..dd14f7e 100644 --- a/daemon/filenet.c +++ b/daemon/filenet.c @@ -112,6 +112,8 @@ void putfnetnode(struct fnetnode *fn) fnetdelpeer(fn->peers); if(fn->mynick != NULL) free(fn->mynick); + if(fn->pubid != NULL) + free(fn->pubid); if(fn->name != NULL) free(fn->name); if(fn->sk != NULL) @@ -451,6 +453,9 @@ struct fnetnode *fnetinitconnect(wchar_t *name, char *addr, struct wcspair *args return(NULL); } fn = newfn(fnet); + fn->pubid = icmbstowcs(addr, NULL); + if(fn->pubid == NULL) + fn->pubid = swcsdup(L""); fn->args = args; for(arg = fn->args; arg != NULL; arg = arg->next) { diff --git a/daemon/filenet.h b/daemon/filenet.h index 8d6b56b..3700bca 100644 --- a/daemon/filenet.h +++ b/daemon/filenet.h @@ -100,7 +100,7 @@ struct fnetnode int linked; int regstatus; time_t srchwait, lastsrch; - wchar_t *name; + wchar_t *name, *pubid; wchar_t *mynick; struct fnet *fnet; struct socket *sk; diff --git a/daemon/ui.c b/daemon/ui.c index 62daf21..5e00ad8 100644 --- a/daemon/ui.c +++ b/daemon/ui.c @@ -605,7 +605,7 @@ static void cmd_lsnodes(struct socket *sk, struct uidata *data, int argc, wchar_ } for(fn = fnetnodes; fn != NULL; fn = fn->next) { - sq(sk, (fn->next != NULL)?1:0, L"200", L"%%i", fn->id, fn->fnet->name, (fn->name == NULL)?L"":fn->name, L"%%i", fn->numpeers, L"%%i", fn->state, NULL); + sq(sk, (fn->next != NULL)?1:0, L"200", L"%%i", fn->id, fn->fnet->name, (fn->name == NULL)?L"":fn->name, L"%%i", fn->numpeers, L"%%i", fn->state, L"%%ls", fn->pubid, NULL); } } diff --git a/include/doldaconnect/uimisc.h b/include/doldaconnect/uimisc.h index 8043d8c..8737070 100644 --- a/include/doldaconnect/uimisc.h +++ b/include/doldaconnect/uimisc.h @@ -53,6 +53,7 @@ struct dc_fnetnode void (*newpeercb)(struct dc_fnetpeer *peer); void (*delpeercb)(struct dc_fnetpeer *peer); void (*chpeercb)(struct dc_fnetpeer *peer); + wchar_t *pubid; }; struct dc_fnetpeerdatum diff --git a/lib/uicmds b/lib/uicmds index cca2d13..6bdf3c4 100644 --- a/lib/uicmds +++ b/lib/uicmds @@ -44,7 +44,7 @@ 509 511 :lsnodes -200 i s s i i +200 i s s i i s 201 502 :dcnct diff --git a/lib/uimisc.c b/lib/uimisc.c index e0a37ef..407e400 100644 --- a/lib/uimisc.c +++ b/lib/uimisc.c @@ -869,6 +869,9 @@ static int getfnlistcallback(struct dc_response *resp) fn->name = swcsdup(ires->argv[2].val.str); fn->numusers = ires->argv[3].val.num; fn->state = ires->argv[4].val.num; + if(fn->pubid != NULL) + free(fn->pubid); + fn->pubid = swcsdup(ires->argv[5].val.str); } else { fn = newfn(); fn->id = ires->argv[0].val.num; @@ -876,6 +879,7 @@ static int getfnlistcallback(struct dc_response *resp) fn->name = swcsdup(ires->argv[2].val.str); fn->numusers = ires->argv[3].val.num; fn->state = ires->argv[4].val.num; + fn->pubid = swcsdup(ires->argv[5].val.str); fn->found = 1; } dc_freeires(ires); -- 2.11.0