diff options
| author | Josh Blum <josh@joshknows.com> | 2010-06-04 12:00:23 -0700 | 
|---|---|---|
| committer | Josh Blum <josh@joshknows.com> | 2010-06-04 12:00:23 -0700 | 
| commit | dbc65d928362b983d8f6113319db87841a5b159d (patch) | |
| tree | 84bf878d28f84e13e62dbbaa8a9e7b128a36758a | |
| parent | b2054a45d45ba85e30ff601159b18f5ebd15dd76 (diff) | |
| download | uhd-dbc65d928362b983d8f6113319db87841a5b159d.tar.gz uhd-dbc65d928362b983d8f6113319db87841a5b159d.tar.bz2 uhd-dbc65d928362b983d8f6113319db87841a5b159d.zip | |
recv discovery packets with max size buffer (we dont know what to expect)
| -rw-r--r-- | host/lib/usrp/usrp2/usrp2_impl.cpp | 9 | 
1 files changed, 5 insertions, 4 deletions
| diff --git a/host/lib/usrp/usrp2/usrp2_impl.cpp b/host/lib/usrp/usrp2/usrp2_impl.cpp index af3ec216a..1e6e02dd1 100644 --- a/host/lib/usrp/usrp2/usrp2_impl.cpp +++ b/host/lib/usrp/usrp2/usrp2_impl.cpp @@ -76,16 +76,17 @@ uhd::device_addrs_t usrp2::find(const device_addr_t &hint){      udp_transport->send(boost::asio::buffer(&ctrl_data_out, sizeof(ctrl_data_out)));      //loop and recieve until the timeout +    boost::uint8_t usrp2_ctrl_data_in_mem[1500]; //allocate MTU bytes for recv +    usrp2_ctrl_data_t *ctrl_data_in = reinterpret_cast<usrp2_ctrl_data_t *>(usrp2_ctrl_data_in_mem);      while(true){ -        usrp2_ctrl_data_t ctrl_data_in; -        size_t len = udp_transport->recv(asio::buffer(&ctrl_data_in, sizeof(ctrl_data_in))); +        size_t len = udp_transport->recv(asio::buffer(usrp2_ctrl_data_in_mem));          //std::cout << len << "\n";          if (len >= sizeof(usrp2_ctrl_data_t)){              //handle the received data -            switch(ntohl(ctrl_data_in.id)){ +            switch(ntohl(ctrl_data_in->id)){              case USRP2_CTRL_ID_WAZZUP_DUDE:                  //make a boost asio ipv4 with the raw addr in host byte order -                boost::asio::ip::address_v4 ip_addr(ntohl(ctrl_data_in.data.ip_addr)); +                boost::asio::ip::address_v4 ip_addr(ntohl(ctrl_data_in->data.ip_addr));                  device_addr_t new_addr;                  new_addr["name"] = "USRP2";                  new_addr["addr"] = ip_addr.to_string(); | 
