/** * @param array array * @param offset offset * @param length length * @return a new LinkLayerAddress object. */ public static LinkLayerAddress getLinkLayerAddress(byte[] array, int offset, int length) { return getLinkLayerAddress(array, offset, length, ByteOrder.BIG_ENDIAN); }
private LinuxSllHeader(Builder builder) { if (builder.address.length > ADDR_SIZE) { StringBuilder sb = new StringBuilder(100); sb.append("address must not be longer than ") .append(ADDR_SIZE) .append(" but it is: ") .append(ByteArrays.toHexString(builder.address, " ")); throw new IllegalArgumentException(sb.toString()); } if ((builder.addressLength & 0xFFFF) > ADDR_SIZE) { StringBuilder sb = new StringBuilder(100); sb.append("addressLength & 0xFFFF must not be longer than ") .append(ADDR_SIZE) .append(" but it is: ") .append(builder.addressLength & 0xFFFF); throw new IllegalArgumentException(sb.toString()); } this.packetType = builder.packetType; this.addressType = builder.addressType; this.addressLength = builder.addressLength; System.arraycopy(builder.address, 0, addressField, 0, builder.address.length); this.protocol = builder.protocol; if (addressLength == 0) { this.address = null; } else { this.address = ByteArrays.getLinkLayerAddress(addressField, 0, getAddressLengthAsInt()); } }
} else { this.address = ByteArrays.getLinkLayerAddress(rawData, ADDR_OFFSET + offset, getAddressLengthAsInt());
/** * @param array array * @param offset offset * @param length length * @return a new LinkLayerAddress object. */ public static LinkLayerAddress getLinkLayerAddress(byte[] array, int offset, int length) { return getLinkLayerAddress(array, offset, length, ByteOrder.BIG_ENDIAN); }
private LinuxSllHeader(Builder builder) { if (builder.address.length > ADDR_SIZE) { StringBuilder sb = new StringBuilder(100); sb.append("address must not be longer than ") .append(ADDR_SIZE) .append(" but it is: ") .append(ByteArrays.toHexString(builder.address, " ")); throw new IllegalArgumentException(sb.toString()); } if ((builder.addressLength & 0xFFFF) > ADDR_SIZE) { StringBuilder sb = new StringBuilder(100); sb.append("addressLength & 0xFFFF must not be longer than ") .append(ADDR_SIZE) .append(" but it is: ") .append(builder.addressLength & 0xFFFF); throw new IllegalArgumentException(sb.toString()); } this.packetType = builder.packetType; this.addressType = builder.addressType; this.addressLength = builder.addressLength; System.arraycopy(builder.address, 0, addressField, 0, builder.address.length); this.protocol = builder.protocol; if (addressLength == 0) { this.address = null; } else { this.address = ByteArrays.getLinkLayerAddress(addressField, 0, getAddressLengthAsInt()); } }
} else { this.address = ByteArrays.getLinkLayerAddress(rawData, ADDR_OFFSET + offset, getAddressLengthAsInt());