Add owner concept to fnetnodes.
authorfredrik <fredrik@959494ce-11ee-0310-bf91-de5d638817bd>
Thu, 4 Jan 2007 00:20:19 +0000 (00:20 +0000)
committerfredrik <fredrik@959494ce-11ee-0310-bf91-de5d638817bd>
Thu, 4 Jan 2007 00:20:19 +0000 (00:20 +0000)
git-svn-id: svn+ssh://svn.dolda2000.com/srv/svn/repos/src/doldaconnect@801 959494ce-11ee-0310-bf91-de5d638817bd

daemon/filenet.c
daemon/filenet.h
daemon/fnet-dc.c
daemon/ui.c

index 5e2b607..be6c5af 100644 (file)
@@ -121,6 +121,8 @@ void putfnetnode(struct fnetnode *fn)
        free(fn->name);
     if(fn->sk != NULL)
        putsock(fn->sk);
+    if(fn->owner != NULL)
+       free(fn->owner);
     free(fn);
     numfnetnodes--;
 }
@@ -444,7 +446,7 @@ struct fnet *findfnet(wchar_t *name)
     return(fnet);
 }
 
-struct fnetnode *fnetinitconnect(wchar_t *name, char *addr, struct wcspair *args)
+struct fnetnode *fnetinitconnect(wchar_t *name, wchar_t *owner, char *addr, struct wcspair *args)
 {
     struct fnet *fnet;
     struct fnetnode *fn;
@@ -456,6 +458,7 @@ struct fnetnode *fnetinitconnect(wchar_t *name, char *addr, struct wcspair *args
        return(NULL);
     }
     fn = newfn(fnet);
+    fn->owner = swcsdup(owner);
     fn->pubid = icmbstowcs(addr, NULL);
     if(fn->pubid == NULL)
        fn->pubid = swcsdup(L"");
index 3700bca..261b1ba 100644 (file)
@@ -102,6 +102,7 @@ struct fnetnode
     time_t srchwait, lastsrch;
     wchar_t *name, *pubid;
     wchar_t *mynick;
+    wchar_t *owner;
     struct fnet *fnet;
     struct socket *sk;
     struct fnetpeerdatum *peerdata;
@@ -123,7 +124,7 @@ void fnetsetname(struct fnetnode *fn, wchar_t *newname);
 void fnetsetstate(struct fnetnode *fn, int newstate);
 int fnetsetnick(struct fnetnode *fn, wchar_t *newnick);
 struct fnet *findfnet(wchar_t *name);
-struct fnetnode *fnetinitconnect(wchar_t *name, char *addr, struct wcspair *args);
+struct fnetnode *fnetinitconnect(wchar_t *name, wchar_t *owner, char *addr, struct wcspair *args);
 void linkfnetnode(struct fnetnode *fn);
 void unlinkfnetnode(struct fnetnode *fn);
 void getfnetnode(struct fnetnode *fn);
index 4036ff8..b3b9afe 100644 (file)
@@ -1017,7 +1017,7 @@ static void cmd_forcemove(struct socket *sk, struct fnetnode *fn, char *cmd, cha
     } else {
        freeargs = 0;
     }
-    if((newfn = fnetinitconnect(L"dc", args, NULL)) != NULL)
+    if((newfn = fnetinitconnect(L"dc", fn->owner, args, NULL)) != NULL)
     {
        linkfnetnode(newfn);
        putfnetnode(newfn);
index df421ec..96c1eb7 100644 (file)
@@ -590,7 +590,7 @@ static void cmd_fnetconnect(struct socket *sk, struct uidata *data, int argc, wc
     args = NULL;
     for(i = 3; i < argc - 1; i += 2)
        newwcspair(argv[i], argv[i + 1], &args);
-    fn = fnetinitconnect(argv[1], buf, args);
+    fn = fnetinitconnect(argv[1], data->userinfo->name, buf, args);
     err = errno;
     free(buf);
     if(fn == NULL)