SockAddr::SysAddr sa = addr.to_sys();
check_sys_connect_error(::connect(priv->handle, reinterpret_cast<const sockaddr *>(&sa.addr), sa.size));
- delete peer_addr;
- peer_addr = addr.copy();
+ peer_addr.reset(addr.copy());
- delete local_addr;
SockAddr::SysAddr lsa;
getsockname(priv->handle, reinterpret_cast<sockaddr *>(&lsa.addr), &lsa.size);
- local_addr = SockAddr::new_from_sys(lsa);
+ local_addr.reset(SockAddr::new_from_sys(lsa));
connected = true;
return true;
}
-unsigned DatagramSocket::sendto(const char *buf, unsigned size, const SockAddr &addr)
+size_t DatagramSocket::sendto(const char *buf, size_t size, const SockAddr &addr)
{
if(size==0)
return 0;
return check_sys_error(::sendto(priv->handle, buf, size, 0, reinterpret_cast<const sockaddr *>(&sa.addr), sa.size), "sendto");
}
-unsigned DatagramSocket::recvfrom(char *buf, unsigned size, SockAddr *&from_addr)
+size_t DatagramSocket::recvfrom(char *buf, size_t size, SockAddr *&from_addr)
{
if(size==0)
return 0;
SockAddr::SysAddr sa;
- unsigned ret = check_sys_error(::recvfrom(priv->handle, buf, size, 0, reinterpret_cast<sockaddr *>(&sa.addr), &sa.size), "recvfrom");
+ size_t ret = check_sys_error(::recvfrom(priv->handle, buf, size, 0, reinterpret_cast<sockaddr *>(&sa.addr), &sa.size), "recvfrom");
from_addr = SockAddr::new_from_sys(sa);
return ret;