OLD | NEW |
1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2013, 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 #ifndef BIN_SOCKET_H_ | 5 #ifndef BIN_SOCKET_H_ |
6 #define BIN_SOCKET_H_ | 6 #define BIN_SOCKET_H_ |
7 | 7 |
8 #include "bin/builtin.h" | 8 #include "bin/builtin.h" |
9 #include "bin/utils.h" | 9 #include "bin/utils.h" |
10 #include "bin/dartutils.h" | 10 #include "bin/dartutils.h" |
(...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
85 } | 85 } |
86 | 86 |
87 static intptr_t GetAddrPort(RawAddr* addr) { | 87 static intptr_t GetAddrPort(RawAddr* addr) { |
88 if (addr->ss.ss_family == AF_INET) { | 88 if (addr->ss.ss_family == AF_INET) { |
89 return ntohs(addr->in.sin_port); | 89 return ntohs(addr->in.sin_port); |
90 } else { | 90 } else { |
91 return ntohs(addr->in6.sin6_port); | 91 return ntohs(addr->in6.sin6_port); |
92 } | 92 } |
93 } | 93 } |
94 | 94 |
| 95 static Dart_Handle ToTypedData(RawAddr* addr) { |
| 96 int len = GetAddrLength(addr); |
| 97 Dart_Handle result = Dart_NewTypedData(Dart_TypedData_kUint8, len); |
| 98 if (Dart_IsError(result)) Dart_PropagateError(result); |
| 99 Dart_ListSetAsBytes(result, 0, reinterpret_cast<uint8_t *>(addr), len); |
| 100 return result; |
| 101 } |
| 102 |
95 private: | 103 private: |
96 char as_string_[INET6_ADDRSTRLEN]; | 104 char as_string_[INET6_ADDRSTRLEN]; |
97 RawAddr addr_; | 105 RawAddr addr_; |
98 | 106 |
99 DISALLOW_COPY_AND_ASSIGN(SocketAddress); | 107 DISALLOW_COPY_AND_ASSIGN(SocketAddress); |
100 }; | 108 }; |
101 | 109 |
102 class InterfaceSocketAddress { | 110 class InterfaceSocketAddress { |
103 public: | 111 public: |
104 explicit InterfaceSocketAddress(struct sockaddr* sa, | 112 explicit InterfaceSocketAddress(struct sockaddr* sa, |
(...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
174 | 182 |
175 // Perform a hostname lookup. Returns a AddressList of SocketAddress's. | 183 // Perform a hostname lookup. Returns a AddressList of SocketAddress's. |
176 static AddressList<SocketAddress>* LookupAddress(const char* host, | 184 static AddressList<SocketAddress>* LookupAddress(const char* host, |
177 int type, | 185 int type, |
178 OSError** os_error); | 186 OSError** os_error); |
179 static bool ReverseLookup(RawAddr addr, | 187 static bool ReverseLookup(RawAddr addr, |
180 char* host, | 188 char* host, |
181 intptr_t host_len, | 189 intptr_t host_len, |
182 OSError** os_error); | 190 OSError** os_error); |
183 | 191 |
| 192 static bool ParseAddress(int type, const char* address, RawAddr* addr); |
| 193 |
184 // List interfaces. Returns a AddressList of InterfaceSocketAddress's. | 194 // List interfaces. Returns a AddressList of InterfaceSocketAddress's. |
185 static AddressList<InterfaceSocketAddress>* ListInterfaces( | 195 static AddressList<InterfaceSocketAddress>* ListInterfaces( |
186 int type, | 196 int type, |
187 OSError** os_error); | 197 OSError** os_error); |
188 | 198 |
189 static CObject* LookupRequest(const CObjectArray& request); | 199 static CObject* LookupRequest(const CObjectArray& request); |
190 static CObject* ListInterfacesRequest(const CObjectArray& request); | 200 static CObject* ListInterfacesRequest(const CObjectArray& request); |
191 static CObject* ReverseLookupRequest(const CObjectArray& request); | 201 static CObject* ReverseLookupRequest(const CObjectArray& request); |
192 | 202 |
193 static Dart_Port GetServicePort(); | 203 static Dart_Port GetServicePort(); |
(...skipping 30 matching lines...) Expand all Loading... |
224 | 234 |
225 private: | 235 private: |
226 DISALLOW_ALLOCATION(); | 236 DISALLOW_ALLOCATION(); |
227 DISALLOW_IMPLICIT_CONSTRUCTORS(ServerSocket); | 237 DISALLOW_IMPLICIT_CONSTRUCTORS(ServerSocket); |
228 }; | 238 }; |
229 | 239 |
230 } // namespace bin | 240 } // namespace bin |
231 } // namespace dart | 241 } // namespace dart |
232 | 242 |
233 #endif // BIN_SOCKET_H_ | 243 #endif // BIN_SOCKET_H_ |
OLD | NEW |