diff --git a/Makefile b/Makefile index 1da65d6..cc161d1 100644 --- a/Makefile +++ b/Makefile @@ -1,17 +1,16 @@ CROSS_COMPILE ?= CC := $(CROSS_COMPILE)gcc STRIP := $(CROSS_COMPILE)strip -CFLAGS += -g -Os -Wall +CFLAGS += -g -Os -Wall -Iip2region -Iqqwry LIBS = -lm -static -OBJ := denyip +BIN := denyip -all: main.o ip2region.o xdb_searcher.o qqwry.o - $(CC) $(CFLAGS) -o $(OBJ) $^ $(LIBS) -.c.o: - $(CC) $(CFLAGS) -c $< +all: main.o ip2region/ip2region.o ip2region/xdb_searcher.o qqwry/qqwry.o + $(CC) $(CFLAGS) -o $(BIN) $^ $(LIBS) + +%.o: %.c + $(CC) $(CFLAGS) -c $< -o $@ clean: - rm -rf *.o - rm -rf $(OBJ) - - + rm -rf $(BIN) + rm -rf main.o ip2region/ip2region.o ip2region/xdb_searcher.o qqwry/qqwry.o diff --git a/denyip b/denyip index d97dfe5..9b11adc 100644 Binary files a/denyip and b/denyip differ diff --git a/ip2region.c b/ip2region/ip2region.c similarity index 100% rename from ip2region.c rename to ip2region/ip2region.c diff --git a/ip2region.h b/ip2region/ip2region.h similarity index 100% rename from ip2region.h rename to ip2region/ip2region.h diff --git a/ip2region.o b/ip2region/ip2region.o similarity index 73% rename from ip2region.o rename to ip2region/ip2region.o index e89cbb5..5d056bc 100644 Binary files a/ip2region.o and b/ip2region/ip2region.o differ diff --git a/ip2region.xdb b/ip2region/ip2region.xdb similarity index 100% rename from ip2region.xdb rename to ip2region/ip2region.xdb diff --git a/xdb_searcher.c b/ip2region/xdb_searcher.c similarity index 100% rename from xdb_searcher.c rename to ip2region/xdb_searcher.c diff --git a/xdb_searcher.h b/ip2region/xdb_searcher.h similarity index 100% rename from xdb_searcher.h rename to ip2region/xdb_searcher.h diff --git a/xdb_searcher.o b/ip2region/xdb_searcher.o similarity index 90% rename from xdb_searcher.o rename to ip2region/xdb_searcher.o index 7caf3a6..1ffbf25 100644 Binary files a/xdb_searcher.o and b/ip2region/xdb_searcher.o differ diff --git a/main.c b/main.c index ed318c5..b832695 100644 --- a/main.c +++ b/main.c @@ -145,6 +145,7 @@ void restart_process(pid_t pid1, pid_t pid2, char *argv[]) void cleanup_(int signum) { + int r; printf("Received signal %d, cleaning up...\n", signum); // 终止子进程 @@ -154,10 +155,14 @@ void cleanup_(int signum) if (pid2 > 0) { kill(pid2, SIGTERM); } - // 终止所有 tcpdump 进程 - system("pkill tcpdump"); - // 退出主进程 + // 终止所有 tcpdump 进程 + r = system("pkill tcpdump"); + if (r == 0) { + puts("pkill tcpdump"); + } + + // 退出主进程 exit(0); return ; @@ -242,6 +247,7 @@ int main(int argc, char *argv[]) r = system("apt -y install tcpdump > /dev/null 2>&1"); } + // 子进程 pid1 = fork(); // 创建子进程 if (pid1 == 0) { @@ -262,6 +268,7 @@ int main(int argc, char *argv[]) sleep(3); } } + // 子进程 pid2 = fork(); // 创建子进程 if (pid2 == 0) { diff --git a/main.o b/main.o index 6332df3..e4ba801 100644 Binary files a/main.o and b/main.o differ diff --git a/qqwry.o b/qqwry.o deleted file mode 100644 index 7419ec1..0000000 Binary files a/qqwry.o and /dev/null differ diff --git a/qqwry.c b/qqwry/qqwry.c similarity index 97% rename from qqwry.c rename to qqwry/qqwry.c index 4cd34f7..f550884 100644 --- a/qqwry.c +++ b/qqwry/qqwry.c @@ -349,6 +349,14 @@ int get_location(char *ip) char *qqwry_(char *ip) { + char *qqdb_path = "qqwry.dat"; + if (access(qqdb_path, F_OK) == -1) { // 判断 ip2region 地址定位库是否存在 + qqdb_path = "qqwry/qqwry.dat"; + if (access(qqdb_path, F_OK) == -1) { + printf("qqwry.dat DOESN'T EXIST!\n"); + return NULL; + } + } qqwry_init("qqwry.dat"); diff --git a/qqwry.dat b/qqwry/qqwry.dat similarity index 100% rename from qqwry.dat rename to qqwry/qqwry.dat diff --git a/qqwry.h b/qqwry/qqwry.h similarity index 100% rename from qqwry.h rename to qqwry/qqwry.h diff --git a/qqwry/qqwry.o b/qqwry/qqwry.o new file mode 100644 index 0000000..2ea0f8d Binary files /dev/null and b/qqwry/qqwry.o differ