Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(448)

Unified Diff: runtime/bin/socket.h

Issue 85993002: Add UDP support to dart:io (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Fix Windows build Created 7 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « runtime/bin/isolate_data.h ('k') | runtime/bin/socket.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: runtime/bin/socket.h
diff --git a/runtime/bin/socket.h b/runtime/bin/socket.h
index d4ae826072126a0cba5b6ae37190116fdd822544..0c009b08e02f9fc79de33fd804f86be4d8764783 100644
--- a/runtime/bin/socket.h
+++ b/runtime/bin/socket.h
@@ -65,6 +65,7 @@ class SocketAddress {
const RawAddr& addr() const { return addr_; }
static intptr_t GetAddrLength(const RawAddr* addr) {
+ ASSERT(addr->ss.ss_family == AF_INET || addr->ss.ss_family == AF_INET6);
return addr->ss.ss_family == AF_INET6 ?
sizeof(struct sockaddr_in6) : sizeof(struct sockaddr_in);
}
@@ -170,10 +171,16 @@ class Socket {
static intptr_t Available(intptr_t fd);
static int Read(intptr_t fd, void* buffer, intptr_t num_bytes);
static int Write(intptr_t fd, const void* buffer, intptr_t num_bytes);
+ static int SendTo(
+ intptr_t fd, const void* buffer, intptr_t num_bytes, RawAddr addr);
+ static int RecvFrom(
+ intptr_t fd, void* buffer, intptr_t num_bytes, RawAddr* addr);
static intptr_t Create(RawAddr addr);
static intptr_t Connect(intptr_t fd, RawAddr addr, const intptr_t port);
static intptr_t CreateConnect(RawAddr addr,
const intptr_t port);
+ static intptr_t CreateBindDatagram(
+ RawAddr* addr, intptr_t port, bool reuseAddress);
static intptr_t GetPort(intptr_t fd);
static SocketAddress* GetRemotePeer(intptr_t fd, intptr_t* port);
static void GetError(intptr_t fd, OSError* os_error);
@@ -182,18 +189,31 @@ class Socket {
static void Close(intptr_t fd);
static bool SetNonBlocking(intptr_t fd);
static bool SetBlocking(intptr_t fd);
+ static bool GetNoDelay(intptr_t fd, bool* enabled);
static bool SetNoDelay(intptr_t fd, bool enabled);
+ static bool GetMulticastLoop(intptr_t fd, intptr_t protocol, bool* enabled);
+ static bool SetMulticastLoop(intptr_t fd, intptr_t protocol, bool enabled);
+ static bool GetMulticastHops(intptr_t fd, intptr_t protocol, int* value);
+ static bool SetMulticastHops(intptr_t fd, intptr_t protocol, int value);
+ static bool GetBroadcast(intptr_t fd, bool* value);
+ static bool SetBroadcast(intptr_t fd, bool value);
+ static bool JoinMulticast(
+ intptr_t fd, RawAddr* addr, RawAddr* interface, int interfaceIndex);
+ static bool LeaveMulticast(
+ intptr_t fd, RawAddr* addr, RawAddr* interface, int interfaceIndex);
// Perform a hostname lookup. Returns a AddressList of SocketAddress's.
static AddressList<SocketAddress>* LookupAddress(const char* host,
int type,
OSError** os_error);
+
static bool ReverseLookup(RawAddr addr,
char* host,
intptr_t host_len,
OSError** os_error);
static bool ParseAddress(int type, const char* address, RawAddr* addr);
+ static bool FormatNumericAddress(RawAddr* addr, char* address, int len);
// List interfaces. Returns a AddressList of InterfaceSocketAddress's.
static AddressList<InterfaceSocketAddress>* ListInterfaces(
« no previous file with comments | « runtime/bin/isolate_data.h ('k') | runtime/bin/socket.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698