From 063284837c8c366e5502b1b0264b8eb807b61732 Mon Sep 17 00:00:00 2001 From: Joe Robinson Date: Wed, 27 Oct 2010 14:21:09 +0100 Subject: Basic upload functionality to predifined location, with basic file browser --- org/apache/commons/net/ntp/NtpUtils.java | 113 +++++++++++++++++++++++++++++++ 1 file changed, 113 insertions(+) create mode 100644 org/apache/commons/net/ntp/NtpUtils.java (limited to 'org/apache/commons/net/ntp/NtpUtils.java') diff --git a/org/apache/commons/net/ntp/NtpUtils.java b/org/apache/commons/net/ntp/NtpUtils.java new file mode 100644 index 0000000..ca1fb41 --- /dev/null +++ b/org/apache/commons/net/ntp/NtpUtils.java @@ -0,0 +1,113 @@ +package org.apache.commons.net.ntp; +/* + * 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. + */ + + +/*** + * Common NtpUtils Helper class. + * + * @author Jason Mathews, MITRE Corp + * + * @version $Revision: 489397 $ $Date: 2006-12-21 16:28:51 +0000 (Thu, 21 Dec 2006) $ + */ +public final class NtpUtils { + + /*** + * Returns 32-bit integer address to IPv4 address string "%d.%d.%d.%d" format. + * + * @param address the 32-bit address + * @return the raw IP address in a string format. + */ + public static String getHostAddress(int address) + { + return ((address >>> 24) & 0xFF) + "." + + ((address >>> 16) & 0xFF) + "." + + ((address >>> 8) & 0xFF) + "." + + ((address >>> 0) & 0xFF); + } + + /*** + * Returns NTP packet reference identifier as IP address. + * + * @param packet NTP packet + * @return the packet reference id (as IP address) in "%d.%d.%d.%d" format. + */ + public static String getRefAddress(NtpV3Packet packet) + { + int address = (packet == null) ? 0 : packet.getReferenceId(); + return getHostAddress(address); + } + + /*** + * Get refId as reference clock string (e.g. GPS, WWV, LCL). If string is + * invalid (non-ASCII character) then returns empty string "". + * For details refer to the Comprehensive + * List of Clock Drivers. + * + * @param message + * @return reference clock string if primary NTP server + */ + public static String getReferenceClock(NtpV3Packet message) { + if (message == null) + return ""; + int refId = message.getReferenceId(); + if (refId == 0) + return ""; + StringBuffer buf = new StringBuffer(4); + // start at highest-order byte (0x4c434c00 -> LCL) + for (int shiftBits = 24; shiftBits >= 0; shiftBits -= 8) + { + char c = (char) ((refId >>> shiftBits) & 0xff); + if (c == 0) break; // 0-terminated ASCII string + if (!Character.isLetterOrDigit(c)) + return ""; + buf.append(c); + } + return buf.toString(); + } + + /*** + * Return human-readable name of message mode type (RFC 1305). + * + * @param mode + * @return mode name + */ + public static String getModeName(int mode) + { + switch (mode) { + case NtpV3Packet.MODE_RESERVED: + return "Reserved"; + case NtpV3Packet.MODE_SYMMETRIC_ACTIVE: + return "Symmetric Active"; + case NtpV3Packet.MODE_SYMMETRIC_PASSIVE: + return "Symmetric Passive"; + case NtpV3Packet.MODE_CLIENT: + return "Client"; + case NtpV3Packet.MODE_SERVER: + return "Server"; + case NtpV3Packet.MODE_BROADCAST: + return "Broadcast"; + case NtpV3Packet.MODE_CONTROL_MESSAGE: + return "Control"; + case NtpV3Packet.MODE_PRIVATE: + return "Private"; + default: + return "Unknown"; + } + } + +} -- cgit v1.2.3