Changeset 539f880


Ignore:
Timestamp:
May 2, 2019 4:14:46 PM (13 months ago)
Author:
meeh <meeh@…>
Branches:
master
Children:
647f9e7
Parents:
9caa7a6 (diff), 7f60ee9 (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the (diff) links above to see all the changes relative to each parent.
Message:

merge of '4ae3e891f8510b146feae122bacc862468db060e'

and '666d27bab7047baeaa2c753159098eda75635c5e'

Files:
8 edited

Legend:

Unmodified
Added
Removed
  • apps/routerconsole/java/src/net/i2p/router/web/helpers/SummaryHelper.java

    r9caa7a6 r539f880  
    248248            case IPV4_DISABLED_IPV6_OK:
    249249            case IPV4_SNAT_IPV6_OK:
    250                 RouterAddress ra = routerInfo.getTargetAddress("NTCP");
    251                 if (ra == null)
     250                List<RouterAddress> ras = routerInfo.getTargetAddresses("NTCP", "NTCP2");
     251                if (ras.isEmpty())
    252252                    return new NetworkStateMessage(NetworkState.RUNNING, _t(status.toStatusString()));
    253                 byte[] ip = ra.getIP();
     253                byte[] ip = null;
     254                for (RouterAddress ra : ras) {
     255                    ip = ra.getIP();
     256                    if (ip != null)
     257                        break;
     258                }
    254259                if (ip == null)
    255260                    return new NetworkStateMessage(NetworkState.ERROR, _t("ERR-Unresolved TCP Address"));
     
    288293            case IPV4_DISABLED_IPV6_UNKNOWN:
    289294            default:
    290                 ra = routerInfo.getTargetAddress("SSU");
     295                RouterAddress ra = routerInfo.getTargetAddress("SSU");
    291296                if (ra == null && _context.router().getUptime() > 5*60*1000) {
    292297                    if (getActivePeers() <= 0)
  • history.txt

    r9caa7a6 r539f880  
     12019-05-02 zzz
     2 * GeoIP Maxmind 2019-04-29
     3 * NTCP: Rare EventPumper 100% CPU fix (ticket #2476)
     4 * UPnP: Remove finalize() in HTTPSocket (ticket #2490)
     5
    162019-04-25 zzz
     7 * Build: Drop unmaintained sample apparmor script (ticket #2319)
     8 * i2ptunnel: Force connect delay and bulk profile for most
     9   client tunnel types, and hide from UI
    210 * Transport: Disable NTCP 1 by default
    311
  • router/java/src/net/i2p/router/RouterVersion.java

    r9caa7a6 r539f880  
    1919    public final static String ID = "Monotone";
    2020    public final static String VERSION = CoreVersion.VERSION;
    21     public final static long BUILD = 8;
     21    public final static long BUILD = 11;
    2222
    2323    /** for example "-test" */
    24     public final static String EXTRA = "";
     24    public final static String EXTRA = "-rc";
    2525    public final static String FULL_VERSION = VERSION + "-" + BUILD + EXTRA;
    2626    public static void main(String args[]) {
  • router/java/src/net/i2p/router/transport/ntcp/EventPumper.java

    r9caa7a6 r539f880  
    269269                                    // this will cancel the key, and it will then be removed from the keyset
    270270                                    con.close();
     271                                    key.cancel();
    271272                                    failsafeInvalid++;
    272273                                    continue;
     
    299300                                    // we haven't sent or received anything in a really long time, so lets just close 'er up
    300301                                    con.sendTerminationAndClose();
     302                                    key.cancel();
    301303                                    if (_log.shouldInfo())
    302304                                        _log.info("Failsafe or expire close for " + con);
     
    537539   
    538540    private void processConnect(SelectionKey key) {
    539         NTCPConnection con = (NTCPConnection)key.attachment();
     541        final NTCPConnection con = (NTCPConnection)key.attachment();
     542        final SocketChannel chan = con.getChannel();
    540543        try {
    541             SocketChannel chan = con.getChannel();
    542544            boolean connected = chan.finishConnect();
    543545            if (_log.shouldLog(Log.DEBUG))
     
    588590     */
    589591    private void processRead(SelectionKey key) {
    590         NTCPConnection con = (NTCPConnection)key.attachment();
     592        final NTCPConnection con = (NTCPConnection)key.attachment();
     593        final SocketChannel chan = con.getChannel();
    591594        ByteBuffer buf = null;
    592595        try {
     
    596599                int readThisTime;
    597600                int readCount = 0;
    598                 while ((readThisTime = con.getChannel().read(buf)) > 0)  {
     601                while ((readThisTime = chan.read(buf)) > 0)  {
    599602                    read += readThisTime;
    600603                    readCount++;
     
    606609                if (read < 0) {
    607610                    if (con.isInbound() && con.getMessagesReceived() <= 0) {
    608                         InetAddress addr = con.getChannel().socket().getInetAddress();
     611                        InetAddress addr = chan.socket().getInetAddress();
    609612                        int count;
    610613                        if (addr != null) {
     
    686689                releaseBuf(buf);
    687690            if (con.isInbound() && con.getMessagesReceived() <= 0) {
    688                 InetAddress addr = con.getChannel().socket().getInetAddress();
     691                InetAddress addr = chan.socket().getInetAddress();
    689692                int count;
    690693                if (addr != null) {
     
    732735     */
    733736    private void processWrite(SelectionKey key) {
    734         NTCPConnection con = (NTCPConnection)key.attachment();
     737        final NTCPConnection con = (NTCPConnection)key.attachment();
     738        final SocketChannel chan = con.getChannel();
    735739        try {
    736740            while (true) {
     
    741745                        continue;                   
    742746                    }
    743                     int written = con.getChannel().write(buf);
     747                    int written = chan.write(buf);
    744748                    //totalWritten += written;
    745749                    if (written == 0) {
     
    846850       
    847851        while ((con = _wantsConRegister.poll()) != null) {
     852            final SocketChannel schan = con.getChannel();
    848853            try {
    849                 SelectionKey key = con.getChannel().register(_selector, SelectionKey.OP_CONNECT);
     854                SelectionKey key = schan.register(_selector, SelectionKey.OP_CONNECT);
    850855                key.attach(con);
    851856                con.setKey(key);
     
    858863                        throw new IOException("Invalid NTCP address: " + naddr);
    859864                    InetSocketAddress saddr = new InetSocketAddress(InetAddress.getByAddress(ip), port);
    860                     boolean connected = con.getChannel().connect(saddr);
     865                    boolean connected = schan.connect(saddr);
    861866                    if (connected) {
    862867                        // Never happens, we use nonblocking
  • router/java/src/net/i2p/router/transport/ntcp/NTCPConnection.java

    r9caa7a6 r539f880  
    289289     *  Valid for inbound; valid for outbound shortly after creation
    290290     */
    291     public SocketChannel getChannel() { return _chan; }
     291    public synchronized SocketChannel getChannel() { return _chan; }
    292292
    293293    /**
    294294     *  Valid for inbound; valid for outbound shortly after creation
    295295     */
    296     public SelectionKey getKey() { return _conKey; }
    297     public void setChannel(SocketChannel chan) { _chan = chan; }
    298     public void setKey(SelectionKey key) { _conKey = key; }
     296    public synchronized SelectionKey getKey() { return _conKey; }
     297    public synchronized void setChannel(SocketChannel chan) { _chan = chan; }
     298    public synchronized void setKey(SelectionKey key) { _conKey = key; }
    299299
    300300    public boolean isInbound() { return _isInbound; }
     
    11261126     * as it occurs in the selector thread)
    11271127     */
    1128     void outboundConnected() {
     1128    synchronized void outboundConnected() {
     1129        if (_establishState == EstablishBase.FAILED) {
     1130            _conKey.cancel();
     1131            try {_chan.close(); } catch (IOException ignored) {}
     1132            return;
     1133        }
    11291134        _conKey.interestOps(_conKey.interestOps() | SelectionKey.OP_READ);
    11301135        // schedule up the beginning of our handshaking by calling prepareNextWrite on the
  • router/java/src/org/cybergarage/http/HTTPServerThread.java

    r9caa7a6 r539f880  
    4141        {
    4242                HTTPSocket httpSock = new HTTPSocket(sock);
    43                 if (httpSock.open() == false)
    44                         return;
    45                 HTTPRequest httpReq = new HTTPRequest();
    46                 httpReq.setSocket(httpSock);
    47                 while (httpReq.read() == true) {
    48                         httpServer.performRequestListener(httpReq);
    49                         if (httpReq.isKeepAlive() == false)
    50                                 break;
     43                try {
     44                        if (httpSock.open() == false)
     45                                return;
     46                        HTTPRequest httpReq = new HTTPRequest();
     47                        httpReq.setSocket(httpSock);
     48                        while (httpReq.read() == true) {
     49                                httpServer.performRequestListener(httpReq);
     50                                if (httpReq.isKeepAlive() == false)
     51                                        break;
     52                        }
     53                } finally {
     54                        httpSock.close();
    5155                }
    52                 httpSock.close();
    5356        }
    5457}
  • router/java/src/org/cybergarage/http/HTTPSocket.java

    r9caa7a6 r539f880  
    2828package org.cybergarage.http;
    2929
     30import java.io.IOException;
    3031import java.io.InputStream;
    3132import java.io.OutputStream;
     
    5253        }
    5354       
    54         public void finalize()
    55         {
    56                 close();
    57         }
    58        
    5955        ////////////////////////////////////////////////
    6056        //      Socket
     
    134130        public boolean close()
    135131        {
    136                 try {
    137                         if (sockIn != null)
     132                if (sockIn != null)
     133                        try {
    138134                                sockIn.close();
    139                         if (sockOut != null)
     135                        } catch (IOException e) {}
     136                if (sockOut != null)
     137                        try {
    140138                                sockOut.close();
    141                         getSocket().close();
    142                 }
    143                 catch (Exception e) {
    144                         //Debug.warning(e);
    145                         return false;
    146                 }
     139                        } catch (IOException e) {}
     140                if (socket != null)
     141                        try {
     142                                socket.close();
     143                        } catch (IOException e) {}
    147144                return true;
    148145        }
Note: See TracChangeset for help on using the changeset viewer.