diff options
-rw-r--r-- | osp/impl/discovery/mdns/mdns_responder_adapter_impl.cc | 2 | ||||
-rw-r--r-- | osp/impl/presentation/presentation_connection.cc | 2 | ||||
-rw-r--r-- | osp/impl/receiver_list.cc | 6 | ||||
-rw-r--r-- | osp/impl/testing/fake_mdns_responder_adapter.cc | 6 | ||||
-rw-r--r-- | platform/base/error.cc | 30 | ||||
-rw-r--r-- | platform/base/error.h | 21 | ||||
-rw-r--r-- | platform/impl/network_reader.cc | 2 | ||||
-rw-r--r-- | platform/impl/network_reader_unittest.cc | 13 | ||||
-rw-r--r-- | platform/impl/udp_socket_posix.cc | 8 |
9 files changed, 53 insertions, 37 deletions
diff --git a/osp/impl/discovery/mdns/mdns_responder_adapter_impl.cc b/osp/impl/discovery/mdns/mdns_responder_adapter_impl.cc index 978fbae2..63033f4c 100644 --- a/osp/impl/discovery/mdns/mdns_responder_adapter_impl.cc +++ b/osp/impl/discovery/mdns/mdns_responder_adapter_impl.cc @@ -286,7 +286,7 @@ Error MdnsResponderAdapterImpl::DeregisterInterface( "MdnsResponderAdapterImpl::DeregisterInterface"); const auto info_it = responder_interface_info_.find(socket); if (info_it == responder_interface_info_.end()) - return Error::Code::kNoItemFound; + return Error::Code::kItemNotFound; const auto it = std::find(platform_storage_.sockets.begin(), platform_storage_.sockets.end(), socket); diff --git a/osp/impl/presentation/presentation_connection.cc b/osp/impl/presentation/presentation_connection.cc index 6bb789a2..cee8a60e 100644 --- a/osp/impl/presentation/presentation_connection.cc +++ b/osp/impl/presentation/presentation_connection.cc @@ -199,7 +199,7 @@ ErrorOr<size_t> ConnectionManager::OnStreamMessage( Connection* connection = GetConnection(message.connection_id); if (!connection) { - return Error::Code::kNoItemFound; + return Error::Code::kItemNotFound; } switch (message.message.which) { diff --git a/osp/impl/receiver_list.cc b/osp/impl/receiver_list.cc index a4f11047..522a3f0e 100644 --- a/osp/impl/receiver_list.cc +++ b/osp/impl/receiver_list.cc @@ -21,7 +21,7 @@ Error ReceiverList::OnReceiverChanged(const ServiceInfo& info) { return x.service_id == info.service_id; }); if (existing_info == receivers_.end()) - return Error::Code::kNoItemFound; + return Error::Code::kItemNotFound; *existing_info = info; return Error::None(); @@ -30,7 +30,7 @@ Error ReceiverList::OnReceiverChanged(const ServiceInfo& info) { Error ReceiverList::OnReceiverRemoved(const ServiceInfo& info) { const auto it = std::remove(receivers_.begin(), receivers_.end(), info); if (it == receivers_.end()) - return Error::Code::kNoItemFound; + return Error::Code::kItemNotFound; receivers_.erase(it, receivers_.end()); return Error::None(); @@ -39,7 +39,7 @@ Error ReceiverList::OnReceiverRemoved(const ServiceInfo& info) { Error ReceiverList::OnAllReceiversRemoved() { const auto empty = receivers_.empty(); receivers_.clear(); - return empty ? Error::Code::kNoItemFound : Error::None(); + return empty ? Error::Code::kItemNotFound : Error::None(); } } // namespace openscreen diff --git a/osp/impl/testing/fake_mdns_responder_adapter.cc b/osp/impl/testing/fake_mdns_responder_adapter.cc index 141fc740..56565ef2 100644 --- a/osp/impl/testing/fake_mdns_responder_adapter.cc +++ b/osp/impl/testing/fake_mdns_responder_adapter.cc @@ -210,13 +210,13 @@ Error FakeMdnsResponderAdapter::RegisterInterface( const platform::IPSubnet& interface_address, platform::UdpSocket* socket) { if (!running_) - return Error::Code::kNotRunning; + return Error::Code::kOperationInvalid; if (std::find_if(registered_interfaces_.begin(), registered_interfaces_.end(), [&socket](const RegisteredInterface& interface) { return interface.socket == socket; }) != registered_interfaces_.end()) { - return Error::Code::kNoItemFound; + return Error::Code::kItemNotFound; } registered_interfaces_.push_back({interface_info, interface_address, socket}); return Error::None(); @@ -230,7 +230,7 @@ Error FakeMdnsResponderAdapter::DeregisterInterface( return interface.socket == socket; }); if (it == registered_interfaces_.end()) - return Error::Code::kNoItemFound; + return Error::Code::kItemNotFound; registered_interfaces_.erase(it); return Error::None(); diff --git a/platform/base/error.cc b/platform/base/error.cc index 20b5c94f..248189f1 100644 --- a/platform/base/error.cc +++ b/platform/base/error.cc @@ -60,14 +60,10 @@ std::ostream& operator<<(std::ostream& os, const Error::Code& code) { return os << "Failure: UnknownRequestId"; case Error::Code::kAddressInUse: return os << "Failure: AddressInUse"; - case Error::Code::kAlreadyListening: - return os << "Failure: AlreadyListening"; case Error::Code::kDomainNameTooLong: return os << "Failure: DomainNameTooLong"; case Error::Code::kDomainNameLabelTooLong: return os << "Failure: DomainNameLabelTooLong"; - case Error::Code::kGenericPlatformError: - return os << "Failure: GenericPlatformError"; case Error::Code::kIOFailure: return os << "Failure: IOFailure"; case Error::Code::kInitializationFailure: @@ -90,12 +86,6 @@ std::ostream& operator<<(std::ostream& os, const Error::Code& code) { return os << "Failure: SocketSendFailure"; case Error::Code::kMdnsRegisterFailure: return os << "Failure: MdnsRegisterFailure"; - case Error::Code::kNoItemFound: - return os << "Failure: NoItemFound"; - case Error::Code::kNotImplemented: - return os << "Failure: NotImplemented"; - case Error::Code::kNotRunning: - return os << "Failure: NotRunning"; case Error::Code::kParseError: return os << "Failure: ParseError"; case Error::Code::kUnknownMessageType: @@ -132,8 +122,28 @@ std::ostream& operator<<(std::ostream& os, const Error::Code& code) { return os << "Failure: ErrCertsRevoked"; case Error::Code::kErrCertsPathlen: return os << "Failure: ErrCertsPathlen"; + case Error::Code::kUnknownError: + return os << "Failure: UnknownError"; + case Error::Code::kNotImplemented: + return os << "Failure: NotImplemented"; case Error::Code::kInsufficientBuffer: return os << "Failure: InsufficientBuffer"; + case Error::Code::kParameterInvalid: + return os << "Failure: ParameterInvalid"; + case Error::Code::kParameterOutOfRange: + return os << "Failure: ParameterOutOfRange"; + case Error::Code::kParameterNullPointer: + return os << "Failure: ParameterNullPointer"; + case Error::Code::kIndexOutOfBounds: + return os << "Failure: IndexOutOfBounds"; + case Error::Code::kItemAlreadyExists: + return os << "Failure: ItemAlreadyExists"; + case Error::Code::kItemNotFound: + return os << "Failure: ItemNotFound"; + case Error::Code::kOperationInvalid: + return os << "Failure: OperationInvalid"; + case Error::Code::kOperationCancelled: + return os << "Failure: OperationCancelled"; } // Unused 'return' to get around failure on GCC. diff --git a/platform/base/error.h b/platform/base/error.h index 801a780a..f5faaa5a 100644 --- a/platform/base/error.h +++ b/platform/base/error.h @@ -17,6 +17,7 @@ namespace openscreen { // code and an optional message. class Error { public: + // TODO(issue/65): Group/rename OSP-specific errors enum class Code : int8_t { // No error occurred. kNone = 0, @@ -42,12 +43,9 @@ class Error { kUnknownRequestId, kAddressInUse, - kAlreadyListening, kDomainNameTooLong, kDomainNameLabelTooLong, - kGenericPlatformError, - kIOFailure, kInitializationFailure, kInvalidIPV4Address, @@ -62,10 +60,6 @@ class Error { kMdnsRegisterFailure, - kNoItemFound, - kNotImplemented, - kNotRunning, - kParseError, kUnknownMessageType, @@ -78,7 +72,7 @@ class Error { kJsonParseError, kJsonWriteError, - // OpenSSL errors + // OpenSSL errors. kFileLoadFailure, // Cast certificate errors. @@ -108,7 +102,18 @@ class Error { // The pathlen constraint of the root certificate was exceeded. kErrCertsPathlen, + // Generic errors. + kUnknownError, + kNotImplemented, kInsufficientBuffer, + kParameterInvalid, + kParameterOutOfRange, + kParameterNullPointer, + kIndexOutOfBounds, + kItemAlreadyExists, + kItemNotFound, + kOperationInvalid, + kOperationCancelled, }; Error(); diff --git a/platform/impl/network_reader.cc b/platform/impl/network_reader.cc index a11727bd..203f89c3 100644 --- a/platform/impl/network_reader.cc +++ b/platform/impl/network_reader.cc @@ -37,7 +37,7 @@ Error NetworkReader::ReadRepeatedly(UdpSocket* socket, Callback callback) { Error NetworkReader::CancelRead(UdpSocket* socket) { std::lock_guard<std::mutex> lock(mutex_); return read_callbacks_.erase(socket) != 0 ? Error::Code::kNone - : Error::Code::kNotRunning; + : Error::Code::kOperationInvalid; } Error NetworkReader::WaitAndRead(Clock::duration timeout) { diff --git a/platform/impl/network_reader_unittest.cc b/platform/impl/network_reader_unittest.cc index 3088f0bd..8f3614b9 100644 --- a/platform/impl/network_reader_unittest.cc +++ b/platform/impl/network_reader_unittest.cc @@ -119,7 +119,8 @@ TEST(NetworkReaderTest, UnwatchReadableSucceeds) { MockCallbacks callbacks; auto callback = callbacks.GetReadCallback(); - EXPECT_EQ(network_waiter.CancelRead(socket.get()), Error::Code::kNotRunning); + EXPECT_EQ(network_waiter.CancelRead(socket.get()), + Error::Code::kOperationInvalid); EXPECT_FALSE(network_waiter.IsMappedRead(socket.get())); EXPECT_EQ(network_waiter.ReadRepeatedly(socket.get(), callback).code(), @@ -128,7 +129,8 @@ TEST(NetworkReaderTest, UnwatchReadableSucceeds) { EXPECT_EQ(network_waiter.CancelRead(socket.get()), Error::Code::kNone); EXPECT_FALSE(network_waiter.IsMappedRead(socket.get())); - EXPECT_EQ(network_waiter.CancelRead(socket.get()), Error::Code::kNotRunning); + EXPECT_EQ(network_waiter.CancelRead(socket.get()), + Error::Code::kOperationInvalid); // Set deletion callback because otherwise the destructor tries to call a // callback on the deleted object when it goes out of scope. @@ -151,7 +153,7 @@ TEST(NetworkReaderTest, WaitBubblesUpWaitForEventsErrors) { auto result = network_waiter.WaitTesting(timeout); EXPECT_EQ(result.code(), response_code); - response_code = Error::Code::kAlreadyListening; + response_code = Error::Code::kOperationInvalid; EXPECT_CALL(*mock_waiter_ptr, AwaitSocketsReadable(_, timeout)) .WillOnce(Return(ByMove(std::move(response_code)))); result = network_waiter.WaitTesting(timeout); @@ -247,9 +249,8 @@ TEST(NetworkReaderTest, WaitFailsIfReadingSocketFails) { .WillOnce(Return(ByMove(std::vector<UdpSocket*>{&socket}))); EXPECT_CALL(callbacks, ReadCallbackInternal()).Times(0); EXPECT_CALL(socket, ReceiveMessage()) - .WillOnce(Return(ByMove(Error::Code::kGenericPlatformError))); - EXPECT_EQ(network_waiter.WaitTesting(timeout), - Error::Code::kGenericPlatformError); + .WillOnce(Return(ByMove(Error::Code::kUnknownError))); + EXPECT_EQ(network_waiter.WaitTesting(timeout), Error::Code::kUnknownError); // Set deletion callback because otherwise the destructor tries to call a // callback on the deleted object when it goes out of scope. diff --git a/platform/impl/udp_socket_posix.cc b/platform/impl/udp_socket_posix.cc index 15026ea8..7070571c 100644 --- a/platform/impl/udp_socket_posix.cc +++ b/platform/impl/udp_socket_posix.cc @@ -165,7 +165,7 @@ Error UdpSocketPosix::Bind() { } OSP_NOTREACHED(); - return Error::Code::kGenericPlatformError; + return Error::Code::kUnknownError; } Error UdpSocketPosix::SetMulticastOutboundInterface( @@ -196,7 +196,7 @@ Error UdpSocketPosix::SetMulticastOutboundInterface( } OSP_NOTREACHED(); - return Error::Code::kGenericPlatformError; + return Error::Code::kUnknownError; } Error UdpSocketPosix::JoinMulticastGroup(const IPAddress& address, @@ -253,7 +253,7 @@ Error UdpSocketPosix::JoinMulticastGroup(const IPAddress& address, } OSP_NOTREACHED(); - return Error::Code::kGenericPlatformError; + return Error::Code::kUnknownError; } namespace { @@ -368,7 +368,7 @@ ErrorOr<UdpPacket> UdpSocketPosix::ReceiveMessage() { } UdpPacket packet(bytes_available); packet.set_socket(this); - Error result = Error::Code::kGenericPlatformError; + Error result = Error::Code::kUnknownError; switch (local_endpoint_.address.version()) { case UdpSocket::Version::kV4: { result = ReceiveMessageInternal<sockaddr_in, in_pktinfo>(fd_, &packet); |