update 2022-10-31 20:26:52
This commit is contained in:
parent
dc6247f705
commit
5d77dff149
|
@ -11,6 +11,7 @@ int af_test_mode = 0;
|
||||||
// todo: rename af_log.c
|
// todo: rename af_log.c
|
||||||
int g_oaf_enable __read_mostly = 0;
|
int g_oaf_enable __read_mostly = 0;
|
||||||
int af_work_mode = AF_MODE_GATEWAY;
|
int af_work_mode = AF_MODE_GATEWAY;
|
||||||
|
int af_lan_ip = 0;
|
||||||
/*
|
/*
|
||||||
cat /proc/sys/oaf/debug
|
cat /proc/sys/oaf/debug
|
||||||
*/
|
*/
|
||||||
|
@ -43,6 +44,13 @@ static struct ctl_table oaf_table[] = {
|
||||||
.mode = 0666,
|
.mode = 0666,
|
||||||
.proc_handler = proc_dointvec,
|
.proc_handler = proc_dointvec,
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
.procname = "lan_ip",
|
||||||
|
.data = &af_lan_ip,
|
||||||
|
.maxlen = sizeof(int),
|
||||||
|
.mode = 0666,
|
||||||
|
.proc_handler = proc_dointvec,
|
||||||
|
},
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
|
@ -3,6 +3,7 @@
|
||||||
extern int af_log_lvl;
|
extern int af_log_lvl;
|
||||||
extern int af_test_mode;
|
extern int af_test_mode;
|
||||||
extern int af_work_mode;
|
extern int af_work_mode;
|
||||||
|
extern int af_lan_ip;
|
||||||
#define LOG(level, fmt, ...) do { \
|
#define LOG(level, fmt, ...) do { \
|
||||||
if ((level) <= af_log_lvl) { \
|
if ((level) <= af_log_lvl) { \
|
||||||
printk(fmt, ##__VA_ARGS__); \
|
printk(fmt, ##__VA_ARGS__); \
|
||||||
|
|
|
@ -261,7 +261,6 @@ int add_app_feature(int appid, char *name, char *feature)
|
||||||
}
|
}
|
||||||
if (AF_DICT_PARAM_INDEX != param_num && strlen(feature) > MIN_FEATURE_STR_LEN)
|
if (AF_DICT_PARAM_INDEX != param_num && strlen(feature) > MIN_FEATURE_STR_LEN)
|
||||||
{
|
{
|
||||||
AF_ERROR("invalid feature:%s\n", feature);
|
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
strncpy(dict, begin, p - begin);
|
strncpy(dict, begin, p - begin);
|
||||||
|
@ -348,7 +347,6 @@ void load_feature_buf_from_file(char **config_buf)
|
||||||
|
|
||||||
if (IS_ERR(fp))
|
if (IS_ERR(fp))
|
||||||
{
|
{
|
||||||
printk("open feature file failed\n");
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -393,7 +391,6 @@ int load_feature_config(void)
|
||||||
load_feature_buf_from_file(&feature_buf);
|
load_feature_buf_from_file(&feature_buf);
|
||||||
if (!feature_buf)
|
if (!feature_buf)
|
||||||
{
|
{
|
||||||
AF_ERROR("error, feature buf is null\n");
|
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
p = begin = feature_buf;
|
p = begin = feature_buf;
|
||||||
|
@ -908,6 +905,10 @@ u_int32_t app_filter_hook_bypass_handle(struct sk_buff *skb, struct net_device *
|
||||||
if (af_match_bcast_packet(&flow) || af_match_local_packet(&flow))
|
if (af_match_bcast_packet(&flow) || af_match_local_packet(&flow))
|
||||||
return NF_ACCEPT;
|
return NF_ACCEPT;
|
||||||
|
|
||||||
|
if (af_lan_ip == flow.src || af_lan_ip == flow.dst){
|
||||||
|
return NF_ACCEPT;
|
||||||
|
}
|
||||||
|
|
||||||
af_get_smac(skb, smac);
|
af_get_smac(skb, smac);
|
||||||
|
|
||||||
AF_CLIENT_LOCK_W();
|
AF_CLIENT_LOCK_W();
|
||||||
|
|
|
@ -299,6 +299,18 @@ int config_get_appfilter_enable(void)
|
||||||
return enable;
|
return enable;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int config_get_lan_ip(char *lan_ip, int len)
|
||||||
|
{
|
||||||
|
int ret = 0;
|
||||||
|
struct uci_context *ctx = uci_alloc_context();
|
||||||
|
if (!ctx)
|
||||||
|
return -1;
|
||||||
|
ret = uci_get_value(ctx, "network.lan.ipaddr", lan_ip, len);
|
||||||
|
uci_free_context(ctx);
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
int appfilter_config_alloc(void)
|
int appfilter_config_alloc(void)
|
||||||
{
|
{
|
||||||
char *err;
|
char *err;
|
||||||
|
|
|
@ -56,5 +56,6 @@ int appfilter_config_alloc(void);
|
||||||
int appfilter_config_free(void);
|
int appfilter_config_free(void);
|
||||||
af_ctl_time_t *load_appfilter_ctl_time_config(void);
|
af_ctl_time_t *load_appfilter_ctl_time_config(void);
|
||||||
int config_get_appfilter_enable(void);
|
int config_get_appfilter_enable(void);
|
||||||
|
int config_get_lan_ip(char *lan_ip, int len);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -30,6 +30,8 @@ THE SOFTWARE.
|
||||||
#include "appfilter_ubus.h"
|
#include "appfilter_ubus.h"
|
||||||
#include "appfilter_config.h"
|
#include "appfilter_config.h"
|
||||||
#include <time.h>
|
#include <time.h>
|
||||||
|
#include <netinet/in.h>
|
||||||
|
#include <arpa/inet.h>
|
||||||
void check_appfilter_enable(void)
|
void check_appfilter_enable(void)
|
||||||
{
|
{
|
||||||
int enable = 1;
|
int enable = 1;
|
||||||
|
@ -88,14 +90,27 @@ EXIT:
|
||||||
free(af_t);
|
free(af_t);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void update_lan_ip(void){
|
||||||
|
char ip_str[32] = {0};
|
||||||
|
struct in_addr addr;
|
||||||
|
char cmd_buf[128] = {0};
|
||||||
|
u_int32_t lan_ip = 0;
|
||||||
|
|
||||||
|
config_get_lan_ip(ip_str, sizeof(ip_str));
|
||||||
|
inet_aton(ip_str, &addr);
|
||||||
|
lan_ip =addr.s_addr;
|
||||||
|
sprintf(cmd_buf, "echo %d >/proc/sys/oaf/lan_ip", lan_ip);
|
||||||
|
system(cmd_buf);
|
||||||
|
}
|
||||||
|
|
||||||
void dev_list_timeout_handler(struct uloop_timeout *t)
|
void dev_list_timeout_handler(struct uloop_timeout *t)
|
||||||
{
|
{
|
||||||
dump_dev_list();
|
dump_dev_list();
|
||||||
check_dev_visit_info_expire();
|
check_dev_visit_info_expire();
|
||||||
flush_expire_visit_info();
|
flush_expire_visit_info();
|
||||||
//dump_dev_visit_list();
|
//dump_dev_visit_list();
|
||||||
|
update_lan_ip();
|
||||||
check_appfilter_enable();
|
check_appfilter_enable();
|
||||||
//todo: dev list expire
|
|
||||||
if (check_dev_expire()){
|
if (check_dev_expire()){
|
||||||
flush_expire_visit_info();
|
flush_expire_visit_info();
|
||||||
flush_dev_expire_node();
|
flush_dev_expire_node();
|
||||||
|
|
|
@ -6,12 +6,12 @@
|
||||||
include $(TOPDIR)/rules.mk
|
include $(TOPDIR)/rules.mk
|
||||||
|
|
||||||
PKG_NAME:=sing-box
|
PKG_NAME:=sing-box
|
||||||
PKG_VERSION:=1.1-beta11
|
PKG_VERSION:=1.1-beta12
|
||||||
PKG_RELEASE:=$(AUTORELEASE)
|
PKG_RELEASE:=$(AUTORELEASE)
|
||||||
|
|
||||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
|
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
|
||||||
PKG_SOURCE_URL:=https://codeload.github.com/SagerNet/sing-box/tar.gz/v$(PKG_VERSION)?
|
PKG_SOURCE_URL:=https://codeload.github.com/SagerNet/sing-box/tar.gz/v$(PKG_VERSION)?
|
||||||
PKG_HASH:=8baf0424af76ba76a501cdd5611630bc10d3967873aa3516da70a2792ee3d526
|
PKG_HASH:=7e0937c553499281292f4ecdc303670fd8d405590e6bc726b47ffb3526b138a3
|
||||||
|
|
||||||
PKG_LICENSE:=GPL-3.0
|
PKG_LICENSE:=GPL-3.0
|
||||||
PKG_LICENSE_FILE:=LICENSE
|
PKG_LICENSE_FILE:=LICENSE
|
||||||
|
|
Loading…
Reference in New Issue