Alexander "SonnySlave"
Как?
создаёшь тему на форуме и всё
Berkus
Как?
как как, каком кверху
vladislav
Как?
А он упрямый. Далеко пойдёт, например в @supapro
Berkus
пусть в @fludpac идёт
Санжар
😆
Санжар
Только там нолик забыли в днях
Vsevolod
где-то же был комикс с машиной времени
vladislav
Anonymous
Да у меня есть эта книга
Санжар
Vsevolod
http://abstrusegoose.com/strips/ars_longa_vita_brevis.png
Anonymous
Не могу представить сколько там 0
Alexei
Anonymous
Спросите за меня пж
vladislav
Санжар
vladislav
Наконец-то мне пригодилось знание этого слова
Berkus
Berkus
Berkus
Daniil
Ку, кто-то пишет в Qt ? Есть идея , как реализовать с помощью его библиотеки функцию Пинга. Например есть ip или адрес сайта , нужно пропинговать это и получить инфу о том , успешно или нет ?
Vsevolod
а ничего, что для этого нужен suid в linux/bsd?
Vsevolod
хотя в свежих ядрах появился IPPROTO_ICMP, но он, разумеется, ни фига не портабельный
Daniil
Я только учусь) Пишу программу для винды
Berkus
Daniil
Хорошо, спасибо
Vsevolod
подозреваю, что в винде raw socket тоже не так просто создать
Berkus
ну это вопрос желания
Vsevolod
проще сделать через udp и IP_RECVERR, но это все совершенно непросто и не уверен, что работает в винде...
Berkus
через UDP это будет уже не пинг
Berkus
ну то есть кастомный протокол конечно можно сделать, но надо тогда чтобы его и клиенты поддерживали
Vsevolod
ну почему, traceroute так и работает через udp по умолчанию
Vsevolod
и никакого suid поэтому не требует (или CAP_NET_RAW)
Berkus
> You can use any sort of packet to implement it - ICMP, TCP SYN, etc. All it takes is the IP packet expiring and you are golden.
ну да, можно
Vsevolod
вопрос только в том, как поймать ошибку
Vsevolod
потому что она-то идет через icmp unreachable
Vsevolod
в posix есть способ, хотя и не очень-то красивый
Vsevolod
плюс udp режется кучей миддлбоксов
Vsevolod
вариант с tcp удобнее, но его не реализовать через сокеты без возможности посылки "сырых" пакетов
Berkus
TCP SYN packets will cause either a RST packet or a SYN ACK packet in response when they reach their destination. If you receive a SYN ACK packet, it's polite to follow up with a RST packet so as not to leave a half-open connection on the server.
хмм
Berkus
надо крафтить TCP SYN
Vsevolod
ну, или отличать blackhole от rst по таймауту vs ECONNREFUSED
Vsevolod
вот-вот
Vsevolod
то есть, в случае успеха стек все равно фиганет полный хендшейк
Vsevolod
а с handcrafted tcp это опять же требует привиллегий
Vsevolod
ну и потом мы возвращаемся к вопросу "что есть хост", бгг
Vsevolod
с плясками с nameserver, обработкой множества ip для хоста, работой с ipv4/v6 и прочими приятностями
Igor
товарищи, а как на линуксах разруливаются зависимости между статическими либами? есть X1.a и X2.a; их функционалом пользуется Y.a, которая потом будет влинкована в исполняемый файл Z
я правильно помню, что влинковывать одни статические либы в другие - моветон? нужно при сборке Z передавать линкеру -lY -lX1 -LX2? речь сугубо про мейкфайлы, просьба цмак, ниндзю и прочие радости 2к!8 не предлагать
Konstantin
лучше так $(pkg-config -libs X1) $(pkg-config -libs X2)
Berkus
Berkus
Либо через —start-group —end-group
Vsevolod
так нет такой вещи, как зависимости между статическими либами
Vsevolod
статическая либа - это просто архив .o файлов
Vsevolod
соответственно, и работать с ними ровно также - компоновать линкером
Vsevolod
и да, порядок важен
Viacheslav
Причём в некоторых случаях одну и ту же либу ещё и несколько раз указать придётся. Весело, в общем.
Vsevolod
дада
Vsevolod
ну или с -Wl,-whole-archive
Vsevolod
только —libs - это про shared libs
Viacheslav
По крайней мере только top level dependencies надо будет указать потом, а не всю цепочку 😂
Vsevolod
нужно —libs —-static
Konstantin
да точняк
Viacheslav
Так CMake тоже поддерживает pkgconfig.
Viacheslav
И это гораздо удобнее, чем писать find модули, как мне кажется.
Konstantin
как и мезон
Konstantin
find модули менее удобны, там кто во что горазд, в отличии от pc
Konstantin
да, это еще лучше
Igor
если кто-нибудь из мэтров расскажет кулстори как он в бытность джуном проворачивал такой трюк в проекте 15летней старости, буду рад послушать 😭
Alexander "SonnySlave"
Matwey
Ну pkgconfig можно использовать и без CMake
Alexander "SonnySlave"
Правда надо принять по внимание, что я там уже не работаю 😊
Berkus
Matwey