diff options
-rw-r--r-- | content/browser/renderer_host/pepper_message_filter.cc | 26 | ||||
-rw-r--r-- | ppapi/api/private/ppb_flash_net_address.idl | 61 | ||||
-rw-r--r-- | ppapi/api/private/ppb_flash_tcp_socket.idl | 10 | ||||
-rw-r--r-- | ppapi/c/private/ppb_flash_net_address.h | 85 | ||||
-rw-r--r-- | ppapi/c/private/ppb_flash_tcp_socket.h | 19 | ||||
-rw-r--r-- | ppapi/c/private/ppb_flash_udp_socket.h | 4 | ||||
-rw-r--r-- | ppapi/cpp/private/flash_net_address.cc | 81 | ||||
-rw-r--r-- | ppapi/cpp/private/flash_net_address.h | 38 | ||||
-rw-r--r-- | ppapi/ppapi_shared.gypi | 2 | ||||
-rw-r--r-- | ppapi/proxy/interface_list.cc | 1 | ||||
-rw-r--r-- | ppapi/shared_impl/private/DEPS | 3 | ||||
-rw-r--r-- | ppapi/shared_impl/private/flash_net_address_impl.cc | 175 | ||||
-rw-r--r-- | ppapi/shared_impl/private/flash_net_address_impl.h | 25 | ||||
-rw-r--r-- | ppapi/thunk/interfaces_ppb_private.h | 1 |
14 files changed, 50 insertions, 481 deletions
diff --git a/content/browser/renderer_host/pepper_message_filter.cc b/content/browser/renderer_host/pepper_message_filter.cc index 3a37d80..a04162f 100644 --- a/content/browser/renderer_host/pepper_message_filter.cc +++ b/content/browser/renderer_host/pepper_message_filter.cc @@ -43,7 +43,6 @@ #include "ppapi/c/private/ppb_flash_net_connector.h" #include "ppapi/proxy/ppapi_messages.h" #include "ppapi/proxy/ppb_flash_tcp_socket_proxy.h" -#include "ppapi/shared_impl/private/flash_net_address_impl.h" #include "webkit/plugins/ppapi/ppb_flash_net_connector_impl.h" #if defined(ENABLE_FLAPPER_HACKS) @@ -55,7 +54,25 @@ using content::BrowserThread; namespace { -// TODO(viettrungluu): Move (some of) these to flash_net_address_impl.h. +bool ValidateNetAddress(const PP_Flash_NetAddress& addr) { + if (addr.size < sizeof(reinterpret_cast<sockaddr*>(0)->sa_family)) + return false; + + // TODO(viettrungluu): more careful validation? + // Just do a size check for AF_INET. + if (reinterpret_cast<const sockaddr*>(addr.data)->sa_family == AF_INET && + addr.size >= sizeof(sockaddr_in)) + return true; + + // Ditto for AF_INET6. + if (reinterpret_cast<const sockaddr*>(addr.data)->sa_family == AF_INET6 && + addr.size >= sizeof(sockaddr_in6)) + return true; + + // Reject everything else. + return false; +} + bool SockaddrToNetAddress(const sockaddr* sa, socklen_t sa_length, PP_Flash_NetAddress* net_addr) { @@ -88,8 +105,7 @@ bool AddressListToNetAddress(const net::AddressList& address_list, bool NetAddressToIPEndPoint(const PP_Flash_NetAddress& net_addr, net::IPEndPoint* ip_end_point) { - if (!ip_end_point || - !ppapi::FlashNetAddressImpl::ValidateNetAddress(net_addr)) + if (!ip_end_point || !ValidateNetAddress(net_addr)) return false; if (!ip_end_point->FromSockAddr( @@ -1089,7 +1105,7 @@ void PepperMessageFilter::OnConnectTcpAddress(int routing_id, // Validate the address and then continue (doing |connect()|) on a worker // thread. - if (!ppapi::FlashNetAddressImpl::ValidateNetAddress(addr) || + if (!ValidateNetAddress(addr) || !base::WorkerPool::PostTask(FROM_HERE, NewRunnableMethod( this, diff --git a/ppapi/api/private/ppb_flash_net_address.idl b/ppapi/api/private/ppb_flash_net_address.idl deleted file mode 100644 index 012c024..0000000 --- a/ppapi/api/private/ppb_flash_net_address.idl +++ /dev/null @@ -1,61 +0,0 @@ -/* Copyright (c) 2011 The Chromium Authors. All rights reserved. - * Use of this source code is governed by a BSD-style license that can be - * found in the LICENSE file. - */ - -/** - * This file defines the <code>PPB_Flash_NetAddress</code> interface. - */ - -label Chrome { - M17 = 0.1 -}; - -/** - * This is an opaque type holding a network address. - */ -[assert_size(132)] -struct PP_Flash_NetAddress { - uint32_t size; - char[128] data; -}; - -/** - * The <code>PPB_Flash_NetAddress</code> interface provides operations on - * network addresses. - */ -interface PPB_Flash_NetAddress { - /** - * Returns PP_TRUE if the two addresses are equal (host and port). - */ - PP_Bool AreEqual([in] PP_Flash_NetAddress addr1, - [in] PP_Flash_NetAddress addr2); - - /** - * Returns PP_TRUE if the two addresses refer to the same host. - */ - PP_Bool AreHostsEqual([in] PP_Flash_NetAddress addr1, - [in] PP_Flash_NetAddress addr2); - - /** - * Returns a human-readable description of the network address, optionally - * including the port (e.g., "192.168.0.1", "192.168.0.1:99", or "[::1]:80"), - * or an undefined var on failure. - */ - PP_Var Describe([in] PP_Module module, - [in] PP_Flash_NetAddress addr, - [in] PP_Bool include_port); - - /** - * Replaces the port in the given source address. Returns PP_TRUE on success. - */ - PP_Bool ReplacePort([in] PP_Flash_NetAddress src_addr, - [in] uint16_t port, - [out] PP_Flash_NetAddress dest_addr); - - /** - * Gets the "any" address (for IPv4 or IPv6); for use with UDP Bind. - */ - void GetAnyAddress([in] PP_Bool is_ipv6, - [out] PP_Flash_NetAddress addr); -}; diff --git a/ppapi/api/private/ppb_flash_tcp_socket.idl b/ppapi/api/private/ppb_flash_tcp_socket.idl index e832809..7a8c4ca 100644 --- a/ppapi/api/private/ppb_flash_tcp_socket.idl +++ b/ppapi/api/private/ppb_flash_tcp_socket.idl @@ -12,6 +12,15 @@ label Chrome { }; /** + * This is an opaque type holding a network address. + */ +[assert_size(132)] +struct PP_Flash_NetAddress { + uint32_t size; + char[128] data; +}; + +/** * The <code>PPB_Flash_TCPSocket</code> interface provides TCP socket * operations. */ @@ -112,3 +121,4 @@ interface PPB_Flash_TCPSocket { */ void Disconnect([in] PP_Resource tcp_socket); }; + diff --git a/ppapi/c/private/ppb_flash_net_address.h b/ppapi/c/private/ppb_flash_net_address.h deleted file mode 100644 index 20b2ac9..0000000 --- a/ppapi/c/private/ppb_flash_net_address.h +++ /dev/null @@ -1,85 +0,0 @@ -/* Copyright (c) 2011 The Chromium Authors. All rights reserved. - * Use of this source code is governed by a BSD-style license that can be - * found in the LICENSE file. - */ - -/* From private/ppb_flash_net_address.idl modified Fri Nov 4 12:47:53 2011. */ - -#ifndef PPAPI_C_PRIVATE_PPB_FLASH_NET_ADDRESS_H_ -#define PPAPI_C_PRIVATE_PPB_FLASH_NET_ADDRESS_H_ - -#include "ppapi/c/pp_bool.h" -#include "ppapi/c/pp_macros.h" -#include "ppapi/c/pp_module.h" -#include "ppapi/c/pp_stdint.h" -#include "ppapi/c/pp_var.h" - -#define PPB_FLASH_NETADDRESS_INTERFACE_0_1 "PPB_Flash_NetAddress;0.1" -#define PPB_FLASH_NETADDRESS_INTERFACE PPB_FLASH_NETADDRESS_INTERFACE_0_1 - -/** - * @file - * This file defines the <code>PPB_Flash_NetAddress</code> interface. - */ - - -/** - * @addtogroup Structs - * @{ - */ -/** - * This is an opaque type holding a network address. - */ -struct PP_Flash_NetAddress { - uint32_t size; - char data[128]; -}; -PP_COMPILE_ASSERT_STRUCT_SIZE_IN_BYTES(PP_Flash_NetAddress, 132); -/** - * @} - */ - -/** - * @addtogroup Interfaces - * @{ - */ -/** - * The <code>PPB_Flash_NetAddress</code> interface provides operations on - * network addresses. - */ -struct PPB_Flash_NetAddress { - /** - * Returns PP_TRUE if the two addresses are equal (host and port). - */ - PP_Bool (*AreEqual)(const struct PP_Flash_NetAddress* addr1, - const struct PP_Flash_NetAddress* addr2); - /** - * Returns PP_TRUE if the two addresses refer to the same host. - */ - PP_Bool (*AreHostsEqual)(const struct PP_Flash_NetAddress* addr1, - const struct PP_Flash_NetAddress* addr2); - /** - * Returns a human-readable description of the network address, optionally - * including the port (e.g., "192.168.0.1", "192.168.0.1:99", or "[::1]:80"), - * or an undefined var on failure. - */ - struct PP_Var (*Describe)(PP_Module module, - const struct PP_Flash_NetAddress* addr, - PP_Bool include_port); - /** - * Replaces the port in the given source address. Returns PP_TRUE on success. - */ - PP_Bool (*ReplacePort)(const struct PP_Flash_NetAddress* src_addr, - uint16_t port, - struct PP_Flash_NetAddress* dest_addr); - /** - * Gets the "any" address (for IPv4 or IPv6); for use with UDP Bind. - */ - void (*GetAnyAddress)(PP_Bool is_ipv6, struct PP_Flash_NetAddress* addr); -}; -/** - * @} - */ - -#endif /* PPAPI_C_PRIVATE_PPB_FLASH_NET_ADDRESS_H_ */ - diff --git a/ppapi/c/private/ppb_flash_tcp_socket.h b/ppapi/c/private/ppb_flash_tcp_socket.h index cf75df9..0cad5bc 100644 --- a/ppapi/c/private/ppb_flash_tcp_socket.h +++ b/ppapi/c/private/ppb_flash_tcp_socket.h @@ -3,7 +3,7 @@ * found in the LICENSE file. */ -/* From private/ppb_flash_tcp_socket.idl modified Mon Oct 17 16:09:17 2011. */ +/* From private/ppb_flash_tcp_socket.idl modified Fri Sep 23 17:09:42 2011. */ #ifndef PPAPI_C_PRIVATE_PPB_FLASH_TCP_SOCKET_H_ #define PPAPI_C_PRIVATE_PPB_FLASH_TCP_SOCKET_H_ @@ -14,7 +14,6 @@ #include "ppapi/c/pp_macros.h" #include "ppapi/c/pp_resource.h" #include "ppapi/c/pp_stdint.h" -#include "ppapi/c/private/ppb_flash_net_address.h" #define PPB_FLASH_TCPSOCKET_INTERFACE_0_2 "PPB_Flash_TCPSocket;0.2" #define PPB_FLASH_TCPSOCKET_INTERFACE PPB_FLASH_TCPSOCKET_INTERFACE_0_2 @@ -26,6 +25,22 @@ /** + * @addtogroup Structs + * @{ + */ +/** + * This is an opaque type holding a network address. + */ +struct PP_Flash_NetAddress { + uint32_t size; + char data[128]; +}; +PP_COMPILE_ASSERT_STRUCT_SIZE_IN_BYTES(PP_Flash_NetAddress, 132); +/** + * @} + */ + +/** * @addtogroup Interfaces * @{ */ diff --git a/ppapi/c/private/ppb_flash_udp_socket.h b/ppapi/c/private/ppb_flash_udp_socket.h index b7fc66e..0909363 100644 --- a/ppapi/c/private/ppb_flash_udp_socket.h +++ b/ppapi/c/private/ppb_flash_udp_socket.h @@ -3,7 +3,7 @@ * found in the LICENSE file. */ -/* From private/ppb_flash_udp_socket.idl modified Mon Oct 17 15:55:01 2011. */ +/* From ppb_flash_udp_socket.idl modified Mon Sep 26 09:04:41 2011. */ #ifndef PPAPI_C_PRIVATE_PPB_FLASH_UDP_SOCKET_H_ #define PPAPI_C_PRIVATE_PPB_FLASH_UDP_SOCKET_H_ @@ -14,7 +14,7 @@ #include "ppapi/c/pp_macros.h" #include "ppapi/c/pp_resource.h" #include "ppapi/c/pp_stdint.h" -#include "ppapi/c/private/ppb_flash_net_address.h" +#include "ppapi/c/private/ppb_flash_tcp_socket.h" #define PPB_FLASH_UDPSOCKET_INTERFACE_0_1 "PPB_Flash_UDPSocket;0.1" #define PPB_FLASH_UDPSOCKET_INTERFACE PPB_FLASH_UDPSOCKET_INTERFACE_0_1 diff --git a/ppapi/cpp/private/flash_net_address.cc b/ppapi/cpp/private/flash_net_address.cc deleted file mode 100644 index 93984d7..0000000 --- a/ppapi/cpp/private/flash_net_address.cc +++ /dev/null @@ -1,81 +0,0 @@ -// Copyright (c) 2011 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -// TODO(viettrungluu): See the comment in corresponding .h file. - -#include "ppapi/cpp/private/flash_net_address.h" - -#include "ppapi/c/pp_bool.h" -#include "ppapi/cpp/module.h" -#include "ppapi/cpp/module_impl.h" -#include "ppapi/cpp/var.h" -#include "ppapi/c/private/ppb_flash_net_address.h" - -namespace pp { - -namespace { - -template <> const char* interface_name<PPB_Flash_NetAddress>() { - return PPB_FLASH_NETADDRESS_INTERFACE; -} - -} // namespace - -namespace flash { - -// static -bool NetAddress::AreEqual(const PP_Flash_NetAddress& addr1, - const PP_Flash_NetAddress& addr2) { - if (!has_interface<PPB_Flash_NetAddress>()) - return false; - return !!get_interface<PPB_Flash_NetAddress>()->AreEqual(&addr1, &addr2); -} - -// static -bool NetAddress::AreHostsEqual(const PP_Flash_NetAddress& addr1, - const PP_Flash_NetAddress& addr2) { - if (!has_interface<PPB_Flash_NetAddress>()) - return false; - return !!get_interface<PPB_Flash_NetAddress>()->AreHostsEqual(&addr1, &addr2); -} - -// static -std::string NetAddress::Describe(const PP_Flash_NetAddress& addr, - bool include_port) { - if (!has_interface<PPB_Flash_NetAddress>()) - return std::string(); - - Module* module = Module::Get(); - if (!module) - return std::string(); - - Var result(Var::PassRef(), - get_interface<PPB_Flash_NetAddress>()->Describe( - module->pp_module(), - &addr, - PP_FromBool(include_port))); - return result.is_string() ? result.AsString() : std::string(); -} - -// static -bool NetAddress::ReplacePort(const PP_Flash_NetAddress& addr_in, - uint16_t port, - PP_Flash_NetAddress* addr_out) { - if (!has_interface<PPB_Flash_NetAddress>()) - return false; - return !!get_interface<PPB_Flash_NetAddress>()->ReplacePort(&addr_in, - port, - addr_out); -} - -// static -void NetAddress::GetAnyAddress(bool is_ipv6, PP_Flash_NetAddress* addr) { - if (!has_interface<PPB_Flash_NetAddress>()) - return; - get_interface<PPB_Flash_NetAddress>()->GetAnyAddress(PP_FromBool(is_ipv6), - addr); -} - -} // namespace flash -} // namespace pp diff --git a/ppapi/cpp/private/flash_net_address.h b/ppapi/cpp/private/flash_net_address.h deleted file mode 100644 index f08cb52..0000000 --- a/ppapi/cpp/private/flash_net_address.h +++ /dev/null @@ -1,38 +0,0 @@ -// Copyright (c) 2011 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -// TODO(viettrungluu): This (and the .cc file) contain C++ wrappers for things -// in ppapi/c/private/ppb_flash_net_address.h. This is currently not used in -// (or even compiled with) Chromium. - -#ifndef PPAPI_CPP_PRIVATE_FLASH_NET_ADDRESS_H_ -#define PPAPI_CPP_PRIVATE_FLASH_NET_ADDRESS_H_ - -#include <string> - -#include "ppapi/c/pp_stdint.h" - -struct PP_Flash_NetAddress; - -namespace pp { -namespace flash { - -class NetAddress { - public: - static bool AreEqual(const PP_Flash_NetAddress& addr1, - const PP_Flash_NetAddress& addr2); - static bool AreHostsEqual(const PP_Flash_NetAddress& addr1, - const PP_Flash_NetAddress& addr2); - static std::string Describe(const PP_Flash_NetAddress& addr, - bool include_port); - static bool ReplacePort(const PP_Flash_NetAddress& addr_in, - uint16_t port, - PP_Flash_NetAddress* addr_out); - static void GetAnyAddress(bool is_ipv6, PP_Flash_NetAddress* addr); -}; - -} // namespace flash -} // namespace pp - -#endif // PPAPI_CPP_PRIVATE_FLASH_NET_ADDRESS_H_ diff --git a/ppapi/ppapi_shared.gypi b/ppapi/ppapi_shared.gypi index 155a49f..ad855d9 100644 --- a/ppapi/ppapi_shared.gypi +++ b/ppapi/ppapi_shared.gypi @@ -62,8 +62,6 @@ 'shared_impl/ppapi_preferences.h', 'shared_impl/ppp_instance_combined.cc', 'shared_impl/ppp_instance_combined.h', - # TODO(viettrungluu): Split this out; it won't be used in NaCl. - 'shared_impl/private/flash_net_address_impl.cc', 'shared_impl/proxy_lock.cc', 'shared_impl/proxy_lock.h', 'shared_impl/resource.cc', diff --git a/ppapi/proxy/interface_list.cc b/ppapi/proxy/interface_list.cc index 269aa6e..a11e778 100644 --- a/ppapi/proxy/interface_list.cc +++ b/ppapi/proxy/interface_list.cc @@ -46,7 +46,6 @@ #include "ppapi/c/private/ppb_flash_file.h" #include "ppapi/c/private/ppb_flash_fullscreen.h" #include "ppapi/c/private/ppb_flash_menu.h" -#include "ppapi/c/private/ppb_flash_net_address.h" #include "ppapi/c/private/ppb_flash_net_connector.h" #include "ppapi/c/private/ppb_flash_tcp_socket.h" #include "ppapi/c/private/ppb_flash_udp_socket.h" diff --git a/ppapi/shared_impl/private/DEPS b/ppapi/shared_impl/private/DEPS deleted file mode 100644 index 6a2f02e..0000000 --- a/ppapi/shared_impl/private/DEPS +++ /dev/null @@ -1,3 +0,0 @@ -include_rules = [ - "+net/base", -] diff --git a/ppapi/shared_impl/private/flash_net_address_impl.cc b/ppapi/shared_impl/private/flash_net_address_impl.cc deleted file mode 100644 index 0fd0d0fb..0000000 --- a/ppapi/shared_impl/private/flash_net_address_impl.cc +++ /dev/null @@ -1,175 +0,0 @@ -// Copyright (c) 2011 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#include "ppapi/shared_impl/private/flash_net_address_impl.h" - -#include <string.h> - -#include <string> - -#include "base/basictypes.h" -#include "build/build_config.h" -#include "net/base/net_util.h" -#include "net/base/sys_addrinfo.h" -#include "net/base/sys_byteorder.h" -#include "ppapi/c/pp_var.h" -#include "ppapi/c/private/ppb_flash_net_address.h" -#include "ppapi/shared_impl/var.h" -#include "ppapi/thunk/thunk.h" - -// The Flash net address interface doesn't have a normal C -> C++ thunk since it -// doesn't actually have any proxy wrapping or associated objects; it's just a -// call into base. So we implement the entire interface here, using the thunk -// namespace so it magically gets hooked up in the proper places. - -namespace ppapi { - -namespace { - -#if defined(OS_WIN) -// The type of |sockaddr::sa_family|. -typedef ADDRESS_FAMILY sa_family_t; -#endif - -inline sa_family_t GetFamily(const PP_Flash_NetAddress& addr) { - return reinterpret_cast<const sockaddr*>(addr.data)->sa_family; -} - -PP_Bool AreHostsEqual(const PP_Flash_NetAddress* addr1, - const PP_Flash_NetAddress* addr2) { - if (!FlashNetAddressImpl::ValidateNetAddress(*addr1) || - !FlashNetAddressImpl::ValidateNetAddress(*addr2)) - return PP_FALSE; - - if (GetFamily(*addr1) != GetFamily(*addr2)) - return PP_FALSE; - - if (GetFamily(*addr1) == AF_INET) { - const sockaddr_in* a1 = reinterpret_cast<const sockaddr_in*>(addr1->data); - const sockaddr_in* a2 = reinterpret_cast<const sockaddr_in*>(addr2->data); - return PP_FromBool(a1->sin_addr.s_addr == a2->sin_addr.s_addr); - } - - if (GetFamily(*addr1) == AF_INET6) { - const sockaddr_in6* a1 = reinterpret_cast<const sockaddr_in6*>(addr1->data); - const sockaddr_in6* a2 = reinterpret_cast<const sockaddr_in6*>(addr2->data); - return PP_FromBool(a1->sin6_flowinfo == a2->sin6_flowinfo && - memcmp(&a1->sin6_addr, &a2->sin6_addr, - sizeof(a1->sin6_addr)) == 0 && - a1->sin6_scope_id == a2->sin6_scope_id); - } - - return PP_FALSE; -} - -PP_Bool AreEqual(const PP_Flash_NetAddress* addr1, - const PP_Flash_NetAddress* addr2) { - // |AreHostsEqual()| will also validate the addresses and return false if - // either is invalid. - if (!AreHostsEqual(addr1, addr2)) - return PP_FALSE; - - // Note: Here, we know that |addr1| and |addr2| have the same family. - if (GetFamily(*addr1) == AF_INET) { - const sockaddr_in* a1 = reinterpret_cast<const sockaddr_in*>(addr1->data); - const sockaddr_in* a2 = reinterpret_cast<const sockaddr_in*>(addr2->data); - return PP_FromBool(a1->sin_port == a2->sin_port); - } - - if (GetFamily(*addr1) == AF_INET6) { - const sockaddr_in6* a1 = reinterpret_cast<const sockaddr_in6*>(addr1->data); - const sockaddr_in6* a2 = reinterpret_cast<const sockaddr_in6*>(addr2->data); - return PP_FromBool(a1->sin6_port == a2->sin6_port); - } - - return PP_FALSE; -} - -PP_Var Describe(PP_Module module, - const struct PP_Flash_NetAddress* addr, - PP_Bool include_port) { - if (!FlashNetAddressImpl::ValidateNetAddress(*addr)) - return PP_MakeUndefined(); - - const sockaddr* a = reinterpret_cast<const sockaddr*>(addr->data); - socklen_t l = addr->size; - std::string description = - include_port ? net::NetAddressToStringWithPort(a, l) : - net::NetAddressToString(a, l); - return StringVar::StringToPPVar(module, description); -} - -PP_Bool ReplacePort(const struct PP_Flash_NetAddress* src_addr, - uint16_t port, - struct PP_Flash_NetAddress* dest_addr) { - if (!FlashNetAddressImpl::ValidateNetAddress(*src_addr)) - return PP_FALSE; - - if (GetFamily(*src_addr) == AF_INET) { - memmove(dest_addr, src_addr, sizeof(*src_addr)); - reinterpret_cast<sockaddr_in*>(dest_addr->data)->sin_port = htons(port); - return PP_TRUE; - } - - if (GetFamily(*src_addr) == AF_INET6) { - memmove(dest_addr, src_addr, sizeof(*src_addr)); - reinterpret_cast<sockaddr_in6*>(dest_addr->data)->sin6_port = htons(port); - return PP_TRUE; - } - - return PP_FALSE; -} - -void GetAnyAddress(PP_Bool is_ipv6, struct PP_Flash_NetAddress* addr) { - memset(addr->data, 0, arraysize(addr->data) * sizeof(addr->data[0])); - if (is_ipv6) { - sockaddr_in6* a = reinterpret_cast<sockaddr_in6*>(addr->data); - addr->size = sizeof(*a); - a->sin6_family = AF_INET6; - a->sin6_addr = in6addr_any; - } else { - sockaddr_in* a = reinterpret_cast<sockaddr_in*>(addr->data); - addr->size = sizeof(*a); - a->sin_family = AF_INET; - a->sin_addr.s_addr = INADDR_ANY; - } -} - -const PPB_Flash_NetAddress flash_net_address_interface = { - &AreEqual, - &AreHostsEqual, - &Describe, - &ReplacePort, - &GetAnyAddress -}; - -} // namespace - -namespace thunk { - -PPAPI_THUNK_EXPORT const PPB_Flash_NetAddress* GetPPB_Flash_NetAddress_Thunk() { - return &flash_net_address_interface; -} - -} // namespace thunk - -// static -bool FlashNetAddressImpl::ValidateNetAddress(const PP_Flash_NetAddress& addr) { - if (addr.size < sizeof(reinterpret_cast<sockaddr*>(0)->sa_family)) - return false; - - // TODO(viettrungluu): more careful validation? - // Just do a size check for AF_INET. - if (GetFamily(addr) == AF_INET && addr.size >= sizeof(sockaddr_in)) - return true; - - // Ditto for AF_INET6. - if (GetFamily(addr) == AF_INET6 && addr.size >= sizeof(sockaddr_in6)) - return true; - - // Reject everything else. - return false; -} - -} // namespace ppapi diff --git a/ppapi/shared_impl/private/flash_net_address_impl.h b/ppapi/shared_impl/private/flash_net_address_impl.h deleted file mode 100644 index 6c070af..0000000 --- a/ppapi/shared_impl/private/flash_net_address_impl.h +++ /dev/null @@ -1,25 +0,0 @@ -// Copyright (c) 2011 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#ifndef PPAPI_SHARED_IMPL_PRIVATE_FLASH_NET_ADDRESS_IMPL_H_ -#define PPAPI_SHARED_IMPL_PRIVATE_FLASH_NET_ADDRESS_IMPL_H_ - -#include "base/basictypes.h" -#include "ppapi/shared_impl/ppapi_shared_export.h" - -struct PP_Flash_NetAddress; - -namespace ppapi { - -class PPAPI_SHARED_EXPORT FlashNetAddressImpl { - public: - static bool ValidateNetAddress(const PP_Flash_NetAddress& addr); - - private: - DISALLOW_IMPLICIT_CONSTRUCTORS(FlashNetAddressImpl); -}; - -} // namespace ppapi - -#endif // PPAPI_SHARED_IMPL_PRIVATE_FLASH_NET_ADDRESS_IMPL_H_ diff --git a/ppapi/thunk/interfaces_ppb_private.h b/ppapi/thunk/interfaces_ppb_private.h index f6d5397..2631552 100644 --- a/ppapi/thunk/interfaces_ppb_private.h +++ b/ppapi/thunk/interfaces_ppb_private.h @@ -11,7 +11,6 @@ PROXIED_API(PPB_Broker) PROXIED_IFACE(PPB_Broker, PPB_BROKER_TRUSTED_INTERFACE_0_2, PPB_BrokerTrusted) PROXIED_IFACE(PPB_Instance, PPB_FLASHFULLSCREEN_INTERFACE, PPB_FlashFullscreen) -PROXIED_IFACE(NoAPIName, PPB_FLASH_NETADDRESS_INTERFACE, PPB_Flash_NetAddress) // Map the old fullscreen interface string to the Flash one, which is the same // at the ABI level. TODO(polina): remove this when Flash is updated. PROXIED_IFACE(PPB_Instance, PPB_FULLSCREEN_DEV_INTERFACE_0_4, |