@@ -0,0 +1,1232 @@
+package influent.forward;%0A%0Aimport influent.internal.util.InetNetwork;%0A%0Aimport java.net.InetAddress;%0Aimport java.net.UnknownHostException;%0Aimport java.util.List;%0A%0Apublic class ForwardClientNode %7B%0A  private InetAddress sourceAddress = null;%0A  private InetNetwork network = null;%0A  private String sharedKey = null;%0A  private List%3CString%3E usernames = null;%0A%0A  public ForwardClientNode(ForwardClient client, String globalSharedKey) %7B%0A    if (client.getHost() != null) %7B%0A      try %7B%0A        sourceAddress = InetAddress.getByName(client.getHost());%0A      %7D catch (UnknownHostException e) %7B%0A        e.printStackTrace();%0A        // TODO throw exception%0A      %7D%0A    %7D%0A    if (client.getNetwork() != null) %7B%0A      network = InetNetwork.getBySpec(client.getNetwork());%0A    %7D%0A    sharedKey = client.getSharedKey() == null ? globalSharedKey : client.getSharedKey();%0A    usernames = client.getUsernames();%0A  %7D%0A%0A  public boolean isMatched(InetAddress remoteAddress) %7B%0A    if (sourceAddress != null) %7B%0A      return sourceAddress.equals(remoteAddress);%0A    %7D else %7B%0A      return network.contains(remoteAddress);%0A    %7D%0A  %7D%0A%0A  public String getSharedKey() %7B%0A    return sharedKey;%0A  %7D%0A%0A  public List%3CString%3E getUsernames() %7B%0A    return usernames;%0A  %7D%0A%7D%0A

Add ForwardClientNode class