133 public void close() { 134 Utils.close(delegate.channel()); 135 } 136 137 @Override 138 protected ByteBuffer readImpl(int length) throws IOException { 139 ByteBuffer buf = sslDelegate.allocate(BufType.PACKET, length); 140 WrapperResult r = sslDelegate.recvData(buf); 141 // TODO: check for closure 142 String s = "Receive) "; 143 //debugPrint(s, r.buf); 144 return r.buf; 145 } 146 147 @Override 148 protected int readImpl(ByteBuffer buf) throws IOException { 149 WrapperResult r = sslDelegate.recvData(buf); 150 // TODO: check for closure 151 String s = "Receive) "; 152 //debugPrint(s, r.buf); 153 return r.result.bytesProduced(); 154 } 155 156 @Override 157 SocketChannel channel() { 158 return delegate.channel(); 159 } 160 161 @Override 162 CompletableFuture<Void> whenReceivingResponse() { 163 return delegate.whenReceivingResponse(); 164 } 165 166 @Override 167 boolean isSecure() { 168 return true; 169 } 170 171 @Override 172 boolean isProxied() { | 133 public void close() { 134 Utils.close(delegate.channel()); 135 } 136 137 @Override 138 protected ByteBuffer readImpl(int length) throws IOException { 139 ByteBuffer buf = sslDelegate.allocate(BufType.PACKET, length); 140 WrapperResult r = sslDelegate.recvData(buf); 141 // TODO: check for closure 142 String s = "Receive) "; 143 //debugPrint(s, r.buf); 144 return r.buf; 145 } 146 147 @Override 148 protected int readImpl(ByteBuffer buf) throws IOException { 149 WrapperResult r = sslDelegate.recvData(buf); 150 // TODO: check for closure 151 String s = "Receive) "; 152 //debugPrint(s, r.buf); 153 if (r.result.bytesProduced() > 0) { 154 assert buf == r.buf; 155 } 156 157 return r.result.bytesProduced(); 158 } 159 160 @Override 161 SocketChannel channel() { 162 return delegate.channel(); 163 } 164 165 @Override 166 CompletableFuture<Void> whenReceivingResponse() { 167 return delegate.whenReceivingResponse(); 168 } 169 170 @Override 171 boolean isSecure() { 172 return true; 173 } 174 175 @Override 176 boolean isProxied() { |