Implement QUIC-native polls, disable server congestion control, "disable" ack delays in server, path add checks, disable nat rebinding

This commit is contained in:
Jop Zitman 2025-01-03 11:19:45 +08:00
parent 7d7750864a
commit 2fe1241583
16 changed files with 292 additions and 309 deletions

View file

@ -23,7 +23,7 @@ int picoquic_slipstream_client(int listen_port, char const* resolver_addresses_f
const char* cc_algo_id);
int picoquic_slipstream_server(int server_port, const char* pem_cert, const char* pem_key, char const* upstream_name,
int upstream_port, const char* domain_name, const char* cc_algo_id);
int upstream_port, const char* domain_name);
#ifdef __cplusplus
}

View file

@ -1,15 +0,0 @@
#ifndef SLIPSTREAM_PACKET
#define SLIPSTREAM_PACKET
#include <stdbool.h>
#include "picoquic.h"
#define PICOQUIC_SHORT_HEADER_CONNECTION_ID_SIZE 8
bool slipstream_packet_is_long_header(const uint8_t first_byte);
int slipstream_packet_create_poll(uint8_t** dest_buf, size_t* dest_buf_len, picoquic_connection_id_t dst_connection_id);
int slipstream_packet_parse(uint8_t* src_buf, size_t src_buf_len, size_t short_header_conn_id_len, picoquic_connection_id_t* src_connection_id, picoquic_connection_id_t* dst_connection_id, bool* is_poll_packet);
#endif // SLIPSTREAM_PACKET

View file

@ -1,8 +1,15 @@
#ifndef SLIPSTREAM_RESOLVERS_H
#define SLIPSTREAM_RESOLVERS_H
#include <stdbool.h>
#include <stdio.h>
#include <sys/socket.h>
struct sockaddr_storage* read_resolver_addresses(const char *resolver_addresses_filename, size_t *count);
typedef struct st_address_t {
struct sockaddr_storage server_address;
bool added;
} address_t;
struct st_address_t* read_resolver_addresses(const char *resolver_addresses_filename, size_t *count);
#endif //SLIPSTREAM_RESOLVERS_H

View file

@ -0,0 +1,8 @@
#ifndef SLIPSTREAM_SERVER_CC_H
#define SLIPSTREAM_SERVER_CC_H
#include "picoquic.h"
extern picoquic_congestion_algorithm_t* slipstream_server_cc_algorithm;
#endif //SLIPSTREAM_SERVER_CC_H

View file

@ -11,7 +11,7 @@ typedef struct st_slot_t {
struct sockaddr_storage local_addr;
picoquic_cnx_t* cnx;
uint64_t created_time;
int query_id;
bool is_poll_packet;
} slot_t;
#endif // SLIPSTREAM_SLOT

View file

@ -7,4 +7,6 @@ char* picoquic_connection_id_to_string(const picoquic_connection_id_t* cid);
void sockaddr_dummy(struct sockaddr_storage *addr_storage);
void print_sockaddr_ip_and_port(struct sockaddr_storage *addr_storage);
#endif //SLIPSTREAM_UTILS_H