]> git.tdb.fi Git - libs/net.git/blobdiff - source/net/streamsocket.cpp
Add a dynamic receiver class for more flexible packet handling
[libs/net.git] / source / net / streamsocket.cpp
index c8eb1c488ac365d6471469ca59ffc2b034c78b45..9e2d79afe7e1b27dd87d81c5a6b2f7db2f6103b6 100644 (file)
@@ -1,11 +1,11 @@
 #include "platform_api.h"
+#include "streamsocket.h"
 #include <msp/core/systemerror.h>
 #include <msp/io/handle_private.h>
 #include <msp/io/poll.h>
 #include <msp/strings/format.h>
 #include "sockaddr_private.h"
 #include "socket_private.h"
-#include "streamsocket.h"
 
 namespace Msp {
 namespace Net {
@@ -34,13 +34,11 @@ bool StreamSocket::connect(const SockAddr &addr)
                set_socket_events(S_CONNECT);
        }
 
-       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));
 
        if(finished)
        {
@@ -99,10 +97,7 @@ void StreamSocket::on_event(IO::PollEvent ev)
                        signal_connect_finished.emit(0);
 
                if(err!=0)
-               {
-                       delete peer_addr;
-                       peer_addr = nullptr;
-               }
+                       peer_addr.reset();
 
                set_socket_events((err==0) ? S_INPUT : S_NONE);
        }