rspamd_inet_addr_t *rspamd_parse_smtp_ip (const char *data, size_t len,
rspamd_mempool_t *pool);
-guint64 rspamd_parse_smtp_date (const char *data, size_t len, GError **err);
+guint64 rspamd_parse_smtp_date (const unsigned char *data, size_t len, GError **err);
#ifdef __cplusplus
}
%%{
machine smtp_date_parser;
+ alphtype unsigned char;
include smtp_base "smtp_base.rl";
include smtp_date "smtp_date.rl";
%% write data;
guint64
-rspamd_parse_smtp_date (const char *data, size_t len, GError **err)
+rspamd_parse_smtp_date (const unsigned char *data, size_t len, GError **err)
{
- const gchar *p = data, *pe = data + len, *eof = data + len, *tmp = data;
+ const unsigned char *p = data, *pe = data + len, *eof = data + len, *tmp = data;
struct tm tm;
glong tz = 0;
gint cs = 0;
if ( cs < %%{ write first_final; }%% ) {
g_set_error (err, g_quark_from_static_string ("smtp_date"), cs, "invalid date at offset %d (%c), state %d",
- p - data, *p, cs);
+ (int)(p - data), (*p > 0 && *p < 128) ? *p : '?', cs);
return (guint64)(-1);
}