|
ActiveMQ example source code file (HostInfo.java)
The ActiveMQ HostInfo.java source code/** * Copyright 2003-2005 Arthur van Hoff, Rick Blair * * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You under the Apache License, Version 2.0 * (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.apache.activemq.jmdns; import java.net.*; import java.util.logging.Level; import java.util.logging.Logger; /** * HostInfo information on the local host to be able to cope with change of addresses. * * @version %I%, %G% * @author Pierre Frisch, Werner Randelshofer */ class HostInfo { private static Logger logger = Logger.getLogger(HostInfo.class.toString()); protected String name; protected InetAddress address; protected NetworkInterface interfaze; /** * This is used to create a unique name for the host name. */ private int hostNameCount; public HostInfo(InetAddress address, String name) { super(); this.address = address; this.name = name; if (address != null) { try { interfaze = NetworkInterface.getByInetAddress(address); } catch (Exception exception) { // FIXME Shouldn't we take an action here? logger.log(Level.WARNING, "LocalHostInfo() exception ", exception); } } } public String getName() { return name; } public InetAddress getAddress() { return address; } public NetworkInterface getInterface() { return interfaze; } synchronized String incrementHostName() { hostNameCount++; int plocal = name.indexOf(".local."); int punder = name.lastIndexOf("-"); name = name.substring(0, (punder == -1 ? plocal : punder)) + "-" + hostNameCount + ".local."; return name; } boolean shouldIgnorePacket(DatagramPacket packet) { boolean result = false; if (getAddress() != null) { InetAddress from = packet.getAddress(); if (from != null) { if (from.isLinkLocalAddress() && (!getAddress().isLinkLocalAddress())) { // Ignore linklocal packets on regular interfaces, unless this is // also a linklocal interface. This is to avoid duplicates. This is // a terrible hack caused by the lack of an API to get the address // of the interface on which the packet was received. result = true; } if (from.isLoopbackAddress() && (!getAddress().isLoopbackAddress())) { // Ignore loopback packets on a regular interface unless this is // also a loopback interface. result = true; } } } return result; } DNSRecord.Address getDNSAddressRecord(DNSRecord.Address address) { return (DNSConstants.TYPE_AAAA == address.type ? getDNS6AddressRecord() : getDNS4AddressRecord()); } DNSRecord.Address getDNS4AddressRecord() { if ((getAddress() != null) && ((getAddress() instanceof Inet4Address) || ((getAddress() instanceof Inet6Address) && (((Inet6Address) getAddress()).isIPv4CompatibleAddress())))) { return new DNSRecord.Address(getName(), DNSConstants.TYPE_A, DNSConstants.CLASS_IN, DNSConstants.DNS_TTL, getAddress()); } return null; } DNSRecord.Address getDNS6AddressRecord() { if ((getAddress() != null) && (getAddress() instanceof Inet6Address)) { return new DNSRecord.Address(getName(), DNSConstants.TYPE_AAAA, DNSConstants.CLASS_IN, DNSConstants.DNS_TTL, getAddress()); } return null; } public String toString() { StringBuffer buf = new StringBuffer(); buf.append("local host info["); buf.append(getName() != null ? getName() : "no name"); buf.append(", "); buf.append(getInterface() != null ? getInterface().getDisplayName() : "???"); buf.append(":"); buf.append(getAddress() != null ? getAddress().getHostAddress() : "no address"); buf.append("]"); return buf.toString(); } } Other ActiveMQ examples (source code examples)Here is a short list of links related to this ActiveMQ HostInfo.java source code file: |
... this post is sponsored by my books ... | |
#1 New Release! |
FP Best Seller |
Copyright 1998-2021 Alvin Alexander, alvinalexander.com
All Rights Reserved.
A percentage of advertising revenue from
pages under the /java/jwarehouse
URI on this website is
paid back to open source projects.