comparison server.php @ 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 005339a1b2ce
children 7917bd536187
comparison
equal deleted inserted replaced
9:ae0c67d72670 10:ca88deec5352
58 nntp_writeline_data(STDOUT, 'POST'); 58 nntp_writeline_data(STDOUT, 'POST');
59 nntp_writeline_data(STDOUT, 'READER'); 59 nntp_writeline_data(STDOUT, 'READER');
60 nntp_writeline_data(STDOUT, 'IHAVE'); 60 nntp_writeline_data(STDOUT, 'IHAVE');
61 nntp_writeline_data(STDOUT, 'LIST ACTIVE'); 61 nntp_writeline_data(STDOUT, 'LIST ACTIVE');
62 nntp_writeline(STDOUT, '.'); 62 nntp_writeline(STDOUT, '.');
63 //HDR, LIST, OVER, STARTTLS, STREAMING,
64 break; 63 break;
65 case 'DATE': 64 case 'DATE':
66 nntp_writeline(STDOUT, '111 '.gmdate('YmdHis')); 65 nntp_writeline(STDOUT, '111 '.gmdate('YmdHis'));
67 break; 66 break;
68 case 'HELP': 67 case 'HELP':
130 case 'BODY': nntp_writeline(STDOUT, '222 '.$article['messagenumber'].' <'.$article['messageid'].'> body'); break; 129 case 'BODY': nntp_writeline(STDOUT, '222 '.$article['messagenumber'].' <'.$article['messageid'].'> body'); break;
131 case 'STAT': nntp_writeline(STDOUT, '223 '.$article['messagenumber'].' <'.$article['messageid'].'> stat'); break; 130 case 'STAT': nntp_writeline(STDOUT, '223 '.$article['messagenumber'].' <'.$article['messageid'].'> stat'); break;
132 default: throw new Exception('Internal error'); 131 default: throw new Exception('Internal error');
133 } 132 }
134 if ($cmd == 'HEAD' || $cmd == 'ARTICLE') foreach (explode("\r\n", $article['header']) as $line) nntp_writeline_data(STDOUT, $line); 133 if ($cmd == 'HEAD' || $cmd == 'ARTICLE') foreach (explode("\r\n", $article['header']) as $line) nntp_writeline_data(STDOUT, $line);
135 if ($cmd == 'ARTICLE') nntp_writeline(STDOUT, ''); 134 if ($cmd == 'HEAD' || $cmd == 'ARTICLE') {
135 $grouprefsh = array('localhost');
136 foreach ($db->evalAllAssoc('SELECT * FROM `groupmessages` WHERE `message` = ?', $article['id']) as $groupref) {
137 $groupname = $db->eval('SELECT `name` FROM `groups` WHERE `id` = ?', $groupref['group']);
138 $grouprefsh[] = $groupname.':'.$groupref['number'];
139 }
140 nntp_writeline_data(STDOUT, 'Xref: '.implode(' ', $grouprefsh));
141 }
142 if ($cmd == 'ARTICLE') nntp_writeline_data(STDOUT, '');
136 if ($cmd == 'BODY' || $cmd == 'ARTICLE') foreach (explode("\r\n", $article['body']) as $line) nntp_writeline_data(STDOUT, $line); 143 if ($cmd == 'BODY' || $cmd == 'ARTICLE') foreach (explode("\r\n", $article['body']) as $line) nntp_writeline_data(STDOUT, $line);
137 if ($cmd != 'STAT') nntp_writeline(STDOUT, '.'); 144 if ($cmd != 'STAT') nntp_writeline(STDOUT, '.');
138 break; 145 break;
139 case 'LAST': 146 case 'LAST':
140 case 'NEXT': 147 case 'NEXT':