changed dynamic cast to static. added nullptr return to tls datagram
parent
4e29918740
commit
8c37b329dc
|
@ -212,16 +212,15 @@ Conveyor<Own<IoStream>> UnixNetworkAddress::connect() {
|
|||
return Conveyor<Own<IoStream>>{std::move(io_stream)};
|
||||
}
|
||||
|
||||
Own<Datagram> UnixNetworkAddress::datagram(){
|
||||
SAW_ASSERT(addresses.size() > 0){
|
||||
return nullptr;
|
||||
}
|
||||
Own<Datagram> UnixNetworkAddress::datagram() {
|
||||
SAW_ASSERT(addresses.size() > 0) { return nullptr; }
|
||||
|
||||
int fd = addresses.front().socket(SOCK_DGRAM);
|
||||
|
||||
int optval = 1;
|
||||
int rc = ::setsockopt(fd, SOL_SOCKET, SO_REUSEADDR, &optval, sizeof(optval));
|
||||
SAW_ASSERT(rc == 0){
|
||||
int rc =
|
||||
::setsockopt(fd, SOL_SOCKET, SO_REUSEADDR, &optval, sizeof(optval));
|
||||
SAW_ASSERT(rc == 0) {
|
||||
::close(fd);
|
||||
return nullptr;
|
||||
}
|
||||
|
|
|
@ -91,11 +91,11 @@ public:
|
|||
virtual ~ErrorOrValue() = default;
|
||||
|
||||
template <typename T> ErrorOr<UnfixVoid<T>> &as() {
|
||||
return dynamic_cast<ErrorOr<UnfixVoid<T>> &>(*this);
|
||||
return static_cast<ErrorOr<UnfixVoid<T>> &>(*this);
|
||||
}
|
||||
|
||||
template <typename T> const ErrorOr<UnfixVoid<T>> &as() const {
|
||||
return dynamic_cast<const ErrorOr<UnfixVoid<T>> &>(*this);
|
||||
return static_cast<const ErrorOr<UnfixVoid<T>> &>(*this);
|
||||
}
|
||||
};
|
||||
|
||||
|
|
|
@ -92,18 +92,20 @@ public:
|
|||
virtual Conveyor<Own<IoStream>> accept() = 0;
|
||||
};
|
||||
|
||||
class NetworkAddress;
|
||||
/**
|
||||
* Datagram class. Bound to a local address it is able to receive inbound datagram messages
|
||||
* and send them as well as long as an address is provided as well
|
||||
* Datagram class. Bound to a local address it is able to receive inbound
|
||||
* datagram messages and send them as well as long as an address is provided as
|
||||
* well
|
||||
*/
|
||||
class Datagram {
|
||||
public:
|
||||
virtual ~Datagram() = default;
|
||||
|
||||
virtual void write(void* buffer, size_t length, NetworkAddress& dest) = 0;
|
||||
virtual void write(void *buffer, size_t length, NetworkAddress &dest) = 0;
|
||||
virtual Conveyor<size_t> writeDone() = 0;
|
||||
|
||||
virtual void read(void* buffer, size_t min_length, size_t max_length) = 0;
|
||||
virtual void read(void *buffer, size_t min_length, size_t max_length) = 0;
|
||||
virtual Conveyor<size_t> readDone() = 0;
|
||||
};
|
||||
|
||||
|
|
|
@ -209,6 +209,11 @@ Conveyor<Own<IoStream>> TlsNetworkAddress::connect() {
|
|||
return caf.conveyor.attach(std::move(helper));
|
||||
}
|
||||
|
||||
Own<Datagram> TlsNetworkAddress::datagram(){
|
||||
///@unimplemented
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
static ssize_t forst_tls_push_func(gnutls_transport_ptr_t p, const void *data,
|
||||
size_t size) {
|
||||
IoStream *stream = reinterpret_cast<IoStream *>(p);
|
||||
|
|
|
@ -46,6 +46,8 @@ public:
|
|||
|
||||
Conveyor<Own<IoStream>> connect() override;
|
||||
|
||||
Own<Datagram> datagram() override;
|
||||
|
||||
std::string toString() const override;
|
||||
|
||||
const std::string &address() const override;
|
||||
|
|
Loading…
Reference in New Issue