From 2b096bba1f854a5d1614293a94b265f9b9cc9222 Mon Sep 17 00:00:00 2001 From: "keldu.magnus" Date: Wed, 30 Jun 2021 15:41:56 +0200 Subject: [PATCH] buffer and io fixes --- driver/io-unix.cpp | 4 ---- driver/io-unix.h | 2 +- source/kelgin/buffer.cpp | 1 + source/kelgin/io.cpp | 4 ++-- 4 files changed, 4 insertions(+), 7 deletions(-) diff --git a/driver/io-unix.cpp b/driver/io-unix.cpp index ffcaeaf..7d04269 100644 --- a/driver/io-unix.cpp +++ b/driver/io-unix.cpp @@ -1,7 +1,5 @@ #include "driver/io-unix.h" -#include - #include namespace gin { @@ -211,8 +209,6 @@ Conveyor> UnixNetworkAddress::connect() { return criticalError("Couldn't connect"); } - std::cout << "connected" << std::endl; - return Conveyor>{std::move(io_stream)}; } diff --git a/driver/io-unix.h b/driver/io-unix.h index e328cb3..3387c6f 100644 --- a/driver/io-unix.h +++ b/driver/io-unix.h @@ -350,7 +350,7 @@ public: ::setsockopt(fd, IPPROTO_IPV6, IPV6_V6ONLY, &value, sizeof(value)); } int error = ::bind(fd, &address.generic, address_length); - return error > 0; + return error < 0; } const struct ::sockaddr *getRaw() const { return &address.generic; } diff --git a/source/kelgin/buffer.cpp b/source/kelgin/buffer.cpp index 509dfb9..1b6b2e4 100644 --- a/source/kelgin/buffer.cpp +++ b/source/kelgin/buffer.cpp @@ -250,6 +250,7 @@ size_t RingBuffer::readSegmentLength(size_t offset) const { void RingBuffer::readAdvance(size_t bytes) { size_t read_composite = readCompositeLength(); + assert(bytes <= read_composite); bytes = std::min(bytes, read_composite); size_t advanced = read_position + bytes; diff --git a/source/kelgin/io.cpp b/source/kelgin/io.cpp index 19997ad..8c4b3e1 100644 --- a/source/kelgin/io.cpp +++ b/source/kelgin/io.cpp @@ -24,7 +24,7 @@ AsyncIoStream::AsyncIoStream(Own str) void AsyncIoStream::read(void *buffer, size_t min_length, size_t max_length) { GIN_ASSERT(buffer && max_length >= min_length && min_length > 0) { return; } - GIN_ASSERT(read_stepper.read_task.has_value()) { return; } + GIN_ASSERT(!read_stepper.read_task.has_value()) { return; } read_stepper.read_task = ReadTaskAndStepHelper::ReadIoTask{buffer, min_length, max_length, 0}; @@ -46,7 +46,7 @@ Conveyor AsyncIoStream::onReadDisconnected() { void AsyncIoStream::write(const void *buffer, size_t length) { GIN_ASSERT(buffer && length > 0) { return; } - GIN_ASSERT(write_stepper.write_task.has_value()) { return; } + GIN_ASSERT(!write_stepper.write_task.has_value()) { return; } write_stepper.write_task = WriteTaskAndStepHelper::WriteIoTask{buffer, length, 0};