Changeset b53fe37


Ignore:
Timestamp:
Dec 1, 2015 8:14:09 PM (5 years ago)
Author:
zzz <zzz@…>
Branches:
master
Children:
53ae4125
Parents:
348805f0
Message:

SAM:

  • Don't map keys to upper case in parser, corrupts I2CP options
  • Register SSL and UDP ports with PortMapper?
Files:
8 edited

Legend:

Unmodified
Added
Removed
  • apps/sam/java/src/net/i2p/sam/SAMBridge.java

    r348805f0 rb53fe37  
    710710        if (_mgr != null)
    711711            _mgr.register(this);
    712         I2PAppContext.getGlobalContext().portMapper().register(PortMapper.SVC_SAM, _listenPort);
     712        I2PAppContext.getGlobalContext().portMapper().register(_useSSL ? PortMapper.SVC_SAM_SSL : PortMapper.SVC_SAM,
     713                                                               _listenHost != null ? _listenHost : "127.0.0.1",
     714                                                               _listenPort);
    713715        try {
    714716            while (acceptConnections) {
     
    776778                    serverSocket.close();
    777779            } catch (IOException e) {}
    778             I2PAppContext.getGlobalContext().portMapper().unregister(PortMapper.SVC_SAM);
     780            I2PAppContext.getGlobalContext().portMapper().unregister(_useSSL ? PortMapper.SVC_SAM_SSL : PortMapper.SVC_SAM);
    779781            stopHandlers();
    780782            changeState(STOPPED);
  • apps/sam/java/src/net/i2p/sam/SAMUtils.java

    r348805f0 rb53fe37  
    168168     *
    169169     *  Modified from EepGet.
    170      *  All keys, major, and minor are mapped to upper case.
     170     *  COMMAND and OPCODE are mapped to upper case; keys, values, and ping data are not.
    171171     *  Double quotes around values are stripped.
    172172     *
     
    242242                        } else if (buf.length() > 0) {
    243243                            // key without value
    244                             String k = buf.toString().trim().toUpperCase(Locale.US);
     244                            String k = buf.toString();
    245245                            if (rv.isEmpty()) {
     246                                k =  k.toUpperCase(Locale.US);
    246247                                rv.setProperty(COMMAND, k);
    247248                                if (k.equals("PING") || k.equals("PONG")) {
     
    255256                                }
    256257                            } else if (rv.size() == 1) {
    257                                 rv.setProperty(OPCODE, k);
     258                                rv.setProperty(OPCODE, k.toUpperCase(Locale.US));
    258259                            } else {
    259260                                if (rv.setProperty(k, "true") != null)
     
    274275                        if (buf.length() == 0)
    275276                            throw new SAMException("Empty parameter name");
    276                         key = buf.toString().toUpperCase(Locale.US);
     277                        key = buf.toString();
    277278                        buf.setLength(0);
    278279                    }
  • apps/sam/java/src/net/i2p/sam/SAMv3DatagramServer.java

    r348805f0 rb53fe37  
    2525import net.i2p.util.I2PAppThread;
    2626import net.i2p.util.Log;
     27import net.i2p.util.PortMapper;
    2728
    2829/**
     
    9192        public int getPort() { return _port; }
    9293
    93         private static class Listener implements Runnable {
     94        private class Listener implements Runnable {
    9495               
    9596                private final DatagramChannel server;
     
    99100                        this.server = server ;
    100101                }
    101                 public void run()
    102                 {
     102
     103                public void run() {
     104                        I2PAppContext.getGlobalContext().portMapper().register(PortMapper.SVC_SAM_UDP, _host, _port);
     105                        try {
     106                                run2();
     107                        } finally {
     108                                I2PAppContext.getGlobalContext().portMapper().unregister(PortMapper.SVC_SAM_UDP);
     109                        }
     110                }
     111
     112                private void run2() {
    103113                        ByteBuffer inBuf = ByteBuffer.allocateDirect(SAMRawSession.RAW_SIZE_MAX+1024);
    104114                       
  • apps/sam/java/src/net/i2p/sam/client/SAMStreamSend.java

    r348805f0 rb53fe37  
    7070        String user = null;
    7171        String password = null;
    72         String opts = "";
     72        String opts = "inbound.length=0 outbound.length=0";
    7373        int c;
    7474        while ((c = g.getopt()) != -1) {
  • apps/sam/java/src/net/i2p/sam/client/SAMStreamSink.java

    r348805f0 rb53fe37  
    7878        String user = null;
    7979        String password = null;
    80         String opts = "";
     80        String opts = "inbound.length=0 outbound.length=0";
    8181        int c;
    8282        while ((c = g.getopt()) != -1) {
  • core/java/src/net/i2p/util/PortMapper.java

    r348805f0 rb53fe37  
    3131    public static final String SVC_POP = "POP3";
    3232    public static final String SVC_SAM = "SAM";
     33    /** @since 0.9.24 */
     34    public static final String SVC_SAM_UDP = "SAM-UDP";
     35    /** @since 0.9.24 */
     36    public static final String SVC_SAM_SSL = "SAM-SSL";
    3337    public static final String SVC_BOB = "BOB";
    3438    /** not necessary, already in config? */
  • history.txt

    r348805f0 rb53fe37  
     12015-12-01 zzz
     2 * i2psnark:
     3   - Consolidate default tunnel length definition
     4   - Increase max peers and uploaders per torrent
     5   - Increase default max total uploaders
     6   - Increase max peers sent and returned in DHT
     7* SAM:
     8   - Don't map keys to upper case in parser, corrupts I2CP options
     9   - Register SSL and UDP ports with PortMapper
     10* SSU: Allow IP and port in relay request if it matches the source
     11* Transport: Interrupt DH refiller thread when pool is empty,
     12  to speed refilling and reduce pumper stalls
     13
     142015-11-30 zzz
     15 * SAM:
     16   - Timeout for first command after HELLO
     17   - Send error message if no NAME key in LOOKUP
     18   - Destination caching enhancements
     19   - Client: Add SSL forward support, handle header line in forwarded stream
     20
     212015-11-29 zzz
     22 * i2ptunnel:
     23   - Change preferred sig type to Ed
     24   - Set permissions on backup tunnel keys file
     25
    1262015-11-28 zzz
    227 * i2psnark:
    328   - Fix NPE caused by URL-to-URI conversion in -2 (ticket #1715)
    429   - Increase max pieces to 32K
     30   - BEP 21 support (upload_only)
    531 * SAM:
    632   - Fix parser to allow spaces in quoted values (tickets #1325, #1488)
  • router/java/src/net/i2p/router/RouterVersion.java

    r348805f0 rb53fe37  
    1919    public final static String ID = "Monotone";
    2020    public final static String VERSION = CoreVersion.VERSION;
    21     public final static long BUILD = 5;
     21    public final static long BUILD = 6;
    2222
    2323    /** for example "-test" */
Note: See TracChangeset for help on using the changeset viewer.