X-Git-Url: http://dolda2000.com/gitweb/?a=blobdiff_plain;f=daemon%2Ffilenet.c;h=18c74eff3351e2ce5eed8fcc64a14718224e6b38;hb=HEAD;hp=a74f454b318b56c22cdf9facac5fa5931677e179;hpb=0e227c1d9f08cee2f7ac474c185d36db7b8097d0;p=doldaconnect.git diff --git a/daemon/filenet.c b/daemon/filenet.c index a74f454..18c74ef 100644 --- a/daemon/filenet.c +++ b/daemon/filenet.c @@ -176,17 +176,21 @@ static void conncb(struct socket *sk, int err, struct fnetnode *data) data->fnet->connect(data, sk); data->connected = 1; putfnetnode(data); - putsock(sk); } static void resolvecb(struct sockaddr *addr, int addrlen, struct fnetnode *data) { - if(addr == NULL) + struct socket *sk; + + sk = NULL; + if(addr != NULL) + sk = netcsconn(addr, addrlen, (void (*)(struct socket *, int, void *))conncb, data); + if(sk == NULL) { killfnetnode(data); putfnetnode(data); } else { - netcsconn(addr, addrlen, (void (*)(struct socket *, int, void *))conncb, data); + putsock(sk); } } @@ -459,6 +463,15 @@ void fnetsetstate(struct fnetnode *fn, int newstate) CBCHAINDOCB(fn, fnetnode_ac, fn, L"state"); } +wchar_t *fnfilebasename(wchar_t *path) +{ + wchar_t *p; + + if((p = wcsrchr(path, L'/')) != NULL) + return(p + 1); + return(path); +} + struct fnet *findfnet(wchar_t *name) { struct fnet *fnet;