Skip to content

Commit

Permalink
Merge branch 'faltimiras-transportPacket'
Browse files Browse the repository at this point in the history
  • Loading branch information
kaitoy committed Jan 2, 2019
1 parent 9c2cd40 commit 3378aa0
Show file tree
Hide file tree
Showing 15 changed files with 148 additions and 118 deletions.
1 change: 1 addition & 0 deletions CHANGES.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ Future
======
### New Features ###
* [PR#196](https://github.com/kaitoy/pcap4j/pull/196): add protocol implementations for 4 icmpv6 types (RFC6275).
* [PR#144](https://github.com/kaitoy/pcap4j/pull/144): Generalize TcpPacket and UdpPacket to same abstract TransportPacket class.

### Bug Fixes ###
* [Issues#200](https://github.com/kaitoy/pcap4j/issues/200): Fix a bug that causes NullPointerException in DnsDomainName#toString(byte[]).
Expand Down
2 changes: 1 addition & 1 deletion LICENSE
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
Pcap4J is distributed under the MIT license.

Copyright (c) 2011-2018 Pcap4J.org
Copyright (c) 2011-2019 Pcap4J.org

Permission is hereby granted, free of charge, to any person obtaining a copy of
this software and associated documentation files (the "Software"), to deal in the Software without restriction,
Expand Down
17 changes: 1 addition & 16 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -273,22 +273,7 @@ Contributing Code
License
-------

Pcap4J is distributed under the MIT license.

Copyright (c) 2011-2018 Pcap4J.org

Permission is hereby granted, free of charge, to any person obtaining a copy of
this software and associated documentation files (the "Software"), to deal in the Software without restriction,
including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense,
and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so,
subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT
NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
[LICENSE](/LICENSE)

Contacts
--------
Expand Down
27 changes: 1 addition & 26 deletions README_ja.md
Original file line number Diff line number Diff line change
Expand Up @@ -270,32 +270,7 @@ CentOSのPcap4J実行環境を構築したDockerイメージが[Docker Hub](http
ライセンス
----------

Pcap4J is distributed under the MIT license.

Copyright (c) 2011-2018 Pcap4J.org

Permission is hereby granted, free of charge, to any person obtaining a copy of
this software and associated documentation files (the "Software"), to deal in the Software without restriction,
including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense,
and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so,
subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT
NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

以下に定める条件に従い、本ソフトウェアおよび関連文書のファイル(以下「ソフトウェア」)の複製を取得するすべての人に対し、
ソフトウェアを無制限に扱うことを無償で許可します。これには、ソフトウェアの複製を使用、複写、変更、結合、掲載、頒布、サブライセンス、
および/または販売する権利、およびソフトウェアを提供する相手に同じことを許可する権利も無制限に含まれます。
上記の著作権表示および本許諾表示を、ソフトウェアのすべての複製または重要な部分に記載するものとします。

ソフトウェアは「現状のまま」で、明示であるか暗黙であるかを問わず、何らの保証もなく提供されます。
ここでいう保証とは、商品性、特定の目的への適合性、および権利非侵害についての保証も含みますが、それに限定されるものではありません。
作者または著作権者は、契約行為、不法行為、またはそれ以外であろうと、ソフトウェアに起因または関連し、
あるいはソフトウェアの使用またはその他の扱いによって生じる一切の請求、損害、その他の義務について何らの責任も負わないものとします。
[LICENSE](/LICENSE)

コンタクト
----------
Expand Down
13 changes: 7 additions & 6 deletions pcap4j-core/src/main/java/org/pcap4j/packet/SctpPacket.java
Original file line number Diff line number Diff line change
@@ -1,13 +1,14 @@
/*_##########################################################################
_##
_## Copyright (C) 2016 Pcap4J.org
_## Copyright (C) 2016-2019 Pcap4J.org
_##
_##########################################################################
*/

package org.pcap4j.packet;

import static org.pcap4j.util.ByteArrays.*;
import static org.pcap4j.util.ByteArrays.INT_SIZE_IN_BYTES;
import static org.pcap4j.util.ByteArrays.SHORT_SIZE_IN_BYTES;

import java.io.Serializable;
import java.util.ArrayList;
Expand All @@ -27,7 +28,7 @@
* @author Jeff Myers (myersj@gmail.com)
* @since pcap4j 1.6.6
*/
public final class SctpPacket extends AbstractPacket {
public final class SctpPacket extends AbstractPacket implements TransportPacket {

/** */
private static final long serialVersionUID = -1082956644945517426L;
Expand Down Expand Up @@ -213,7 +214,7 @@ public SctpPacket build() {
* @author Jeff Myers (myersj@gmail.com)
* @since pcap4j 1.6.6
*/
public static final class SctpHeader extends AbstractHeader {
public static final class SctpHeader extends AbstractHeader implements TransportHeader {

/** */
private static final long serialVersionUID = -8223170335586535940L;
Expand Down Expand Up @@ -314,12 +315,12 @@ private int calcChecksum() {
}
}

/** @return srcPort */
@Override
public SctpPort getSrcPort() {
return srcPort;
}

/** @return dstPort */
@Override
public SctpPort getDstPort() {
return dstPort;
}
Expand Down
13 changes: 7 additions & 6 deletions pcap4j-core/src/main/java/org/pcap4j/packet/TcpPacket.java
Original file line number Diff line number Diff line change
@@ -1,13 +1,14 @@
/*_##########################################################################
_##
_## Copyright (C) 2011-2017 Pcap4J.org
_## Copyright (C) 2011-2019 Pcap4J.org
_##
_##########################################################################
*/

package org.pcap4j.packet;

import static org.pcap4j.util.ByteArrays.*;
import static org.pcap4j.util.ByteArrays.INT_SIZE_IN_BYTES;
import static org.pcap4j.util.ByteArrays.SHORT_SIZE_IN_BYTES;

import java.io.Serializable;
import java.net.Inet4Address;
Expand All @@ -29,7 +30,7 @@
* @author Kaito Yamada
* @since pcap4j 0.9.12
*/
public final class TcpPacket extends AbstractPacket {
public final class TcpPacket extends AbstractPacket implements TransportPacket {

// http://tools.ietf.org/html/rfc793

Expand Down Expand Up @@ -437,7 +438,7 @@ public TcpPacket build() {
* @author Kaito Yamada
* @since pcap4j 0.9.12
*/
public static final class TcpHeader extends AbstractHeader {
public static final class TcpHeader extends AbstractHeader implements TransportHeader {

/*
* 0 16 31
Expand Down Expand Up @@ -744,12 +745,12 @@ private short calcChecksum(
return ByteArrays.calcChecksum(data);
}

/** @return srcPort */
@Override
public TcpPort getSrcPort() {
return srcPort;
}

/** @return dstPort */
@Override
public TcpPort getDstPort() {
return dstPort;
}
Expand Down
37 changes: 37 additions & 0 deletions pcap4j-core/src/main/java/org/pcap4j/packet/TransportPacket.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
/*_##########################################################################
_##
_## Copyright (C) 2019 Pcap4J.org
_##
_##########################################################################
*/

package org.pcap4j.packet;

import org.pcap4j.packet.namednumber.Port;

/**
* Transport layer packet (e.g. TCP and UDP)
*
* @author Ferran Altimiras
* @since pcap4j 1.7.5
*/
public interface TransportPacket extends Packet {

@Override
public TransportHeader getHeader();

/**
* The interface representing the Transport layer packet's header.
*
* @author Ferran Altimiras
* @since pcap4j 1.7.5
*/
public interface TransportHeader extends Header {

/** @return Source port */
public Port getSrcPort();

/** @return Destination port */
public Port getDstPort();
}
}
12 changes: 6 additions & 6 deletions pcap4j-core/src/main/java/org/pcap4j/packet/UdpPacket.java
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
/*_##########################################################################
_##
_## Copyright (C) 2011-2017 Pcap4J.org
_## Copyright (C) 2011-2019 Pcap4J.org
_##
_##########################################################################
*/

package org.pcap4j.packet;

import static org.pcap4j.util.ByteArrays.*;
import static org.pcap4j.util.ByteArrays.SHORT_SIZE_IN_BYTES;

import java.net.Inet4Address;
import java.net.Inet6Address;
Expand All @@ -24,7 +24,7 @@
* @author Kaito Yamada
* @since pcap4j 0.9.1
*/
public final class UdpPacket extends AbstractPacket {
public final class UdpPacket extends AbstractPacket implements TransportPacket {

/** */
private static final long serialVersionUID = 4638029542367352625L;
Expand Down Expand Up @@ -286,7 +286,7 @@ public UdpPacket build() {
* @author Kaito Yamada
* @since pcap4j 0.9.1
*/
public static final class UdpHeader extends AbstractHeader {
public static final class UdpHeader extends AbstractHeader implements TransportHeader {

/*
* 0 16 31
Expand Down Expand Up @@ -445,12 +445,12 @@ private short calcChecksum(
return ByteArrays.calcChecksum(data);
}

/** @return srcPort */
@Override
public UdpPort getSrcPort() {
return srcPort;
}

/** @return dstPort */
@Override
public UdpPort getDstPort() {
return dstPort;
}
Expand Down
40 changes: 40 additions & 0 deletions pcap4j-core/src/main/java/org/pcap4j/packet/namednumber/Port.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
/*_##########################################################################
_##
_## Copyright (C) 2019 Pcap4J.org
_##
_##########################################################################
*/

package org.pcap4j.packet.namednumber;

/**
* Transport layer Port
*
* @author Ferran Altimiras
* @since pcap4j 1.7.5
*/
public abstract class Port extends NamedNumber<Short, Port> {

/**
* @param value value
* @param name name
*/
public Port(Short value, String name) {
super(value, name);
}

/** @return the value of this object as an int. */
public int valueAsInt() {
return 0xFFFF & value();
}

@Override
public String valueAsString() {
return String.valueOf(valueAsInt());
}

@Override
public int compareTo(Port o) {
return value().compareTo(o.value());
}
}
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
/*_##########################################################################
_##
_## Copyright (C) 2016 Pcap4J.org
_## Copyright (C) 2016-2019 Pcap4J.org
_##
_##########################################################################
*/
Expand All @@ -19,7 +19,7 @@
* @author Jeff Myers (myersj@gmail.com)
* @since pcap4j 1.6.6
*/
public final class SctpPort extends NamedNumber<Short, SctpPort> {
public final class SctpPort extends Port {

/** */
private static final long serialVersionUID = 8265462534894583620L;
Expand Down Expand Up @@ -84,20 +84,4 @@ public static SctpPort getInstance(Short value) {
public static SctpPort register(SctpPort port) {
return registry.put(port.value(), port);
}

/** @return the value of this object as an int. */
public int valueAsInt() {
return 0xFFFF & value();
}

/** @return a string representation of this value. */
@Override
public String valueAsString() {
return String.valueOf(valueAsInt());
}

@Override
public int compareTo(SctpPort o) {
return value().compareTo(o.value());
}
}
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
/*_##########################################################################
_##
_## Copyright (C) 2011-2015 Pcap4J.org
_## Copyright (C) 2011-2019 Pcap4J.org
_##
_##########################################################################
*/
Expand All @@ -19,7 +19,7 @@
* @author Kaito Yamada
* @since pcap4j 0.9.12
*/
public final class TcpPort extends NamedNumber<Short, TcpPort> {
public final class TcpPort extends Port {

/** */
private static final long serialVersionUID = 3906499626286793530L;
Expand Down Expand Up @@ -2855,20 +2855,4 @@ public static TcpPort getInstance(Short value) {
public static TcpPort register(TcpPort port) {
return registry.put(port.value(), port);
}

/** @return the value of this object as an int. */
public int valueAsInt() {
return 0xFFFF & value();
}

/** @return a string representation of this value. */
@Override
public String valueAsString() {
return String.valueOf(valueAsInt());
}

@Override
public int compareTo(TcpPort o) {
return value().compareTo(o.value());
}
}
Loading

0 comments on commit 3378aa0

Please sign in to comment.