mirror of
https://github.com/cesanta/mongoose.git
synced 2025-08-06 05:26:15 +08:00
Fix UDP listeners
This commit is contained in:
parent
4593332204
commit
4c58c62cfe
@ -7848,9 +7848,11 @@ static void rx_udp(struct mg_tcpip_if *ifp, struct pkt *pkt) {
|
|||||||
struct mg_connection *c = getpeer(ifp->mgr, pkt, true);
|
struct mg_connection *c = getpeer(ifp->mgr, pkt, true);
|
||||||
if (c == NULL) {
|
if (c == NULL) {
|
||||||
// No UDP listener on this port. Should send ICMP, but keep silent.
|
// No UDP listener on this port. Should send ICMP, but keep silent.
|
||||||
} else if (c != NULL) {
|
} else {
|
||||||
c->rem.port = pkt->udp->sport;
|
c->rem.port = pkt->udp->sport;
|
||||||
c->rem.ip = pkt->ip->src;
|
c->rem.ip = pkt->ip->src;
|
||||||
|
struct connstate *s = (struct connstate *) (c + 1);
|
||||||
|
memcpy(s->mac, pkt->eth->src, sizeof(s->mac));
|
||||||
if (c->recv.len >= MG_MAX_RECV_SIZE) {
|
if (c->recv.len >= MG_MAX_RECV_SIZE) {
|
||||||
mg_error(c, "max_recv_buf_size reached");
|
mg_error(c, "max_recv_buf_size reached");
|
||||||
} else if (c->recv.size - c->recv.len < pkt->pay.len &&
|
} else if (c->recv.size - c->recv.len < pkt->pay.len &&
|
||||||
|
@ -404,9 +404,11 @@ static void rx_udp(struct mg_tcpip_if *ifp, struct pkt *pkt) {
|
|||||||
struct mg_connection *c = getpeer(ifp->mgr, pkt, true);
|
struct mg_connection *c = getpeer(ifp->mgr, pkt, true);
|
||||||
if (c == NULL) {
|
if (c == NULL) {
|
||||||
// No UDP listener on this port. Should send ICMP, but keep silent.
|
// No UDP listener on this port. Should send ICMP, but keep silent.
|
||||||
} else if (c != NULL) {
|
} else {
|
||||||
c->rem.port = pkt->udp->sport;
|
c->rem.port = pkt->udp->sport;
|
||||||
c->rem.ip = pkt->ip->src;
|
c->rem.ip = pkt->ip->src;
|
||||||
|
struct connstate *s = (struct connstate *) (c + 1);
|
||||||
|
memcpy(s->mac, pkt->eth->src, sizeof(s->mac));
|
||||||
if (c->recv.len >= MG_MAX_RECV_SIZE) {
|
if (c->recv.len >= MG_MAX_RECV_SIZE) {
|
||||||
mg_error(c, "max_recv_buf_size reached");
|
mg_error(c, "max_recv_buf_size reached");
|
||||||
} else if (c->recv.size - c->recv.len < pkt->pay.len &&
|
} else if (c->recv.size - c->recv.len < pkt->pay.len &&
|
||||||
|
Loading…
Reference in New Issue
Block a user