Home | History | Annotate | Download | only in proxy
      1 // Copyright (c) 2011 The Chromium Authors. All rights reserved.
      2 // Use of this source code is governed by a BSD-style license that can be
      3 // found in the LICENSE file.
      4 
      5 #include "net/proxy/dhcpcsvc_init_win.h"
      6 
      7 #include "base/lazy_instance.h"
      8 #include "base/logging.h"
      9 
     10 #include <dhcpcsdk.h>
     11 #include <dhcpv6csdk.h>
     12 
     13 namespace {
     14 
     15 class DhcpcsvcInitSingleton {
     16  public:
     17   DhcpcsvcInitSingleton() {
     18     DWORD version = 0;
     19     DWORD err = DhcpCApiInitialize(&version);
     20     DCHECK(err == ERROR_SUCCESS);  // DCHECK_EQ complains of unsigned mismatch.
     21   }
     22 
     23   ~DhcpcsvcInitSingleton() {
     24     // Worker pool threads that use the DHCP API may still be running, so skip
     25     // cleanup.
     26   }
     27 };
     28 
     29 static base::LazyInstance<DhcpcsvcInitSingleton> g_dhcpcsvc_init_singleton =
     30     LAZY_INSTANCE_INITIALIZER;
     31 
     32 }  // namespace
     33 
     34 namespace net {
     35 
     36 void EnsureDhcpcsvcInit() {
     37   g_dhcpcsvc_init_singleton.Get();
     38 }
     39 
     40 }  // namespace net
     41