diff --git a/CHANGELOG.md b/CHANGELOG.md index bcff2a83..54c29616 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,15 @@ Version 198: * flat_buffer improvements * multi_buffer improvements +API Changes: + +* Files return errc::bad_file_descriptor + +Actions Required: + +* Callers checking for errc::invalid_argument from calls to + file APIs should check for errc::bad_file_descriptor instead. + -------------------------------------------------------------------------------- Version 197: diff --git a/include/boost/beast/core/impl/file_posix.ipp b/include/boost/beast/core/impl/file_posix.ipp index 8136bb83..9fc94474 100644 --- a/include/boost/beast/core/impl/file_posix.ipp +++ b/include/boost/beast/core/impl/file_posix.ipp @@ -224,7 +224,7 @@ size(error_code& ec) const { if(fd_ == -1) { - ec = make_error_code(errc::invalid_argument); + ec = make_error_code(errc::bad_file_descriptor); return 0; } struct stat st; @@ -244,7 +244,7 @@ pos(error_code& ec) const { if(fd_ == -1) { - ec = make_error_code(errc::invalid_argument); + ec = make_error_code(errc::bad_file_descriptor); return 0; } auto const result = ::lseek(fd_, 0, SEEK_CUR); @@ -264,7 +264,7 @@ seek(std::uint64_t offset, error_code& ec) { if(fd_ == -1) { - ec = make_error_code(errc::invalid_argument); + ec = make_error_code(errc::bad_file_descriptor); return; } auto const result = ::lseek(fd_, offset, SEEK_SET); @@ -283,7 +283,7 @@ read(void* buffer, std::size_t n, error_code& ec) const { if(fd_ == -1) { - ec = make_error_code(errc::invalid_argument); + ec = make_error_code(errc::bad_file_descriptor); return 0; } std::size_t nread = 0; @@ -319,7 +319,7 @@ write(void const* buffer, std::size_t n, error_code& ec) { if(fd_ == -1) { - ec = make_error_code(errc::invalid_argument); + ec = make_error_code(errc::bad_file_descriptor); return 0; } std::size_t nwritten = 0; diff --git a/include/boost/beast/core/impl/file_stdio.ipp b/include/boost/beast/core/impl/file_stdio.ipp index 531a8b47..853b1403 100644 --- a/include/boost/beast/core/impl/file_stdio.ipp +++ b/include/boost/beast/core/impl/file_stdio.ipp @@ -122,7 +122,7 @@ size(error_code& ec) const { if(! f_) { - ec = make_error_code(errc::invalid_argument); + ec = make_error_code(errc::bad_file_descriptor); return 0; } long pos = std::ftell(f_); @@ -159,7 +159,7 @@ pos(error_code& ec) const { if(! f_) { - ec = make_error_code(errc::invalid_argument); + ec = make_error_code(errc::bad_file_descriptor); return 0; } long pos = std::ftell(f_); @@ -179,7 +179,7 @@ seek(std::uint64_t offset, error_code& ec) { if(! f_) { - ec = make_error_code(errc::invalid_argument); + ec = make_error_code(errc::bad_file_descriptor); return; } if(offset > (std::numeric_limits::max)()) @@ -202,7 +202,7 @@ read(void* buffer, std::size_t n, error_code& ec) const { if(! f_) { - ec = make_error_code(errc::invalid_argument); + ec = make_error_code(errc::bad_file_descriptor); return 0; } auto nread = std::fread(buffer, 1, n, f_); @@ -221,7 +221,7 @@ write(void const* buffer, std::size_t n, error_code& ec) { if(! f_) { - ec = make_error_code(errc::invalid_argument); + ec = make_error_code(errc::bad_file_descriptor); return 0; } auto nwritten = std::fwrite(buffer, 1, n, f_); diff --git a/include/boost/beast/core/impl/file_win32.ipp b/include/boost/beast/core/impl/file_win32.ipp index 1183e385..a8eb7fdc 100644 --- a/include/boost/beast/core/impl/file_win32.ipp +++ b/include/boost/beast/core/impl/file_win32.ipp @@ -216,7 +216,7 @@ size(error_code& ec) const { if(h_ == boost::winapi::INVALID_HANDLE_VALUE_) { - ec = make_error_code(errc::invalid_argument); + ec = make_error_code(errc::bad_file_descriptor); return 0; } boost::winapi::LARGE_INTEGER_ fileSize; @@ -237,7 +237,7 @@ pos(error_code& ec) { if(h_ == boost::winapi::INVALID_HANDLE_VALUE_) { - ec = make_error_code(errc::invalid_argument); + ec = make_error_code(errc::bad_file_descriptor); return 0; } boost::winapi::LARGE_INTEGER_ in; @@ -261,7 +261,7 @@ seek(std::uint64_t offset, error_code& ec) { if(h_ == boost::winapi::INVALID_HANDLE_VALUE_) { - ec = make_error_code(errc::invalid_argument); + ec = make_error_code(errc::bad_file_descriptor); return; } boost::winapi::LARGE_INTEGER_ in; @@ -283,7 +283,7 @@ read(void* buffer, std::size_t n, error_code& ec) { if(h_ == boost::winapi::INVALID_HANDLE_VALUE_) { - ec = make_error_code(errc::invalid_argument); + ec = make_error_code(errc::bad_file_descriptor); return 0; } std::size_t nread = 0; @@ -324,7 +324,7 @@ write(void const* buffer, std::size_t n, error_code& ec) { if(h_ == boost::winapi::INVALID_HANDLE_VALUE_) { - ec = make_error_code(errc::invalid_argument); + ec = make_error_code(errc::bad_file_descriptor); return 0; } std::size_t nwritten = 0; diff --git a/test/beast/core/file_test.hpp b/test/beast/core/file_test.hpp index a519afc0..976907f5 100644 --- a/test/beast/core/file_test.hpp +++ b/test/beast/core/file_test.hpp @@ -57,25 +57,25 @@ doTestFile(beast::unit_test::suite& test) test.BEAST_EXPECT(! f.is_open()); f.size(ec); - test.BEAST_EXPECT(ec == errc::invalid_argument); + test.BEAST_EXPECT(ec == errc::bad_file_descriptor); ec.assign(0, ec.category()); f.pos(ec); - test.BEAST_EXPECT(ec == errc::invalid_argument); + test.BEAST_EXPECT(ec == errc::bad_file_descriptor); ec.assign(0, ec.category()); f.seek(0, ec); - test.BEAST_EXPECT(ec == errc::invalid_argument); + test.BEAST_EXPECT(ec == errc::bad_file_descriptor); ec.assign(0, ec.category()); char tmp[1]; f.read(tmp, 0, ec); - test.BEAST_EXPECT(ec == errc::invalid_argument); + test.BEAST_EXPECT(ec == errc::bad_file_descriptor); ec.assign(0, ec.category()); f.write(tmp, 0, ec); - test.BEAST_EXPECT(ec == errc::invalid_argument); + test.BEAST_EXPECT(ec == errc::bad_file_descriptor); ec.assign(0, ec.category()); f.open(temp.string().c_str(), file_mode::write, ec);