# HG changeset patch
# User cli
# Date 1251276959 -7200
# Node ID e4345a26f81f094efd3a71a30956ad63dc6aa3ec
# Parent  2541bdb54cb224c9904d64a7e425a9d6dfdaf790
Proper reply on XDAEMON GROUPADD if group already existing (#551).

diff -r 2541bdb54cb2 -r e4345a26f81f org/sonews/daemon/command/XDaemonCommand.java
--- a/org/sonews/daemon/command/XDaemonCommand.java	Wed Aug 26 10:47:51 2009 +0200
+++ b/org/sonews/daemon/command/XDaemonCommand.java	Wed Aug 26 10:55:59 2009 +0200
@@ -66,6 +66,21 @@
     return false;
   }
 
+  private void channelAdd(String[] commands, NNTPConnection conn)
+    throws IOException, StorageBackendException
+  {
+    String groupName = commands[2];
+    if(StorageManager.current().isGroupExisting(groupName))
+    {
+      conn.println("400 group " + groupName + " already existing!");
+    }
+    else
+    {
+      StorageManager.current().addGroup(groupName, Integer.parseInt(commands[3]));
+      conn.println("200 group " + groupName + " created");
+    }
+  }
+
   // TODO: Refactor this method to reduce complexity!
   @Override
   public void processLine(NNTPConnection conn, String line, byte[] raw)
@@ -119,8 +134,7 @@
       }
       else if(commands.length == 4 && commands[1].equalsIgnoreCase("GROUPADD"))
       {
-        StorageManager.current().addGroup(commands[2], Integer.parseInt(commands[3]));
-        conn.println("200 group " + commands[2] + " created");
+        channelAdd(commands, conn);
       }
       else if(commands.length == 3 && commands[1].equalsIgnoreCase("GROUPDEL"))
       {