在将pcap循环与mysql con作为我的参数一起使用时出错

时间:2019-06-19 06:22:24

标签: mysql c packet-sniffers

我想用代码中使用的pcap循环添加mysql连接

MYSQL *con;
u_char *my_arguments = con;
pcap_loop(handle, total_packet_count, my_packet_handler, my_arguments);

但是它给出了错误

  

警告:从不兼容的指针类型初始化   [-Wincompatible-pointer-types]           u_char * my_arguments = con; ^ ~~

所以我需要什么帮助?

当我直接将con的值放入pcap_loop(handle,total_packet_count,my_packet_handler,con)之类的pcap循环中时;它显示了新错误

错误是

  

从不兼容的指针类型传递“ pcap_loop”的参数4   [-Wincompatible-pointer-types]           pcap_loop(handle,total_packet_count,my_packet_handler,con);

     

注意:预期为“ u_char * {aka unsigned char *}”,但参数的类型为“ MYSQL * {aka struct st_mysql *}”            PCAP_API int pcap_loop(pcap_t *,int,pcap_handler,u_char *);

但我希望将其推入pcap循环

1 个答案:

答案 0 :(得分:0)

pcap_loop()pcap_dispatch()的“用户”参数以及回调应该应该被定义为void *,因为它是指向回调可以理解的一些任意数据,但是将其定义为u_char *

因此,您应该将MYSQL *强制转换为u_char *

pcap_loop(handle, total_packet_count, my_packet_handler, (u_char *)con);