mirror of
https://github.com/boostorg/beast.git
synced 2025-07-30 12:57:31 +02:00
Files return errc::bad_file_descriptor (API Change):
fix #1356 * File functions return errc::bad_file_descriptor instead of errc::invalid_argument. Actions Required: * Callers checking for errc::invalid_argument from calls to file APIs should check for errc::bad_file_descriptor instead.
This commit is contained in:
@ -3,6 +3,15 @@ Version 198:
|
|||||||
* flat_buffer improvements
|
* flat_buffer improvements
|
||||||
* multi_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:
|
Version 197:
|
||||||
|
@ -224,7 +224,7 @@ size(error_code& ec) const
|
|||||||
{
|
{
|
||||||
if(fd_ == -1)
|
if(fd_ == -1)
|
||||||
{
|
{
|
||||||
ec = make_error_code(errc::invalid_argument);
|
ec = make_error_code(errc::bad_file_descriptor);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
struct stat st;
|
struct stat st;
|
||||||
@ -244,7 +244,7 @@ pos(error_code& ec) const
|
|||||||
{
|
{
|
||||||
if(fd_ == -1)
|
if(fd_ == -1)
|
||||||
{
|
{
|
||||||
ec = make_error_code(errc::invalid_argument);
|
ec = make_error_code(errc::bad_file_descriptor);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
auto const result = ::lseek(fd_, 0, SEEK_CUR);
|
auto const result = ::lseek(fd_, 0, SEEK_CUR);
|
||||||
@ -264,7 +264,7 @@ seek(std::uint64_t offset, error_code& ec)
|
|||||||
{
|
{
|
||||||
if(fd_ == -1)
|
if(fd_ == -1)
|
||||||
{
|
{
|
||||||
ec = make_error_code(errc::invalid_argument);
|
ec = make_error_code(errc::bad_file_descriptor);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
auto const result = ::lseek(fd_, offset, SEEK_SET);
|
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)
|
if(fd_ == -1)
|
||||||
{
|
{
|
||||||
ec = make_error_code(errc::invalid_argument);
|
ec = make_error_code(errc::bad_file_descriptor);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
std::size_t nread = 0;
|
std::size_t nread = 0;
|
||||||
@ -319,7 +319,7 @@ write(void const* buffer, std::size_t n, error_code& ec)
|
|||||||
{
|
{
|
||||||
if(fd_ == -1)
|
if(fd_ == -1)
|
||||||
{
|
{
|
||||||
ec = make_error_code(errc::invalid_argument);
|
ec = make_error_code(errc::bad_file_descriptor);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
std::size_t nwritten = 0;
|
std::size_t nwritten = 0;
|
||||||
|
@ -122,7 +122,7 @@ size(error_code& ec) const
|
|||||||
{
|
{
|
||||||
if(! f_)
|
if(! f_)
|
||||||
{
|
{
|
||||||
ec = make_error_code(errc::invalid_argument);
|
ec = make_error_code(errc::bad_file_descriptor);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
long pos = std::ftell(f_);
|
long pos = std::ftell(f_);
|
||||||
@ -159,7 +159,7 @@ pos(error_code& ec) const
|
|||||||
{
|
{
|
||||||
if(! f_)
|
if(! f_)
|
||||||
{
|
{
|
||||||
ec = make_error_code(errc::invalid_argument);
|
ec = make_error_code(errc::bad_file_descriptor);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
long pos = std::ftell(f_);
|
long pos = std::ftell(f_);
|
||||||
@ -179,7 +179,7 @@ seek(std::uint64_t offset, error_code& ec)
|
|||||||
{
|
{
|
||||||
if(! f_)
|
if(! f_)
|
||||||
{
|
{
|
||||||
ec = make_error_code(errc::invalid_argument);
|
ec = make_error_code(errc::bad_file_descriptor);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if(offset > (std::numeric_limits<long>::max)())
|
if(offset > (std::numeric_limits<long>::max)())
|
||||||
@ -202,7 +202,7 @@ read(void* buffer, std::size_t n, error_code& ec) const
|
|||||||
{
|
{
|
||||||
if(! f_)
|
if(! f_)
|
||||||
{
|
{
|
||||||
ec = make_error_code(errc::invalid_argument);
|
ec = make_error_code(errc::bad_file_descriptor);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
auto nread = std::fread(buffer, 1, n, f_);
|
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_)
|
if(! f_)
|
||||||
{
|
{
|
||||||
ec = make_error_code(errc::invalid_argument);
|
ec = make_error_code(errc::bad_file_descriptor);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
auto nwritten = std::fwrite(buffer, 1, n, f_);
|
auto nwritten = std::fwrite(buffer, 1, n, f_);
|
||||||
|
@ -216,7 +216,7 @@ size(error_code& ec) const
|
|||||||
{
|
{
|
||||||
if(h_ == boost::winapi::INVALID_HANDLE_VALUE_)
|
if(h_ == boost::winapi::INVALID_HANDLE_VALUE_)
|
||||||
{
|
{
|
||||||
ec = make_error_code(errc::invalid_argument);
|
ec = make_error_code(errc::bad_file_descriptor);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
boost::winapi::LARGE_INTEGER_ fileSize;
|
boost::winapi::LARGE_INTEGER_ fileSize;
|
||||||
@ -237,7 +237,7 @@ pos(error_code& ec)
|
|||||||
{
|
{
|
||||||
if(h_ == boost::winapi::INVALID_HANDLE_VALUE_)
|
if(h_ == boost::winapi::INVALID_HANDLE_VALUE_)
|
||||||
{
|
{
|
||||||
ec = make_error_code(errc::invalid_argument);
|
ec = make_error_code(errc::bad_file_descriptor);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
boost::winapi::LARGE_INTEGER_ in;
|
boost::winapi::LARGE_INTEGER_ in;
|
||||||
@ -261,7 +261,7 @@ seek(std::uint64_t offset, error_code& ec)
|
|||||||
{
|
{
|
||||||
if(h_ == boost::winapi::INVALID_HANDLE_VALUE_)
|
if(h_ == boost::winapi::INVALID_HANDLE_VALUE_)
|
||||||
{
|
{
|
||||||
ec = make_error_code(errc::invalid_argument);
|
ec = make_error_code(errc::bad_file_descriptor);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
boost::winapi::LARGE_INTEGER_ in;
|
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_)
|
if(h_ == boost::winapi::INVALID_HANDLE_VALUE_)
|
||||||
{
|
{
|
||||||
ec = make_error_code(errc::invalid_argument);
|
ec = make_error_code(errc::bad_file_descriptor);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
std::size_t nread = 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_)
|
if(h_ == boost::winapi::INVALID_HANDLE_VALUE_)
|
||||||
{
|
{
|
||||||
ec = make_error_code(errc::invalid_argument);
|
ec = make_error_code(errc::bad_file_descriptor);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
std::size_t nwritten = 0;
|
std::size_t nwritten = 0;
|
||||||
|
@ -57,25 +57,25 @@ doTestFile(beast::unit_test::suite& test)
|
|||||||
test.BEAST_EXPECT(! f.is_open());
|
test.BEAST_EXPECT(! f.is_open());
|
||||||
|
|
||||||
f.size(ec);
|
f.size(ec);
|
||||||
test.BEAST_EXPECT(ec == errc::invalid_argument);
|
test.BEAST_EXPECT(ec == errc::bad_file_descriptor);
|
||||||
ec.assign(0, ec.category());
|
ec.assign(0, ec.category());
|
||||||
|
|
||||||
f.pos(ec);
|
f.pos(ec);
|
||||||
test.BEAST_EXPECT(ec == errc::invalid_argument);
|
test.BEAST_EXPECT(ec == errc::bad_file_descriptor);
|
||||||
ec.assign(0, ec.category());
|
ec.assign(0, ec.category());
|
||||||
|
|
||||||
f.seek(0, ec);
|
f.seek(0, ec);
|
||||||
test.BEAST_EXPECT(ec == errc::invalid_argument);
|
test.BEAST_EXPECT(ec == errc::bad_file_descriptor);
|
||||||
ec.assign(0, ec.category());
|
ec.assign(0, ec.category());
|
||||||
|
|
||||||
char tmp[1];
|
char tmp[1];
|
||||||
|
|
||||||
f.read(tmp, 0, ec);
|
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());
|
ec.assign(0, ec.category());
|
||||||
|
|
||||||
f.write(tmp, 0, ec);
|
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());
|
ec.assign(0, ec.category());
|
||||||
|
|
||||||
f.open(temp.string<std::string>().c_str(), file_mode::write, ec);
|
f.open(temp.string<std::string>().c_str(), file_mode::write, ec);
|
||||||
|
Reference in New Issue
Block a user