Ошибка в использовании цикла pcap с mysql con в качестве аргумента My - PullRequest
0 голосов
/ 19 июня 2019

Я хочу добавить соединение mysql с циклом pcap, который я использую в коде

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

но выдает ошибку

предупреждение: инициализация из несовместимого типа указателя [-Wincompatible-указатель типа] u_char * my_arguments = con; ^ ~~

ТАК, что мне делать, нужна помощь, пожалуйста

Когда я непосредственно помещаю значение con в цикл pcap, например pcap_loop (handle, total_packet_count, my_packet_handler, con); это показывает новую ошибку

Ошибка

передача аргумента 4 из 'pcap_loop' из несовместимого типа указателя [-Wincompatible-указатель типа] 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 голосов
/ 25 июня 2019

Аргумент "user" для pcap_loop(), pcap_dispatch() и обратный вызов, вероятно, должен быть определен как void *, так как это указатель на некоторые произвольные данные, которые обратный вызов понимает, но вместо этого он был определен как u_char *.

Таким образом, вы должны привести MYSQL * к u_char *:

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