Dolda2000 GitWeb
/
doldaconnect.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Use findfile instead of findconfig file.
[doldaconnect.git]
/
daemon
/
fnet-dc.c
diff --git
a/daemon/fnet-dc.c
b/daemon/fnet-dc.c
index
33c7b6f
..
a37918f
100644
(file)
--- 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;
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];
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(!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;
goto out;
+ }
memcpy(hashtth, buf, 24);
free(buf);
} else {
memcpy(hashtth, buf, 24);
free(buf);
} else {
@@
-1308,7
+1310,7
@@
static void sendctm(struct socket *sk, char *nick)
if(tcpsock == NULL)
return;
if(tcpsock == NULL)
return;
- if(sockgetremotename(
tcpsoc
k, &addr, &addrlen) < 0)
+ if(sockgetremotename(
s
k, &addr, &addrlen) < 0)
return;
if(addr->sa_family == AF_INET)
qstrf(sk, "$ConnectToMe %s %s|", nick, formataddress(addr, addrlen));
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)
{
addtobuf(sstr, 0);
if(tcpsock != NULL)
{
- if(sockgetremotename(
udpsoc
k, &name, &namelen) < 0)
+ if(sockgetremotename(
fn->s
k, &name, &namelen) < 0)
{
flog(LOG_WARNING, "cannot get address of UDP socket");
} else {
{
flog(LOG_WARNING, "cannot get address of UDP socket");
} else {
@@
-2597,7
+2599,7
@@
static void dctransgotdata(struct transfer *transfer, struct dcpeer *peer)
{
int ret;
void *buf;
{
int ret;
void *buf;
- char outbuf[1024];
+
unsigned
char outbuf[1024];
z_stream *cstr;
size_t bufsize;
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);
if(err != 0)
{
putfnetnode(fn);
+ putsock(sk);
return;
}
hub = fn->data;
return;
}
hub = fn->data;