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

Side by Side Diff: runtime/bin/socket_base.cc

Issue 2974233002: VM: Re-format to use at most one newline between functions (Closed)
Patch Set: Rebase and merge Created 3 years, 5 months 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 unified diff | Download patch
« no previous file with comments | « runtime/bin/socket_android.cc ('k') | runtime/bin/socket_base_android.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2017, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2017, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a 2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file. 3 // BSD-style license that can be found in the LICENSE file.
4 4
5 #if !defined(DART_IO_DISABLED) 5 #if !defined(DART_IO_DISABLED)
6 6
7 #include "bin/socket_base.h" 7 #include "bin/socket_base.h"
8 8
9 #include "bin/dartutils.h" 9 #include "bin/dartutils.h"
10 #include "bin/io_buffer.h" 10 #include "bin/io_buffer.h"
(...skipping 10 matching lines...) Expand all
21 namespace dart { 21 namespace dart {
22 namespace bin { 22 namespace bin {
23 23
24 int SocketAddress::GetType() { 24 int SocketAddress::GetType() {
25 if (addr_.ss.ss_family == AF_INET6) { 25 if (addr_.ss.ss_family == AF_INET6) {
26 return TYPE_IPV6; 26 return TYPE_IPV6;
27 } 27 }
28 return TYPE_IPV4; 28 return TYPE_IPV4;
29 } 29 }
30 30
31
32 intptr_t SocketAddress::GetAddrLength(const RawAddr& addr) { 31 intptr_t SocketAddress::GetAddrLength(const RawAddr& addr) {
33 ASSERT((addr.ss.ss_family == AF_INET) || (addr.ss.ss_family == AF_INET6)); 32 ASSERT((addr.ss.ss_family == AF_INET) || (addr.ss.ss_family == AF_INET6));
34 return (addr.ss.ss_family == AF_INET6) ? sizeof(struct sockaddr_in6) 33 return (addr.ss.ss_family == AF_INET6) ? sizeof(struct sockaddr_in6)
35 : sizeof(struct sockaddr_in); 34 : sizeof(struct sockaddr_in);
36 } 35 }
37 36
38
39 intptr_t SocketAddress::GetInAddrLength(const RawAddr& addr) { 37 intptr_t SocketAddress::GetInAddrLength(const RawAddr& addr) {
40 ASSERT((addr.ss.ss_family == AF_INET) || (addr.ss.ss_family == AF_INET6)); 38 ASSERT((addr.ss.ss_family == AF_INET) || (addr.ss.ss_family == AF_INET6));
41 return (addr.ss.ss_family == AF_INET6) ? sizeof(struct in6_addr) 39 return (addr.ss.ss_family == AF_INET6) ? sizeof(struct in6_addr)
42 : sizeof(struct in_addr); 40 : sizeof(struct in_addr);
43 } 41 }
44 42
45
46 bool SocketAddress::AreAddressesEqual(const RawAddr& a, const RawAddr& b) { 43 bool SocketAddress::AreAddressesEqual(const RawAddr& a, const RawAddr& b) {
47 if (a.ss.ss_family == AF_INET) { 44 if (a.ss.ss_family == AF_INET) {
48 if (b.ss.ss_family != AF_INET) { 45 if (b.ss.ss_family != AF_INET) {
49 return false; 46 return false;
50 } 47 }
51 return memcmp(&a.in.sin_addr, &b.in.sin_addr, sizeof(a.in.sin_addr)) == 0; 48 return memcmp(&a.in.sin_addr, &b.in.sin_addr, sizeof(a.in.sin_addr)) == 0;
52 } else if (a.ss.ss_family == AF_INET6) { 49 } else if (a.ss.ss_family == AF_INET6) {
53 if (b.ss.ss_family != AF_INET6) { 50 if (b.ss.ss_family != AF_INET6) {
54 return false; 51 return false;
55 } 52 }
56 return memcmp(&a.in6.sin6_addr, &b.in6.sin6_addr, 53 return memcmp(&a.in6.sin6_addr, &b.in6.sin6_addr,
57 sizeof(a.in6.sin6_addr)) == 0; 54 sizeof(a.in6.sin6_addr)) == 0;
58 } else { 55 } else {
59 UNREACHABLE(); 56 UNREACHABLE();
60 return false; 57 return false;
61 } 58 }
62 } 59 }
63 60
64
65 void SocketAddress::GetSockAddr(Dart_Handle obj, RawAddr* addr) { 61 void SocketAddress::GetSockAddr(Dart_Handle obj, RawAddr* addr) {
66 Dart_TypedData_Type data_type; 62 Dart_TypedData_Type data_type;
67 uint8_t* data = NULL; 63 uint8_t* data = NULL;
68 intptr_t len; 64 intptr_t len;
69 Dart_Handle result = Dart_TypedDataAcquireData( 65 Dart_Handle result = Dart_TypedDataAcquireData(
70 obj, &data_type, reinterpret_cast<void**>(&data), &len); 66 obj, &data_type, reinterpret_cast<void**>(&data), &len);
71 if (Dart_IsError(result)) { 67 if (Dart_IsError(result)) {
72 Dart_PropagateError(result); 68 Dart_PropagateError(result);
73 } 69 }
74 if ((data_type != Dart_TypedData_kUint8) || 70 if ((data_type != Dart_TypedData_kUint8) ||
75 ((len != sizeof(in_addr)) && (len != sizeof(in6_addr)))) { 71 ((len != sizeof(in_addr)) && (len != sizeof(in6_addr)))) {
76 Dart_PropagateError(Dart_NewApiError("Unexpected type for socket address")); 72 Dart_PropagateError(Dart_NewApiError("Unexpected type for socket address"));
77 } 73 }
78 memset(reinterpret_cast<void*>(addr), 0, sizeof(RawAddr)); 74 memset(reinterpret_cast<void*>(addr), 0, sizeof(RawAddr));
79 if (len == sizeof(in_addr)) { 75 if (len == sizeof(in_addr)) {
80 addr->in.sin_family = AF_INET; 76 addr->in.sin_family = AF_INET;
81 memmove(reinterpret_cast<void*>(&addr->in.sin_addr), data, len); 77 memmove(reinterpret_cast<void*>(&addr->in.sin_addr), data, len);
82 } else { 78 } else {
83 ASSERT(len == sizeof(in6_addr)); 79 ASSERT(len == sizeof(in6_addr));
84 addr->in6.sin6_family = AF_INET6; 80 addr->in6.sin6_family = AF_INET6;
85 memmove(reinterpret_cast<void*>(&addr->in6.sin6_addr), data, len); 81 memmove(reinterpret_cast<void*>(&addr->in6.sin6_addr), data, len);
86 } 82 }
87 Dart_TypedDataReleaseData(obj); 83 Dart_TypedDataReleaseData(obj);
88 } 84 }
89 85
90
91 int16_t SocketAddress::FromType(int type) { 86 int16_t SocketAddress::FromType(int type) {
92 if (type == TYPE_ANY) { 87 if (type == TYPE_ANY) {
93 return AF_UNSPEC; 88 return AF_UNSPEC;
94 } 89 }
95 if (type == TYPE_IPV4) { 90 if (type == TYPE_IPV4) {
96 return AF_INET; 91 return AF_INET;
97 } 92 }
98 ASSERT((type == TYPE_IPV6) && "Invalid type"); 93 ASSERT((type == TYPE_IPV6) && "Invalid type");
99 return AF_INET6; 94 return AF_INET6;
100 } 95 }
101 96
102
103 void SocketAddress::SetAddrPort(RawAddr* addr, intptr_t port) { 97 void SocketAddress::SetAddrPort(RawAddr* addr, intptr_t port) {
104 if (addr->ss.ss_family == AF_INET) { 98 if (addr->ss.ss_family == AF_INET) {
105 addr->in.sin_port = htons(port); 99 addr->in.sin_port = htons(port);
106 } else { 100 } else {
107 addr->in6.sin6_port = htons(port); 101 addr->in6.sin6_port = htons(port);
108 } 102 }
109 } 103 }
110 104
111
112 intptr_t SocketAddress::GetAddrPort(const RawAddr& addr) { 105 intptr_t SocketAddress::GetAddrPort(const RawAddr& addr) {
113 if (addr.ss.ss_family == AF_INET) { 106 if (addr.ss.ss_family == AF_INET) {
114 return ntohs(addr.in.sin_port); 107 return ntohs(addr.in.sin_port);
115 } else { 108 } else {
116 return ntohs(addr.in6.sin6_port); 109 return ntohs(addr.in6.sin6_port);
117 } 110 }
118 } 111 }
119 112
120
121 Dart_Handle SocketAddress::ToTypedData(const RawAddr& addr) { 113 Dart_Handle SocketAddress::ToTypedData(const RawAddr& addr) {
122 int len = GetInAddrLength(addr); 114 int len = GetInAddrLength(addr);
123 Dart_Handle result = Dart_NewTypedData(Dart_TypedData_kUint8, len); 115 Dart_Handle result = Dart_NewTypedData(Dart_TypedData_kUint8, len);
124 if (Dart_IsError(result)) { 116 if (Dart_IsError(result)) {
125 Dart_PropagateError(result); 117 Dart_PropagateError(result);
126 } 118 }
127 Dart_Handle err; 119 Dart_Handle err;
128 if (addr.addr.sa_family == AF_INET6) { 120 if (addr.addr.sa_family == AF_INET6) {
129 err = Dart_ListSetAsBytes( 121 err = Dart_ListSetAsBytes(
130 result, 0, reinterpret_cast<const uint8_t*>(&addr.in6.sin6_addr), len); 122 result, 0, reinterpret_cast<const uint8_t*>(&addr.in6.sin6_addr), len);
131 } else { 123 } else {
132 err = Dart_ListSetAsBytes( 124 err = Dart_ListSetAsBytes(
133 result, 0, reinterpret_cast<const uint8_t*>(&addr.in.sin_addr), len); 125 result, 0, reinterpret_cast<const uint8_t*>(&addr.in.sin_addr), len);
134 } 126 }
135 if (Dart_IsError(err)) { 127 if (Dart_IsError(err)) {
136 Dart_PropagateError(err); 128 Dart_PropagateError(err);
137 } 129 }
138 return result; 130 return result;
139 } 131 }
140 132
141
142 CObjectUint8Array* SocketAddress::ToCObject(const RawAddr& addr) { 133 CObjectUint8Array* SocketAddress::ToCObject(const RawAddr& addr) {
143 int in_addr_len = SocketAddress::GetInAddrLength(addr); 134 int in_addr_len = SocketAddress::GetInAddrLength(addr);
144 const void* in_addr; 135 const void* in_addr;
145 CObjectUint8Array* data = 136 CObjectUint8Array* data =
146 new CObjectUint8Array(CObject::NewUint8Array(in_addr_len)); 137 new CObjectUint8Array(CObject::NewUint8Array(in_addr_len));
147 if (addr.addr.sa_family == AF_INET6) { 138 if (addr.addr.sa_family == AF_INET6) {
148 in_addr = reinterpret_cast<const void*>(&addr.in6.sin6_addr); 139 in_addr = reinterpret_cast<const void*>(&addr.in6.sin6_addr);
149 } else { 140 } else {
150 in_addr = reinterpret_cast<const void*>(&addr.in.sin_addr); 141 in_addr = reinterpret_cast<const void*>(&addr.in.sin_addr);
151 } 142 }
152 memmove(data->Buffer(), in_addr, in_addr_len); 143 memmove(data->Buffer(), in_addr, in_addr_len);
153 return data; 144 return data;
154 } 145 }
155 146
156
157 void FUNCTION_NAME(InternetAddress_Parse)(Dart_NativeArguments args) { 147 void FUNCTION_NAME(InternetAddress_Parse)(Dart_NativeArguments args) {
158 const char* address = 148 const char* address =
159 DartUtils::GetStringValue(Dart_GetNativeArgument(args, 0)); 149 DartUtils::GetStringValue(Dart_GetNativeArgument(args, 0));
160 ASSERT(address != NULL); 150 ASSERT(address != NULL);
161 RawAddr raw; 151 RawAddr raw;
162 memset(&raw, 0, sizeof(raw)); 152 memset(&raw, 0, sizeof(raw));
163 int type = strchr(address, ':') == NULL ? SocketAddress::TYPE_IPV4 153 int type = strchr(address, ':') == NULL ? SocketAddress::TYPE_IPV4
164 : SocketAddress::TYPE_IPV6; 154 : SocketAddress::TYPE_IPV6;
165 if (type == SocketAddress::TYPE_IPV4) { 155 if (type == SocketAddress::TYPE_IPV4) {
166 raw.addr.sa_family = AF_INET; 156 raw.addr.sa_family = AF_INET;
167 } else { 157 } else {
168 raw.addr.sa_family = AF_INET6; 158 raw.addr.sa_family = AF_INET6;
169 } 159 }
170 bool ok = SocketBase::ParseAddress(type, address, &raw); 160 bool ok = SocketBase::ParseAddress(type, address, &raw);
171 if (!ok) { 161 if (!ok) {
172 Dart_SetReturnValue(args, Dart_Null()); 162 Dart_SetReturnValue(args, Dart_Null());
173 } else { 163 } else {
174 Dart_SetReturnValue(args, SocketAddress::ToTypedData(raw)); 164 Dart_SetReturnValue(args, SocketAddress::ToTypedData(raw));
175 } 165 }
176 } 166 }
177 167
178
179 void FUNCTION_NAME(NetworkInterface_ListSupported)(Dart_NativeArguments args) { 168 void FUNCTION_NAME(NetworkInterface_ListSupported)(Dart_NativeArguments args) {
180 Dart_SetReturnValue(args, 169 Dart_SetReturnValue(args,
181 Dart_NewBoolean(SocketBase::ListInterfacesSupported())); 170 Dart_NewBoolean(SocketBase::ListInterfacesSupported()));
182 } 171 }
183 172
184
185 void FUNCTION_NAME(SocketBase_IsBindError)(Dart_NativeArguments args) { 173 void FUNCTION_NAME(SocketBase_IsBindError)(Dart_NativeArguments args) {
186 intptr_t error_number = 174 intptr_t error_number =
187 DartUtils::GetIntptrValue(Dart_GetNativeArgument(args, 1)); 175 DartUtils::GetIntptrValue(Dart_GetNativeArgument(args, 1));
188 bool is_bind_error = SocketBase::IsBindError(error_number); 176 bool is_bind_error = SocketBase::IsBindError(error_number);
189 Dart_SetReturnValue(args, is_bind_error ? Dart_True() : Dart_False()); 177 Dart_SetReturnValue(args, is_bind_error ? Dart_True() : Dart_False());
190 } 178 }
191 179
192 } // namespace bin 180 } // namespace bin
193 } // namespace dart 181 } // namespace dart
194 182
195 #endif // !defined(DART_IO_DISABLED) 183 #endif // !defined(DART_IO_DISABLED)
OLDNEW
« no previous file with comments | « runtime/bin/socket_android.cc ('k') | runtime/bin/socket_base_android.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698