📄 common.h
字号:
#include<stdio.h>
#include<stdlib.h>
#include<errno.h>
#include<string.h>
#include<sys/types.h>
#include<sys/socket.h>
#include<sys/wait.h>
#include<netinet/in.h> /*sockaddr_in 结构体*/
#include<signal.h>
#include<arpa/inet.h>
#include<sys/ioctl.h>
#include<net/ethernet.h>
#include<net/if.h>
#include<net/if_arp.h>
#ifndef _COMMON_H_
#define _COMMON_H_
#define SERVER_PORT 2222
#if 1
#define DEBUG(x...) \
do { \
FILE *fp = fopen("test", "a");\
if (fp) {\
fprintf(fp, "%s[%d] ", __FILE__, __LINE__); \
fprintf(fp, x); \
fprintf(fp, "\n"); \
fclose(fp);\
}\
} while (0)
#else
#define DEBUG(x...) \
do { \
printf("%s[%d] ", __FILE__, __LINE__); \
printf(x); \
printf("\n"); \
} while (0)
#endif
#define STRIP(s, c) \
do { \
if (s[strlen(s) - 1] == c) \
s[strlen(s) - 1] = '\0'; \
} while (0)
#define FCLOSE(fp) \
do { \
if (fp != NULL) { \
fclose(fp); \
fp = NULL; \
} \
} while (0);
#define CONFIG_FILE "flow.conf" //保存用户信息。
#define BUF_LEN 1024
#define DEC 10
#define HEX 16
#define BIN 2
struct avl_data
{
time_t time;
unsigned int ip; /* key */
unsigned int ID;
unsigned int type; //?
unsigned long long value; //限制流量
unsigned long long used; //已用流量
int feeRatio; //计费率(一元对应的字节数)
};
#define NODE_RESOLVE(node) (struct avl_data *)node->data
#define AVL_NODE_SIZE (sizeof(struct avl_node) + sizeof(struct avl_data))
#define MAX_LINK_NUM 10000
#define NODE_KEY_LEN sizeof(unsigned int)
struct flow_info {
unsigned int ID;
unsigned int sip;
unsigned int dip;
unsigned int type;
unsigned long long value;
struct flow_info *next;
int feeRatio; //计费率(一元对应的字节数)
};
int isin(char *, int);
int parse_line(char *, char *, char*** , int);
int isnum(char *);
unsigned long ip2val(char *);
char *val2ip(unsigned long, char *);
unsigned long long str2ll(char *, int);
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -