Changeset 55addfc


Ignore:
Timestamp:
Feb 8, 2016 5:30:01 PM (6 years ago)
Author:
zzz <zzz@…>
Branches:
master
Children:
241bb38
Parents:
8f667a0
Message:

Fix bug receiving datagrams on v3 sessions with UTF-8 IDs
Add test for tag options

Location:
apps/sam/java/src/net/i2p/sam
Files:
2 edited

Legend:

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

    r8f667a0 r55addfc  
    138138        private static class MessageDispatcher implements Runnable {
    139139                private final ByteArrayInputStream is;
     140                private static final int MAX_LINE_LENGTH = 2*1024;
    140141       
    141142                public MessageDispatcher(byte[] buf) {
     
    145146                public void run() {
    146147                        try {
    147                                 String header = DataHelper.readLine(is).trim();
     148                                // not UTF-8
     149                                //String header = DataHelper.readLine(is).trim();
    148150                                // we cannot use SAMUtils.parseParams() here
     151                                final UTF8Reader reader = new UTF8Reader(is);
     152                                final StringBuilder buf = new StringBuilder(MAX_LINE_LENGTH);
     153                                int c;
     154                                int i = 0;
     155                                while ((c = reader.read()) != -1) {
     156                                        if (++i > MAX_LINE_LENGTH)
     157                                                throw new IOException("Line too long - max " + MAX_LINE_LENGTH);
     158                                        if (c == '\n')
     159                                                break;
     160                                        buf.append((char)c);
     161                                }
     162                                String header = buf.toString();
    149163                                StringTokenizer tok = new StringTokenizer(header, " ");
    150164                                if (tok.countTokens() < 3) {
  • apps/sam/java/src/net/i2p/sam/client/SAMStreamSend.java

    r8f667a0 r55addfc  
    514514                                else
    515515                                    baos.write(DataHelper.getUTF8(" TO_PORT=5678"));
     516                                baos.write(DataHelper.getUTF8(" SEND_TAGS=19 TAG_THRESHOLD=13 EXPIRES=33 SEND_LEASESET=true"));
    516517                            }
    517518                            baos.write((byte) '\n');
Note: See TracChangeset for help on using the changeset viewer.