X-Git-Url: http://dolda2000.com/gitweb/?a=blobdiff_plain;f=daemon%2Ffnet-dc.c;h=a3ee35e6f5ee15151b887906f7b68a2407eff141;hb=c458597e9136094237260be626621098cbe54e50;hp=33c7b6facbe87bc8b311fd484cb5cf94654eaac0;hpb=62da27122178606db9029d8442b398a091c57246;p=doldaconnect.git diff --git a/daemon/fnet-dc.c b/daemon/fnet-dc.c index 33c7b6f..a3ee35e 100644 --- a/daemon/fnet-dc.c +++ b/daemon/fnet-dc.c @@ -1083,7 +1083,8 @@ static void cmd_search(struct socket *sk, struct fnetnode *fn, char *cmd, char * struct sockaddr_in addr; struct sharecache *node; int minsize, maxsize; - int dotth, buflen; + int dotth; + size_t buflen; int termnum, satisfied, skipcheck; int level, tersat[32]; wchar_t *terms[32]; @@ -1166,10 +1167,11 @@ static void cmd_search(struct socket *sk, struct fnetnode *fn, char *cmd, char * if(!dotth && !strncmp(p, "TTH:", 4)) { dotth = 1; - if((buf = base32decode(p + 4, &buflen)) == NULL) - goto out; - if(buflen != 24) + if(((buf = base32decode(p + 4, &buflen)) == NULL) || (buflen != 24)) + { + free(buf); goto out; + } memcpy(hashtth, buf, 24); free(buf); } else { @@ -1308,7 +1310,7 @@ static void sendctm(struct socket *sk, char *nick) if(tcpsock == NULL) return; - if(sockgetremotename(tcpsock, &addr, &addrlen) < 0) + if(sockgetremotename2(tcpsock, sk, &addr, &addrlen) < 0) return; if(addr->sa_family == AF_INET) qstrf(sk, "$ConnectToMe %s %s|", nick, formataddress(addr, addrlen)); @@ -2517,7 +2519,7 @@ static int hubsearch(struct fnetnode *fn, struct search *srch, struct srchfnnlis addtobuf(sstr, 0); if(tcpsock != NULL) { - if(sockgetremotename(udpsock, &name, &namelen) < 0) + if(sockgetremotename2(udpsock, fn->sk, &name, &namelen) < 0) { flog(LOG_WARNING, "cannot get address of UDP socket"); } else { @@ -2538,7 +2540,7 @@ static int hubsearch(struct fnetnode *fn, struct search *srch, struct srchfnnlis #undef qstrf #define cc(c) ((void (*)(struct socket *, void *, char *, char *))(c)) -struct command hubcmds[] = +static struct command hubcmds[] = { {"$Lock", cc(cmd_lock)}, {"$HubName", cc(cmd_hubname)}, @@ -2561,7 +2563,7 @@ struct command hubcmds[] = {NULL, NULL} }; -struct command peercmds[] = +static struct command peercmds[] = { {"$MyNick", cc(cmd_mynick)}, {"$Lock", cc(cmd_peerlock)}, @@ -2597,7 +2599,7 @@ static void dctransgotdata(struct transfer *transfer, struct dcpeer *peer) { int ret; void *buf; - char outbuf[1024]; + unsigned char outbuf[1024]; z_stream *cstr; size_t bufsize; @@ -3173,6 +3175,7 @@ static void peerconnect(struct socket *sk, int err, struct fnetnode *fn) if(err != 0) { putfnetnode(fn); + putsock(sk); return; } hub = fn->data;