blob: b42e0bb5ca64cbae5c58fec81a6d327fa85941f2 [file] [log] [blame]
Hugo Benichi2ac4d072019-05-28 14:51:23 +09001// Copyright 2019 The Chromium OS 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 "arc/network/net_util.h"
6
Long Chenge4c86762019-09-24 18:52:40 +00007#include <arpa/inet.h>
Hugo Benichi2ac4d072019-05-28 14:51:23 +09008
Garrick Evans54861622019-07-19 09:05:09 +09009#include <base/strings/stringprintf.h>
10
Hugo Benichi2ac4d072019-05-28 14:51:23 +090011namespace arc_networkd {
12
13std::string IPv4AddressToString(uint32_t addr) {
14 char buf[INET_ADDRSTRLEN] = {0};
15 struct in_addr ia;
16 ia.s_addr = addr;
17 return !inet_ntop(AF_INET, &ia, buf, sizeof(buf)) ? "" : buf;
18}
19
20std::string IPv4AddressToCidrString(uint32_t addr, uint32_t prefix_length) {
21 return IPv4AddressToString(addr) + "/" + std::to_string(prefix_length);
22}
23
Garrick Evans54861622019-07-19 09:05:09 +090024std::string MacAddressToString(const MacAddress& addr) {
25 return base::StringPrintf("%02x:%02x:%02x:%02x:%02x:%02x", addr[0], addr[1],
26 addr[2], addr[3], addr[4], addr[5]);
27}
28
Hugo Benichi2ac4d072019-05-28 14:51:23 +090029} // namespace arc_networkd