e95428629d4f519567f113b92ed1b09009673a6e |
|
11-Apr-2017 |
Yi Kong <yikong@google.com> |
Move PlainSocketImpl away from JNI (part 2) This moves PlainSocketImpl#socket{Set,Get}Option from JNI to IoBridge. Changed method signatures for these two methods, in order to simplify the impementation. These are not public methods. Removed field trafficClass, since we set the traffic class directly through the socket, there is no need to store the value in Java side. Added check for SO_TIMEOUT so that it does not call through to IoBridge, since OpenJDK implementation does not use this socket option on Linux. Test: CtsLibcoreTestCases Bug: 28609551 Change-Id: If294bbba4fd21754734bf3b4ecca6c3da3ef26db (cherry picked from commit f4d26eb1fcad9ae230c80ae20b59cc6bfa12816a)
|
1b9bccee24ea4d2545bda74ac1e399d789fbb798 |
|
09-Jan-2017 |
Yi Kong <yikong@google.com> |
Move PlainSocketImpl away from JNI (part 1) Rewrites all JNI methods apart from socket{Get,Set}Option on top of IoBridge and Libcore.os. Test: CtsLibcoreTestCases Bug: 28609551 Change-Id: Ia14e09eae372355f5e12bc38f3ba5b06f979c807 (cherry picked from commit 32c780f411b1fe3dec80c28a79fc5442fa8304eb)
|
d61baf5989fd43e2ca8fcbf98684264334541470 |
|
26-Sep-2016 |
Shubham Ajmera <shubhamajmera@google.com> |
Revert commit eeb3b74d18cc9066ec3068a06d95d314c464ea5f The CL introduces back the pre-close mechanism for Sockets. When a thread calls close on a socket, it pre-closes the fd, i.e. dup2-ed the file descriptor to a marker_fd. Marker_fd is a AF_UNIX file descriptor with both read and write disable. Now, other threads which have already acquired the file descriptor tries to read/write to it get EOF/error correspondingly. When all the threads finally stop using the file descriptor i.e. releases file descriptor, fd finally gets closed. Without the pre-close, there are chances that other threads which are about to write to the file descriptor after the close might end up writing to the wrong file descriptor as they recycle quickly. Test: Introduced several new test failures. Will be fixed in follow up CLs. Bug: 27376593 Change-Id: I81eddecdab3df59c9639da27ec242b311ef575e0
|
780a0e6392567eb5d1c3425043b092d29590976b |
|
19-Aug-2016 |
Yi Kong <yikong@google.com> |
Revert "Revert "Import upstream change: Setting IP_TOS on java.net sockets not working on unix"" Fixes a bug in upstream code which uses out-dated RFC 1349 TOS scheme while modern Linux uses imcompatiable Diffserv/ECN scheme. Update test expectation to expect ECN bits not set for STREAM sockets. This reverts commit e706f546a18f06b58345ee64afd884a01f0d38ff. Bug: 30909505 Bug: 29067535 Test: libcore.java.net.SocketTest, libcore.java.net.DatagramSocketTest Change-Id: I92de46a4abb5dbb8874fa01504cdd63c6890d0f7
|
5dd14d677fbbc0ad77b4eefa82a6f7c0a17f9a37 |
|
11-Jul-2016 |
Yi Kong <yikong@google.com> |
Add missing SO_FLOW_SLA changes Add back some overridden methods missed in commit e573e88e89daf5efb323719c54117c5a423eb245. Bug: 29067535 Test: Passes java.net CTS tests Change-Id: I0333b6b87972a40212de4fa0569102ebb118b622
|
49965c1dc9da104344f4893a05e45795a5740d20 |
|
30-Jun-2016 |
Ganesh Mahendran <opensource.ganesh@gmail.com> |
remove x attribute of java file java file does not need x attribute. This patch removes it. Change-Id: I2a7170d99f4bee7a7b819621c84dd197ded37fa2 Signed-off-by: Ganesh Mahendran <opensource.ganesh@gmail.com>
|
264da741ca6bdf3a3b632364531374385699655c |
|
12-May-2016 |
Przemyslaw Szczepaniak <pszczepaniak@google.com> |
Move even more clinit code to reg functions This changes moves clinit code that was blocked by failure of art test 119-noimage-patchoat. This was solved by calling EnsureInitialized on java.lang.reflect.Field class before libcore JNI_OnLoad is called. This changes allows 2 more classes to be compile-time initialized. Bug: 28153851 Bug: 27265238 Change-Id: I1308efa28ce08bbfba5da5567dcd0b0a75b1e066 (cherry picked from commit 0394295e90f2e9830a2cbcc279dd61e140f15226)
|
0394295e90f2e9830a2cbcc279dd61e140f15226 |
|
12-May-2016 |
Przemyslaw Szczepaniak <pszczepaniak@google.com> |
Move even more clinit code to reg functions This changes moves clinit code that was blocked by failure of art test 119-noimage-patchoat. This was solved by calling EnsureInitialized on java.lang.reflect.Field class before libcore JNI_OnLoad is called. This changes allows 2 more classes to be compile-time initialized. Bug: 28153851 Change-Id: I1308efa28ce08bbfba5da5567dcd0b0a75b1e066
|
2c87ad3a45cecf9e344487cad1abfdebe79f2c7c |
|
21-Dec-2015 |
Narayan Kamath <narayan@google.com> |
Update file headers. Change-Id: I8149f41585768a1a4b72ab7bb4a1452376c05cc2
|
379c07d7ca0c5022a77b2b10782f819f5cb84985 |
|
14-Dec-2015 |
Przemyslaw Szczepaniak <pszczepaniak@google.com> |
Make PlainSocketImpl instantiate with a non-null-FD + FileDescriptor object is preserved and updated with the file descriptor value on bind and friends. Bug: 25805791 Bug: 26169052 Bug: 26084000 Change-Id: Ibe7e69e638ae94ee93877bc42eca9f35011f2c2e
|
eeb3b74d18cc9066ec3068a06d95d314c464ea5f |
|
10-Dec-2015 |
Przemyslaw Szczepaniak <pszczepaniak@google.com> |
Remove AbstractPlainSocketImpl deferred close by dup2 AbstractPlainSocket was maintaining a counter for threads using the socket fd. If someone was using the socket fd (expressed by calling acquireFD/releaseFD methods), close() would call dup2(marker, socketFd) and defer real close to be done on the last releaseFD call. Now, marker was a AF_UNIX socket pointing to no-where, and SELinux is not happy with the accept call happening on it. Comments in the code explain how they are doing it, but there's no hint of why. IMHO it's a defense mechanism for badly written socket code. Probably. Close from concurrent thread will wake up the accept thread (blocked on poll in NET_Timeout) and dup2 the marker to the the socket file descriptor. SELinux will cause the accept function to return EPERM. This was interpreted as a failure in both libcore.java.net.ConcurrentCloseTest#test_accept and #test_connect_timeout. This change removes the deferred close mechanism completely, we call close on the socket file descriptor and depend on the OS to handle the situation properly. All ConcurrentCloseTest tests are passing, so it looks like code sections protected with acquireFD/releaseFD are fine with a concurrent close called in the other thread. There's a plan B in case where this change breaks something, openjdk was using INET socket instead of UNIX one, we can revert to this solution, but it's hideously complex and I would prefer to avoid it. Bug: 26024365 Bug: 26127752 Change-Id: I0634faa5f519cdabcd6db56607bf1ae5c185dc84
|
51b1b6997fd3f980076b8081f7f1165ccc2a4008 |
|
16-Feb-2015 |
Piotr Jastrzebski <haaawk@google.com> |
Initial import of OpenJdk files. Create new libcore/ojluni directory with src/main/java and src/main/native subdirectiories. Build ojluni into core-oj jar. Use openjdk classes from java.awt.font package. Copy all files from jdk/src/share/classes and jdk/src/solaris/classes directories in openjdk into libcore/ojluni/src/main/java. Copy following native files from openjdk to libcore/ojluni/src/main/native: jdk/src/solaris/native/java/io/canonicalize_md.c build/linux-amd64/include/classfile_constants.h jdk/src/share/native/java/net/DatagramPacket.c jdk/src/solaris/native/sun/net/spi/DefaultProxySelector.c jdk/src/share/native/java/lang/Double.c jdk/src/share/native/java/lang/fdlibm/include/fdlibm.h jdk/src/solaris/native/sun/nio/ch/FileChannelImpl.c jdk/src/solaris/native/java/io/FileDescriptor_md.c jdk/src/solaris/native/sun/nio/ch/FileDispatcherImpl.c jdk/src/share/native/java/io/FileInputStream.c jdk/src/solaris/native/sun/nio/ch/FileKey.c jdk/src/solaris/native/java/io/FileOutputStream_md.c jdk/src/solaris/native/java/io/FileSystem_md.c jdk/src/share/native/java/lang/Float.c jdk/src/share/native/java/net/Inet4Address.c jdk/src/solaris/native/java/net/Inet4AddressImpl.c jdk/src/share/native/java/net/Inet6Address.c jdk/src/solaris/native/java/net/Inet6AddressImpl.c jdk/src/share/native/java/net/InetAddress.c jdk/src/solaris/native/java/net/InetAddressImplFactory.c jdk/src/share/native/java/io/io_util.c jdk/src/solaris/native/sun/nio/ch/IOUtil.c jdk/src/share/native/java/io/io_util.h jdk/src/solaris/native/java/io/io_util_md.c jdk/src/solaris/native/java/io/io_util_md.h build/linux-amd64/tmp/java/java.nio/nio/CClassHeaders/java_io_FileDescriptor.h build/linux-amd64/tmp/java/java.lang/java/CClassHeaders/java_io_FileInputStream.h build/linux-amd64/tmp/java/java.lang/java/CClassHeaders/java_io_FileOutputStream.h build/linux-amd64/tmp/java/java.lang/java/CClassHeaders/java_io_FileSystem.h build/linux-amd64/tmp/java/java.lang/java/CClassHeaders/java_io_ObjectStreamClass.h build/linux-amd64/tmp/java/java.lang/java/CClassHeaders/java_io_UnixFileSystem.h build/linux-amd64/tmp/java/java.lang/java/CClassHeaders/java_lang_Double.h build/linux-amd64/tmp/java/java.lang/java/CClassHeaders/java_lang_Float.h build/linux-amd64/tmp/java/java.lang/java/CClassHeaders/java_lang_Integer.h build/linux-amd64/tmp/java/java.lang/java/CClassHeaders/java_lang_Long.h build/linux-amd64/tmp/java/java.lang/java/CClassHeaders/java_lang_Runtime.h build/linux-amd64/tmp/java/java.lang/java/CClassHeaders/java_lang_Shutdown.h build/linux-amd64/tmp/java/java.lang/java/CClassHeaders/java_lang_StrictMath.h build/linux-amd64/tmp/java/java.lang/java/CClassHeaders/java_lang_String.h build/linux-amd64/tmp/java/java.lang/java/CClassHeaders/java_lang_System.h build/linux-amd64/tmp/java/java.lang/java/CClassHeaders/java_lang_Thread.h build/linux-amd64/tmp/java/java.lang/java/CClassHeaders/java_lang_Throwable.h build/linux-amd64/tmp/sun/java.net/net/CClassHeaders/java_net_DatagramPacket.h build/linux-amd64/tmp/sun/java.net/net/CClassHeaders/java_net_Inet4Address.h build/linux-amd64/tmp/sun/java.net/net/CClassHeaders/java_net_Inet4AddressImpl.h build/linux-amd64/tmp/sun/java.net/net/CClassHeaders/java_net_Inet6Address.h build/linux-amd64/tmp/sun/java.net/net/CClassHeaders/java_net_Inet6AddressImpl.h build/linux-amd64/tmp/sun/java.net/net/CClassHeaders/java_net_InetAddress.h build/linux-amd64/tmp/sun/java.net/net/CClassHeaders/java_net_InetAddressImplFactory.h build/linux-amd64/tmp/sun/java.net/net/CClassHeaders/java_net_NetworkInterface.h build/linux-amd64/tmp/sun/java.net/net/CClassHeaders/java_net_PlainDatagramSocketImpl.h build/linux-amd64/tmp/sun/java.net/net/CClassHeaders/java_net_PlainSocketImpl.h build/linux-amd64/tmp/sun/java.net/net/CClassHeaders/java_net_SocketInputStream.h build/linux-amd64/tmp/sun/java.net/net/CClassHeaders/java_net_SocketOptions.h build/linux-amd64/tmp/sun/java.net/net/CClassHeaders/java_net_SocketOutputStream.h jdk/src/share/native/java/lang/java_props.h jdk/src/solaris/native/java/lang/java_props_md.c jdk/src/share/native/java/util/zip/Adler32.c as java_util_zip_Adler32.c jdk/src/share/native/java/util/zip/CRC32.c as java_util_zip_CRC32.c build/linux-amd64/tmp/sun/java.util.zip/zip/CClassHeaders/java_util_zip_CRC32.h jdk/src/share/native/java/util/zip/Deflater.c as java_util_zip_Deflater.c build/linux-amd64/tmp/sun/java.util.zip/zip/CClassHeaders/java_util_zip_Deflater.h jdk/src/share/native/java/util/zip/Inflater.c as java_util_zip_Inflater.c build/linux-amd64/tmp/sun/java.util.zip/zip/CClassHeaders/java_util_zip_Inflater.h jdk/src/share/native/java/util/zip/ZipFile.c as java_util_zip_ZipFile.c build/linux-amd64/tmp/sun/java.util.zip/zip/CClassHeaders/java_util_zip_ZipFile.h jdk/src/share/native/java/lang/fdlibm/include/jfdlibm.h jdk/src/share/native/common/jlong.h jdk/src/solaris/native/common/jlong_md.h jdk/src/share/native/common/jni_util.c jdk/src/share/native/common/jni_util.h jdk/src/solaris/native/common/jni_util_md.c jdk/src/share/javavm/export/jvm.h jdk/src/solaris/javavm/export/jvm_md.h jdk/src/solaris/native/java/net/linux_close.c jdk/src/share/native/sun/misc/NativeSignalHandler.c jdk/src/solaris/native/sun/nio/ch/NativeThread.c jdk/src/share/native/java/net/net_util.c jdk/src/share/native/java/net/net_util.h jdk/src/solaris/native/java/net/net_util_md.c jdk/src/solaris/native/java/net/net_util_md.h jdk/src/solaris/native/java/net/NetworkInterface.c jdk/src/share/native/sun/nio/ch/nio.h jdk/src/solaris/native/sun/nio/ch/nio_util.h jdk/src/share/native/java/io/ObjectStreamClass.c jdk/src/solaris/native/java/net/PlainDatagramSocketImpl.c jdk/src/solaris/native/java/net/PlainSocketImpl.c jdk/src/solaris/native/java/lang/ProcessEnvironment_md.c jdk/src/share/native/java/lang/Runtime.c jdk/src/share/native/java/lang/Shutdown.c jdk/src/share/native/sun/misc/Signal.c jdk/src/solaris/native/java/net/SocketInputStream.c jdk/src/solaris/native/java/net/SocketOutputStream.c jdk/src/share/native/java/lang/StrictMath.c jdk/src/share/native/java/lang/String.c build/linux-amd64/tmp/java/java.lang/java/CClassHeaders/sun_misc_NativeSignalHandler.h build/linux-amd64/tmp/java/java.lang/java/CClassHeaders/sun_misc_Signal.h build/linux-amd64/tmp/sun/java.net/net/CClassHeaders/sun_net_spi_DefaultProxySelector.h build/linux-amd64/tmp/java/java.nio/nio/CClassHeaders/sun_nio_ch_FileChannelImpl.h build/linux-amd64/tmp/java/java.nio/nio/CClassHeaders/sun_nio_ch_FileDispatcherImpl.h build/linux-amd64/tmp/java/java.nio/nio/CClassHeaders/sun_nio_ch_FileKey.h build/linux-amd64/tmp/java/java.nio/nio/CClassHeaders/sun_nio_ch_IOStatus.h build/linux-amd64/tmp/java/java.nio/nio/CClassHeaders/sun_nio_ch_IOUtil.h build/linux-amd64/tmp/java/java.nio/nio/CClassHeaders/sun_nio_ch_NativeThread.h jdk/src/share/native/java/lang/System.c jdk/src/share/native/java/lang/Thread.c jdk/src/share/native/java/lang/Throwable.c jdk/src/solaris/native/java/io/UnixFileSystem_md.c jdk/src/solaris/native/java/lang/UNIXProcess_md.c jdk/src/share/native/java/util/zip/zip_util.c jdk/src/share/native/java/util/zip/zip_util.h Change-Id: Ib237df4e1b7b5b4d9f12e74d189e6ec9eed3c31d
|