1 // Copyright (c) 2012 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/udp/udp_net_log_parameters.h"
6
7 #include "base/bind.h"
8 #include "base/strings/string_number_conversions.h"
9 #include "base/values.h"
10 #include "net/base/ip_endpoint.h"
11
12 namespace net {
13
14 namespace {
15
NetLogUDPDataTranferCallback(int byte_count,const char * bytes,const IPEndPoint * address,NetLog::LogLevel log_level)16 base::Value* NetLogUDPDataTranferCallback(int byte_count,
17 const char* bytes,
18 const IPEndPoint* address,
19 NetLog::LogLevel log_level) {
20 base::DictionaryValue* dict = new base::DictionaryValue();
21 dict->SetInteger("byte_count", byte_count);
22 if (NetLog::IsLoggingBytes(log_level))
23 dict->SetString("hex_encoded_bytes", base::HexEncode(bytes, byte_count));
24 if (address)
25 dict->SetString("address", address->ToString());
26 return dict;
27 }
28
NetLogUDPConnectCallback(const IPEndPoint * address,NetLog::LogLevel)29 base::Value* NetLogUDPConnectCallback(const IPEndPoint* address,
30 NetLog::LogLevel /* log_level */) {
31 base::DictionaryValue* dict = new base::DictionaryValue();
32 dict->SetString("address", address->ToString());
33 return dict;
34 }
35
36 } // namespace
37
CreateNetLogUDPDataTranferCallback(int byte_count,const char * bytes,const IPEndPoint * address)38 NetLog::ParametersCallback CreateNetLogUDPDataTranferCallback(
39 int byte_count,
40 const char* bytes,
41 const IPEndPoint* address) {
42 DCHECK(bytes);
43 return base::Bind(&NetLogUDPDataTranferCallback, byte_count, bytes, address);
44 }
45
CreateNetLogUDPConnectCallback(const IPEndPoint * address)46 NetLog::ParametersCallback CreateNetLogUDPConnectCallback(
47 const IPEndPoint* address) {
48 DCHECK(address);
49 return base::Bind(&NetLogUDPConnectCallback, address);
50 }
51
52 } // namespace net
53