Mercurial > hg > pnewss
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': |