MIRROR: javascript for ๐Ÿœ's, a tiny runtime with big ambitions
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

fix oversight in server string buffer

+14 -9
+1 -1
src/ant.c
··· 15449 15449 } 15450 15450 15451 15451 char *js_getstr(ant_t *js, ant_value_t value, size_t *len) { 15452 - (void)js; 15452 + (void)js; // TODO: remove 15453 15453 if (vtype(value) != T_STR) return NULL; 15454 15454 ant_offset_t n, off = vstr(js, value, &n); 15455 15455 if (len != NULL) *len = n;
+13 -8
src/modules/server.c
··· 345 345 static bool server_response_chunk(server_request_t *req, ant_value_t value, const uint8_t **out, size_t *len) { 346 346 TypedArrayData *ta = buffer_get_typedarray_data(value); 347 347 348 + if (vtype(value) == T_STR) { 349 + *out = (const uint8_t *)js_getstr(req->server->js, value, len); 350 + if (!*out) *len = 0; 351 + return true; 352 + } 353 + 348 354 if (!ta || ta->type != TYPED_ARRAY_UINT8) return false; 349 355 if (!ta->buffer || ta->buffer->is_detached) { 350 356 *out = NULL; ··· 496 502 ant_conn_close(req->conn); 497 503 return; 498 504 } 499 - if (!body_is_stream && !head_only && resp->body_size > 0) ant_http1_buffer_append(&buf, resp->body_data, resp->body_size); 505 + 506 + if (!body_is_stream && !head_only && resp->body_size > 0) 507 + ant_http1_buffer_append(&buf, resp->body_data, resp->body_size); 508 + 500 509 if (buf.failed) { 501 510 ant_http1_buffer_free(&buf); 502 511 ant_conn_close(req->conn); ··· 506 515 out = ant_http1_buffer_take(&buf, &out_len); 507 516 ant_conn_set_timeout_ms(req->conn, req->server->idle_timeout_ms); 508 517 509 - if (body_is_stream) { 510 - if (!server_queue_write(req->conn, req, out, out_len, SERVER_WRITE_STREAM_READ)) return; 511 - if (head_only) ant_conn_close(req->conn); 512 - return; 513 - } 514 - 515 518 server_queue_write( 516 519 req->conn, 517 520 req, out, out_len, 518 - req->keep_alive ? SERVER_WRITE_KEEP_ALIVE : SERVER_WRITE_CLOSE_CLIENT 521 + body_is_stream && !head_only 522 + ? SERVER_WRITE_STREAM_READ 523 + : (req->keep_alive ? SERVER_WRITE_KEEP_ALIVE : SERVER_WRITE_CLOSE_CLIENT) 519 524 ); 520 525 } 521 526