History log of /libcore/ojluni/src/main/native/net_util_md.c
Revision Date Author Comments
00494db3844238de691d75ca6fcdc794380871e5 18-Oct-2017 Victor Chang <vichang@google.com> Don't untag socket before preClose / close

Previously, xt_qtaguid never freed tags when the socket was closed, so
if we didn't untag sockets in userspace it would leak memory. See for
example b/5274621. That was fixed by the fix in b/36374484, so this
code is no longer necessary.

Behavior change
- Automatically untagging sockets on close() is incorrect, because
close() does not close the socket, only the filedescriptor, which might
be only one of the references to the socket. Thus, socket(); dup();
close results in the socket being untagged, even if the dupd socket is
still open.
- Additionally, untagging sockets automatically has undesirable
side-effects. For example, it makes it very difficult for a process to
create and tag a socket, and pass that socket to an app, without losing
the tag.

Workaround to keep old behavior
If an app needs to keep old behavior, the app should call
TrafficStats.untagSocket to remove the tag before sending it to another
process.

Bug: 67425668
Test: CtsLibcoreTestCases
Test: CtsAppSecurityHostTestCases -t android.appsecurity.cts.AppSecurityTests
Test: CtsIncidentHostTestCases -t
com.android.server.cts.NetstatsIncidentTest
Test: CtsOsTestCases -t android.os.cts.StrictModeTest
Test: CtsUsageStatsTestCases -t android.app.usage.cts.NetworkUsageStatsTest
Change-Id: Ic311e626a57dec5584c97c8899468a3c800e7ef0
dd0def4afd29a88c9e629cebdd9991e4da1b13da 15-Apr-2017 Yi Kong <yikong@google.com> Clean up unused native methods

After moving java.net logic to IoBridge, these native methods are no
longer used.

Bug: 28609551
Test: Build
Change-Id: I019471d52150555bb47d278e3679de1b9bf32307
3442abd5bcb4d4d0bfdcc08bf660cbf61ae82bf8 01-Dec-2016 Yi Kong <yikong@google.com> Remove unused initialization code

This code is not used any more and is triggering SELinux denial due to
attempting to access /proc/net/{ipv6_route,if_inet6}.

Further clean up of unused code will be done in a follow up patch.

Test: Build
Bug: 33250070
Change-Id: I52eac0ffea03857ca958e7ac296936b8dfa2092b
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
e706f546a18f06b58345ee64afd884a01f0d38ff 19-Aug-2016 Yi Kong <yikong@google.com> Revert "Import upstream change: Setting IP_TOS on java.net sockets not working on unix"

This change broke libcore.java.net.SocketTest#test_setTrafficClass.

Reverts commit e646d79e87319f70e32b9e3233435e9d8d8df761.

Bug: 30909505
Change-Id: I4278917c761053af33cd95cb5e84013f43e8d003
62e0b4793b755083e94aac458111ca347314addd 14-Jul-2016 Yi Kong <yikong@google.com> Import upstream change: Address internet addresses

Upstream change:

8015743: Address internet addresses
Reviewed-by: alanb, khazra, skoivu

http://hg.openjdk.java.net/jdk8/jdk8/jdk/rev/69a2dc92fefe

This refactors Inet6Address to use Inet6AddressHolder to record state.
No behaviour change is expected.

Bug: 29067535
Test: Passes CTS tests, art-test-host
Change-Id: If890b979f5c1c30a886e898eeb8af263340c6ea8
fde01e06d8aacfc18c2d4bf1930e271ae5c812d1 02-Aug-2016 Yi Kong <yikong@google.com> Remove unnecessary +x flag

Source code files and serialized resource files should not have x flag set.

This is a follow up to commit 49965c1d, where native codes and some Java
source files are left out.

Bug: 29977629
Test: Build, CTS tests
Change-Id: I475491284cf5784ed499daa434c2845cdadea3a0
e646d79e87319f70e32b9e3233435e9d8d8df761 01-Jul-2016 Yi Kong <yikong@google.com> Import upstream change: Setting IP_TOS on java.net sockets not working on unix

Upstream change:

8072384: Setting IP_TOS on java.net sockets not working on unix
Reviewed-by: michaelm

http://hg.openjdk.java.net/jdk8u/jdk8u/jdk/rev/3767befecb32

Bug: 29067535
Test: Passes CTS tests
Change-Id: I08dc3bdee860062d23e181a43bcde88a728d44c2
eb984abe3282ad17cfdea4fdaab96f3029113cb5 14-Jun-2016 Yi Kong <yikong@google.com> Import upstream change: Removed references to Linux kernel version 2.2

Partially import from upstream change, since we've already removed most
support code for Linux 2.2:

7193520: Removed references to Linux kernel version 2.2
Summary: Linux kernel version 2.2 isn't supported anymore.
Reviewed-by: chegar, dsamersoff, alanb
Contributed-by: John Zavgren <john.zavgren@oracle.com>

http://hg.openjdk.java.net/jdk8/jdk8/jdk/rev/f5229879ea40

Bug: 29067535
Change-Id: I883364fd0d7039e49525dcdc27229fa8425a68bd
1a6762a724b1200eb826b2cdce21c0a4d7e2f594 22-Mar-2016 Yi Kong <yikong@google.com> Wire up SocketTagger

Tag all socket, accept and close calls.

Bug: 27291269
Bug: 27549426
Change-Id: I7c2edd0530306111765b900bd705532302d9b597
(cherry picked from commit a87f559f13ebd0861c0dfbb95b51e76311c94473)
a87f559f13ebd0861c0dfbb95b51e76311c94473 22-Mar-2016 Yi Kong <yikong@google.com> Wire up SocketTagger

Tag all socket, accept and close calls.

Bug: 27291269
Bug: 27549426
Change-Id: I7c2edd0530306111765b900bd705532302d9b597
ea267d691a675eee2c7061a8bbde682e832c5b29 18-Mar-2016 Narayan Kamath <narayan@google.com> Inet6Address: Remove special handling for ll addresses with no scope_id set.

If a scope_id is specified, use it. If no scope_id is specified, don't
try and figure it out from the main routing table.

bug: 26787010

(cherry picked from commit 37980c1a826a1eb83b2c825d533c70c7d041e054)

Change-Id: I89c016d024af07eadffb7a6ac9eddad3a0a357d5
37980c1a826a1eb83b2c825d533c70c7d041e054 18-Mar-2016 Narayan Kamath <narayan@google.com> Inet6Address: Remove special handling for ll addresses with no scope_id set.

If a scope_id is specified, use it. If no scope_id is specified, don't
try and figure it out from the main routing table.

bug: 26787010
Change-Id: I8298297f4f3478426003e7267bd505959bfab097
584dcce7e556cc197e91edd1007ef0910e4c1731 28-Feb-2016 Yi Kong <yikong@google.com> Add destructor to clean up net_util_md static references

net_util_md has loRoutes and localIfs that are never freed after
initialization. We need to clean them up in destructor to avoid
leaking memory when the library is unloaded.

Bug: 27301951
Change-Id: Iab61ec945df261ec8e3cd5944c7be4cfbb6225da
(cherry picked from commit 55cf88a557325b05e27443c6ce28ed4d652bf471)
6786911a58e65bad88d08a0d1f8d32ab067edaa9 02-Mar-2016 George Burgess IV <gbiv@google.com> Cleanup uses of sprintf so we can deprecate it.

Change-Id: I54cb8b609e4d465a6a1e5b9d85fc85b7ef7efeae
55cf88a557325b05e27443c6ce28ed4d652bf471 28-Feb-2016 Yi Kong <yikong@google.com> Add destructor to clean up net_util_md static references

net_util_md has loRoutes and localIfs that are never freed after
initialization. We need to clean them up in destructor to avoid
leaking memory when the library is unloaded.

Bug: 27301951
Change-Id: Iab61ec945df261ec8e3cd5944c7be4cfbb6225da
d0860af7cc7e4d5c29fcccc97c66121b7c8cd226 17-Feb-2016 Przemyslaw Szczepaniak <pszczepaniak@google.com> Fix openJdk NET_Wait timeout calculation.

InetAddress#isReachable was badly calculating
timeout, it was always happening before the
requested time.

Bug: 27135405
Change-Id: Ib600654fb9c3935fd12b82416b6adfdb693d8c5e
ae218d9bdc8395ac0ed9278c86cff597915c2a7b 03-Jul-2015 Przemyslaw Szczepaniak <pszczepaniak@google.com> Further fixes for IPv6_support.

libcore.io.OsTest#test_byteBufferPositions_sendto_recvfrom
pass on vogar but fails on CTS run. I narrowed the issue
down to a failing socket call in IPv6_supported. EACCESS
was probably caused by missing internet permission?

Nonetheless, we can't disable IPv6 support because of this,
I commented out offending checks.

+restored JVM_FindLibraryEntry, needs corresponding art change
that implements JVM_FindLibraryEntry.

Change-Id: Ia02ad0db4fd413c1ebb4750064b453195472253a
9b7a4b3eb9a9a1d0a25416bd914cdd46109146c5 30-Jun-2015 Przemyslaw Szczepaniak <pszczepaniak@google.com> Fixes for libcore.OsTest

Added .equal/.hashCode for InetUnixAddress (Android
InetAddress provides working implementation of both,
OpenJdk expects that all subclass with have its own).

Fixes networking code to properly detect that
IPv6 is supported, and return IPv6 loopback address
in java.net.InetAddress.getLoopbackAddress().

Change-Id: I48e046c95357441d1d0c74f89968b7d8940b360c
ba7cc9f5357c323a1006119a20ce025fd4c57fd2 19-May-2015 Piotr Jastrzebski <haaawk@google.com> Rename FileDescriptor field.

fd -> descriptor.

Change-Id: I0b11214f45c5bc6ca6b9b8ab27d03b41055324ea
f7ab2bc37debba91864bfec6572a3e7bbe994c58 06-May-2015 Piotr Jastrzebski <haaawk@google.com> Use OpenJdk implementation of java.net.*

- Add FileURLConnection.
- NetworkUtilities : Update field names in JNI.
- Suppress a few libcore tests that rely on internal implementation
details.
- Remove code that loads the net library (not needed on android).
- DatagramSocket : Add setNetworkInterface method.
- HttpCookie : make parse & field public
- Inet4Address / Inet6Address : Add getAddressInternal.
- InetAddress : Add methods required by frameworks/base, particularly
those required to deal with net-ids and scope ids.
- URI : Add UriCodec static members for AUTHORITY_ENCODER and friends.
- URL : Add toUriLenient
- URLStreamHandler : Add a toExternalForm variant that optionally
escapes illegal chars.
- Inet4AddressImpl.c : Unconditionally define HAS_GLIBC_GETHOSTBY_R

Change-Id: Ic51f863941f5d954ed6cf86309cc610e711d54bd
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