fix(ui): surface attacker date_hdr in mail table and drawer
MailDrawer was reading fields.date / from_addr / message_id — all wrong; actual log field names are date_hdr, from_hdr, message_id_hdr, to_hdr. The mail table in AttackerDetail showed only DECNET capture time and used from_addr instead of from_hdr. Add a DATE (attacker) column so the attacker- supplied Date header (including timezone) is visible at a glance — useful for correlating campaigns like the Tiscali run where IPs used distinct TZs (+0800 vs -0700).
This commit is contained in:
@@ -1479,7 +1479,7 @@ const AttackerDetail: React.FC = () => {
|
|||||||
}
|
}
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div className="dashboard">
|
<div className="dashboard page-scroll">
|
||||||
{/* Back Button */}
|
{/* Back Button */}
|
||||||
<button onClick={() => navigate('/attackers')} className="back-button">
|
<button onClick={() => navigate('/attackers')} className="back-button">
|
||||||
<ArrowLeft size={18} />
|
<ArrowLeft size={18} />
|
||||||
@@ -2059,6 +2059,7 @@ const AttackerDetail: React.FC = () => {
|
|||||||
<th>DECKY</th>
|
<th>DECKY</th>
|
||||||
<th>SUBJECT</th>
|
<th>SUBJECT</th>
|
||||||
<th>FROM</th>
|
<th>FROM</th>
|
||||||
|
<th>DATE (attacker)</th>
|
||||||
<th>SIZE</th>
|
<th>SIZE</th>
|
||||||
<th></th>
|
<th></th>
|
||||||
</tr>
|
</tr>
|
||||||
@@ -2078,7 +2079,10 @@ const AttackerDetail: React.FC = () => {
|
|||||||
{fields.subject || '—'}
|
{fields.subject || '—'}
|
||||||
</td>
|
</td>
|
||||||
<td className="matrix-text" style={{ fontFamily: 'monospace', wordBreak: 'break-all' }}>
|
<td className="matrix-text" style={{ fontFamily: 'monospace', wordBreak: 'break-all' }}>
|
||||||
{fields.from_addr || fields.mail_from || '—'}
|
{fields.from_hdr || fields.from_addr || fields.mail_from || '—'}
|
||||||
|
</td>
|
||||||
|
<td className="matrix-text" style={{ fontFamily: 'monospace', whiteSpace: 'nowrap', fontSize: '0.75rem' }}>
|
||||||
|
{fields.date_hdr || '—'}
|
||||||
</td>
|
</td>
|
||||||
<td className="matrix-text" style={{ fontFamily: 'monospace' }}>
|
<td className="matrix-text" style={{ fontFamily: 'monospace' }}>
|
||||||
{fields.size ? `${fields.size} B` : '—'}
|
{fields.size ? `${fields.size} B` : '—'}
|
||||||
|
|||||||
@@ -81,9 +81,9 @@ const MailDrawer: React.FC<MailDrawerProps> = ({ decky, storedAs, fields, onClos
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
const recipients = Array.isArray(fields.rcpts)
|
const recipients = fields.to_hdr
|
||||||
? fields.rcpts.join(', ')
|
|| (Array.isArray(fields.rcpts) ? fields.rcpts.join(', ') : null)
|
||||||
: (typeof fields.rcpts === 'string' ? fields.rcpts : null);
|
|| (typeof fields.rcpts === 'string' ? fields.rcpts : null);
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div
|
<div
|
||||||
@@ -156,10 +156,10 @@ const MailDrawer: React.FC<MailDrawerProps> = ({ decky, storedAs, fields, onClos
|
|||||||
HEADERS
|
HEADERS
|
||||||
</h3>
|
</h3>
|
||||||
<Row label="Subject" value={fields.subject} />
|
<Row label="Subject" value={fields.subject} />
|
||||||
<Row label="From" value={fields.from_addr ?? fields.from} />
|
<Row label="From" value={fields.from_hdr || fields.from_addr || fields.from} />
|
||||||
<Row label="To" value={recipients} />
|
<Row label="To" value={recipients} />
|
||||||
<Row label="Date" value={fields.date} />
|
<Row label="Date" value={fields.date_hdr || fields.date} />
|
||||||
<Row label="Message-ID" value={fields.message_id} />
|
<Row label="Message-ID" value={fields.message_id_hdr || fields.message_id} />
|
||||||
<Row label="Mail from" value={fields.mail_from} />
|
<Row label="Mail from" value={fields.mail_from} />
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user