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