Changeset dd47389 for apps/jetty


Ignore:
Timestamp:
Jun 25, 2015 5:00:52 PM (5 years ago)
Author:
zzz <zzz@…>
Branches:
master
Children:
23f2261b
Parents:
25268e7
Message:

Console: Use registered host/port for eepsite link (ticket #1604)
Jetty starter: Register host/port when started
PortMapper?: Add hostname support

File:
1 edited

Legend:

Unmodified
Added
Removed
  • apps/jetty/java/src/net/i2p/jetty/JettyStart.java

    r25268e7 rdd47389  
    1717// ========================================================================
    1818
     19import java.io.InputStream;
    1920import java.util.ArrayList;
    2021import java.util.Arrays;
     
    2627import net.i2p.app.*;
    2728import static net.i2p.app.ClientAppState.*;
    28 
    29 import java.io.InputStream;
     29import net.i2p.util.PortMapper;
     30
     31import org.eclipse.jetty.server.Connector;
     32import org.eclipse.jetty.server.Server;
    3033import org.eclipse.jetty.util.component.LifeCycle;
    3134import org.eclipse.jetty.util.resource.Resource;
     
    4649    private final String[] _args;
    4750    private final List<LifeCycle> _jettys;
     51    private final I2PAppContext _context;
    4852    private volatile ClientAppState _state;
     53    private volatile int _port;
    4954
    5055    /**
     
    5257     *  Does not support any of the other argument types from org.mortbay.start.Main.
    5358     *
    54      *  @param context unused, may be null
     59     *  @param context may be null
    5560     *  @param mgr may be null e.g. for use in plugins
    5661     */
     
    6065        _args = args;
    6166        _jettys = new ArrayList<LifeCycle>(args.length);
     67        _context = context;
    6268        parseArgs(args);
    6369        _state = INITIALIZED;
     
    117123                    try {
    118124                        lc.start();
     125                        if (_context != null && _context.portMapper().getPort(PortMapper.SVC_EEPSITE) <= 0) {
     126                            if (lc instanceof Server) {
     127                                Server server = (Server) lc;
     128                                Connector[] connectors = server.getConnectors();
     129                                if (connectors.length > 0) {
     130                                    int port = connectors[0].getPort();
     131                                    if (port > 0) {
     132                                        _port = port;
     133                                        String host = connectors[0].getHost();
     134                                        if (host.equals("0.0.0.0") || host.equals("::"))
     135                                            host = "127.0.0.1";
     136                                        _context.portMapper().register(PortMapper.SVC_EEPSITE, host, port);
     137                                    }
     138                                }
     139                            }
     140                        }
    119141                    } catch (Exception e) {
    120142                        changeState(START_FAILED, e);
     
    154176                    }
    155177                }
     178            }
     179            if (_context != null && _port > 0 && _context.portMapper().getPort(PortMapper.SVC_EEPSITE) == _port) {
     180                _port = 0;
     181                _context.portMapper().unregister(PortMapper.SVC_EEPSITE);
    156182            }
    157183            changeState(STOPPED);
Note: See TracChangeset for help on using the changeset viewer.