Index: chrome/browser/sync/notifier/base/nethelpers.cc |
=================================================================== |
--- chrome/browser/sync/notifier/base/nethelpers.cc (revision 0) |
+++ chrome/browser/sync/notifier/base/nethelpers.cc (revision 0) |
@@ -0,0 +1,42 @@ |
+// Copyright (c) 2009 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 "chrome/browser/sync/notifier/base/nethelpers.h" |
+ |
+namespace notifier { |
+ |
+hostent* SafeGetHostByName(const char* hostname, hostent* host, |
+ char* buffer, size_t buffer_len, |
+ int* herrno) { |
+ hostent* result = NULL; |
+#if WIN32 |
+ result = gethostbyname(hostname); |
+ if (!result) { |
+ *herrno = WSAGetLastError(); |
+ } |
+#elif OS_LINUX |
+ gethostbyname_r(hostname, host, buffer, buffer_len, &result, herrno); |
+#elif OSX |
+ result = getipnodebyname(hostname, AF_INET, AI_DEFAULT, herrno); |
+#else |
+#error "I don't know how to do gethostbyname safely on your system." |
+#endif |
+ return result; |
+} |
+ |
+// This function should mirror the above function, and free any resources |
+// allocated by the above. |
+void FreeHostEnt(hostent* host) { |
+#if WIN32 |
+ // No need to free anything, struct returned is static memory. |
+#elif OS_LINUX |
+ // No need to free anything, we pass in a pointer to a struct. |
+#elif OSX |
+ freehostent(host); |
+#else |
+#error "I don't know how to free a hostent on your system." |
+#endif |
+} |
+ |
+} // namespace notifier |
Property changes on: chrome\browser\sync\notifier\base\nethelpers.cc |
___________________________________________________________________ |
Added: svn:eol-style |
+ LF |