Changeset bcaf837


Ignore:
Timestamp:
Aug 14, 2016 5:44:08 PM (4 years ago)
Author:
zzz <zzz@…>
Branches:
master
Children:
ff2d5ba
Parents:
0d46c06
Message:

i2ptunnel:
Register actual listen host with port mapper
Register POP and SMTP ports with port mapper

Location:
apps/i2ptunnel/java/src/net/i2p/i2ptunnel
Files:
4 edited

Legend:

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

    r0d46c06 rbcaf837  
    1818import net.i2p.util.EventDispatcher;
    1919import net.i2p.util.Log;
     20import net.i2p.util.PortMapper;
    2021
    2122public class I2PTunnelClient extends I2PTunnelClientBase {
     
    179180        super.optionsUpdated(tunnel);
    180181    }
     182
     183    /**
     184     * Actually start working on incoming connections.
     185     * Overridden to register with port mapper.
     186     *
     187     * @since 0.9.27
     188     */
     189    @Override
     190    public void startRunning() {
     191        super.startRunning();
     192        if (open) {
     193            I2PSocketAddress addr = pickDestination();
     194            if (addr != null) {
     195                String svc = null;
     196                String hostname = addr.getHostName();
     197                if ("smtp.postman.i2p".equals(hostname)) {
     198                    svc = PortMapper.SVC_SMTP;
     199                } else if ("pop.postman.i2p".equals(hostname)) {
     200                    svc = PortMapper.SVC_POP;
     201                }
     202                if (svc != null) {
     203                    _context.portMapper().register(svc, getTunnel().listenHost, getLocalPort());
     204                }
     205            }
     206        }
     207    }
     208
     209    /**
     210     * Overridden to unregister with port mapper
     211     *
     212     * @since 0.9.27
     213     */
     214    @Override
     215    public boolean close(boolean forced) {
     216        int port = getLocalPort();
     217        int reg = _context.portMapper().getPort(PortMapper.SVC_SMTP);
     218        if (reg == port) {
     219            _context.portMapper().unregister(PortMapper.SVC_SMTP);
     220        }
     221        reg = _context.portMapper().getPort(PortMapper.SVC_POP);
     222        if (reg == port) {
     223            _context.portMapper().unregister(PortMapper.SVC_POP);
     224        }
     225        boolean rv = super.close(forced);
     226        return rv;
     227    }
    181228}
  • apps/i2ptunnel/java/src/net/i2p/i2ptunnel/I2PTunnelConnectClient.java

    r0d46c06 rbcaf837  
    126126        super.startRunning();
    127127        if (open)
    128             _context.portMapper().register(PortMapper.SVC_HTTPS_PROXY, getLocalPort());
     128            _context.portMapper().register(PortMapper.SVC_HTTPS_PROXY, getTunnel().listenHost, getLocalPort());
    129129    }
    130130
  • apps/i2ptunnel/java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java

    r0d46c06 rbcaf837  
    317317            this.isr.start();
    318318            int port = getLocalPort();
    319             _context.portMapper().register(PortMapper.SVC_HTTP_PROXY, port);
    320             _context.portMapper().register(PortMapper.SVC_HTTPS_PROXY, port);
     319            _context.portMapper().register(PortMapper.SVC_HTTP_PROXY, getTunnel().listenHost, port);
     320            _context.portMapper().register(PortMapper.SVC_HTTPS_PROXY, getTunnel().listenHost, port);
    321321        }
    322322    }
  • apps/i2ptunnel/java/src/net/i2p/i2ptunnel/I2PTunnelIRCClient.java

    r0d46c06 rbcaf837  
    218218        super.startRunning();
    219219        if (open)
    220             _context.portMapper().register(PortMapper.SVC_IRC, getLocalPort());
     220            _context.portMapper().register(PortMapper.SVC_IRC, getTunnel().listenHost, getLocalPort());
    221221    }
    222222
Note: See TracChangeset for help on using the changeset viewer.