Changeset 9885779


Ignore:
Timestamp:
Jan 23, 2009 1:22:14 AM (12 years ago)
Author:
zzz <zzz@…>
Branches:
master
Children:
c02711c
Parents:
e105ca9
Message:

Add socks to gui, prevent NPE on socks 4 request, general cleanup

Location:
apps/i2ptunnel
Files:
8 edited

Legend:

Unmodified
Added
Removed
  • apps/i2ptunnel/java/src/net/i2p/i2ptunnel/I2PTunnel.java

    re105ca9 r9885779  
    663663     * started.
    664664     *
    665      * @param args {portNumber}
     665     * @param args {portNumber [, sharedClient]}
    666666     * @param l logger to receive events and output
    667667     */
     
    678678            }
    679679
     680            boolean isShared = false;
     681            if (args.length > 1)
     682                isShared = "true".equalsIgnoreCase(args[1].trim());
     683
     684            ownDest = !isShared;
    680685            I2PTunnelTask task;
    681686            task = new I2PSOCKSTunnel(port, l, ownDest, (EventDispatcher) this, this);
  • apps/i2ptunnel/java/src/net/i2p/i2ptunnel/TunnelController.java

    re105ca9 r9885779  
    136136        if ("httpclient".equals(type)) {
    137137            startHttpClient();
    138         }else if("ircclient".equals(type)) {
     138        } else if("ircclient".equals(type)) {
    139139            startIrcClient();
     140        } else if("sockstunnel".equals(type)) {
     141            startSocksClient();
    140142        } else if ("client".equals(type)) {
    141143            startClient();
     
    173175        String sharedClient = getSharedClient();
    174176        _tunnel.runIrcClient(new String[] { listenPort, dest, sharedClient }, this);
     177        acquire();
     178        _running = true;
     179    }
     180   
     181    private void startSocksClient() {
     182        setI2CPOptions();
     183        setSessionOptions();
     184        setListenOn();
     185        String listenPort = getListenPort();
     186        String sharedClient = getSharedClient();
     187        _tunnel.runSOCKSTunnel(new String[] { listenPort, sharedClient }, this);
    175188        acquire();
    176189        _running = true;
  • apps/i2ptunnel/java/src/net/i2p/i2ptunnel/socks/SOCKSServerFactory.java

    re105ca9 r9885779  
    4040                break;
    4141            default:
    42                 _log.debug("SOCKS protocol version not supported (" + Integer.toHexString(socksVer) + ")");
    43                 return null;
     42                throw new SOCKSException("SOCKS protocol version not supported (" + Integer.toHexString(socksVer) + ")");
    4443            }
    4544        } catch (IOException e) {
  • apps/i2ptunnel/java/src/net/i2p/i2ptunnel/web/EditBean.java

    re105ca9 r9885779  
    3232            TunnelController cur = (TunnelController)controllers.get(tunnel);
    3333            if (cur == null) return false;
    34             return ( ("client".equals(cur.getType())) ||
    35                          ("httpclient".equals(cur.getType()))||
    36                          ("ircclient".equals(cur.getType())));
     34            return isClient(cur.getType());
    3735        } else {
    3836            return false;
  • apps/i2ptunnel/java/src/net/i2p/i2ptunnel/web/IndexBean.java

    re105ca9 r9885779  
    210210        // Only modify other shared tunnels
    211211        // if the current tunnel is shared, and of supported type
    212         if ("true".equalsIgnoreCase(cur.getSharedClient()) &&
    213             ("ircclient".equals(cur.getType()) ||
    214              "httpclient".equals(cur.getType()) ||
    215              "client".equals(cur.getType()))) {
     212        if ("true".equalsIgnoreCase(cur.getSharedClient()) && isClient(cur.getType())) {
    216213            // all clients use the same I2CP session, and as such, use the same I2CP options
    217214            List controllers = _group.getControllers();
     
    225222                // Only modify this non-current tunnel
    226223                // if it belongs to a shared destination, and is of supported type
    227                 if ("true".equalsIgnoreCase(c.getSharedClient()) &&
    228                     ("httpclient".equals(c.getType()) ||
    229                      "ircclient".equals(c.getType()) ||
    230                      "client".equals(c.getType()))) {
    231 
     224                if ("true".equalsIgnoreCase(c.getSharedClient()) && isClient(c.getType())) {
    232225                    Properties cOpt = c.getConfig("");
    233226                    if (_tunnelQuantity != null) {
     
    327320        TunnelController cur = getController(tunnelNum);
    328321        if (cur == null) return false;
    329         return ( ("client".equals(cur.getType())) ||
    330                         ("httpclient".equals(cur.getType())) ||
    331                         ("ircclient".equals(cur.getType())));
     322        return isClient(cur.getType());
     323    }
     324
     325    public static boolean isClient(String type) {
     326        return ( ("client".equals(type)) ||
     327                        ("httpclient".equals(type)) ||
     328                        ("sockstunnel".equals(type)) ||
     329                        ("ircclient".equals(type)));
    332330    }
    333331   
     
    362360        else if ("server".equals(internalType)) return "Standard server";
    363361        else if ("httpserver".equals(internalType)) return "HTTP server";
     362        else if ("sockstunnel".equals(internalType)) return "SOCKS proxy";
    364363        else return internalType;
    365364    }
     
    580579        updateConfigGeneric(config);
    581580       
    582         if ("httpclient".equals(_type)) {
     581        if (isClient(_type)) {
     582            // generic client stuff
    583583            if (_port != null)
    584584                config.setProperty("listenPort", _port);
     
    587587            else
    588588                config.setProperty("interface", _reachableBy);
    589             if (_proxyList != null)
    590                 config.setProperty("proxyList", _proxyList);
    591 
    592                 config.setProperty("option.inbound.nickname", CLIENT_NICKNAME);
    593                 config.setProperty("option.outbound.nickname", CLIENT_NICKNAME);
     589            config.setProperty("option.inbound.nickname", CLIENT_NICKNAME);
     590            config.setProperty("option.outbound.nickname", CLIENT_NICKNAME);
    594591            if (_name != null && !_sharedClient) {
    595592                 config.setProperty("option.inbound.nickname", _name);
    596593                 config.setProperty("option.outbound.nickname", _name);
    597594            }
    598 
    599595            config.setProperty("sharedClient", _sharedClient + "");
    600         }else if ("ircclient".equals(_type)) {
    601                 if (_port != null)
    602                     config.setProperty("listenPort", _port);
    603                 if (_reachableByOther != null)
    604                     config.setProperty("interface", _reachableByOther);
    605                 else
    606                     config.setProperty("interface", _reachableBy);
    607                 if (_targetDestination != null)
    608                     config.setProperty("targetDestination", _targetDestination);
    609 
    610                 config.setProperty("option.inbound.nickname", CLIENT_NICKNAME);
    611                 config.setProperty("option.outbound.nickname", CLIENT_NICKNAME);
    612                 if (_name != null && !_sharedClient) {
    613                      config.setProperty("option.inbound.nickname", _name);
    614                      config.setProperty("option.outbound.nickname", _name);
    615                 }
    616 
    617                 config.setProperty("sharedClient", _sharedClient + "");
    618         } else if ("client".equals(_type)) {
    619             if (_port != null)
    620                 config.setProperty("listenPort", _port);
    621             if (_reachableByOther != null)
    622                 config.setProperty("interface", _reachableByOther);
    623             else
    624                 config.setProperty("interface", _reachableBy);
    625             if (_targetDestination != null)
    626                 config.setProperty("targetDestination", _targetDestination);
    627            
    628             config.setProperty("option.inbound.nickname", CLIENT_NICKNAME);
    629             config.setProperty("option.outbound.nickname", CLIENT_NICKNAME);
    630             if (_name != null && !_sharedClient) {
    631                 config.setProperty("option.inbound.nickname", _name);
    632                 config.setProperty("option.outbound.nickname", _name);
    633            }
    634             config.setProperty("sharedClient", _sharedClient + "");
    635         } else if ("server".equals(_type)) {
     596        } else {
     597            // generic server stuff
    636598            if (_targetHost != null)
    637599                config.setProperty("targetHost", _targetHost);
     
    640602            if (_privKeyFile != null)
    641603                config.setProperty("privKeyFile", _privKeyFile);
     604        }
     605
     606        if ("httpclient".equals(_type)) {
     607            if (_proxyList != null)
     608                config.setProperty("proxyList", _proxyList);
     609        } else if ("ircclient".equals(_type) || "client".equals(_type)) {
     610            if (_targetDestination != null)
     611                config.setProperty("targetDestination", _targetDestination);
    642612        } else if ("httpserver".equals(_type)) {
    643             if (_targetHost != null)
    644                 config.setProperty("targetHost", _targetHost);
    645             if (_targetPort != null)
    646                 config.setProperty("targetPort", _targetPort);
    647             if (_privKeyFile != null)
    648                 config.setProperty("privKeyFile", _privKeyFile);
    649613            if (_spoofedHost != null)
    650614                config.setProperty("spoofedHost", _spoofedHost);
    651         } else {
    652             return null;
    653615        }
    654616
  • apps/i2ptunnel/jsp/edit.jsp

    re105ca9 r9885779  
    1515  String type = request.getParameter("type");
    1616  int curTunnel = -1;
    17   if ("client".equals(type) || "httpclient".equals(type) || "ircclient".equals(type)) {
     17  if (EditBean.isClient(type)) {
    1818    %><jsp:include page="editClient.jsp" /><%
    1919  } else if ("server".equals(type) || "httpserver".equals(type)) {
  • apps/i2ptunnel/jsp/editClient.jsp

    re105ca9 r9885779  
    117117            </div>
    118118           
    119             <% if ("httpclient".equals(editBean.getInternalType(curTunnel))) {
     119            <% if ("httpclient".equals(tunnelType)) {
    120120          %><div id="destinationField" class="rowItem">
    121121                <label for="proxyList" accesskey="x">
     
    124124                <input type="text" size="30" id="proxyList" name="proxyList" title="List of Outproxy I2P destinations" value="<%=editBean.getClientDestination(curTunnel)%>" class="freetext" />               
    125125            </div>
    126             <% } else {
     126            <% } else if ("client".equals(tunnelType) || "ircclient".equals(tunnelType)) {
    127127          %><div id="destinationField" class="rowItem">
    128128                <label for="targetDestination" accesskey="T">
     
    206206                </label>
    207207                <select id="tunnelVariance" name="tunnelVariance" title="Level of Randomization for Tunnel Depth" class="selectbox">
    208                     <% int tunnelVariance = editBean.getTunnelVariance(curTunnel, -1);
     208                    <% int tunnelVariance = editBean.getTunnelVariance(curTunnel, 0);
    209209                  %><option value="0"<%=(tunnelVariance  ==  0 ? " selected=\"selected\"" : "") %>>0 hop variance (no randomisation, consistant performance)</option>
    210210                    <option value="1"<%=(tunnelVariance  ==  1 ? " selected=\"selected\"" : "") %>>+ 0-1 hop variance (medium additive randomisation, subtractive performance)</option>
  • apps/i2ptunnel/jsp/index.jsp

    re105ca9 r9885779  
    113113      %></div>
    114114
     115      <% if (!"sockstunnel".equals(indexBean.getInternalType(curClient))) { %>
    115116        <div class="destinationField rowItem">
    116117            <label>Destination:</label>
    117118            <input class="freetext" size="40" readonly="readonly" value="<%=indexBean.getClientDestination(curClient)%>" />
    118119        </div>
     120      <% } %>
    119121
    120122        <div class="descriptionField rowItem">
     
    141143                        <option value="httpclient">HTTP</option>
    142144                        <option value="ircclient">IRC</option>
     145                        <option value="sockstunnel">SOCKS</option>
    143146                    </select>
    144147                    <input class="control" type="submit" value="Create" />
Note: See TracChangeset for help on using the changeset viewer.