static String octetsToCIDR(int[] octets, int networkMask) { assert octets != null; assert octets.length == 4; return octetsToString(octets) + "/" + networkMask; }
/** * Closes the channel without blocking. * * @param channel to close */ static <C extends CloseableChannel> void closeChannel(C channel) { closeChannel(channel, false); }
@Override public String toString() { return NetworkAddress.format(address); }
public static String createCIDR(long ipAddress, int networkMask) { return octetsToCIDR(longToOctets(ipAddress), networkMask); } }
/** log interface configuration at debug level, if its enabled */ public static void logIfNecessary() { if (logger.isDebugEnabled()) { try { doLogging(); } catch (IOException e) { logger.warn("unable to gather network information", e); } } }
/** * Returns a composite {@link TransportInterceptor} containing all registered interceptors * @see #registerTransportInterceptor(TransportInterceptor) */ public TransportInterceptor getTransportInterceptor() { return new CompositeTransportInterceptor(this.transportIntercetors); }
public static boolean isInetAddress(String ipString) { return ipStringToBytes(ipString) != null; }
private static byte[] textToNumericFormatV4(String ipString) { String[] address = ipString.split("\\.", IPV4_PART_COUNT + 1); if (address.length != IPV4_PART_COUNT) { return null; } byte[] bytes = new byte[IPV4_PART_COUNT]; try { for (int i = 0; i < bytes.length; i++) { bytes[i] = parseOctet(address[i]); } } catch (NumberFormatException ex) { return null; } return bytes; }
/** * Closes the channel. * * @param channel to close * @param blocking indicates if we should block on channel close */ static <C extends CloseableChannel> void closeChannel(C channel, boolean blocking) { closeChannels(Collections.singletonList(channel), blocking); }
/** * Formats a network address for display purposes. * <p> * This formats only the address, any hostname information, * if present, is ignored. IPv6 addresses are compressed * and without scope identifiers. * <p> * Example output with just an address: * <ul> * <li>IPv4: {@code 127.0.0.1}</li> * <li>IPv6: {@code ::1}</li> * </ul> * @param address IPv4 or IPv6 address * @return formatted string */ public static String format(InetAddress address) { return format(address, -1); }
private InetAddress parse(Object value) { if (value instanceof InetAddress) { return (InetAddress) value; } else { if (value instanceof BytesRef) { value = ((BytesRef) value).utf8ToString(); } return InetAddresses.forString(value.toString()); } }
@Override public void onResponse(Void aVoid) { CloseableChannel.closeChannel(channel); }
@Override public void onFailure(Exception e) { CloseableChannel.closeChannels(channels, false); if (e instanceof ConnectTransportException) { listener.onFailure(e); } else { listener.onFailure(new ConnectTransportException(node, "general node connection failure", e)); } } });
/** * Returns a string representation of the enclosed {@link InetSocketAddress} * @see NetworkAddress#format(InetAddress) */ public String getAddress() { return NetworkAddress.format(address.getAddress()); }
@Override public InetAddress parse(Object value, boolean coerce) { if (value instanceof InetAddress) { return (InetAddress) value; } else { if (value instanceof BytesRef) { value = ((BytesRef) value).utf8ToString(); } return InetAddresses.forString(value.toString()); } } @Override
@Override public void onFailure(Exception e) { logger.debug("failed to send message to httpOnTransport channel", e); CloseableChannel.closeChannel(channel); } };
private static BytesRef toBytesRef(String ip) { if (ip == null) { return null; } InetAddress address = InetAddresses.forString(ip); byte[] bytes = InetAddressPoint.encode(address); return new BytesRef(bytes); }
@Override public BytesRef parseBytesRef(String value) { return new BytesRef(InetAddressPoint.encode(InetAddresses.forString(value))); } };
@Override public InetAddress parseTo(RangeFieldType fieldType, XContentParser parser, boolean coerce, boolean included) throws IOException { InetAddress address = InetAddresses.forString(parser.text()); return included ? address : nextDown(address); } @Override