Commit Graph

16 Commits

Author SHA1 Message Date
Peter Johnson
b5b0899226 Revert "Fixes TCPAcceptor able to use an empty string (#172)"
This doesn't actually do anything since the outer if statement checks
for empty m_address already.

This reverts commit 6ad9f45d9a.
2016-12-26 13:55:21 -08:00
Thad House
6ad9f45d9a Fixes TCPAcceptor able to use an empty string (#172) 2016-12-26 12:27:08 -08:00
Peter Johnson
95e5295666 Use InetNtop on Win32 rather than WSAAddressToString. (#170)
Similarly, use InetPton rather than WSAStringToAddress.

The WSAAddressToString function is intended to provide a user-readable
string and thus includes the port number.  This breaks some use cases
on Windows which expect to get just the IP address.

Note: The InetPton and InetNtop functions are available only in Vista or above.
2016-12-25 01:30:12 -08:00
Peter Johnson
459cc65b3f TCPAcceptor: Include port number in error messages. (#166) 2016-12-23 20:36:45 -06:00
Peter Johnson
1315a3967d NetworkStream: Add setBlocking() and getNativeHandle(). (#161)
Also add checking for "would block" errors in send() and receive().

Check for set nonblocking failures in TCPConnector as well (generate warnings rather than errors)
2016-11-27 19:59:52 -08:00
Austin Schuh
e7c4150c02 Fixed unused variable warning from gcc. (#159)
This makes it so that ntcore builds with -Wextra -Werror
2016-11-26 16:28:50 -08:00
Thad House
38ec59f03a Adds a c_str method to StringRef (#155)
The StringRef class does not ensure the string is null terminated. As there is
no defined way to actually check for a null terminator, we determine
if it is null terminated based on the constructor type. Then if on c_str
it is not known to be null terminated, we use a passed in buffer to copy
the string and ensure null termination.
2016-11-14 22:51:52 -08:00
Peter Johnson
d81840d6c6 raw_istream: Add std::istream style in_avail(). (#135) 2016-10-21 22:50:38 -07:00
Peter Johnson
f6df7cad9b Add raw_fd_istream. (#121) 2016-10-08 16:03:33 -07:00
Peter Johnson
cc1b94afd2 TCPStream: Avoid SIGPIPE signals.
On Mac, this is done by setting SO_NOSIGPIPE on the socket.
On Linux, this is done with MSG_NOSIGNAL on the send call.
2016-10-08 16:02:55 -07:00
Peter Johnson
1ec89fc4f3 Add raw_socket_ostream.
This wraps NetworkStream in a llvm::raw_ostream.
2016-09-25 19:48:49 -07:00
Peter Johnson
c2ae897b02 Change API of raw_istream to be more similar to raw_ostream. 2016-09-25 19:48:49 -07:00
Peter Johnson
3a419768ca Make SafeThread header-only. (#117) 2016-09-25 18:21:29 -07:00
Peter Johnson
ee42448504 Update to latest LLVM code (#88)
* Update to latest LLVM code.

* Add LLVM's raw_ostream.

* MathExtras.h: Include cmath for log2.
2016-09-25 17:49:01 -07:00
Peter Johnson
f6b700ea97 Move common utility classes to wpiutil library. (#79)
This is a breaking change to dependencies that use the static ntcore
library.  Unless the wpiutil library is also linked, linker errors will
result.  This does not affect the shared ntcore library.
2016-09-25 17:23:39 -07:00
Peter Johnson
30fbfe46e6 Create dummy wpiutil library. (#84)
This will allow dependencies such as wpilibc to update to use wpiutil
without breaking "normal" ntcore static library use in the meantime.

This commit also restructures the gradle files by creating a new
(placeholder) wpiutil project, and moving the ntcore project into
a separate gradle file.  Added toolchains/native.gradle (refactored from
ntcore).

Also fixes ntcore skipJava on Windows by providing an alternate .def file
for this case.
2016-07-27 22:18:56 -05:00