First step for using multiple recvs from mptp.
[swifty.git] / src / libswift / sendrecv.cpp
index 5ea0fc7..710e327 100644 (file)
@@ -200,7 +200,7 @@ void    Channel::Send () {
     dprintf("%s #%u sent %ib %s:%x\n",
             tintstr(),id_,(int)evbuffer_get_length(evb),peer().str(),
             peer_channel_id_);
-    int r = SendTo(socket_,peer(),evb);
+    int r = SendTo(socket_,peer(),&evb);
     if (r==-1)
         print_error("can't send datagram");
     else
@@ -338,7 +338,7 @@ bin_t        Channel::AddData (struct evbuffer *evb) {
         dprintf("%s #%u fsent %ib %s:%x\n",
                 tintstr(),id_,(int)evbuffer_get_length(evb),peer().str(),
                 peer_channel_id_);
-       int ret = Channel::SendTo(socket_,peer(),evb); // kind of fragmentation
+       int ret = Channel::SendTo(socket_,peer(),&evb); // kind of fragmentation
        if (ret > 0)
                raw_bytes_up_ += ret;
         evbuffer_add_32be(evb, peer_channel_id_);
@@ -930,8 +930,8 @@ void    Channel::RecvDatagram (evutil_socket_t socket) {
        for (; i<addr.addr->count; ++i) {
                struct evbuffer *evb = pevb[i];
                Address fromi;
-               fromi.set_ipv4(addr.addr->dests[i].addr);
-               fromi.set_port(addr.addr->dests[i].port);
+               fromi.addr->dests[0].addr = addr.addr->dests[i].addr;
+               fromi.addr->dests[0].port = addr.addr->dests[i].port;
                size_t evboriglen = evbuffer_get_length(evb);
 #define return_log(...) { fprintf(stderr,__VA_ARGS__); evbuffer_free(evb); return; }
                if (evbuffer_get_length(evb)<4)