c-router-emulator/router/db.h

90 lines
2.4 KiB
C

#ifndef __DB_H__
#define __DB_H__
#include <mysql/mysql.h>
#include <string.h>
static MYSQL *conn_db = NULL;
// 连接
extern int connect_mysql(const char *host, int port, const char *user, const char *pwd, const char *db_name);
// 关闭
extern int close_mysql();
// 查询
extern int query(const char *sql, void (*callback)(MYSQL_ROW row, char (*columns)[30], int cols));
// 返回查询结果的行数
extern int result_rows(const char *sql);
// 插入
extern int insert(const char *sql, MYSQL_BIND *params);
// 删除
extern int delete (const char *sql, MYSQL_BIND *params);
// 更新
extern int update(const char *sql, MYSQL_BIND *params);
// 添加路由表
extern void insert_routing_list(const char *ip, const char *mask, const char *nexthop);
// 删除路由表中的一条记录
extern void delete_routing_list(const char *ip);
// 打印路由表
extern void print_routing_list();
// 打印查询结果的回调函数
extern void printResult(MYSQL_ROW row, char (*columns)[30], int cols);
// 添加ARP表
extern void insert_arp_list(const char *ip, const char *mac);
// 更新ARP表中的一条记录
extern void update_arp_list_by_ip(const char *ip, const char *mac);
// 查询ARP表中是否存在此IP
extern int search_arp_list_if_ip_have(const char *ip);
// 打印ARP表
extern void print_arp_list();
// 添加黑名单
extern void insert_ip_fw(const char *ip);
// 查询黑名单中是否存在此IP
extern int search_ip_fw(const char *ip);
// 打印黑名单
extern void print_ip_fw();
// 删除黑名单中的一条记录
extern void delete_ip_fw(const char *ip);
// 判断目的 IP 是否在路由表中
extern int is_in_routing_table(const char *dst_ip);
// 获取下一跳 IP
extern void get_next_hop_ip(const char *dst_ip, char *next_hop_ip);
// 获取默认网关 IP
extern void get_default_gateway_ip(char *gateway_ip);
// 判断 IP 是否在 ARP 表中
extern int is_in_arp_table(const char *ip);
// 获取 MAC 地址
extern void get_mac_address(const char *ip, char *mac_address);
// 回调函数:从查询结果中获取下一跳 IP
extern void fetch_next_hop_ip(MYSQL_ROW row, char (*columns)[30], int cols);
// 回调函数:从查询结果中获取默认网关 IP
extern void fetch_gateway_ip(MYSQL_ROW row, char (*columns)[30], int cols);
// 回调函数:从查询结果中获取 MAC 地址
extern void fetch_mac_address(MYSQL_ROW row, char (*columns)[30], int cols);
#endif