/******************************************************************************* * Copyright (c) 2011, 2016 Eurotech and/or its affiliates * * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Eurotech *******************************************************************************/ package org.eclipse.kura.linux.net.util; import java.util.Map; import org.eclipse.kura.KuraException; import org.eclipse.kura.net.NetInterfaceType; public class LinuxIfconfig { private final String m_name; private NetInterfaceType m_type; private String m_macAddress; private String m_inetAddress; private String m_peerInetAddr; private String m_inetBcast; private String m_inetMask; private int m_mtu; private boolean m_multicast; private Map<String, String> m_driver; private Boolean m_up; private boolean m_linkUp; public LinuxIfconfig(String name) { this.m_name = name; this.m_type = NetInterfaceType.UNKNOWN; } public String getName() { return this.m_name; } public NetInterfaceType getType() { return this.m_type; } public void setType(NetInterfaceType type) { this.m_type = type; } public String getMacAddress() { return this.m_macAddress; } public void setMacAddress(String macAddress) { this.m_macAddress = macAddress; } public String getInetAddress() { return this.m_inetAddress; } public void setInetAddress(String inetAddress) { this.m_inetAddress = inetAddress; } public String getInetBcast() { return this.m_inetBcast; } public void setInetBcast(String inetBcast) { this.m_inetBcast = inetBcast; } public String getInetMask() { return this.m_inetMask; } public void setInetMask(String inetMask) { this.m_inetMask = inetMask; } public String getPeerInetAddr() { return this.m_peerInetAddr; } public void setPeerInetAddr(String peerInetAddr) { this.m_peerInetAddr = peerInetAddr; } public int getMtu() { return this.m_mtu; } public void setMtu(int mtu) { this.m_mtu = mtu; } public boolean isMulticast() { return this.m_multicast; } public void setMulticast(boolean multicast) { this.m_multicast = multicast; } public Map<String, String> getDriver() { return this.m_driver; } public void setDriver(Map<String, String> driver) { this.m_driver = driver; } public boolean isUp() { if (this.m_up != null) { return this.m_up; } else { // old code boolean ret = false; if (this.m_inetAddress != null && this.m_inetMask != null) { ret = true; } return ret; } } public void setUp(boolean up) { this.m_up = up; } public void setLinkUp(boolean up) { this.m_linkUp = up; } public boolean isLinkUp() { return this.m_linkUp; } public byte[] getMacAddressBytes() throws KuraException { if (this.m_macAddress == null) { return new byte[] { 0, 0, 0, 0, 0, 0 }; } String macAddress = new String(this.m_macAddress); macAddress = macAddress.replaceAll(":", ""); byte[] mac = new byte[6]; for (int i = 0; i < 6; i++) { mac[i] = (byte) ((Character.digit(macAddress.charAt(i * 2), 16) << 4) + Character.digit(macAddress.charAt(i * 2 + 1), 16)); } return mac; } @Override public String toString() { StringBuilder sb = new StringBuilder(); sb.append(this.m_name).append(":-> type: ").append(this.m_type).append(", MAC: ").append(this.m_macAddress) .append(", IP Address: ").append(this.m_inetAddress).append(", Netmask: ").append(this.m_inetMask) .append(", Broadcast: ").append(this.m_inetBcast).append(", Peer IP Address: ") .append(this.m_peerInetAddr).append(", MTU: ").append(this.m_mtu).append(", multicast?: ") .append(this.m_multicast).append(", up?: ").append(this.m_up).append(", link up?: ") .append(this.m_linkUp); return sb.toString(); } }