forked from lix-project/lix
Print a more helpful message if the daemon crashes
Instead of error: unexpected end-of-file you now get error: Nix daemon disconnected unexpectedly (maybe it crashed?)
This commit is contained in:
parent
b5ed36e663
commit
a3cf27ca47
|
@ -67,6 +67,7 @@ void RemoteStore::initConnection(Connection & conn)
|
|||
{
|
||||
/* Send the magic greeting, check for the reply. */
|
||||
try {
|
||||
conn.from.endOfFileError = "Nix daemon disconnected unexpectedly (maybe it crashed?)";
|
||||
conn.to << WORKER_MAGIC_1;
|
||||
conn.to.flush();
|
||||
StringSink saved;
|
||||
|
|
|
@ -132,7 +132,7 @@ size_t FdSource::readUnbuffered(char * data, size_t len)
|
|||
n = ::read(fd, data, len);
|
||||
} while (n == -1 && errno == EINTR);
|
||||
if (n == -1) { _good = false; throw SysError("reading from file"); }
|
||||
if (n == 0) { _good = false; throw EndOfFile("unexpected end-of-file"); }
|
||||
if (n == 0) { _good = false; throw EndOfFile(endOfFileError); }
|
||||
read += n;
|
||||
return n;
|
||||
}
|
||||
|
|
|
@ -153,12 +153,13 @@ struct FdSource : BufferedSource
|
|||
{
|
||||
int fd;
|
||||
size_t read = 0;
|
||||
std::string endOfFileError{"unexpected end-of-file"};
|
||||
|
||||
FdSource() : fd(-1) { }
|
||||
FdSource(int fd) : fd(fd) { }
|
||||
FdSource(FdSource&&) = default;
|
||||
FdSource(FdSource &&) = default;
|
||||
|
||||
FdSource& operator=(FdSource && s)
|
||||
FdSource & operator=(FdSource && s)
|
||||
{
|
||||
fd = s.fd;
|
||||
s.fd = -1;
|
||||
|
|
Loading…
Reference in a new issue