}
break;
case RSPAMD_LOG_QID:
- if (task->queue_id) {
+ if (task->queue_id && strcmp (task->queue_id, "undef") != 0) {
ret = TRUE;
}
break;
internet_address_list_length (task->from_envelope) > 0) {
ret = TRUE;
}
+ else if (task->from_mime &&
+ internet_address_list_length (task->from_mime) > 0) {
+ ret = TRUE;
+ }
break;
case RSPAMD_LOG_MIME_FROM:
if (task->from_mime &&
return ret;
}
-/*
- * RSPAMD_LOG_MID,
- RSPAMD_LOG_QID,
- RSPAMD_LOG_USER,
- RSPAMD_LOG_ISSPAM,
- RSPAMD_LOG_ACTION,
- RSPAMD_LOG_SCORES,
- RSPAMD_LOG_SYMBOLS,
- RSPAMD_LOG_IP,
- RSPAMD_LOG_LEN,
- RSPAMD_LOG_DNS_REQ,
- RSPAMD_LOG_SMTP_FROM,
- RSPAMD_LOG_MIME_FROM,
- RSPAMD_LOG_TIME_REAL,
- RSPAMD_LOG_TIME_VIRTUAL,
- */
static rspamd_ftok_t
rspamd_task_log_metric_res (struct rspamd_task *task,
struct rspamd_log_format *lf)
c = p;
end = p + content->len;
- while (p < c) {
+ while (p < end) {
if (*p == '$') {
if (p > c) {
res = rspamd_fstring_append (res, c, p - c);
rspamd_fstring_t *res = logbuf;
rspamd_ftok_t var = {.begin = NULL, .len = 0};
static gchar numbuf[32];
- InternetAddress *ia;
+ InternetAddress *ia = NULL;
InternetAddressMailbox *iamb;
switch (lf->type) {
break;
/* Numeric vars */
case RSPAMD_LOG_LEN:
- var.len = rspamd_snprintf (numbuf, sizeof (numbuf), "%ul",
- task->message_len);
+ var.len = rspamd_snprintf (numbuf, sizeof (numbuf), "%uz",
+ task->msg.len);
var.begin = numbuf;
break;
case RSPAMD_LOG_DNS_REQ:
break;
/* InternetAddress vars */
case RSPAMD_LOG_SMTP_FROM:
- ia = internet_address_list_get_address (task->from_envelope, 0);
+ ia = task->from_envelope ?
+ internet_address_list_get_address (task->from_envelope, 0) : NULL;
if (ia && INTERNET_ADDRESS_IS_MAILBOX (ia)) {
iamb = INTERNET_ADDRESS_MAILBOX (ia);
var.begin = iamb->addr;
var.len = strlen (var.begin);
}
+ else {
+ ia = task->from_mime ?
+ internet_address_list_get_address (task->from_mime, 0) : NULL;
+
+ if (ia && INTERNET_ADDRESS_IS_MAILBOX (ia)) {
+ iamb = INTERNET_ADDRESS_MAILBOX (ia);
+ var.begin = iamb->addr;
+ var.len = strlen (var.begin);
+ }
+ }
break;
case RSPAMD_LOG_MIME_FROM:
ia = internet_address_list_get_address (task->from_mime, 0);