comparison server.php @ 5:5d62af5270dd

Small bugfix in server STAT command (no data follows, so don't send a dot)
author Ivo Smits <Ivo@UCIS.nl>
date Tue, 12 Apr 2011 02:23:22 +0200
parents 0dcdb73cbcbf
children 01dc7eeaf5df
comparison
equal deleted inserted replaced
4:dc5a8e316e21 5:5d62af5270dd
56 case 'BODY': 56 case 'BODY':
57 case 'ARTICLE': 57 case 'ARTICLE':
58 $article = nntp_get_article(strtok(" \t")); 58 $article = nntp_get_article(strtok(" \t"));
59 if ($article === NULL) break; 59 if ($article === NULL) break;
60 switch ($cmd) { 60 switch ($cmd) {
61 case 'STAT': nntp_writeline(STDOUT, '223 '.$article['messagenumber'].' <'.$article['messageid'].'> stat'); break; 61 case 'ARTICLE': nntp_writeline(STDOUT, '220 '.$article['messagenumber'].' <'.$article['messageid'].'> article'); break;
62 case 'HEAD': nntp_writeline(STDOUT, '221 '.$article['messagenumber'].' <'.$article['messageid'].'> head'); break; 62 case 'HEAD': nntp_writeline(STDOUT, '221 '.$article['messagenumber'].' <'.$article['messageid'].'> head'); break;
63 case 'BODY': nntp_writeline(STDOUT, '222 '.$article['messagenumber'].' <'.$article['messageid'].'> body'); break; 63 case 'BODY': nntp_writeline(STDOUT, '222 '.$article['messagenumber'].' <'.$article['messageid'].'> body'); break;
64 case 'ARTICLE': nntp_writeline(STDOUT, '220 '.$article['messagenumber'].' <'.$article['messageid'].'> article'); break; 64 case 'STAT': nntp_writeline(STDOUT, '223 '.$article['messagenumber'].' <'.$article['messageid'].'> stat'); break;
65 default: throw new Exception('Internal error'); 65 default: throw new Exception('Internal error');
66 } 66 }
67 if ($cmd == 'HEAD' || $cmd == 'ARTICLE') foreach (explode("\r\n", $article['header']) as $line) nntp_writeline(STDOUT, $line); 67 if ($cmd == 'HEAD' || $cmd == 'ARTICLE') foreach (explode("\r\n", $article['header']) as $line) nntp_writeline(STDOUT, $line);
68 if ($cmd == 'ARTICLE') nntp_writeline(STDOUT, ''); 68 if ($cmd == 'ARTICLE') nntp_writeline(STDOUT, '');
69 if ($cmd == 'BODY' || $cmd == 'ARTICLE') foreach (explode("\r\n", $article['body']) as $line) nntp_writeline(STDOUT, $line); 69 if ($cmd == 'BODY' || $cmd == 'ARTICLE') foreach (explode("\r\n", $article['body']) as $line) nntp_writeline(STDOUT, $line);
70 nntp_writeline(STDOUT, '.'); 70 if ($cmd != 'STAT') nntp_writeline(STDOUT, '.');
71 break; 71 break;
72 case 'LAST': 72 case 'LAST':
73 case 'NEXT': 73 case 'NEXT':
74 if ($currentarticle === NULL) { 74 if ($currentarticle === NULL) {
75 nntp_writeline(STDOUT, '420 no current article has been selected'); 75 nntp_writeline(STDOUT, '420 no current article has been selected');