X-Git-Url: https://git.sesse.net/?p=cubemap;a=blobdiff_plain;f=client.cpp;h=3a2552172d6a924ad41d68db874edbf4f1db17b7;hp=c74209d8e0f4b22ef9fef07572397a4800dceec7;hb=3ce04a3c410c5836394417b19e70f2a95bc8a5e7;hpb=488f28bf7070f44469a006ed4a9d4c423788d175 diff --git a/client.cpp b/client.cpp index c74209d..3a25521 100644 --- a/client.cpp +++ b/client.cpp @@ -17,7 +17,10 @@ Client::Client(int sock) state(Client::READING_REQUEST), stream(NULL), header_or_error_bytes_sent(0), - bytes_sent(0) + stream_pos(0), + bytes_sent(0), + bytes_lost(0), + num_loss_events(0) { request.reserve(1024); @@ -49,9 +52,12 @@ Client::Client(const ClientProto &serialized, Stream *stream) stream(stream), header_or_error(serialized.header_or_error()), header_or_error_bytes_sent(serialized.header_or_error_bytes_sent()), - bytes_sent(serialized.bytes_sent()) + stream_pos(serialized.stream_pos()), + bytes_sent(serialized.bytes_sent()), + bytes_lost(serialized.bytes_lost()), + num_loss_events(serialized.num_loss_events()) { - if (stream->mark_pool != NULL) { + if (stream != NULL && stream->mark_pool != NULL) { fwmark = stream->mark_pool->get_mark(); } else { fwmark = 0; // No mark. @@ -74,7 +80,10 @@ ClientProto Client::serialize() const serialized.set_stream_id(stream_id); serialized.set_header_or_error(header_or_error); serialized.set_header_or_error_bytes_sent(serialized.header_or_error_bytes_sent()); + serialized.set_stream_pos(stream_pos); serialized.set_bytes_sent(bytes_sent); + serialized.set_bytes_lost(bytes_lost); + serialized.set_num_loss_events(num_loss_events); return serialized; } @@ -85,5 +94,7 @@ ClientStats Client::get_stats() const stats.remote_addr = remote_addr; stats.connect_time = connect_time; stats.bytes_sent = bytes_sent; + stats.bytes_lost = bytes_lost; + stats.num_loss_events = num_loss_events; return stats; }