Add public IDs for fnetnodes.
authorfredrik <fredrik@959494ce-11ee-0310-bf91-de5d638817bd>
Thu, 16 Mar 2006 04:10:21 +0000 (04:10 +0000)
committerfredrik <fredrik@959494ce-11ee-0310-bf91-de5d638817bd>
Thu, 16 Mar 2006 04:10:21 +0000 (04:10 +0000)
git-svn-id: svn+ssh://svn.dolda2000.com/srv/svn/repos/src/doldaconnect@591 959494ce-11ee-0310-bf91-de5d638817bd

daemon/filenet.c
daemon/filenet.h
daemon/ui.c
include/doldaconnect/uimisc.h
lib/uicmds
lib/uimisc.c

index 417f6b8..dd14f7e 100644 (file)
@@ -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)
     {
index 8d6b56b..3700bca 100644 (file)
@@ -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;
index 62daf21..5e00ad8 100644 (file)
@@ -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);
     }
 }
 
index 8043d8c..8737070 100644 (file)
@@ -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
index cca2d13..6bdf3c4 100644 (file)
@@ -44,7 +44,7 @@
 509
 511
 :lsnodes
-200 i s s i i
+200 i s s i i s
 201
 502
 :dcnct
index e0a37ef..407e400 100644 (file)
@@ -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);