On 10/05/2014 04:25 AM, Gisle Vanem wrote: > Since my previous message seems to be ignored, here is something simpler > for you to comment on. > > In gr-blocks/lib/stream_pdu_base.cc, the read() and write() functions > are used on sockets. This doesn't work well on Windows as you're > probably aware. A simple fix is to has something like this at the top of > this file: > > #ifdef WIN32 > #undef read > #undef write > #define read(sk,buf,len) ::recv (sk, (char*)(buf), len, 0) > #define write(sk,buf,len) ::send (sk, (const char*)(buf), len, 0) > #endif > > I'm sure Boost have some better fix for this, but I don't know > Boost.
The issue is that the stream_pdu_base file descriptor is both a network socket for socket_pdu and tuntap handle for tuntap_pdu. Calling ::recv() and ::send() would be a good cross platform solution for the socket case, but im not sure if that will work for the tuntap (which is linux specific anyway). Ideally we could switch the code to call send/recv, and the tuntap would continue working -- this needs testing. Your patch is pretty good too, because it doesnt interfere with existing functionality, and the tuntap is ifdefed out on windows. The best way to upstream patches seems to be through github. I recommend creating a github pull request for this change, and some of the other changes you mentioned in the previous email. -josh > > --gv > > > _______________________________________________ > Discuss-gnuradio mailing list > Discuss-gnuradio@gnu.org > https://lists.gnu.org/mailman/listinfo/discuss-gnuradio _______________________________________________ Discuss-gnuradio mailing list Discuss-gnuradio@gnu.org https://lists.gnu.org/mailman/listinfo/discuss-gnuradio