Refactor logging to fix NullPointerException.
3 * see AUTHORS for the list of contributors
5 * This program is free software: you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation, either version 3 of the License, or
8 * (at your option) any later version.
10 * This program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 * GNU General Public License for more details.
15 * You should have received a copy of the GNU General Public License
16 * along with this program. If not, see <http://www.gnu.org/licenses/>.
19 package org.sonews.daemon.command;
21 import java.io.IOException;
22 import org.sonews.daemon.NNTPConnection;
26 * The CAPABILITIES command allows a client to determine the
27 * capabilities of the server at any given time.
29 * This command MAY be issued at any time; the server MUST NOT require
30 * it to be issued in order to make use of any capability. The response
31 * generated by this command MAY change during a session because of
32 * other state information (which, in turn, may be changed by the
33 * effects of other commands or by external events). An NNTP client is
34 * only able to get the current and correct information concerning
35 * available capabilities at any point during a session by issuing a
36 * CAPABILITIES command at that point of that session and processing the
39 * @author Christian Lins
42 public class CapabilitiesCommand implements Command
45 static final String[] CAPABILITIES = new String[]
47 "VERSION 2", // MUST be the first one; VERSION 2 refers to RFC3977
48 "READER", // Server implements commands for reading
49 "POST", // Server implements POST command
50 "OVER" // Server implements OVER command
54 public String[] getSupportedCommandStrings()
56 return new String[] {"CAPABILITIES"};
60 * First called after one call to processLine().
64 public boolean hasFinished()
70 public String impliedCapability()
76 public boolean isStateful()
82 public void processLine(NNTPConnection conn, final String line, byte[] raw)
85 conn.println("101 Capabilities list:");
86 for(String cap : CAPABILITIES)