Skip to content

Commit

Permalink
Remove user_data from ngtcp2_addr, and add user_data to ngtcp2_path
Browse files Browse the repository at this point in the history
  • Loading branch information
tatsuhiro-t committed Mar 10, 2021
1 parent 0d2e408 commit b8d90a9
Show file tree
Hide file tree
Showing 10 changed files with 84 additions and 89 deletions.
3 changes: 1 addition & 2 deletions examples/client.cc
Expand Up @@ -1184,8 +1184,7 @@ int Client::change_local_addr() {
if (config.nat_rebinding) {
ngtcp2_addr addr;
ngtcp2_conn_set_local_addr(
conn_,
ngtcp2_addr_init(&addr, &local_addr.su.sa, local_addr.len, nullptr));
conn_, ngtcp2_addr_init(&addr, &local_addr.su.sa, local_addr.len));
} else {
auto path = ngtcp2_path{{local_addr.len, &local_addr.su.sa},
{remote_addr.len, &remote_addr.su.sa}};
Expand Down
3 changes: 1 addition & 2 deletions examples/h09client.cc
Expand Up @@ -1129,8 +1129,7 @@ int Client::change_local_addr() {
if (config.nat_rebinding) {
ngtcp2_addr addr;
ngtcp2_conn_set_local_addr(
conn_,
ngtcp2_addr_init(&addr, &local_addr.su.sa, local_addr.len, nullptr));
conn_, ngtcp2_addr_init(&addr, &local_addr.su.sa, local_addr.len));
} else {
auto path = ngtcp2_path{{local_addr.len, &local_addr.su.sa},
{remote_addr.len, &remote_addr.su.sa}};
Expand Down
41 changes: 20 additions & 21 deletions examples/h09server.cc
Expand Up @@ -854,9 +854,9 @@ int Handler::init(const Endpoint &ep, const Address &local_addr,
}

auto path =
ngtcp2_path{{local_addr.len, const_cast<sockaddr *>(&local_addr.su.sa),
const_cast<Endpoint *>(&ep)},
{salen, const_cast<sockaddr *>(sa)}};
ngtcp2_path{{local_addr.len, const_cast<sockaddr *>(&local_addr.su.sa)},
{salen, const_cast<sockaddr *>(sa)},
const_cast<Endpoint *>(&ep)};
if (auto rv =
ngtcp2_conn_server_new(&conn_, dcid, &scid_, &path, version,
&callbacks, &settings, &params, nullptr, this);
Expand Down Expand Up @@ -890,9 +890,9 @@ int Handler::feed_data(const Endpoint &ep, const Address &local_addr,
const ngtcp2_pkt_info *pi, uint8_t *data,
size_t datalen) {
auto path =
ngtcp2_path{{local_addr.len, const_cast<sockaddr *>(&local_addr.su.sa),
const_cast<Endpoint *>(&ep)},
{salen, const_cast<sockaddr *>(sa)}};
ngtcp2_path{{local_addr.len, const_cast<sockaddr *>(&local_addr.su.sa)},
{salen, const_cast<sockaddr *>(sa)},
const_cast<Endpoint *>(&ep)};

if (auto rv = ngtcp2_conn_read_pkt(conn_, &path, pi, data, datalen,
util::timestamp(loop_));
Expand Down Expand Up @@ -1044,10 +1044,10 @@ int Handler::write_streams() {

if (nwrite == 0) {
if (bufpos - buf.data()) {
server_->send_packet(
*static_cast<Endpoint *>(prev_path.path.local.user_data),
prev_path.path.local, prev_path.path.remote, prev_ecn, buf.data(),
bufpos - buf.data(), max_pktlen_);
server_->send_packet(*static_cast<Endpoint *>(prev_path.path.user_data),
prev_path.path.local, prev_path.path.remote,
prev_ecn, buf.data(), bufpos - buf.data(),
max_pktlen_);
reset_idle_timer();
}
// We are congestion limited.
Expand All @@ -1062,12 +1062,12 @@ int Handler::write_streams() {
prev_ecn = pi.ecn;
} else if (!ngtcp2_path_eq(&prev_path.path, &path.path) ||
prev_ecn != pi.ecn) {
server_->send_packet(
*static_cast<Endpoint *>(prev_path.path.local.user_data),
prev_path.path.local, prev_path.path.remote, prev_ecn, buf.data(),
bufpos - buf.data() - nwrite, max_pktlen_);
server_->send_packet(*static_cast<Endpoint *>(prev_path.path.user_data),
prev_path.path.local, prev_path.path.remote,
prev_ecn, buf.data(), bufpos - buf.data() - nwrite,
max_pktlen_);

server_->send_packet(*static_cast<Endpoint *>(path.path.local.user_data),
server_->send_packet(*static_cast<Endpoint *>(path.path.user_data),
path.path.local, path.path.remote, pi.ecn,
bufpos - nwrite, nwrite, max_pktlen_);
reset_idle_timer();
Expand All @@ -1076,7 +1076,7 @@ int Handler::write_streams() {
}

if (++pktcnt == max_pktcnt || static_cast<size_t>(nwrite) < max_pktlen_) {
server_->send_packet(*static_cast<Endpoint *>(path.path.local.user_data),
server_->send_packet(*static_cast<Endpoint *>(path.path.user_data),
path.path.local, path.path.remote, pi.ecn,
buf.data(), bufpos - buf.data(), max_pktlen_);
reset_idle_timer();
Expand All @@ -1086,7 +1086,7 @@ int Handler::write_streams() {
#else // !NGTCP2_ENABLE_UDP_GSO
reset_idle_timer();

server_->send_packet(*static_cast<Endpoint *>(path.path.local.user_data),
server_->send_packet(*static_cast<Endpoint *>(path.path.user_data),
path.path.local, path.path.remote, pi.ecn, buf.data(),
bufpos - buf.data(), 0);
if (++pktcnt == max_pktcnt) {
Expand Down Expand Up @@ -1185,10 +1185,9 @@ int Handler::send_conn_close() {

auto path = ngtcp2_conn_get_path(conn_);

return server_->send_packet(*static_cast<Endpoint *>(path->local.user_data),
path->local, path->remote, /* ecn = */ 0,
conn_closebuf_->rpos(), conn_closebuf_->size(),
0);
return server_->send_packet(
*static_cast<Endpoint *>(path->user_data), path->local, path->remote,
/* ecn = */ 0, conn_closebuf_->rpos(), conn_closebuf_->size(), 0);
}

void Handler::schedule_retransmit() {
Expand Down
41 changes: 20 additions & 21 deletions examples/perfserver.cc
Expand Up @@ -590,9 +590,9 @@ int Handler::init(const Endpoint &ep, const Address &local_addr,
}

auto path =
ngtcp2_path{{local_addr.len, const_cast<sockaddr *>(&local_addr.su.sa),
const_cast<Endpoint *>(&ep)},
{salen, const_cast<sockaddr *>(sa)}};
ngtcp2_path{{local_addr.len, const_cast<sockaddr *>(&local_addr.su.sa)},
{salen, const_cast<sockaddr *>(sa)},
const_cast<Endpoint *>(&ep)};
if (auto rv =
ngtcp2_conn_server_new(&conn_, dcid, &scid_, &path, version,
&callbacks, &settings, &params, nullptr, this);
Expand Down Expand Up @@ -626,9 +626,9 @@ int Handler::feed_data(const Endpoint &ep, const Address &local_addr,
const ngtcp2_pkt_info *pi, uint8_t *data,
size_t datalen) {
auto path =
ngtcp2_path{{local_addr.len, const_cast<sockaddr *>(&local_addr.su.sa),
const_cast<Endpoint *>(&ep)},
{salen, const_cast<sockaddr *>(sa)}};
ngtcp2_path{{local_addr.len, const_cast<sockaddr *>(&local_addr.su.sa)},
{salen, const_cast<sockaddr *>(sa)},
const_cast<Endpoint *>(&ep)};

if (auto rv = ngtcp2_conn_read_pkt(conn_, &path, pi, data, datalen,
util::timestamp(loop_));
Expand Down Expand Up @@ -789,10 +789,10 @@ int Handler::write_streams() {

if (nwrite == 0) {
if (bufpos - buf.data()) {
server_->send_packet(
*static_cast<Endpoint *>(prev_path.path.local.user_data),
prev_path.path.local, prev_path.path.remote, prev_ecn, buf.data(),
bufpos - buf.data(), max_pktlen_);
server_->send_packet(*static_cast<Endpoint *>(prev_path.path.user_data),
prev_path.path.local, prev_path.path.remote,
prev_ecn, buf.data(), bufpos - buf.data(),
max_pktlen_);
reset_idle_timer();
}
// We are congestion limited.
Expand All @@ -807,12 +807,12 @@ int Handler::write_streams() {
prev_ecn = pi.ecn;
} else if (!ngtcp2_path_eq(&prev_path.path, &path.path) ||
prev_ecn != pi.ecn) {
server_->send_packet(
*static_cast<Endpoint *>(prev_path.path.local.user_data),
prev_path.path.local, prev_path.path.remote, prev_ecn, buf.data(),
bufpos - buf.data() - nwrite, max_pktlen_);
server_->send_packet(*static_cast<Endpoint *>(prev_path.path.user_data),
prev_path.path.local, prev_path.path.remote,
prev_ecn, buf.data(), bufpos - buf.data() - nwrite,
max_pktlen_);

server_->send_packet(*static_cast<Endpoint *>(path.path.local.user_data),
server_->send_packet(*static_cast<Endpoint *>(path.path.user_data),
path.path.local, path.path.remote, pi.ecn,
bufpos - nwrite, nwrite, max_pktlen_);
reset_idle_timer();
Expand All @@ -821,7 +821,7 @@ int Handler::write_streams() {
}

if (++pktcnt == max_pktcnt || static_cast<size_t>(nwrite) < max_pktlen_) {
server_->send_packet(*static_cast<Endpoint *>(path.path.local.user_data),
server_->send_packet(*static_cast<Endpoint *>(path.path.user_data),
path.path.local, path.path.remote, pi.ecn,
buf.data(), bufpos - buf.data(), max_pktlen_);
reset_idle_timer();
Expand All @@ -831,7 +831,7 @@ int Handler::write_streams() {
#else // !NGTCP2_ENABLE_UDP_GSO
reset_idle_timer();

server_->send_packet(*static_cast<Endpoint *>(path.path.local.user_data),
server_->send_packet(*static_cast<Endpoint *>(path.path.user_data),
path.path.local, path.path.remote, pi.ecn, buf.data(),
bufpos - buf.data(), 0);
if (++pktcnt == max_pktcnt) {
Expand Down Expand Up @@ -930,10 +930,9 @@ int Handler::send_conn_close() {

auto path = ngtcp2_conn_get_path(conn_);

return server_->send_packet(*static_cast<Endpoint *>(path->local.user_data),
path->local, path->remote,
/* ecn = */ 0, conn_closebuf_->rpos(),
conn_closebuf_->size(), 0);
return server_->send_packet(
*static_cast<Endpoint *>(path->user_data), path->local, path->remote,
/* ecn = */ 0, conn_closebuf_->rpos(), conn_closebuf_->size(), 0);
}

void Handler::schedule_retransmit() {
Expand Down
41 changes: 20 additions & 21 deletions examples/server.cc
Expand Up @@ -1575,9 +1575,9 @@ int Handler::init(const Endpoint &ep, const Address &local_addr,
}

auto path =
ngtcp2_path{{local_addr.len, const_cast<sockaddr *>(&local_addr.su.sa),
const_cast<Endpoint *>(&ep)},
{salen, const_cast<sockaddr *>(sa)}};
ngtcp2_path{{local_addr.len, const_cast<sockaddr *>(&local_addr.su.sa)},
{salen, const_cast<sockaddr *>(sa)},
const_cast<Endpoint *>(&ep)};
if (auto rv =
ngtcp2_conn_server_new(&conn_, dcid, &scid_, &path, version,
&callbacks, &settings, &params, nullptr, this);
Expand Down Expand Up @@ -1611,9 +1611,9 @@ int Handler::feed_data(const Endpoint &ep, const Address &local_addr,
const ngtcp2_pkt_info *pi, uint8_t *data,
size_t datalen) {
auto path =
ngtcp2_path{{local_addr.len, const_cast<sockaddr *>(&local_addr.su.sa),
const_cast<Endpoint *>(&ep)},
{salen, const_cast<sockaddr *>(sa)}};
ngtcp2_path{{local_addr.len, const_cast<sockaddr *>(&local_addr.su.sa)},
{salen, const_cast<sockaddr *>(sa)},
const_cast<Endpoint *>(&ep)};

if (auto rv = ngtcp2_conn_read_pkt(conn_, &path, pi, data, datalen,
util::timestamp(loop_));
Expand Down Expand Up @@ -1796,10 +1796,10 @@ int Handler::write_streams() {

if (nwrite == 0) {
if (bufpos - buf.data()) {
server_->send_packet(
*static_cast<Endpoint *>(prev_path.path.local.user_data),
prev_path.path.local, prev_path.path.remote, prev_ecn, buf.data(),
bufpos - buf.data(), max_pktlen_);
server_->send_packet(*static_cast<Endpoint *>(prev_path.path.user_data),
prev_path.path.local, prev_path.path.remote,
prev_ecn, buf.data(), bufpos - buf.data(),
max_pktlen_);
reset_idle_timer();
}
// We are congestion limited.
Expand All @@ -1814,12 +1814,12 @@ int Handler::write_streams() {
prev_ecn = pi.ecn;
} else if (!ngtcp2_path_eq(&prev_path.path, &path.path) ||
prev_ecn != pi.ecn) {
server_->send_packet(
*static_cast<Endpoint *>(prev_path.path.local.user_data),
prev_path.path.local, prev_path.path.remote, prev_ecn, buf.data(),
bufpos - buf.data() - nwrite, max_pktlen_);
server_->send_packet(*static_cast<Endpoint *>(prev_path.path.user_data),
prev_path.path.local, prev_path.path.remote,
prev_ecn, buf.data(), bufpos - buf.data() - nwrite,
max_pktlen_);

server_->send_packet(*static_cast<Endpoint *>(path.path.local.user_data),
server_->send_packet(*static_cast<Endpoint *>(path.path.user_data),
path.path.local, path.path.remote, pi.ecn,
bufpos - nwrite, nwrite, max_pktlen_);

Expand All @@ -1829,7 +1829,7 @@ int Handler::write_streams() {
}

if (++pktcnt == max_pktcnt || static_cast<size_t>(nwrite) < max_pktlen_) {
server_->send_packet(*static_cast<Endpoint *>(path.path.local.user_data),
server_->send_packet(*static_cast<Endpoint *>(path.path.user_data),
path.path.local, path.path.remote, pi.ecn,
buf.data(), bufpos - buf.data(), max_pktlen_);
reset_idle_timer();
Expand All @@ -1839,7 +1839,7 @@ int Handler::write_streams() {
#else // !NGTCP2_ENABLE_UDP_GSO
reset_idle_timer();

server_->send_packet(*static_cast<Endpoint *>(path.path.local.user_data),
server_->send_packet(*static_cast<Endpoint *>(path.path.user_data),
path.path.local, path.path.remote, pi.ecn, buf.data(),
bufpos - buf.data(), 0);
if (++pktcnt == max_pktcnt) {
Expand Down Expand Up @@ -1938,10 +1938,9 @@ int Handler::send_conn_close() {

auto path = ngtcp2_conn_get_path(conn_);

return server_->send_packet(*static_cast<Endpoint *>(path->local.user_data),
path->local, path->remote,
/* ecn = */ 0, conn_closebuf_->rpos(),
conn_closebuf_->size(), 0);
return server_->send_packet(
*static_cast<Endpoint *>(path->user_data), path->local, path->remote,
/* ecn = */ 0, conn_closebuf_->rpos(), conn_closebuf_->size(), 0);
}

void Handler::schedule_retransmit() {
Expand Down
15 changes: 7 additions & 8 deletions lib/includes/ngtcp2/ngtcp2.h
Expand Up @@ -1864,11 +1864,6 @@ typedef struct ngtcp2_addr {
* address. It must not be ``NULL``.
*/
struct sockaddr *addr;
/**
* :member:`user_data` is an arbitrary data and opaque to the
* library.
*/
void *user_data;
} ngtcp2_addr;

/**
Expand All @@ -1886,6 +1881,11 @@ typedef struct ngtcp2_path {
* :member:`remote` is the address of remote endpoint.
*/
ngtcp2_addr remote;
/**
* :member:`user_data` is an arbitrary data and opaque to the
* library.
*/
void *user_data;
} ngtcp2_path;

/**
Expand Down Expand Up @@ -4626,7 +4626,7 @@ NGTCP2_EXTERN uint64_t ngtcp2_err_infer_quic_transport_error_code(int liberr);
*/
NGTCP2_EXTERN ngtcp2_addr *ngtcp2_addr_init(ngtcp2_addr *dest,
const struct sockaddr *addr,
size_t addrlen, void *user_data);
size_t addrlen);

/**
* @function
Expand All @@ -4637,10 +4637,9 @@ NGTCP2_EXTERN ngtcp2_addr *ngtcp2_addr_init(ngtcp2_addr *dest,
NGTCP2_EXTERN void ngtcp2_path_storage_init(ngtcp2_path_storage *ps,
const struct sockaddr *local_addr,
size_t local_addrlen,
void *local_user_data,
const struct sockaddr *remote_addr,
size_t remote_addrlen,
void *remote_user_data);
void *user_data);

/**
* @function
Expand Down
4 changes: 1 addition & 3 deletions lib/ngtcp2_addr.c
Expand Up @@ -40,10 +40,9 @@
#endif

ngtcp2_addr *ngtcp2_addr_init(ngtcp2_addr *dest, const struct sockaddr *addr,
size_t addrlen, void *user_data) {
size_t addrlen) {
dest->addrlen = addrlen;
dest->addr = (struct sockaddr *)addr;
dest->user_data = user_data;
return dest;
}

Expand All @@ -52,7 +51,6 @@ void ngtcp2_addr_copy(ngtcp2_addr *dest, const ngtcp2_addr *src) {
if (src->addrlen) {
memcpy(dest->addr, src->addr, src->addrlen);
}
dest->user_data = src->user_data;
}

void ngtcp2_addr_copy_byte(ngtcp2_addr *dest, const struct sockaddr *addr,
Expand Down
2 changes: 1 addition & 1 deletion lib/ngtcp2_conn.c
Expand Up @@ -7049,7 +7049,7 @@ static int conn_select_preferred_addr(ngtcp2_conn *conn) {
ngtcp2_pv *pv;
ngtcp2_dcid *dcid;

ngtcp2_addr_init(&addr, (struct sockaddr *)&buf, 0, NULL);
ngtcp2_addr_init(&addr, (struct sockaddr *)&buf, 0);

if (ngtcp2_ringbuf_len(&conn->dcid.unused) == 0) {
return 0;
Expand Down

0 comments on commit b8d90a9

Please sign in to comment.