internal static PortWatcher getPort(Session session, String address, int lport) { InetAddress addr; try { addr = InetAddress.getByName(address); } catch (Exception uhe) { throw new JSchException("PortForwardingL: invalid address " + address + " specified."); } lock (pool) { for (int i = 0; i < pool.size(); i++) { PortWatcher p = (PortWatcher)(pool.elementAt(i)); if (p.session == session && p.lport == lport) { if (p.boundaddress.isAnyLocalAddress() || p.boundaddress.equals(addr)) { return(p); } } } return(null); } }
internal static void delPort(Session session, String address, int lport) { PortWatcher pw = getPort(session, address, lport); if (pw == null) { throw new JSchException("PortForwardingL: local port " + address + ":" + lport + " is not registered."); } pw.delete(); pool.removeElement(pw); }
internal static PortWatcher addPort(Session session, String address, int lport, String host, int rport, ServerSocketFactory ssf) { if (getPort(session, address, lport) != null) { throw new JSchException("PortForwardingL: local port " + address + ":" + lport + " is already registered."); } PortWatcher pw = new PortWatcher(session, address, lport, host, rport, ssf); pool.addElement(pw); return(pw); }
internal static String[] getPortForwarding(Session session) { java.util.Vector foo = new java.util.Vector(); lock (pool) { for (int i = 0; i < pool.size(); i++) { PortWatcher p = (PortWatcher)(pool.elementAt(i)); if (p.session == session) { foo.addElement(p.lport + ":" + p.host + ":" + p.rport); } } } String[] bar = new String[foo.size()]; for (int i = 0; i < foo.size(); i++) { bar[i] = (String)(foo.elementAt(i)); } return(bar); }
internal static void delPort(Session session) { lock (pool) { PortWatcher[] foo = new PortWatcher[pool.size()]; int count = 0; for (int i = 0; i < pool.size(); i++) { PortWatcher p = (PortWatcher)(pool.elementAt(i)); if (p.session == session) { p.delete(); foo[count++] = p; } } for (int i = 0; i < count; i++) { PortWatcher p = foo[i]; pool.removeElement(p); } } }
internal static void delPort(Session session) { lock(pool) { PortWatcher[] foo=new PortWatcher[pool.size()]; int count=0; for(int i=0; i<pool.size(); i++) { PortWatcher p=(PortWatcher)(pool.elementAt(i)); if(p.session==session) { p.delete(); foo[count++]=p; } } for(int i=0; i<count; i++) { PortWatcher p=foo[i]; pool.removeElement(p); } } }
internal static PortWatcher addPort(Session session, String address, int lport, String host, int rport, ServerSocketFactory ssf) { if(getPort(session, address, lport)!=null) { throw new JSchException("PortForwardingL: local port "+ address+":"+lport+" is already registered."); } PortWatcher pw=new PortWatcher(session, address, lport, host, rport, ssf); pool.addElement(pw); return pw; }