From fd4e1975a359791b2e5070c28485fae0ecce74a3 Mon Sep 17 00:00:00 2001 From: cpq Date: Fri, 9 Sep 2022 17:09:18 +0100 Subject: [PATCH] Pass long *bytes_read to MG_EV_READ --- mip/mip.c | 10 +++------- mongoose.c | 17 ++++++----------- mongoose.h | 6 +++--- src/event.h | 6 +++--- src/sock.c | 7 +++---- 5 files changed, 18 insertions(+), 28 deletions(-) diff --git a/mip/mip.c b/mip/mip.c index 8c2d7a12..b3e53d2f 100644 --- a/mip/mip.c +++ b/mip/mip.c @@ -493,8 +493,7 @@ static void rx_udp(struct mip_if *ifp, struct pkt *pkt) { } else { memcpy(&c->recv.buf[c->recv.len], pkt->pay.buf, pkt->pay.len); c->recv.len += pkt->pay.len; - struct mg_str evd = mg_str_n((char *) pkt->pay.buf, pkt->pay.len); - mg_call(c, MG_EV_READ, &evd); + mg_call(c, MG_EV_READ, &pkt->pay.len); } } } @@ -630,15 +629,12 @@ static void read_conn(struct mg_connection *c, struct pkt *pkt) { } else if (n > 0) { // Decrypted successfully - trigger MG_EV_READ io->len += (size_t) n; - struct mg_str evd = - mg_str_n((char *) &io->buf[io->len - (size_t) n], (size_t) n); - mg_call(c, MG_EV_READ, &evd); + mg_call(c, MG_EV_READ, &n); } } } else { // Plain text connection, data is already in c->recv, trigger MG_EV_READ - struct mg_str evd = mg_str_n((char *) pkt->pay.buf, pkt->pay.len); - mg_call(c, MG_EV_READ, &evd); + mg_call(c, MG_EV_READ, &pkt->pay.len); } } } diff --git a/mongoose.c b/mongoose.c index bca9849a..34ba8d9c 100644 --- a/mongoose.c +++ b/mongoose.c @@ -4089,9 +4089,8 @@ static void iolog(struct mg_connection *c, char *buf, long n, bool r) { mg_hexdump(buf, (size_t) n); } if (r) { - struct mg_str evd = mg_str_n(buf, (size_t) n); c->recv.len += (size_t) n; - mg_call(c, MG_EV_READ, &evd); + mg_call(c, MG_EV_READ, &n); } else { mg_iobuf_del(&c->send, 0, (size_t) n); // if (c->send.len == 0) mg_iobuf_resize(&c->send, 0); @@ -4611,8 +4610,8 @@ void mg_mgr_poll(struct mg_mgr *mgr, int ms) { tmp = c->next; mg_call(c, MG_EV_POLL, &now); if (is_resp && !c->is_resp) { - struct mg_str fake = mg_str_n("", 0); - mg_call(c, MG_EV_READ, &fake); + long n = 0; + mg_call(c, MG_EV_READ, &n); } MG_VERBOSE(("%lu %c%c %c%c%c%c%c", c->id, c->is_readable ? 'r' : '-', c->is_writable ? 'w' : '-', c->is_tls ? 'T' : 't', @@ -6795,8 +6794,7 @@ static void rx_udp(struct mip_if *ifp, struct pkt *pkt) { } else { memcpy(&c->recv.buf[c->recv.len], pkt->pay.buf, pkt->pay.len); c->recv.len += pkt->pay.len; - struct mg_str evd = mg_str_n((char *) pkt->pay.buf, pkt->pay.len); - mg_call(c, MG_EV_READ, &evd); + mg_call(c, MG_EV_READ, &pkt->pay.len); } } } @@ -6932,15 +6930,12 @@ static void read_conn(struct mg_connection *c, struct pkt *pkt) { } else if (n > 0) { // Decrypted successfully - trigger MG_EV_READ io->len += (size_t) n; - struct mg_str evd = - mg_str_n((char *) &io->buf[io->len - (size_t) n], (size_t) n); - mg_call(c, MG_EV_READ, &evd); + mg_call(c, MG_EV_READ, &n); } } } else { // Plain text connection, data is already in c->recv, trigger MG_EV_READ - struct mg_str evd = mg_str_n((char *) pkt->pay.buf, pkt->pay.len); - mg_call(c, MG_EV_READ, &evd); + mg_call(c, MG_EV_READ, &pkt->pay.len); } } } diff --git a/mongoose.h b/mongoose.h index a0e76bc4..9138f9db 100644 --- a/mongoose.h +++ b/mongoose.h @@ -989,11 +989,11 @@ void mg_error(struct mg_connection *c, const char *fmt, ...); enum { MG_EV_ERROR, // Error char *error_message MG_EV_OPEN, // Connection created NULL - MG_EV_POLL, // mg_mgr_poll iteration uint64_t *milliseconds + MG_EV_POLL, // mg_mgr_poll iteration uint64_t *uptime_millis MG_EV_RESOLVE, // Host name is resolved NULL MG_EV_CONNECT, // Connection established NULL MG_EV_ACCEPT, // Connection accepted NULL - MG_EV_READ, // Data received from socket struct mg_str * + MG_EV_READ, // Data received from socket long *bytes_read MG_EV_WRITE, // Data written to socket long *bytes_written MG_EV_CLOSE, // Connection closed NULL MG_EV_HTTP_MSG, // HTTP request/response struct mg_http_message * @@ -1004,7 +1004,7 @@ enum { MG_EV_MQTT_CMD, // MQTT low-level command struct mg_mqtt_message * MG_EV_MQTT_MSG, // MQTT PUBLISH received struct mg_mqtt_message * MG_EV_MQTT_OPEN, // MQTT CONNACK received int *connack_status_code - MG_EV_SNTP_TIME, // SNTP time received uint64_t *milliseconds + MG_EV_SNTP_TIME, // SNTP time received uint64_t *epoch_millis MG_EV_USER, // Starting ID for user events }; diff --git a/src/event.h b/src/event.h index 19644e26..583f81bc 100644 --- a/src/event.h +++ b/src/event.h @@ -9,11 +9,11 @@ void mg_error(struct mg_connection *c, const char *fmt, ...); enum { MG_EV_ERROR, // Error char *error_message MG_EV_OPEN, // Connection created NULL - MG_EV_POLL, // mg_mgr_poll iteration uint64_t *milliseconds + MG_EV_POLL, // mg_mgr_poll iteration uint64_t *uptime_millis MG_EV_RESOLVE, // Host name is resolved NULL MG_EV_CONNECT, // Connection established NULL MG_EV_ACCEPT, // Connection accepted NULL - MG_EV_READ, // Data received from socket struct mg_str * + MG_EV_READ, // Data received from socket long *bytes_read MG_EV_WRITE, // Data written to socket long *bytes_written MG_EV_CLOSE, // Connection closed NULL MG_EV_HTTP_MSG, // HTTP request/response struct mg_http_message * @@ -24,6 +24,6 @@ enum { MG_EV_MQTT_CMD, // MQTT low-level command struct mg_mqtt_message * MG_EV_MQTT_MSG, // MQTT PUBLISH received struct mg_mqtt_message * MG_EV_MQTT_OPEN, // MQTT CONNACK received int *connack_status_code - MG_EV_SNTP_TIME, // SNTP time received uint64_t *milliseconds + MG_EV_SNTP_TIME, // SNTP time received uint64_t *epoch_millis MG_EV_USER, // Starting ID for user events }; diff --git a/src/sock.c b/src/sock.c index 4655fda2..6198ef8c 100644 --- a/src/sock.c +++ b/src/sock.c @@ -135,9 +135,8 @@ static void iolog(struct mg_connection *c, char *buf, long n, bool r) { mg_hexdump(buf, (size_t) n); } if (r) { - struct mg_str evd = mg_str_n(buf, (size_t) n); c->recv.len += (size_t) n; - mg_call(c, MG_EV_READ, &evd); + mg_call(c, MG_EV_READ, &n); } else { mg_iobuf_del(&c->send, 0, (size_t) n); // if (c->send.len == 0) mg_iobuf_resize(&c->send, 0); @@ -657,8 +656,8 @@ void mg_mgr_poll(struct mg_mgr *mgr, int ms) { tmp = c->next; mg_call(c, MG_EV_POLL, &now); if (is_resp && !c->is_resp) { - struct mg_str fake = mg_str_n("", 0); - mg_call(c, MG_EV_READ, &fake); + long n = 0; + mg_call(c, MG_EV_READ, &n); } MG_VERBOSE(("%lu %c%c %c%c%c%c%c", c->id, c->is_readable ? 'r' : '-', c->is_writable ? 'w' : '-', c->is_tls ? 'T' : 't',