Mercurial > hg > pnewss
changeset 10:ca88deec5352
Add Xref header when sending messages to client (seems to fix message corruption issues in Thunderbird)
author | Ivo Smits <Ivo@UCIS.nl> |
---|---|
date | Thu, 21 Apr 2011 00:01:32 +0200 |
parents | ae0c67d72670 |
children | e0807e0b1a67 |
files | server.php todo.txt |
diffstat | 2 files changed, 11 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/server.php Tue Apr 12 14:54:26 2011 +0200 +++ b/server.php Thu Apr 21 00:01:32 2011 +0200 @@ -60,7 +60,6 @@ nntp_writeline_data(STDOUT, 'IHAVE'); nntp_writeline_data(STDOUT, 'LIST ACTIVE'); nntp_writeline(STDOUT, '.'); - //HDR, LIST, OVER, STARTTLS, STREAMING, break; case 'DATE': nntp_writeline(STDOUT, '111 '.gmdate('YmdHis')); @@ -132,7 +131,15 @@ default: throw new Exception('Internal error'); } if ($cmd == 'HEAD' || $cmd == 'ARTICLE') foreach (explode("\r\n", $article['header']) as $line) nntp_writeline_data(STDOUT, $line); - if ($cmd == 'ARTICLE') nntp_writeline(STDOUT, ''); + if ($cmd == 'HEAD' || $cmd == 'ARTICLE') { + $grouprefsh = array('localhost'); + foreach ($db->evalAllAssoc('SELECT * FROM `groupmessages` WHERE `message` = ?', $article['id']) as $groupref) { + $groupname = $db->eval('SELECT `name` FROM `groups` WHERE `id` = ?', $groupref['group']); + $grouprefsh[] = $groupname.':'.$groupref['number']; + } + nntp_writeline_data(STDOUT, 'Xref: '.implode(' ', $grouprefsh)); + } + if ($cmd == 'ARTICLE') nntp_writeline_data(STDOUT, ''); if ($cmd == 'BODY' || $cmd == 'ARTICLE') foreach (explode("\r\n", $article['body']) as $line) nntp_writeline_data(STDOUT, $line); if ($cmd != 'STAT') nntp_writeline(STDOUT, '.'); break;
--- a/todo.txt Tue Apr 12 14:54:26 2011 +0200 +++ b/todo.txt Thu Apr 21 00:01:32 2011 +0200 @@ -1,2 +1,4 @@ - Make sure that group article numbers are never reused, not even if the last one is deleted (groupmessages table) - Allow to store (part of) article data in file +- Expire articles after a certain time +- Reject old articles