]> git.dolda2000.com Git - doldaconnect.git/commitdiff
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 5e2b607e7a6eb4bfbd17467c837ebf8d0c88939d..be6c5affb86292b58eaa592381ebe4967e938ad9 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 3700bca35228c59e5ec6f654e75621bff7649b81..261b1baeae45148320ae4fd175033fff32a38c7f 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 4036ff86622b5c04464ca238bf0d3fe16b25ddc0..b3b9afe0bf001abd1f69bfca7f31cda41b6980b5 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 df421eca317014f902f885e292f9cee4f10dde0e..96c1eb7ebc2c475376888cf3672e7f2fbf7856d0 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)