liboping ошибка operation not permitted
написал такую функцию, использовал liboping linux, выдает ошибку, может кто знает как фиксить
QString msg;
pingobj_t *pingobj = ping_construct();
if (pingobj == nullptr)
{
msg = "Error: ";
msg += ping_get_error(pingobj);
}
ui->textEdit->setText(msg);
int timeout = 3;
for (;;)
{
double timeout_sec = ((double)timeout)/(double)(1000.0);
if (ping_setopt(pingobj, PING_OPT_TIMEOUT, &timeout_sec))
break;
if (ping_host_add(pingobj, ui->lineEdit->text().toStdString().c_str()))
break;
if (ping_send(pingobj) <= 0)
break;
res = true;
break;
}
if(res)
ui->textEdit->setText("Yes");
else
{
msg = "Error: ";
msg += ping_get_error(pingobj);
ui->textEdit->setText(msg);
}
ping_destroy(pingobj);
Ответы (1 шт):
Автор решения: eri
→ Ссылка
Чтоб работал пинг - ему надо дать разрешения для прямого доступа к сетевому стеку.
sudo setcap cap_net_raw+ep myping
После компиляции выполни эту команду для запускаемого файла и пинг заработает.
В SDK можно добавить шаг сборки
