Update of /cvsroot/javanetsim/javaNetSim/core
In directory fdv4jf1.ch3.sourceforge.com:/tmp/cvs-serv7391/core
Modified Files:
CommandProcessor.java DeviceConfig.java NATEngine.java
Log Message:
'ip nat poll' was added
Index: CommandProcessor.java
===================================================================
RCS file: /cvsroot/javanetsim/javaNetSim/core/CommandProcessor.java,v
retrieving revision 1.22
retrieving revision 1.23
diff -C2 -d -r1.22 -r1.23
*** CommandProcessor.java 10 Oct 2008 22:18:05 -0000 1.22
--- CommandProcessor.java 12 Oct 2008 21:45:47 -0000 1.23
***************
*** 2257,2261 ****
modes = new Modes(CommandInterface.CONF_MODE, CommandInterface.APPLICATION_LAYER, CommandInterface.NO_CALL);
call_params = "<pool> <low ip> <high ip>";
! no_call_params = "<pool> <low ip> <high ip>";
}
public String call(Vector<String> params){
--- 2257,2261 ----
modes = new Modes(CommandInterface.CONF_MODE, CommandInterface.APPLICATION_LAYER, CommandInterface.NO_CALL);
call_params = "<pool> <low ip> <high ip>";
! no_call_params = "<pool>";
}
public String call(Vector<String> params){
***************
*** 2266,2283 ****
}
private String parse(Vector<String> params, boolean add){
! String out = "Command not supported yet\n";
! if(params.size()==3){
String poolname = params.get(0);
String low_ip = params.get(1);
String high_ip = params.get(2);
if(IPV4Address.validateDecIP(low_ip) && IPV4Address.validateDecIP(high_ip)){
! if(add){
! //nat.pool.add(poolname, low_ip, high_ip);
! }
! else{
! //nat.pool.remove(poolname, low_ip, high_ip);
! }
}
}
else{
out += "error: invalid parameters\n";
--- 2266,2285 ----
}
private String parse(Vector<String> params, boolean add){
! String out = "";
! if(params.size()==3 && add){
String poolname = params.get(0);
String low_ip = params.get(1);
String high_ip = params.get(2);
if(IPV4Address.validateDecIP(low_ip) && IPV4Address.validateDecIP(high_ip)){
! device.getNAT().addPool(poolname, new Pair(low_ip,high_ip));
! }
! else{
! out += "error: invalid IP address\n";
}
}
+ else if(params.size()==1 && !add){
+ String poolname = params.get(0);
+ device.getNAT().removePool(poolname);
+ }
else{
out += "error: invalid parameters\n";
Index: NATEngine.java
===================================================================
RCS file: /cvsroot/javanetsim/javaNetSim/core/NATEngine.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -d -r1.2 -r1.3
*** NATEngine.java 10 Oct 2008 22:18:05 -0000 1.2
--- NATEngine.java 12 Oct 2008 21:45:47 -0000 1.3
***************
*** 1,4 ****
--- 1,6 ----
package core;
+ import java.util.Enumeration;
+ import java.util.Hashtable;
import java.util.Vector;
***************
*** 29,32 ****
--- 31,35 ----
Vector<NAT_rule> rules;
+ Hashtable<String, Pair> pools;
public NATEngine(NetworkLayerDevice node){
***************
*** 34,37 ****
--- 37,41 ----
rules = new Vector<NAT_rule>();
+ pools = new Hashtable<String, Pair>();
}
***************
*** 85,87 ****
--- 89,113 ----
return rules.size();
}
+
+ public Pair getPool(String name){
+ if(pools.containsKey(name)){
+ return pools.get(name);
+ }
+ return null;
+ }
+
+ public void addPool(String name, Pair pool){
+ pools.put(name, pool);
+ }
+
+ public Pair removePool(String name){
+ if(pools.containsKey(name)){
+ return pools.remove(name);
+ }
+ return null;
+ }
+
+ public Enumeration<String> getPools(){
+ return pools.keys();
+ }
}
Index: DeviceConfig.java
===================================================================
RCS file: /cvsroot/javanetsim/javaNetSim/core/DeviceConfig.java,v
retrieving revision 1.18
retrieving revision 1.19
diff -C2 -d -r1.18 -r1.19
*** DeviceConfig.java 10 Oct 2008 22:18:05 -0000 1.18
--- DeviceConfig.java 12 Oct 2008 21:45:47 -0000 1.19
***************
*** 596,599 ****
--- 596,605 ----
}
}
+ Enumeration<String> pools = nat.getPools();
+ while(pools.hasMoreElements()){
+ String name = pools.nextElement();
+ Pair pool = nat.getPool(name);
+ conf.add("ip nat pool "+name+" "+(String)pool.getFirst()+" "+(String)pool.getSecond());
+ }
}
if(device instanceof ApplicationLayerDevice){
|