aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--osp/impl/discovery/mdns/mdns_responder_adapter_impl.cc2
-rw-r--r--osp/impl/presentation/presentation_connection.cc2
-rw-r--r--osp/impl/receiver_list.cc6
-rw-r--r--osp/impl/testing/fake_mdns_responder_adapter.cc6
-rw-r--r--platform/base/error.cc30
-rw-r--r--platform/base/error.h21
-rw-r--r--platform/impl/network_reader.cc2
-rw-r--r--platform/impl/network_reader_unittest.cc13
-rw-r--r--platform/impl/udp_socket_posix.cc8
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);