Make error_set() return NULL for convenience
This often eliminates the need for a block where one line is enough.
This commit is contained in:
parent
0b77bdeaf9
commit
dc54db9069
@ -647,10 +647,7 @@ scgi_parser_push (struct scgi_parser *self,
|
||||
if (!len)
|
||||
{
|
||||
if (self->state != SCGI_READING_CONTENT)
|
||||
{
|
||||
error_set (e, "premature EOF");
|
||||
return false;
|
||||
}
|
||||
return error_set (e, "premature EOF");
|
||||
|
||||
// Indicate end of file
|
||||
return self->on_content (self->user_data, NULL, 0);
|
||||
@ -678,17 +675,12 @@ scgi_parser_push (struct scgi_parser *self,
|
||||
}
|
||||
|
||||
if (digit < '0' || digit >= '9')
|
||||
{
|
||||
error_set (e, "invalid header netstring");
|
||||
return false;
|
||||
}
|
||||
return error_set (e, "invalid header netstring");
|
||||
|
||||
size_t new_len = self->headers_len * 10 + (digit - '0');
|
||||
if (new_len < self->headers_len)
|
||||
{
|
||||
error_set (e, "header netstring is too long");
|
||||
return false;
|
||||
}
|
||||
return error_set (e, "header netstring is too long");
|
||||
|
||||
self->headers_len = new_len;
|
||||
str_remove_slice (&self->input, 0, 1);
|
||||
break;
|
||||
@ -704,10 +696,8 @@ scgi_parser_push (struct scgi_parser *self,
|
||||
// The netstring is ending but we haven't finished parsing it,
|
||||
// or the netstring doesn't end with a comma
|
||||
if (self->name.len || c != ',')
|
||||
{
|
||||
error_set (e, "invalid header netstring");
|
||||
return false;
|
||||
}
|
||||
return error_set (e, "invalid header netstring");
|
||||
|
||||
self->state = SCGI_READING_CONTENT;
|
||||
keep_running = self->on_headers_read (self->user_data);
|
||||
}
|
||||
@ -728,8 +718,7 @@ scgi_parser_push (struct scgi_parser *self,
|
||||
if (!self->headers_len)
|
||||
{
|
||||
// The netstring is ending but we haven't finished parsing it
|
||||
error_set (e, "invalid header netstring");
|
||||
return false;
|
||||
return error_set (e, "invalid header netstring");
|
||||
}
|
||||
else if (c != '\0')
|
||||
str_append_c (&self->value, c);
|
||||
|
31
liberty.c
31
liberty.c
@ -633,14 +633,14 @@ struct error
|
||||
char *message; ///< Textual description of the event
|
||||
};
|
||||
|
||||
static void
|
||||
static bool
|
||||
error_set (struct error **e, const char *message, ...) ATTRIBUTE_PRINTF (2, 3);
|
||||
|
||||
static void
|
||||
static bool
|
||||
error_set (struct error **e, const char *message, ...)
|
||||
{
|
||||
if (!e)
|
||||
return;
|
||||
return false;
|
||||
|
||||
va_list ap;
|
||||
va_start (ap, message);
|
||||
@ -660,6 +660,7 @@ error_set (struct error **e, const char *message, ...)
|
||||
|
||||
soft_assert (*e == NULL);
|
||||
*e = tmp;
|
||||
return false;
|
||||
}
|
||||
|
||||
static void
|
||||
@ -725,10 +726,7 @@ random_bytes (void *output, size_t len, struct error **e)
|
||||
ssize_t got = 0;
|
||||
|
||||
if (fd < 0)
|
||||
{
|
||||
error_set (e, "%s: %s", "open", strerror (errno));
|
||||
return false;
|
||||
}
|
||||
return error_set (e, "%s: %s", "open", strerror (errno));
|
||||
else if ((got = read (fd, output, len)) < 0)
|
||||
error_set (e, "%s: %s", "read", strerror (errno));
|
||||
else if (got != (ssize_t) len)
|
||||
@ -3113,16 +3111,14 @@ ensure_directory_existence (const char *path, struct error **e)
|
||||
{
|
||||
if (mkdir (path, S_IRWXU | S_IRWXG | S_IRWXO))
|
||||
{
|
||||
error_set (e, "cannot create directory `%s': %s",
|
||||
return error_set (e, "cannot create directory `%s': %s",
|
||||
path, strerror (errno));
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else if (!S_ISDIR (st.st_mode))
|
||||
{
|
||||
error_set (e, "cannot create directory `%s': %s",
|
||||
return error_set (e, "cannot create directory `%s': %s",
|
||||
path, "file exists but is not a directory");
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
@ -3425,9 +3421,8 @@ read_file (const char *filename, struct str *output, struct error **e)
|
||||
FILE *fp = fopen (filename, "rb");
|
||||
if (!fp)
|
||||
{
|
||||
error_set (e, "could not open `%s' for reading: %s",
|
||||
return error_set (e, "could not open `%s' for reading: %s",
|
||||
filename, strerror (errno));
|
||||
return false;
|
||||
}
|
||||
|
||||
char buf[BUFSIZ];
|
||||
@ -3443,9 +3438,8 @@ read_file (const char *filename, struct str *output, struct error **e)
|
||||
if (success)
|
||||
return true;
|
||||
|
||||
error_set (e, "error while reading `%s': %s",
|
||||
return error_set (e, "error while reading `%s': %s",
|
||||
filename, strerror (errno));
|
||||
return false;
|
||||
}
|
||||
|
||||
/// Overwrites filename contents with data; creates directories as needed
|
||||
@ -3462,9 +3456,8 @@ write_file (const char *filename, const void *data, size_t data_len,
|
||||
FILE *fp = fopen (filename, "w");
|
||||
if (!fp)
|
||||
{
|
||||
error_set (e, "could not open `%s' for writing: %s",
|
||||
return error_set (e, "could not open `%s' for writing: %s",
|
||||
filename, strerror (errno));
|
||||
return false;
|
||||
}
|
||||
|
||||
fwrite (data, data_len, 1, fp);
|
||||
@ -3474,8 +3467,8 @@ write_file (const char *filename, const void *data, size_t data_len,
|
||||
|
||||
if (!success)
|
||||
{
|
||||
error_set (e, "writing to `%s' failed: %s", filename, strerror (errno));
|
||||
return false;
|
||||
return error_set (e, "writing to `%s' failed: %s",
|
||||
filename, strerror (errno));
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user