-#
+#
# Copyright (c) 2015 OpenWrt.org
#
# This is free software, licensed under the BSD 2-Clause License.
include $(TOPDIR)/rules.mk
PKG_NAME:=port-mirroring
-PKG_VERSION:=1.4.2
+PKG_VERSION:=1.4.3
PKG_RELEASE:=1
+
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
+PKG_SOURCE_URL:=https://codeload.github.com/mmaraya/port-mirroring/tar.gz/v$(PKG_VERSION)?
+PKG_HASH:=90603163fb086cc586a711e066360ccfa5b4735f67586e8f9254e93f3bebb97e
+
PKG_MAINTAINER:=Mike Maraya <mike.maraya@gmail.com>
PKG_LICENSE:=BSD-2-Clause
PKG_LICENSE_FILES:=LICENSE
-PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
-PKG_MIRROR_HASH:=0bffa393e740711db3eb930fc2674843c56b0dc9db15ac1887fec8776401af2a
-PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
-PKG_SOURCE_URL:=git://github.com/mmaraya/port-mirroring.git
-PKG_SOURCE_PROTO:=git
-PKG_SOURCE_VERSION:=f6ead68b7760fa86e8da73ac1e062349f243ac93
+
PKG_FIXUP:=autoreconf
-PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)
include $(INCLUDE_DIR)/package.mk
SECTION:=net
CATEGORY:=Network
DEPENDS:=+libpcap +libpthread
- TITLE:=Copy network packets with optional support for TaZmen Sniffer Protocol (TZSP)
+ TITLE:=Copy network packets with optional support for TaZmen Sniffer Protocol (TZSP)
URL:=https://github.com/mmaraya/port-mirroring
MENU:=1
endef
define Package/port-mirroring/install
$(INSTALL_DIR) $(1)/usr/sbin
- $(INSTALL_BIN) $(PKG_BUILD_DIR)/port-mirroring $(1)/usr/sbin/
+ $(INSTALL_BIN) $(PKG_BUILD_DIR)/bin/port-mirroring $(1)/usr/sbin/
$(INSTALL_DIR) $(1)/etc/config
- $(INSTALL_CONF) $(PKG_BUILD_DIR)/port-mirroring.conf $(1)/etc/config/port-mirroring
+ $(INSTALL_CONF) $(PKG_BUILD_DIR)/openwrt/port-mirroring.conf $(1)/etc/config/port-mirroring
$(INSTALL_DIR) $(1)/etc/init.d
- $(INSTALL_BIN) $(PKG_BUILD_DIR)/port-mirroringd $(1)/etc/init.d/port_mirroring
+ $(INSTALL_BIN) $(PKG_BUILD_DIR)/openwrt/port-mirroringd $(1)/etc/init.d/port_mirroring
endef
$(eval $(call BuildPackage,port-mirroring))
--- /dev/null
+diff --git a/include/config.h b/include/config.h
+index 5212c69..ac948ba 100644
+--- a/include/config.h
++++ b/include/config.h
+@@ -1,69 +1,69 @@
+-/* \r
+- * Copyright (c) 2015 Mike Maraya <mike[dot]maraya[at]gmail[dot]com>\r
+- * All rights reserved.\r
+- *\r
+- * This file is subject to the terms and conditions defined in\r
+- * https://github.com/mmaraya/port-mirroring/blob/master/LICENSE,\r
+- * which is part of this software package.\r
+- *\r
+- */\r
+-\r
+-#ifndef PORT_MIRRORING_UTIL_H_\r
+-#define PORT_MIRRORING_UTIL_H_\r
+-\r
+-#include <errno.h>\r
+-#include <net/if.h>\r
+-#include <netinet/in.h>\r
+-#include <stdint.h>\r
+-#include <stdio.h>\r
+-#include <stdlib.h>\r
+-#include <string.h>\r
+-#include <syslog.h>\r
+-#include <linux/limits.h>\r
+-\r
+-#define OPTION_MAX 254 /* max value for program options */\r
+-#define TIMEBUF 32 /* max timestamp length RFC3339 */\r
+-#define SRC_MAX 4 /* maxium number of source network interfaces */\r
+-#define PFE_MAX 80 /* maximum length of packet filter expression */\r
+-#define MACADDRLEN 6 /* length of a MAC address */\r
+-\r
+-// port-mirroring configuration bit flags\r
+-#define PM_DAEMON 0x01 /* run as background process */\r
+-#define PM_DEBUG 0x02 /* display debugging messages to console */\r
+-#define PM_TZSP 0x04 /* send packets using TaZmen Sniffer Protocol */\r
+-#define PM_DST_IF 0x08 /* destination is a network interface */\r
+-#define PM_DST_IP 0x10 /* destination is an internet protocol address */\r
+-#define PM_PROMISC 0x20 /* place source interface in promiscuous mode */\r
+-#define PM_SYSLOG 0x40 /* log messages to syslog facility */\r
+-\r
+-// if no configuration file is specified, look through these in order\r
+-#define CFG_PATH_1 "/etc/config/port-mirroring"\r
+-#define CFG_PATH_2 "/etc/port-mirroring"\r
+-#define CFG_PATH_3 "port-mirroring.conf"\r
+-\r
+-// default program id file\r
+-#define PID_PATH "/var/run/port-mirroring.pid"\r
+-\r
+-// program-wide configuration settings and variables\r
+-struct pm_cfg\r
+-{\r
+- char *cfg_file; /* path to configuration file */\r
+- uint8_t flags; /* boolean setting bitmask */\r
+- char src[SRC_MAX][IFNAMSIZ]; /* source network interfaces */\r
+- char dst_if[IFNAMSIZ]; /* destination network interface */\r
+- in_addr_t dst_ip; /* destination IP address */\r
+- char pfe[PFE_MAX]; /* tcpdump packet filter expression */\r
+- char *pid_file; /* path to process id file */\r
+- int src_count; /* number of source ports */\r
+- char src_mac[MACADDRLEN]; /* source MAC address */\r
+- char dst_mac[MACADDRLEN]; /* destination MAC address */\r
+- time_t init_time; /* used to check for timeouts */\r
+- int packet_count; /* number of packets processed */\r
+-};\r
+-\r
+-void find_cfg(struct pm_cfg *cfg);\r
+-char * printMACStr(const char *mac);\r
+-char * getUCIItem(char *buf, char *item);\r
+-int getUCIConf(char *buf, char *option, char *value);\r
+-\r
+-#endif // PORT_MIRRORING_UTIL_H_\r
++/*
++ * Copyright (c) 2015 Mike Maraya <mike[dot]maraya[at]gmail[dot]com>
++ * All rights reserved.
++ *
++ * This file is subject to the terms and conditions defined in
++ * https://github.com/mmaraya/port-mirroring/blob/master/LICENSE,
++ * which is part of this software package.
++ *
++ */
++
++#ifndef PORT_MIRRORING_UTIL_H_
++#define PORT_MIRRORING_UTIL_H_
++
++#include <errno.h>
++#include <net/if.h>
++#include <netinet/in.h>
++#include <stdint.h>
++#include <stdio.h>
++#include <stdlib.h>
++#include <string.h>
++#include <syslog.h>
++#include <linux/limits.h>
++
++#define OPTION_MAX 254 /* max value for program options */
++#define TIMEBUF 32 /* max timestamp length RFC3339 */
++#define SRC_MAX 4 /* maxium number of source network interfaces */
++#define PFE_MAX 80 /* maximum length of packet filter expression */
++#define MACADDRLEN 6 /* length of a MAC address */
++
++// port-mirroring configuration bit flags
++#define PM_DAEMON 0x01 /* run as background process */
++#define PM_DEBUG 0x02 /* display debugging messages to console */
++#define PM_TZSP 0x04 /* send packets using TaZmen Sniffer Protocol */
++#define PM_DST_IF 0x08 /* destination is a network interface */
++#define PM_DST_IP 0x10 /* destination is an internet protocol address */
++#define PM_PROMISC 0x20 /* place source interface in promiscuous mode */
++#define PM_SYSLOG 0x40 /* log messages to syslog facility */
++
++// if no configuration file is specified, look through these in order
++#define CFG_PATH_1 "/etc/config/port-mirroring"
++#define CFG_PATH_2 "/etc/port-mirroring"
++#define CFG_PATH_3 "port-mirroring.conf"
++
++// default program id file
++#define PID_PATH "/var/run/port-mirroring.pid"
++
++// program-wide configuration settings and variables
++struct pm_cfg
++{
++ char *cfg_file; /* path to configuration file */
++ uint8_t flags; /* boolean setting bitmask */
++ char src[SRC_MAX][IFNAMSIZ]; /* source network interfaces */
++ char dst_if[IFNAMSIZ]; /* destination network interface */
++ in_addr_t dst_ip; /* destination IP address */
++ char pfe[PFE_MAX]; /* tcpdump packet filter expression */
++ char *pid_file; /* path to process id file */
++ int src_count; /* number of source ports */
++ char src_mac[MACADDRLEN]; /* source MAC address */
++ char dst_mac[MACADDRLEN]; /* destination MAC address */
++ time_t init_time; /* used to check for timeouts */
++ int packet_count; /* number of packets processed */
++};
++
++void find_cfg(struct pm_cfg *cfg);
++char * printMACStr(const char *mac);
++char * getUCIItem(char *buf, char *item);
++int getUCIConf(char *buf, char *option, char *value);
++
++#endif // PORT_MIRRORING_UTIL_H_