Я пытаюсь перенаправить запрос из Squid в мое приложение (написанное на C) с помощью squid.conf:
http_port 3128
# some default configuration out of the box
url_rewrite_program /cygdrive/c/app.exe /cygdrive/c/app.conf
url_rewrite_children 1 startup=1 idle=1
Приложение работает правильно. Но stdin никогда не заполняется Squid (путем установки InternetProps -> Подключения -> Настройки Lan Настройки прокси-соединения localhost: 3128). И команда wgets (stdio.h) не будет читать данные.
Согласно squid access.log, URL назывался:
1555677518.894 44096 :: 1 TCP_TUNNEL / 200 39 CONNECT www.google.com.ua:443 - HIER_DIRECT / 172.217.16.3 -
Вот код, который я использую:
int main(int argc, char* argv[]) {
char str[1000]
while(1) {
if (fgets(str, 100, stdin)!=NULL) {
// do smth
}
// wait millis
}
}
, если вызвать приложение вручную и написать что-то в stdin, то работает нормально.
Я использую Squid 3.5.28, построенный с Cygwin, также попробовал 2.7 стабильный, но тот же результат.
Найден старый пост с похожей проблемой, но он не был решен: Squid url_rewrite_program
Заранее спасибо!