1c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// Copyright (c) 2010 The Chromium Authors. All rights reserved.
2c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// Use of this source code is governed by a BSD-style license that can be
3c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// found in the LICENSE file.
4c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch
5c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch#include "net/base/address_list_net_log_param.h"
6c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch
7c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch#include "base/values.h"
8c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch#include "net/base/net_util.h"
9c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch#include "net/base/sys_addrinfo.h"
10c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch
11c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdochnamespace net {
12c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch
13c407dc5cd9bdc5668497f21b26b09d988ab439deBen MurdochAddressListNetLogParam::AddressListNetLogParam(const AddressList& address_list)
14c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch    : address_list_(address_list) {
15c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch}
16c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch
17c407dc5cd9bdc5668497f21b26b09d988ab439deBen MurdochValue* AddressListNetLogParam::ToValue() const {
18c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  DictionaryValue* dict = new DictionaryValue();
19c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  ListValue* list = new ListValue();
20c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch
21c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  for (const addrinfo* head = address_list_.head();
22c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch       head != NULL ; head = head->ai_next) {
23c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch    list->Append(Value::CreateStringValue(NetAddressToStringWithPort(head)));
24c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  }
25c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch
263345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick  dict->Set("address_list", list);
27c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  return dict;
28c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch}
29c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch
30c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch}  // namespace
31