struct smtp_server_connection *conn = cmd->conn;
struct smtp_server_command *command = cmd->cmd;
const struct smtp_server_callbacks *callbacks = conn->callbacks;
+ const char *param, *error;
int ret;
/* "NOOP" [ SP String ] CRLF */
- if (*params != '\0' && smtp_string_parse(params, NULL, NULL) < 0) {
- smtp_server_reply(cmd, 501, "5.5.4", "Invalid parameters");
+ ret = smtp_string_parse(params, ¶m, &error);
+ if (ret < 0) {
+ smtp_server_reply(cmd, 501, "5.5.4",
+ "Invalid string parameter: %s",
+ error);
return;
}
{
struct smtp_parser parser;
+ *value_r = NULL;
+ *error_r = NULL;
+
if (string == NULL || *string == '\0') {
*value_r = "";
return 1;
smtp_parser_init(&parser, pool_datastack_create(), string);
if (smtp_parser_parse_string(&parser, value_r) < 0) {
- if (error_r != NULL)
- *error_r = parser.error;
+ *error_r = parser.error;
return -1;
}
if (parser.cur < parser.end) {