< prev index next >

src/java.base/share/classes/sun/security/ssl/DTLSOutputRecord.java

Print this page

        

*** 1,7 **** /* ! * Copyright (c) 1996, 2019, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2 only, as * published by the Free Software Foundation. Oracle designates this --- 1,7 ---- /* ! * Copyright (c) 1996, 2018, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2 only, as * published by the Free Software Foundation. Oracle designates this
*** 56,77 **** this.packetSize = DTLSRecord.maxRecordSize; this.protocolVersion = ProtocolVersion.NONE; } @Override ! public void close() throws IOException { ! recordLock.lock(); ! try { ! if (!isClosed) { ! if (fragmenter != null && fragmenter.hasAlert()) { ! isCloseWaiting = true; ! } else { ! super.close(); ! } } - } finally { - recordLock.unlock(); } } boolean isClosed() { return isClosed || isCloseWaiting; --- 56,72 ---- this.packetSize = DTLSRecord.maxRecordSize; this.protocolVersion = ProtocolVersion.NONE; } @Override ! public synchronized void close() throws IOException { ! if (!isClosed) { ! if (fragmenter != null && fragmenter.hasAlert()) { ! isCloseWaiting = true; ! } else { ! super.close(); } } } boolean isClosed() { return isClosed || isCloseWaiting;
*** 242,253 **** fragLen = Math.min(fragLen, Record.maxDataSize); } else { fragLen = Record.maxDataSize; } ! // Calculate more impact, for example TLS 1.3 padding. ! fragLen = calculateFragmentSize(fragLen); int dstPos = destination.position(); int dstLim = destination.limit(); int dstContent = dstPos + headerSize + writeCipher.getExplicitNonceSize(); --- 237,249 ---- fragLen = Math.min(fragLen, Record.maxDataSize); } else { fragLen = Record.maxDataSize; } ! if (fragmentSize > 0) { ! fragLen = Math.min(fragLen, fragmentSize); ! } int dstPos = destination.position(); int dstLim = destination.limit(); int dstContent = dstPos + headerSize + writeCipher.getExplicitNonceSize();
*** 461,472 **** fragLen = Math.min(fragLen, Record.maxDataSize); } else { fragLen = Record.maxDataSize; } ! // Calculate more impact, for example TLS 1.3 padding. ! fragLen = calculateFragmentSize(fragLen); int dstPos = dstBuf.position(); int dstLim = dstBuf.limit(); int dstContent = dstPos + headerSize + memo.encodeCipher.getExplicitNonceSize(); --- 457,469 ---- fragLen = Math.min(fragLen, Record.maxDataSize); } else { fragLen = Record.maxDataSize; } ! if (fragmentSize > 0) { ! fragLen = Math.min(fragLen, fragmentSize); ! } int dstPos = dstBuf.position(); int dstLim = dstBuf.limit(); int dstContent = dstPos + headerSize + memo.encodeCipher.getExplicitNonceSize();
< prev index next >