From 3b902877b50043082991cc5dd95c6412fd6f1fef Mon Sep 17 00:00:00 2001 From: aixiao Date: Tue, 14 Jan 2025 22:56:23 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E5=8A=A0=E9=9D=99=E6=80=81?= =?UTF-8?q?=E6=9E=84=E5=BB=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Makefile | 15 +++++++++++---- cap.c | 4 ++-- 2 files changed, 13 insertions(+), 6 deletions(-) diff --git a/Makefile b/Makefile index 661d873..b6af680 100644 --- a/Makefile +++ b/Makefile @@ -42,10 +42,10 @@ endif LIBCAP := $(shell pkg-config --libs --static libcap) LIBIPSET := $(shell pkg-config --libs --static libipset) -CFLAGS += -DCURL_STATICLIB -I./libcurl/include +CFLAGS_LIBCURL += -DCURL_STATICLIB -I./libcurl/include LIBCURL := -L./libcurl/lib -lcurl -lssh2 -lssh2 -lgpg-error -lssl -ldl -lcrypto -ldl -lz -lssl -lcrypto -lssl -ldl -pthread -lcrypto -ldl -pthread -lzstd -lz -CFLAGS += -I./libcjson/include/ +CFLAGS_LIBCJSON += -I./libcjson/include/ LIBCJSON := ./libcjson/lib/libcjson.a all: $(BIN) # 默认目标 @@ -63,15 +63,22 @@ info: @echo "LIBCAP: $(LIBCAP)" @echo "LIBIPSET: $(LIBIPSET)" -ipquery: # Go 构建目标 +# Go 构建目标 +ipquery: cd IP_region_query && CGO_ENABLED=0 go build -ldflags '-w -s' && upx -9 ipquery +# 动态链接目标 $(BIN): cap.o common.o ip2region/ip2region.o ip2region/xdb_searcher.o libipset.o libcurl.o - $(CC) $(CFLAGS) -o $(BIN) $^ $(LIBPCAP) $(LIBCAP) $(LIBIPSET) $(LIBCJSON) $(LIBCURL) $(LIBS) + $(CC) $(CFLAGS) -o $(BIN) $^ -lpcap -lipset -lcurl -lcjson + +# 静态链接目标 +static: cap.o common.o ip2region/ip2region.o ip2region/xdb_searcher.o libipset.o libcurl.o + $(CC) $(CFLAGS) $(CFLAGS_LIBCURL) $(CFLAGS_LIBCJSON) -o $(BIN) $^ $(LIBPCAP) $(LIBCAP) $(LIBIPSET) $(LIBCJSON) $(LIBCURL) $(LIBS) -static %.o: %.c $(CC) $(CFLAGS) -c $< -o $@ +# 清理目标 clean: rm -rf $(BIN) IP_region_query/ipquery rm -rf cap.o common.o ip2region/ip2region.o ip2region/xdb_searcher.o libipset.o libcurl.o diff --git a/cap.c b/cap.c index 8fc9c45..cc5f25e 100644 --- a/cap.c +++ b/cap.c @@ -304,10 +304,10 @@ int main(int argc, char **argv) signal(SIGTERM, cleanup_); int opt; - char errbuf[PCAP_ERRBUF_SIZE]; // 错误缓冲区 + char errbuf[PCAP_ERRBUF_SIZE] = { 0 }; // 错误缓冲区 char protocol[] = "tcp"; char interface[256] = "{ 0 }"; - char Ipset_Command[BUFFER]; + char Ipset_Command[BUFFER] = { 0 }; strcpy(interface, "eth0"); memset(&alldevs, 0, sizeof(alldevs));