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 417f6b8d43cf648c2a2e56e063ccfb29b2bc47a0..dd14f7e7e38eca6874cb5f06ba6be29932b8fb48 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 8d6b56b831fe8ce92cef4791199d52b4d8a2ae47..3700bca35228c59e5ec6f654e75621bff7649b81 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 62daf218c0803c58014819875dcc46b446540adb..5e00ad8220e78013d8d498e6e2d6de8afafb907e 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 8043d8c089704b02eaa9f64cdb922b146f44e85c..873707074f6ce13d74633616036c7629f88f1598 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 cca2d13156c8111830fb75e99bf138264106fc06..6bdf3c4d38561c40f9e1b8e659ba10c26f65e9de 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 e0a37ef0caed7fb4b78f28148f811194d727571f..407e4003925560846efdaa9da3c967041464d25d 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);