X-Git-Url: https://tinc-vpn.org/git/browse?p=tinc;a=blobdiff_plain;f=src%2Fmeta.c;h=b556e1750fa585b759d38084891de07aae4ba444;hp=43e1e19e7f8b990b1eeb822020cd170ef11a5e8c;hb=6834b882015a9323672e9fce8811aa4283f196f0;hpb=95d8811c2cef8bcde78e1f172f6c57c25cd487aa diff --git a/src/meta.c b/src/meta.c index 43e1e19e..b556e175 100644 --- a/src/meta.c +++ b/src/meta.c @@ -77,7 +77,9 @@ static bool process_meta(connection_t *c, char *reqbuf, int *len) { if(c->tcplen > *len) break; + mutex_lock(&mutex); receive_tcppacket(c, reqbuf, c->tcplen); + mutex_unlock(&mutex); memmove(reqbuf, reqbuf, *len - c->tcplen); *len -= c->tcplen; @@ -88,7 +90,11 @@ static bool process_meta(connection_t *c, char *reqbuf, int *len) { else *end++ = 0; - if(!receive_request(c, reqbuf)) + mutex_lock(&mutex); + bool success = receive_request(c, reqbuf); + mutex_unlock(&mutex); + + if(!success) return false; memmove(reqbuf, end, *len - (end - reqbuf));