Codebase list httping / 3bd5d0f
Imported Upstream version 2.5 Abhijith PA 7 years ago
40 changed file(s) with 1762 addition(s) and 175 deletion(s). Raw diff Collapse all Expand all
1010 # do not wish to do so, delete this exception statement from your
1111 # version. If you delete this exception statement from all source
1212 # files in the program, then also delete it here.
13 # $Revision: 278 $
1413
1514 -include makefile.inc
1615
5554 ARCHIVE=/bin/tar cf -
5655 COMPRESS=/bin/gzip -9
5756
58 TRANSLATIONS=nl.mo
57 TRANSLATIONS=nl.mo ru.mo
5958
6059 OBJS=gen.o http.o io.o error.o utils.o main.o tcp.o res.o socks5.o kalman.o cookies.o help.o colors.o
6160
6261 MAN_EN=httping.1
6362 MAN_NL=httping-nl.1
63 MAN_RU=httping-ru.1
6464
6565 DOCS=license.txt license.OpenSSL readme.txt
6666
110110 $(INSTALLMAN) $(MAN_EN) $(DESTDIR)/$(MANDIR)/man1
111111 $(INSTALLDIR) $(DESTDIR)/$(MANDIR)/nl/man1
112112 $(INSTALLMAN) $(MAN_NL) $(DESTDIR)/$(MANDIR)/nl/man1
113 $(INSTALLDIR) $(DESTDIR)/$(MANDIR)/ru/man1
114 $(INSTALLMAN) $(MAN_RU) $(DESTDIR)/$(MANDIR)/ru/man1
113115 $(INSTALLDIR) $(DESTDIR)/$(DOCDIR)
114116 $(INSTALLDOC) $(DOCS) $(DESTDIR)/$(DOCDIR)
115117 ifneq ($(DEBUG),yes)
117119 endif
118120 mkdir -p $(DESTDIR)/$(PREFIX)/share/locale/nl/LC_MESSAGES
119121 cp nl.mo $(DESTDIR)/$(PREFIX)/share/locale/nl/LC_MESSAGES/httping.mo
122 mkdir -p $(DESTDIR)/$(PREFIX)/share/locale/ru/LC_MESSAGES
123 cp ru.mo $(DESTDIR)/$(PREFIX)/share/locale/ru/LC_MESSAGES/httping.mo
124
120125
121126 makefile.inc:
122127 ./configure
123128
124129 nl.mo: nl.po
125130 msgfmt -o nl.mo nl.po
131 ru.mo: ru.po
132 msgfmt -o ru.mo ru.po
133
126134
127135 clean:
128136 $(RMDIR) $(OBJS) $(TARGET) *~ core cov-int *.mo
134142 # source package
135143 $(RMDIR) $(PACKAGE)*
136144 $(MKDIR) $(PACKAGE)
137 $(INSTALLDOC) *.c *.h configure Makefile *.po version $(MAN_EN) $(MAN_NL) $(DOCS) $(PACKAGE)
145 $(INSTALLDOC) *.c *.h configure Makefile *.po version $(MAN_EN) $(MAN_NL) $(MAN_RU) $(DOCS) $(PACKAGE)
138146 $(INSTALLBIN) configure $(PACKAGE)
139147 $(ARCHIVE) $(PACKAGE) | $(COMPRESS) > $(PACKAGE).tgz
140148 $(RMDIR) $(PACKAGE)
22 FILE=`mktemp`
33 FILE2=`mktemp`
44
5 echo \*\*\* HTTPing v`grep VERSION version | cut -d = -f 2` \(`echo $Revision$ | awk '{ print $2; }'`\) configure script \*\*\*
5 echo \*\*\* HTTPing v`grep VERSION version | cut -d = -f 2` configure script \*\*\*
66 echo
77
88 if [ -z "$CC" ]
5757 TFO=""
5858 fi
5959
60 $CC -O0 -lncursesw -o $FILE test_ncurses.c 2> $FILE2
60 $CC -O0 -o $FILE test_ncurses.c -lncursesw 2> $FILE2
6161 if [ $? -eq 0 ] || [ $F_NC -eq 1 ] ; then
6262 echo \+ system has ncurses development libraries
6363 NC="NC=yes"
6666 NC=""
6767 fi
6868
69 $CC -O0 -lssl -lcrypto -o $FILE test_openssl.c 2> $FILE2
69 $CC -O0 -o $FILE test_openssl.c -lssl -lcrypto 2> $FILE2
7070 if [ $? -eq 0 ] || [ $F_OS -eq 1 ] ; then
7171 echo \+ system has OpenSSL development libraries
7272 SSL="SSL=yes"
7575 SSL="SSL=no"
7676 fi
7777
78 $CC -O0 -lfftw3 -o $FILE test_fftw3.c 2> $FILE2
78 $CC -O0 -o $FILE test_fftw3.c -lfftw3 2> $FILE2
7979 if [ $? -eq 0 ] || [ $F_FW -eq 1 ] ; then
8080 echo \+ system has FFTW3 development libraries
8181 FW="FW=yes"
0 /* Released under GPLv2 with exception for the OpenSSL library. See license.txt */
1 /* $Revision$ */
0 /* Released under AGPL v3 with exception for the OpenSSL library. See license.txt */
21
32 #include <libintl.h>
43 #include <errno.h>
0 /* Released under GPLv2 with exception for the OpenSSL library. See license.txt */
1 /* $Revision$ */
0 /* Released under AGPL v3 with exception for the OpenSSL library. See license.txt */
21
32 void error_exit(const char *format, ...);
43 void set_error(const char *str, ...);
0 /* $Revision$ */
10 #include <libintl.h>
21 #include <math.h>
32 #include <stdlib.h>
0 /* $Revision$ */
10 void fft_init(int sample_rate_in);
21 void fft_free(void);
32 void fft_do(double *in, double *output_mag, double *output_phase);
0 /* $Revision$ */
10 #include <math.h>
21 #include <string.h>
32
0 /* Released under GPLv2 with exception for the OpenSSL library. See license.txt */
1 /* $Revision$ */
0 /* Released under AGPL v3 with exception for the OpenSSL library. See license.txt */
21
32 #ifndef __GEN_H__
43 #define __GEN_H__
7373
7474 void version(void)
7575 {
76 fprintf(stderr, gettext("HTTPing v" VERSION ", (C) 2003-2013 folkert@vanheusden.com\n"));
76 fprintf(stderr, gettext("HTTPing v" VERSION ", (C) 2003-2016 folkert@vanheusden.com\n"));
7777 #ifndef NO_SSL
7878 fprintf(stderr, gettext(" * SSL support included (-l)\n"));
7979 #endif
209209 format_help(NULL, "--divert-connect", gettext("connect to a different host than in the URL given"));
210210 format_help(NULL, "--keep-cookies", gettext("return the cookies given by the HTTP server in the following request(s)"));
211211 format_help(NULL, "--no-host-header", gettext("do not add \"Host:\"-line to the request headers"));
212 format_help("-Q", "--persistent-connections", gettext("use a persistent connection. adds a 'C' to the output if httping had to reconnect"));
212 format_help("-Q", "--persistent-connections", gettext("use a persistent connection, i.e. reuse the same TCP connection for multiple HTTP requests. usually possible when 'Connection: Keep-Alive' is sent by server. adds a 'C' to the output if httping had to reconnect"));
213213 format_help("-I x", "--user-agent", gettext("use 'x' for the UserAgent header"));
214214 format_help("-R x", "--referer", gettext("use 'x' for the Referer header"));
215215 format_help(NULL, "--header", gettext("adds an extra request-header"));
270270 format_help("-q", "--quiet", gettext("quiet, only returncode"));
271271 format_help("-m", "--parseable-output", gettext("give machine parseable output (see also -o and -e)"));
272272 format_help("-M", NULL, gettext("json output, cannot be combined with -m"));
273 format_help("-o rc,rc,...", "--ok-result-codes", gettext("what http results codes indicate 'ok' comma seperated WITHOUT spaces inbetween default is 200, use with -e"));
273 format_help("-o rc,rc,...", "--ok-result-codes", gettext("what http results codes indicate 'ok' comma separated WITHOUT spaces inbetween default is 200, use with -e"));
274274 format_help("-e x", "--result-string", gettext("string to display when http result code doesn't match"));
275275 format_help("-n warn,crit", "--nagios-mode-1 / --nagios-mode-2", gettext("Nagios-mode: return 1 when avg. response time >= warn, 2 if >= crit, otherwhise return 0"));
276276 format_help("-N x", NULL, gettext("Nagios mode 2: return 0 when all fine, 'x' when anything failes"));
0 /* Released under GPLv2 with exception for the OpenSSL library. See license.txt */
1 /* $Revision$ */
0 /* Released under AGPL v3 with exception for the OpenSSL library. See license.txt */
21
32 #include <assert.h>
43 #include <stdio.h>
0 /* Released under GPLv2 with exception for the OpenSSL library. See license.txt */
1 /* $Revision$ */
0 /* Released under AGPL v3 with exception for the OpenSSL library. See license.txt */
21
32 int get_HTTP_headers(int socket_h, SSL *ssl_h, char **headers, int *overflow, double timeout);
43 int dumb_get_HTTP_headers(int socket_h, char **headers, double timeout);
0 .\" Copyright Folkert van Heusden, 2003-2013
0 .\" Copyright Folkert van Heusden, 2003-2016
11 .\"
22 .\" This file may be copied under the conditions described
33 .\" in the GNU GENERAL PUBLIC LICENSE, version 2
44 .\" that can be found on the website of the free software
55 .\" foundation.
66 .\"
7 .TH HTTPING 1 2013-03 "httping"
7 .TH HTTPING 1 2016-09 "httping"
88 .SH NAME
99 httping - meten van de latency en doorvoorsnelheid van een http server
1010 .SH SAMENVATTING
7272 Gebruik de ncurses gebruikers interface.
7373 .TP
7474 .B "\-L x"
75 In combinatie met -G zet dit een limiet op hoeveel data er binnengehaald wordt.
75 In combinatie met \-G zet dit een limiet op hoeveel data er binnengehaald wordt.
7676 .TP
7777 .B "\-l"
7878 Maak een SSL verbinding. Dit vereist een https-URL.
9292 .B "\-p portnumber"
9393 Gebruik dit on combinatie met h. Het zet het port-nummer om te pingen.
9494 .TP
95 .B "\-Q"
96 Gebruik een blijvende verbinding, dat wil zeggen hergebruiken dezelfde TCP-verbinding voor meerdere HTTP-verzoeken. Meestal mogelijk wanneer 'Connection: Keep-Alive' is verzonden door de server. Als het bestemmingssysteem de verbinding verbroken heeft, dan zal HTTPing een \"C\" toevoegen aan de uitvoer.
97 .TP
9598 .B "\-q"
9699 Geef geen uitvoer, alleen een teruggave code.
97100 .TP
198201 Toon metingen alleen als ze hoger dan x zijn.
199202 .TP
200203 .B "\-\-timestamp" or "\-\-ts"
201 Voeg een een tijdstempel toe aan de uitvoer. Gebruik -v om ook een datum te zien en \-vv om ook microseconden te zien.
204 Voeg een een tijdstempel toe aan de uitvoer. Gebruik \-v om ook een datum te zien en \-vv om ook microseconden te zien.
202205 .TP
203206 .B "\-\-tx-buffer x"
204207 Configureer de grootte van de zend-buffer.
207210 Toon versie informatie.
208211
209212 .SH UITVOER
210 In de -S mode zal iets als "tijd=0.08+24.09+23.17+15.64+0.02=62.98 ms" getoond worden. De eerste waarde is hoe lang het duurde om de systeem naam te vertalen, de 2e waarde hoe lang het duurde om te verbinden, de 3e waarde geeft aan hoe lang het duurde om het verzoek te verzenden en de 4e waarde is hoelang het duurde voordat de http-server een antwoord formuleerde en terugzond. de 5e waarde geeft aan hoelang het duurde om de socket te sluiten.
213 In de \-S mode zal iets als "tijd=0.08+24.09+23.17+15.64+0.02=62.98 ms" getoond worden. De eerste waarde is hoe lang het duurde om de systeem naam te vertalen, de 2e waarde hoe lang het duurde om te verbinden, de 3e waarde geeft aan hoe lang het duurde om het verzoek te verzenden en de 4e waarde is hoelang het duurde voordat de http-server een antwoord formuleerde en terugzond. de 5e waarde geeft aan hoelang het duurde om de socket te sluiten.
211214
212215 .SH GRAFIEK
213 De grafiek in ncurses mode gebruikt een aantal kleuren. Groen: de waarde is minder dan de ondergrens. Rood: de waarde is hoger dan de bovengrens. Blauw: de waarde is gelimiteerd door '--graph-limit'. Cyaan: er is geen meetwaarde.
216 De grafiek in ncurses mode gebruikt een aantal kleuren. Groen: de waarde is minder dan de ondergrens. Rood: de waarde is hoger dan de bovengrens. Blauw: de waarde is gelimiteerd door '\-\-graph\-limit'. Cyaan: er is geen meetwaarde.
214217
215218 .SH TOETSEN
216219 Druk <CTRL> + <c> om het programma af te breken. Er zal dan een samenvatting getoond worden.
235238 Deze man-page beschrijft
236239 .B httping
237240 versie 2.3: andere versies kunnen iets of wat verschillen.
238 Stuur a.u.b. correcties, toevingen en foutraporten naar folkert@vanheusden.com
241 Stuur a.u.b. correcties, toevingen en foutraporten naar mail@vanheusden.com
239242 Wanneer u een donatie wilt doen, dan kunt u Bitcoins sturen naar: 1N5Sn4jny4xVwTwSYLnf7WnFQEGoVRmTQF
0 .\" Copyright Folkert van Heusden, 2003-2016
1 .\"
2 .\" This file may be copied under the conditions described
3 .\" in the GNU GENERAL PUBLIC LICENSE, version 2
4 .\" that can be found on the website of the free software
5 .\" foundation.
6 .\"
7 .TH HTTPING 1 2016-09 "httping"
8 .SH ИМЯ
9 httping - измеряет задержку и пропускную способность веб-сервера
10 .SH СИНТАКСИС
11 .BI "httping [" опции "]
12 .sp
13 опции:
14 .BI "[\-g url] [\-h имя_хоста] [\-p номер_порта] [\-x прокси_хост:порт] [\-c число] [\-i интервал] [\-t тайм-аут] [\-s] [\-G] [\-b] [\-L предел_передачи] [\-X] [\-l] [\-z] [\-f] [\-m] [\-o ко,...] [\-e строка]"
15 .BI "[\-I UserAgent строка] [\-R Referer строка] [\-r] [\-n warn,crit] [\-N режим] [\-q] [\-V]"
16 .SH ОПИСАНИЕ
17 Утилита
18 .B httping
19 позволяет измерять задержку веб-сервера. Начиная с версии 1.0.6 также есть возможность измерять пропускную способность.
20 .PP
21 .SH ОПЦИИ
22 .TP
23 .B "\-5"
24 Выбранный прокси-сервер — это SOCKS5 сервер.
25 .TP
26 .B "\-6"
27 Включить режим IPv6. По умолчанию IPv4.
28 .TP
29 .B "\-a"
30 Слышимый пинг
31 .TP
32 .B "\-b"
33 Используйте этот переключатель вместе с '-\G'. Когда эта опция используется, показывается пропускная способность (в КБ/с).
34 .TP
35 .B "\-B"
36 Используйте этот переключатель вместе с '-\G'. Просит HTTP сервер сжимать возвращаемые данные: это позволит уменьшить важность пропускной способности вашего соединения, увеличивая важность вычислительной мощности HTTP сервера.
37 .TP
38 .B "\-c число"
39 Сколько проб отправить перед тем как выйти.
40 .TP
41 .B "\-D"
42 Не рисовать графики в режиме ncurses (-\K).
43 .TP
44 .B "\-e строка"
45 Когда код ответа отличается от указанных в '\-o', отображать данную строку.
46 .TP
47 .B "\-E"
48 Получить настройки прокси-сервера из переменных окружения ('http_proxy' и 'https_proxy').
49 .TP
50 .B "\-F"
51 Попытаться использовать TCP Fast Open подключаясь к серверу (для Linux ядра версии 3.7 и более)
52 .TP
53 .B "\-f"
54 Флуд пинг: не сидеть сложа руки между каждым пингом, а пинговать быстро, насколько компьютер и сеть позволит вам.
55 .TP
56 .B "\-G"
57 Делать GET запрос вместо HEAD запроса: это значит, что полная страница/файл будет передан. Обратите внимание, в данном случае вы больше не измеряете задержку!
58 .TP
59 .B "\-g URL"
60 Устанавливает URL для проб. К примеру: http://localhost/
61 .TP
62 .B "\-h имя_хоста"
63 Вместо '\-g' вы можете также использовать '\-h' чтобы установить имя хоста, к примеру: \-h localhost
64 .TP
65 .B "\-I строка"
66 UserAgent строка для отправки веб-серверу (по умолчанию 'HTTPing <версия>').
67 .TP
68 .B "\-i interval"
69 Сколько секунд между отправкой каждой пробы.
70 .TP
71 .B "\-K"
72 Включить пользовательский интерфейс ncurses.
73 .TP
74 .B "\-L x"
75 Используйте этот переключатель вместе с '\-G'. Ограничивает объем передаваемых данных значением 'х'. Обратите внимание, это влияет только на содержание страницы/файла, а не на заголовки.
76 .TP
77 .B "\-l"
78 Подключаться с помощью SSL: чтобы это работало вы должны задать 'https' URL или номер порта 443.
79 .TP
80 .B "\-m"
81 Показывать машиночитаемый вывод (смотрите также '\-o' и '\-e').
82 .TP
83 .B "\-N x"
84 Переключает HTTPing в режим 2 Nagios плагина: возвращает 0, когда все хорошо, "х", когда что-то не так. Т.е.: 1 => Nagios состояние warning, 2 => Nagios состояние critical.
85 .TP
86 .B "\-n warn,crit"
87 Переключает HTTPing в режим 1 Nagios плагина: возвращает код выхода '1', когда среднее время отклика больше "warn", и возвращает код выхода '2', когда время на средний отклик больше "crit". Во всех остальных случаях возвращает код выхода '0'.
88 .TP
89 .B "\-o x,x,..."
90 Устанавливает HTTP-коды, которые рассматриваются как ОК-состояния (только с '\-m').
91 .TP
92 .B "\-p portnumber"
93 \-p может быть использован вместе с \-h. \-p выбирает номер_порта для пробы.
94 .TP
95 .B "\-q"
96 Без подробностей, возвращать только код выхода.
97 .TP
98 .B "\-R строка"
99 Referer строка для отправки на веб-сервер.
100 .TP
101 .B "\-Q"
102 Использовать постоянное соединение, т.е. переиспользовать то же самое TCP соединение для нескольких HTTP запросов. обычно возможно когда 'Connection: Keep-Alive' отправлено сервером. добавляет 'C' в вывод если httping был вынужден переподключиться
103 .TP
104 .B "\-r"
105 Резолвить имя хоста только раз: это убирает резолвинг из цикла, так что латентность DNS не измеряется. Также полезно когда вы хотите измерить только 1 веб-сервер, а DNS возвращает новый IP-адрес на каждом резолве ('round robin').
106 .TP
107 .B "\-S"
108 Разделяет измеряемую задержку на время для подключения и на время обмена запросом с HTTP сервером.
109 .TP
110 .B "\-s"
111 Когда транзакция успешна завершена, показывать HTTP код ответа (200, 404 и т.д.).
112 .TP
113 .B "\-T x"
114 Читать пароль для аутентификации веб-сайта из файла 'х' (вместо ввода его в командной строке).
115 .TP
116 .B "\-t тайм-аут"
117 Как долго ждать ответа с другой стороны.
118 .TP
119 .B "\-U"
120 Включить аутентификацию для веб-сайта. Устанавливайте имя пользователя с помощью \-U, пароль с помощью \-P (или используйте \-T, чтобы прочитать пароль из файла).
121 .TP
122 .B "\-v"
123 Увеличить уровень подробностей. Покажет в выводе стандартное отклонение и даты.
124 .TP
125 .B "\-W"
126 Не прерывать программу если резолвинг не удался.
127 .TP
128 .B "\-X"
129 Используйте этот переключатель вместе с '\-G'. Для каждого пинга показывать количество переданных данных (за исключением заголовков).
130 .TP
131 .B "\-x прокси_хост[:порт]
132 Совершать пробу с помощью прокси сервера. Обратите внимание, вы также измеряете задержку работы с прокси сервером!
133 .TP
134 .B "\-Y"
135 Включить цвета
136 .TP
137 .B "\-z"
138 При подключении с помощью SSL, показывать фингерпринт X509 сертификата(ов) пиров.
139 .TP
140 .B "\-\-abbreviate"
141 Сокращать значения больше, чем тысяча, миллион, миллиард, и т.д.
142 .TP
143 .B "\-\-adaptive-interval" или "\-\-ai"
144 (Пытается) исполнять пинг на одном интервале. Например, если интервал установлен в 1.0 секунду и t[n] от пинга до пинга является 500s с длительностью 250 мс, то следующий пинг (t[n+1]) произойдет на 501 секунде, а не на 501.25 секунде. Конечно, когда длительность пинга > больше, чем интервал, пинг будет "пропущен" (не в буквальном смысле: последовательный номер продолжится) и t[n+1] будет на 502-й секунде вместо ожидаемой 501-й. Это полезно, например, в режиме вывода библиотеки, где FFT вычисляется по длительности пинга.
145 .TP
146 .B "\-\-aggregates x[,y[,z[,т.д.]]]"
147 Показывать совокупный результат каждые x[,y[,z[,т.д.]]] секунд.
148 .TP
149 .B "\-\-divert\-connect x"
150 Не обращать внимания на имя хоста в URL и вместо этого подключаться к 'х'. Данный ранее URL будет запрошен у 'х'.
151 .TP
152 .B "\-\-draw-phase"
153 Рисовать не только величину преобразования Фурье, но также и фазу.
154 .TP
155 .B "\-\-graph\-limit x"
156 Если измеренные значения больше, чем х, то ограничить их х.
157 .TP
158 .B "\-\-header x"
159 Добавить дополнительный заголовок запроса 'х'.
160 .TP
161 .B "\-\-keep\-cookies"
162 Когда сервер отправляет куки, оно будет отправлено назад в следующем запросе.
163 .TP
164 .B "\-\-max\-mtu x"
165 Максимальное значение MTU для использования. Не может быть больше, чем MTU сетевого интерфейса.
166 .TP
167 .B "\-\-no\-host\-header"
168 Не ставить "Host:" заголовок в заголовки запроса.
169 .TP
170 .B "\-\-no\-tcp\-nodelay"
171 Не отключать "задержку TCP" (Naggle).
172 .TP
173 .B "\-\-priority x"
174 Установить приоритет пакетов.
175 .TP
176 .B "\-\-tos x"
177 Установить тип сервиса.
178 .TP
179 .B "\-\-proxy\-user x"
180 Использовать имя пользователя 'х' для аутентификации на прокси-сервере (http/socks5) (опционально).
181 .TP
182 .B "\-\-proxy\-password x"
183 Использовать пароль 'х' для аутентификации на прокси-сервере (http/socks5) (опционально).
184 .TP
185 .B "\-\-proxy\-password-file x"
186 Читать пароль из файла 'х' для аутентификации на прокси-сервере (http/socks5) (опционально).
187 .TP
188 .B "\-\-recv-buffer x"
189 Установить размер буфера приема (в байтах).
190 .TP
191 .B "\-\-slow\-log x"
192 Когда длительность больше или равна x, показывать строку пинга в окне медленного журнала (среднее окно).
193 .TP
194 .B "\-\-threshold\-red x"
195 Если измеренный пинг выше, чем х (и \-Y установлен), то показываемое значение будет покрашено в красный. Если вы также используете \-\-threshold\-yellow, то это значение должно быть больше.
196 .TP
197 .B "\-\-threshold\-yellow x"
198 Если измеренный пинг выше, чем х (и \-Y установлен), то показываемое значение будет покрашено в желтый.
199 .TP
200 .B "\-\-threshold\-show x"
201 Если измеренный пинг выше, чем х, то результат будет отображен (по умолчанию отображается всегда). Значение х в мс.
202 .TP
203 .B "\-\-timestamp" or "\-\-ts"
204 Показывать таймстамп перед строками с результатами. Используйте опцию \-v, чтобы показывать также и дату.
205 .TP
206 .B "\-\-tx-buffer x"
207 Установить размер буфера передачи (в байтах).
208 .TP
209 .B "\-V"
210 Показать версию и выйти.
211
212 .SH ВЫВОД
213 В режиме разделения экрана (\-S) вы увидите что-то вроде "время=0.08+24.09+23.17+15.64+0.02=62.98 мс". Первое значение — это время, которое потребовалось, чтобы зарезолвить имя хоста (или 'Н/Д', если оно не резолвилось на этой итерации, например, в режиме "резолвить один раз" (\-r)), затем время, которое потребовалось для подключения (Или \-1 в, например, постоянных соединениях (\-Q, HTTP v1.1)), после этого время, которое потребовалось, чтобы произвести операцию записи, затем, то время, которое потребовалось для HTTP сервера, чтобы обработать запрос и отправить его обратно и, наконец, время, которое потребовалось, чтобы закрыть соединение.
214
215 .SH ГРАФИК
216 График в ncurses использует цвета для кодирования смысла. Зеленый: значение меньше, чем 1 блок. Красный: значение не укладывается в график. Синий: значение было ограничено опцией -\-\-graph\-limit. Бирюзовый: нет измерения для этого момента времени.
217
218 .SH КЛАВИШИ
219 Нажмите <Ctrl> + <c>, чтобы выйти из программы. Это отобразит краткую информацию о том, что было измерено.
220 В графическом интерфейсе ncurses, нажмите клавишу <Ctrl> + <l> для принудительной перерисовки экрана. Нажмите 'H', чтобы остановить графики (и снова, чтобы продолжить). Нажмите 'q', чтобы остановить программу (или <Ctrl> + <c>).
221
222 .SH ПРИМЕРЫ
223 .TP
224 .B "httping \-g http://localhost/"
225 Исполнить пинг к веб-серверу на хосте "localhost".
226 .TP
227 .B "httping \-h localhost \-p 1000"
228 Исполнить пинг к веб-серверу на хосте "localhost" с номером порта 1000.
229 .TP
230 .B "httping \-l \-g https://localhost/"
231 Исполнить пинг к веб-серверу на хосте "localhost" с помощью соединения SSL.
232 .TP
233 .B "httping \-g http://localhost/ -U username -P password"
234 Исполнить пинг к веб-серверу на хосте "localhost", используя HTTP Basic Authentication..
235 .SH БАГИ
236 Нету. В этой программе полностью отсутствуют баги.
237
238 .SH "СМОТРИТЕ ТАКЖЕ"
239 .BR http://www.vanheusden.com/httping/
240
241 .SH ЗАМЕТКИ
242 Эта страница описывает
243 .B httping
244 , который содержится в пакете httping-2.3; другие версии могут немного отличаться.
245 Пожалуйста, отправляйте исправления и дополнения на mail@vanheusden.com.
246 Сообщить об ошибках в программе можно по адресу mail@vanheusden.com.
247 Пожалуйста, рассмотрите возможность отправки Биткоинов по адресу 1N5Sn4jny4xVwTwSYLnf7WnFQEGoVRmTQF
0 .\" Copyright Folkert van Heusden, 2003-2013
0 .\" Copyright Folkert van Heusden, 2003-2016
11 .\"
22 .\" This file may be copied under the conditions described
33 .\" in the GNU GENERAL PUBLIC LICENSE, version 2
44 .\" that can be found on the website of the free software
55 .\" foundation.
66 .\"
7 .TH HTTPING 1 2013-07 "httping"
7 .TH HTTPING 1 2016-09 "httping"
88 .SH NAME
99 httping - measure the latency and throughput of a webserver
1010 .SH SYNOPSIS
6060 This selects the url to probe. E.g.: http://localhost/
6161 .TP
6262 .B "\-h hostname"
63 Instead of '\-g' one can also set a hostname to probe with -h: -h localhost
63 Instead of '\-g' one can also set a hostname to probe with \-h: \-h localhost
6464 .TP
6565 .B "\-I str"
6666 UserAgent-string to send to the webserver (instead of 'HTTPing <version>').
9090 This selects the HTTP status-codes which are regarded as an OK-state (only with '\-m').
9191 .TP
9292 .B "\-p portnumber"
93 -p can be used together with \-h. \-p selects the portnumber to probe.
93 \-p can be used together with \-h. \-p selects the portnumber to probe.
9494 .TP
9595 .B "\-q"
9696 Be quiet, only return an exit-code.
9898 .B "\-R str"
9999 Referer-string to send to the webserver.
100100 .TP
101 .B "\-Q"
102 Use a persistent connection, i.e. reuse the same TCP connection for multiple HTTP requests. Usually possible when 'Connection: Keep-Alive' is sent by server. Adds a 'C' to the output if httping had to reconnect.
103 .TP
101104 .B "\-r"
102105 Only resolve the hostname once: this takes the resolving out of the loop so that the latency of the DNS is not measured. Also useful when you want to measure only 1 webserver while the DNS returns a different ip-address for each resolve ('roundrobin').
103106 .TP
123126 Do not abort program if resolving fails.
124127 .TP
125128 .B "\-X"
126 Use this switch together with '-G'. For each "ping" show the amount of data transferred (excluding the headers).
129 Use this switch together with '\-G'. For each "ping" show the amount of data transferred (excluding the headers).
127130 .TP
128131 .B "\-x proxyhost[:port]
129132 Probe using a proxyserver. Note that you're also measuring the latency of the proxyserver!
162165 Maximum MTU to use. Cannot be larger than network interface MTU.
163166 .TP
164167 .B "\-\-no\-host\-header"
165 Do not put a "Host:"-header in the request header.
168 Do not put a "Host:"\-header in the request header.
166169 .TP
167170 .B "\-\-no\-tcp\-nodelay"
168171 Do not disable "tcp delay" (Naggle).
189192 When the duration is x or more, show ping line in the slow log window (the middle window).
190193 .TP
191194 .B "\-\-threshold\-red x"
192 If the measured threshold is higher than x (and -Y is given), then the shown value is colored red. If you also use --threshold-yellow, then this value must be bigger.
195 If the measured threshold is higher than x (and \-Y is given), then the shown value is colored red. If you also use \-\-threshold\-yellow, then this value must be bigger.
193196 .TP
194197 .B "\-\-threshold\-yellow x"
195 If the measured threshold is higher than x (and -Y is given), then the shown value is colored yellow.
198 If the measured threshold is higher than x (and \-Y is given), then the shown value is colored yellow.
196199 .TP
197200 .B "\-\-threshold\-show x"
198201 If the measured threshold is higher than x, then the result is shown (default is show always). The value x is in ms.
199202 .TP
200203 .B "\-\-timestamp" or "\-\-ts"
201 Put a timestamp before the result-lines. Use -v to also show a date.
204 Put a timestamp before the result-lines. Use \-v to also show a date.
202205 .TP
203206 .B "\-\-tx-buffer x"
204207 Set the size of the transmit buffer (in bytes).
207210 Show the version and exit.
208211
209212 .SH OUTPUT
210 In split mode (-S) something like "time=0.08+24.09+23.17+15.64+0.02=62.98 ms" is shown. The first value is the time it took to resolve the hostname (or 'n/a' if it did not resolve in this iteration, e.g. in "resolve once" (-r) mode), then the time it took to connect (or -1 for example in persistent connection (-Q, HTTP v1.1), after that the time it took to put the request on the wire, then the time it took for the HTTP server to process the request and send it back and lastly the time it took to close the connection.
213 In split mode (\-S) something like "time=0.08+24.09+23.17+15.64+0.02=62.98 ms" is shown. The first value is the time it took to resolve the hostname (or 'n/a' if it did not resolve in this iteration, e.g. in "resolve once" (\-r) mode), then the time it took to connect (or \-1 for example in persistent connection (\-Q, HTTP v1.1), after that the time it took to put the request on the wire, then the time it took for the HTTP server to process the request and send it back and lastly the time it took to close the connection.
211214
212215 .SH GRAPH
213 The graph in the ncurses uses colors to encode a meaning. Green: value is less than 1 block. Red: the value did not fit in the graph. Blue: the value was limitted by --graph-limit. Cyan: no measurement for that point in time.
216 The graph in the ncurses uses colors to encode a meaning. Green: value is less than 1 block. Red: the value did not fit in the graph. Blue: the value was limitted by \-\-graph\-limit. Cyan: no measurement for that point in time.
214217
215218 .SH KEYS
216219 Press <CTRL> + <c> to exit the program. It will display a summary of what was measured.
239242 This page describes
240243 .B httping
241244 as found in the httping-2.3 package; other versions may differ slightly.
242 Please mail corrections and additions to folkert@vanheusden.com.
243 Report bugs in the program to folkert@vanheusden.com.
245 Please mail corrections and additions to mail@vanheusden.com.
246 Report bugs in the program to mail@vanheusden.com.
244247 Please consider sending bitcoins to 1N5Sn4jny4xVwTwSYLnf7WnFQEGoVRmTQF
0 /* Released under GPLv2 with exception for the OpenSSL library. See license.txt */
1 /* $Revision$ */
0 /* Released under AGPL v3 with exception for the OpenSSL library. See license.txt */
21
32 #include <errno.h>
43 #include <libintl.h>
3938 if (errno == EINTR)
4039 return RC_CTRLC;
4140
42 set_error(gettext("myread::select failed: %s"), strerror(errno));
41 set_error(gettext("read_to::select failed: %s"), strerror(errno));
4342
4443 return RC_SHORTREAD;
4544 }
0 /* Released under GPLv2 with exception for the OpenSSL library. See license.txt */
1 /* $Revision$ */
0 /* Released under AGPL v3 with exception for the OpenSSL library. See license.txt */
21
32 ssize_t read_to(int fd, char *whereto, size_t len, double timeout);
43 ssize_t myread(int fd, char *whereto, size_t len, double timeout);
0 HTTPing is (C) 2003-2013 by folkert@vanheusden.com
0 HTTPing is (C) 2003-2016 by folkert@vanheusden.com
11
2 The GPL version 2 applies to this program. That document can be found
2 The AGPL version 3 applies to this program. That document can be found
33 on the website of the free software foundation.
44
55 In addition, as a special exception, the copyright holder gives
0 /* Released under GPLv2 with exception for the OpenSSL library. See license.txt */
1 /* $Revision: 278 $ */
0 /* Released under AGPL v3 with exception for the OpenSSL library. See license.txt */
21
32 #define _GNU_SOURCE
43 #include <sys/ioctl.h>
638637 struct tm tm;
639638 memset(&tm, 0x00, sizeof tm);
640639
641 /* 22 Feb 2013 09:13:56 */
640 /* 22 Feb 2015 09:13:56 */
642641 if (strptime(komma + 1, "%d %b %Y %H:%M:%S %Z", &tm))
643642 return mktime(&tm);
644643 }
659658 struct tm tm;
660659 memset(&tm, 0x00, sizeof tm);
661660
662 /* 22 Feb 2013 09:13:56 */
661 /* 22 Feb 2015 09:13:56 */
663662 if (strptime(komma + 1, "%d %b %Y %H:%M:%S %Z", &tm))
664663 age = their_ts - mktime(&tm);
665664 }
10351034 bps.Bps_avg = 0;
10361035
10371036 setlocale(LC_ALL, "");
1038 bindtextdomain("HTTPing", LOCALEDIR);
1039 textdomain("HTTPing");
1037 bindtextdomain("httping", LOCALEDIR);
1038 textdomain("httping");
10401039
10411040 init_statst(&t_resolve);
10421041 init_statst(&t_connect);
14141413 if (!(get_instead_of_head || use_ssl) && show_Bps)
14151414 error_exit(gettext("-b/-B can only be used when also using -G (GET instead of HEAD) or -l (use SSL)\n"));
14161415
1417 if (use_tfo && use_ssl)
1418 error_exit(gettext("TCP Fast open and SSL not supported together\n"));
1419
14201416 if (colors)
14211417 set_colors(ncurses_mode);
14221418
14451441 #ifdef NC
14461442 if (ncurses_mode)
14471443 {
1448 slow_log(gettext("\nAuto enabling SSL due to https-URL"));
1444 slow_log(gettext("\nAuto enabling SSL due to https-URL\n"));
14491445 update_terminal();
14501446 }
14511447 else
14521448 #endif
14531449 {
1454 fprintf(stderr, gettext("Auto enabling SSL due to https-URL"));
1455 }
1456 }
1450 fprintf(stderr, gettext("Auto enabling SSL due to https-URL\n"));
1451 }
1452 }
1453
1454 if (use_tfo && use_ssl)
1455 error_exit(gettext("TCP Fast open and SSL not supported together\n"));
14571456
14581457 if (verbose)
14591458 {
17501749 if (fd >= 0)
17511750 {
17521751 /* set fd blocking */
1753 if (set_fd_blocking(fd) == -1)
1752 if (set_fd_blocking(fd) == -1) /* FIXME redundant? already in connect_to etc? */
17541753 {
17551754 stats_close(&fd, &t_close, 1);
17561755 break;
18051804
18061805 #ifndef NO_SSL
18071806 if (use_ssl)
1808 rc = WRITE_SSL(ssl_h, request, req_len);
1807 rc = WRITE_SSL(ssl_h, request, req_len, timeout);
18091808 else
18101809 #endif
18111810 {
18191818 e.g. until the transmitbuffers are empty and the data was
18201819 sent to the next hop
18211820 */
1821 #ifndef __CYGWIN__
18221822 for(;;)
18231823 {
18241824 int bytes_left = 0;
18371837 */
18381838 usleep(write_sleep);
18391839 }
1840 #endif
18401841
18411842 dafter_write_complete = get_ts();
18421843
00 extern volatile int stop;
1 extern volatile char got_sigquit;
12 extern int max_x, max_y;
23
34 void determine_terminal_size(int *max_y, int *max_x);
+165
-63
mssl.c less more
0 /* Released under GPLv2 with exception for the OpenSSL library. See license.txt */
1 /* $Revision$ */
2
0 /* Released under AGPL v3 with exception for the OpenSSL library. See license.txt */
31 #include <errno.h>
42 #include <libintl.h>
53 #include <string.h>
2523 #include "io.h"
2624 #include "http.h"
2725 #include "utils.h"
26 #include "main.h"
2827
2928 BIO *bio_err = NULL;
3029
4140 CRYPTO_cleanup_all_ex_data();
4241 }
4342
44 char close_ssl_connection(SSL *ssl_h)
43 int close_ssl_connection(SSL *const ssl_h)
4544 {
4645 int rc = SSL_shutdown(ssl_h);
4746
6261 return 0;
6362 }
6463
65 int READ_SSL(SSL *ssl_h, char *whereto, int len)
66 {
67 int cnt=len;
68
69 while(len>0)
70 {
71 int rc;
64 int READ_SSL(SSL *const ssl_h, char *whereto, int len, const double timeout)
65 {
66 const int cnt = len;
67 const int fd = SSL_get_rfd(ssl_h);
68 double end = get_ts() + timeout;
69
70 while(len > 0 && !got_sigquit)
71 {
72 int rc = -1;
73 fd_set rfds, wfds;
74 struct timeval tv;
75 double now = get_ts(), left = end - now;
76
77 if (left <= 0.0)
78 {
79 set_error(gettext("Time-out on SSL connection"));
80 return -1;
81 }
82
83 FD_ZERO(&rfds);
84 FD_SET(fd, &rfds);
85 FD_ZERO(&wfds); /* yes, see openssl */
86 FD_SET(fd, &wfds);
87
88 tv.tv_sec = left;
89 tv.tv_usec = (left - tv.tv_sec) * 1000000;
90
91 rc = select(fd + 1, &rfds, &wfds, NULL, &tv);
92
93 if (rc == -1)
94 {
95 if (errno != EINTR && errno != EAGAIN)
96 set_error(gettext("READ_SSL: io-error: %s"), strerror(errno));
97
98 return -1;
99 }
100
101 if (rc == 0)
102 {
103 set_error(gettext("Time-out on SSL connection (READ)"));
104 return -1;
105 }
72106
73107 rc = SSL_read(ssl_h, whereto, len);
74108 if (rc == -1)
75109 {
76110 if (errno != EINTR && errno != EAGAIN)
77 {
78111 set_error(gettext("READ_SSL: io-error: %s"), strerror(errno));
79 return -1;
80 }
81 }
82 else if (rc == 0)
83 {
112
113 return -1;
114 }
115
116 if (rc == 0)
84117 return 0;
85 }
86 else
87 {
88 whereto += rc;
89 len -= rc;
90 }
118
119 whereto += rc;
120 len -= rc;
91121 }
92122
93123 return cnt;
94124 }
95125
96 int WRITE_SSL(SSL *ssl_h, const char *wherefrom, int len)
97 {
98 int cnt=len;
99
100 while(len>0)
101 {
102 int rc;
126 int WRITE_SSL(SSL *const ssl_h, const char *wherefrom, int len, const double timeout)
127 {
128 const int cnt = len;
129 const int fd = SSL_get_wfd(ssl_h);
130 double end = get_ts() + timeout;
131
132 while(len > 0 && !got_sigquit)
133 {
134 int rc = -1;
135 fd_set rfds, wfds;
136 struct timeval tv;
137 double now = get_ts(), left = end - now;
138
139 if (left <= 0.0)
140 {
141 set_error(gettext("Time-out on SSL connection"));
142 return -1;
143 }
144
145 FD_ZERO(&rfds); /* yes, that's correct */
146 FD_SET(fd, &rfds);
147 FD_ZERO(&wfds);
148 FD_SET(fd, &wfds);
149
150 tv.tv_sec = left;
151 tv.tv_usec = (left - tv.tv_sec) * 1000000;
152
153 rc = select(fd + 1, &rfds, &wfds, NULL, &tv);
154
155 if (rc == -1)
156 {
157 if (errno != EINTR && errno != EAGAIN)
158 set_error(gettext("WRITE_SSL: io-error: %s"), strerror(errno));
159
160 return -1;
161 }
162
163 if (rc == 0)
164 {
165 set_error(gettext("Time-out on SSL connection (write)"));
166 return -1;
167 }
103168
104169 rc = SSL_write(ssl_h, wherefrom, len);
105170 if (rc == -1)
106171 {
107172 if (errno != EINTR && errno != EAGAIN)
108 {
109173 set_error(gettext("WRITE_SSL: io-error: %s"), strerror(errno));
110 return -1;
111 }
112 }
113 else if (rc == 0)
114 {
174 return -1;
175 }
176
177 if (rc == 0)
115178 return 0;
116 }
117 else
118 {
119 wherefrom += rc;
120 len -= rc;
121 }
179
180 wherefrom += rc;
181 len -= rc;
122182 }
123183
124184 return cnt;
125185 }
126186
127 int connect_ssl(int fd, SSL_CTX *client_ctx, SSL **ssl_h, BIO **s_bio, double timeout, double *ssl_handshake)
128 {
129 int dummy = -1;
187 int connect_ssl(const int fd, SSL_CTX *const client_ctx, SSL **const ssl_h, BIO **const s_bio, const double timeout, double *const ssl_handshake)
188 {
130189 double dstart = get_ts();
190 double end = get_ts() + timeout;
131191
132192 struct timeval tv;
133193 tv.tv_sec = (long)(timeout / 1000.0);
152212 *s_bio = BIO_new_socket(fd, BIO_NOCLOSE);
153213 SSL_set_bio(*ssl_h, *s_bio, *s_bio);
154214
155 dummy = SSL_connect(*ssl_h);
156 if (dummy <= 0)
157 {
158 set_error(gettext("problem starting SSL connection: %d"), SSL_get_error(*ssl_h, dummy));
215 if (set_fd_nonblocking(fd) == -1)
216 return RC_INVAL;
217
218 do
219 {
220 int rc = SSL_connect(*ssl_h);
221
222 if (rc <= 0)
223 {
224 int err = SSL_get_error(*ssl_h, rc);
225
226 if (err == SSL_ERROR_WANT_CONNECT || err == SSL_ERROR_WANT_READ || err == SSL_ERROR_WANT_WRITE)
227 {
228 struct timeval tv;
229 fd_set fds;
230 double left = end - get_ts();
231
232 if (left <= 0)
233 {
234 set_error(gettext("Time-out during SSL handshake"));
235 return -1;
236 }
237
238 tv.tv_sec = left;
239 tv.tv_usec = (left - tv.tv_sec) * 1000000;
240
241 FD_ZERO(&fds);
242 FD_SET(fd, &fds);
243
244 if (err == SSL_ERROR_WANT_READ)
245 rc = select(fd + 1, &fds, NULL, NULL, &tv);
246 else
247 rc = select(fd + 1, NULL, &fds, NULL, &tv);
248 }
249 else
250 {
251 set_error(gettext("SSL handshake error: %s"), SSL_get_error(*ssl_h, err));
252 return -1;
253 }
254 }
255 }
256 while (!SSL_is_init_finished(*ssl_h) && !got_sigquit);
257
258 if (got_sigquit)
159259 return -1;
160 }
161260
162261 *ssl_handshake = get_ts() - dstart;
163262
263 if (set_fd_blocking(fd) == -1)
264 return -1;
265
164266 return 0;
165267 }
166268
167 SSL_CTX * initialize_ctx(char ask_compression)
269 SSL_CTX * initialize_ctx(const char ask_compression)
168270 {
169271 const SSL_METHOD *meth = NULL;
170272 SSL_CTX *ctx = NULL;
191293 return ctx;
192294 }
193295
194 char * get_fingerprint(SSL *ssl_h)
296 char * get_fingerprint(SSL *const ssl_h)
195297 {
196298 char *string = NULL;
197299
227329 return string;
228330 }
229331
230 int connect_ssl_proxy(int fd, struct addrinfo *ai, double timeout, const char *proxy_user, const char *proxy_password, const char *hostname, int portnr, char *tfo)
332 int connect_ssl_proxy(const int fd, struct addrinfo *const ai, const double timeout, const char *const proxy_user, const char *const proxy_password, const char *const hostname, const int portnr, char *const tfo)
231333 {
232334 int rc = -1;
233335 char request_headers[4096] = { 0 };
238340 request_headers_len = snprintf(request_headers, sizeof request_headers, "CONNECT %s:%d HTTP/1.1\r\nUser-Agent: HTTPing v" VERSION \
239341 "\r\nProxy-Connection: keep-alive\r\nConnection: keep-alive\r\nHost: %s\r\n", hostname, portnr, hostname);
240342
241 if (proxy_user)
242 {
243 char ppa_string[256] = { 0 };
244 char b64_ppa_string[512] = { 0 };
245
246 sprintf(ppa_string, "%s:%s", proxy_user, proxy_password);
247 enc_b64(ppa_string, strlen(ppa_string), b64_ppa_string);
248 request_headers_len += snprintf(&request_headers[request_headers_len], sizeof request_headers - request_headers_len, "Proxy-Authorization: Basic %s\r\n", b64_ppa_string);
249 }
343 if (proxy_user)
344 {
345 char ppa_string[256] = { 0 };
346 char b64_ppa_string[512] = { 0 };
347
348 sprintf(ppa_string, "%s:%s", proxy_user, proxy_password);
349 enc_b64(ppa_string, strlen(ppa_string), b64_ppa_string);
350 request_headers_len += snprintf(&request_headers[request_headers_len], sizeof request_headers - request_headers_len, "Proxy-Authorization: Basic %s\r\n", b64_ppa_string);
351 }
250352
251353 request_headers_len += snprintf(&request_headers[request_headers_len], sizeof request_headers - request_headers_len, "\r\n");
252354
253 if ((rc = connect_to(fd, ai, timeout, tfo, request_headers, request_headers_len, &rh_sent)) < 0)
355 if ((rc = connect_to(fd, ai, timeout, tfo, request_headers, request_headers_len, &rh_sent)) == -1)
254356 return rc;
255357
256358 if (!rh_sent)
0 /* Released under GPLv2 with exception for the OpenSSL library. See license.txt */
1 /* $Revision$ */
0 /* Released under AGPL v3 with exception for the OpenSSL library. See license.txt */
21
32 #include <netdb.h>
43 #include <netinet/in.h>
65 #include <arpa/inet.h>
76
87 void shutdown_ssl(void);
9 char close_ssl_connection(SSL *ssl_h);
10 int READ_SSL(SSL *ssl_h, char *whereto, int len);
11 int WRITE_SSL(SSL *ssl_h, const char *whereto, int len);
12 int connect_ssl(int fd, SSL_CTX *client_ctx, SSL **ssl_h, BIO **s_bio, double timeout, double *ssl_handshake);
13 SSL_CTX * initialize_ctx(char ask_compression);
14 char * get_fingerprint(SSL *ssl_h);
15 int connect_ssl_proxy(int fd, struct addrinfo *ai, double timeout, const char *proxy_user, const char *proxy_password, const char *hostname, int portnr, char *tfo);
8 int close_ssl_connection(SSL *const ssl_h);
9 int READ_SSL(SSL *const ssl_h, char *whereto, int len, const double timeout);
10 int WRITE_SSL(SSL *const ssl_h, const char *whereto, int len, const double timeout);
11 int connect_ssl(const int fd, SSL_CTX *const client_ctx, SSL **const ssl_h, BIO **const s_bio, const double timeout, double *const ssl_handshake);
12 SSL_CTX * initialize_ctx(const char ask_compression);
13 char * get_fingerprint(SSL *const ssl_h);
14 int connect_ssl_proxy(const int fd, struct addrinfo *const ai, const double timeout, const char *const proxy_user, const char *const proxy_password, const char *const hostname, const int portnr, char *const tfo);
0 /* $Revision$ */
10 #define _GNU_SOURCE
21 #include <stdio.h>
32 #include <libintl.h>
0 /* $Revision$ */
10 #include <ncurses.h>
21
32 extern char win_resize;
00 # Dutch translations for HTTPing package.
1 # Copyright (C) 2013 folkert van heusden
1 # Copyright (C) 2016 folkert van heusden
22 # This file is distributed under the same license as the HTTPing package.
3 # folkert van heusden <folkert@vanheusden.com>, 2013.
3 # folkert van heusden <mail@vanheusden.com>, 2016.
44 # Translated by Joris Zwart - http://joriszwart.nl/
55 #
66 msgid ""
77 msgstr ""
88 "Project-Id-Version: HTTPing\n"
99 "Report-Msgid-Bugs-To: \n"
10 "POT-Creation-Date: 2013-05-04 15:29+0200\n"
11 "PO-Revision-Date: 2013-05-04 18:41+0100\n"
10 "POT-Creation-Date: 2015-05-04 15:29+0200\n"
11 "PO-Revision-Date: 2015-05-04 18:41+0100\n"
1212 "Last-Translator: Joris Zwart <hallo@joriszwart.nl>\n"
1313 "Language-Team: Dutch\n"
1414 "Language: nl\n"
186186 msgstr "voeg geen \"Host:\"-regel in het verbindingsverzoek"
187187
188188 #: help.c:212
189 msgid "use a persistent connection. adds a 'C' to the output if httping had to reconnect"
190 msgstr "gebruik een blijvende verbinding. als het bestemmingssysteem de verbinding verbroken heeft, dan zal HTTPing een \"C\" toevoegen aan de uitvoer"
189 msgid "use a persistent connection, i.e. reuse the same TCP connection for multiple HTTP requests. usually possible when 'Connection: Keep-Alive' is sent by server. adds a 'C' to the output if httping had to reconnect"
190 msgstr "gebruik een blijvende verbinding, dat wil zeggen hergebruiken dezelfde TCP-verbinding voor meerdere HTTP-verzoeken. meestal mogelijk wanneer 'Connection: Keep-Alive' is verzonden door de server. als het bestemmingssysteem de verbinding verbroken heeft, dan zal HTTPing een \"C\" toevoegen aan de uitvoer"
191191
192192 #: help.c:213
193193 msgid "use 'x' for the UserAgent header"
347347 msgstr "json uitvoer, kan niet met -m gecombineerd worden"
348348
349349 #: help.c:270
350 msgid "what http results codes indicate 'ok' comma seperated WITHOUT spaces inbetween default is 200, use with -e"
350 msgid "what http results codes indicate 'ok' comma separated WITHOUT spaces inbetween default is 200, use with -e"
351351 msgstr "welke HTTP statuscodes als 'ok' te beschouwen. dit moet een met komma gescheiden lijst (geen spaties) zijn. de standaard waarde is 200. gebruik deze instelling ism -e"
352352
353353 #: help.c:271
4040
4141
4242 For everything more or less related to 'httping', please feel free
43 to contact me on: folkert@vanheusden.com
43 to contact me on: mail@vanheusden.com
4444
4545 Please support my opensource development: http://www.vanheusden.com/wishlist.php
4646 Or send any surplus bitcoins to 1N5Sn4jny4xVwTwSYLnf7WnFQEGoVRmTQF
0 /* Released under GPLv2 with exception for the OpenSSL library. See license.txt */
1 /* $Revision$ */
0 /* Released under AGPL v3 with exception for the OpenSSL library. See license.txt */
21
32 #include <sys/types.h>
43 #include <sys/time.h>
0 /* Released under GPLv2 with exception for the OpenSSL library. See license.txt */
1 /* $Revision$ */
0 /* Released under AGPL v3 with exception for the OpenSSL library. See license.txt */
21
32 #define incopy(a) *((struct in_addr *)a)
43
+1229
-0
ru.po less more
0 # Russian translation for HTTPing package.
1 # Copyright (C) 2016 folkert van heusden
2 # This file is distributed under the same license as the HTTPing package.
3 # folkert van heusden <mail@vanheusden.com>, 2016.
4 # Translated by Way, No - http://noway421.github.io/
5 #
6 msgid ""
7 msgstr ""
8 "Project-Id-Version: HTTPing\n"
9 "Report-Msgid-Bugs-To: \n"
10 "POT-Creation-Date: 2015-05-04 15:29+0200\n"
11 "PO-Revision-Date: 2016-07-13 16:00+1100\n"
12 "Last-Translator: Way, No <noway@2ch.hk>\n"
13 "Language-Team: Russian\n"
14 "Language: ru\n"
15 "MIME-Version: 1.0\n"
16 "Content-Type: text/plain; charset=UTF-8\n"
17 "Content-Transfer-Encoding: 8bit\n"
18 "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11) ? 0 : ((n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20)) ? 1 : 2);\n"
19 "X-Poedit-Language: Russian\n"
20 "X-Poedit-Country: RUSSIAN FEDERATION\n"
21
22 #: error.c:23
23 #, c-format
24 msgid ""
25 "\n"
26 "\n"
27 "errno=%d which means %s (if applicable)\n"
28 msgstr ""
29 "\n"
30 "\n"
31 "errno=%d что значит: %s (если применимо)\n"
32
33 #: error.c:39
34 #, c-format
35 msgid "Error message '%s' truncated"
36 msgstr "Сообщение об ошибке '%s' урезано."
37
38 #: fft.c:21
39 msgid "failed allocating memory for fft (1)"
40 msgstr "не удалось выделить память для fft (1)."
41
42 #: fft.c:25
43 msgid "failed allocating memory for fft (2)"
44 msgstr "не удалось выделить память для fft (2)."
45
46 #: fft.c:30
47 msgid "failed calculating plan for fft"
48 msgstr "не удалось вычислить план для fft."
49
50 #: help.c:77
51 #, c-format
52 msgid "HTTPing v"
53 msgstr "HTTPing версия"
54
55 msgid "adds an extra request-header"
56 msgstr "добавляет дополнительный заголовок запроса"
57
58 #: help.c:79
59 #, c-format
60 msgid " * SSL support included (-l)\n"
61 msgstr " * SSL поддержка включена (-l)\n"
62
63 #: help.c:84
64 #, c-format
65 msgid " * ncurses interface with FFT included (-K)\n"
66 msgstr " * ncurses интерфейс с FFT включен (-K)\n"
67
68 #: help.c:86
69 #, c-format
70 msgid " * ncurses interface included (-K)\n"
71 msgstr " * ncurses интерфейс включен (-K)\n"
72
73 #: help.c:91
74 #, c-format
75 msgid " * TFO (TCP fast open) support included (-F)\n"
76 msgstr " * TFO (TCP fast open) поддержка включена' (-F)\n"
77
78 #: help.c:93
79 #: help.c:293
80 #, c-format
81 msgid "\n"
82 msgstr "\n"
83
84 #: help.c:176
85 #, c-format
86 msgid " *** where to connect to ***\n"
87 msgstr " *** куда подключаться ***\n"
88
89 #: help.c:177
90 msgid "URL to ping (e.g. -g http://localhost/)"
91 msgstr "URL для пинга (к примеру, -g http://localhost/)"
92
93 #: help.c:178
94 msgid "hostname to ping (e.g. localhost) - use either -g or -h"
95 msgstr "имя хоста для пинга (к примеру, localhost) - используйте -g или -h"
96
97 #: help.c:179
98 msgid "portnumber (e.g. 80) - use with -h"
99 msgstr "номер порта (к примеру, 80), используется с -h"
100
101 #: help.c:180
102 msgid "use IPv6 when resolving/connecting"
103 msgstr "использовать IPv6 для резолва/подключения"
104
105 #: help.c:182
106 msgid "connect using SSL. pinging an https URL automatically enables this setting"
107 msgstr "подключаться с SSL. при пинге https URL эта опция включается автоматически"
108
109 #: help.c:187
110 #, c-format
111 msgid " *** proxy settings ***\n"
112 msgstr " *** настройки proxy ***\n"
113
114 #: help.c:188
115 msgid "x should be \"host:port\" which are the network settings of the http/https proxy server. ipv6 ip-address should be \"[ip:address]:port\""
116 msgstr "x должен быть \"host:port\", т.е. сетевыми настройками http/https прокси сервера. ipv6 адрес должен быть в формате \"[ip:address]:port\""
117
118 #: help.c:189
119 msgid "fetch proxy settings from environment variables"
120 msgstr "читать настройки прокси из переменных окружения"
121
122 #: help.c:190
123 msgid "username for authentication against proxy"
124 msgstr "имя пользователя для прокси аутентификации"
125
126 #: help.c:191
127 msgid "password for authentication against proxy"
128 msgstr "пароль для прокси аутентификации"
129
130 #: help.c:192
131 msgid "read password for proxy authentication from file x"
132 msgstr "читать пароль для прокси аутентификации из файла x"
133
134 #: help.c:193
135 msgid "proxy is a socks5 server"
136 msgstr "прокси является socks5 сервером"
137
138 #: help.c:194
139 msgid "adds \"&x=[random value]\" to the request URL"
140 msgstr "добавляет \"&x=[случайное значение]\" к URL запроса"
141
142 #: help.c:198
143 #, c-format
144 msgid " *** timing settings ***\n"
145 msgstr " *** настройки времени ***\n"
146
147 #: help.c:199
148 msgid "how many times to ping"
149 msgstr "сколько раз исполнять пинг"
150
151 #: help.c:200
152 msgid "delay between each ping"
153 msgstr "задержка между каждым пингом"
154
155 #: help.c:201
156 msgid "timeout (default: 30s)"
157 msgstr "тайм-аут (по умолчанию: 30 секунд)"
158
159 #: help.c:202
160 msgid "execute pings at multiples of interval relative to start, automatically enabled in ncurses output mode"
161 msgstr "выполнять пинги пропорционально интервалам относительно начала, автоматически включено в ncurses режиме вывода"
162
163 #: help.c:203
164 msgid "flood connect (no delays)"
165 msgstr "подключение в режиме флуда (без задержек)"
166
167 #: help.c:207
168 #, c-format
169 msgid " *** HTTP settings ***\n"
170 msgstr " *** HTTP настройки ***\n"
171
172 #: help.c:208
173 msgid "ask any proxies on the way not to cache the requests"
174 msgstr "просить все прокси по пути не кэшировать запросы"
175
176 #: help.c:209
177 msgid "connect to a different host than in the URL given"
178 msgstr "подключиться к другому хосту, отличному от данного в URL"
179
180 #: help.c:210
181 msgid "return the cookies given by the HTTP server in the following request(s)"
182 msgstr "возвращать куки выданные HTTP сервером в следующем запросе(ах)"
183
184 #: help.c:211
185 msgid "do not add \"Host:\"-line to the request headers"
186 msgstr "не добавлять \"Host:\" строку к заголовку запроса"
187
188 #: help.c:212
189 msgid "use a persistent connection, i.e. reuse the same TCP connection for multiple HTTP requests. usually possible when 'Connection: Keep-Alive' is sent by server. adds a 'C' to the output if httping had to reconnect"
190 msgstr "использовать постоянное соединение, т.е. переиспользовать то же самое TCP соединение для нескольких HTTP запросов. обычно возможно когда 'Connection: Keep-Alive' отправлено сервером. добавляет 'C' в вывод если httping был вынужден переподключиться"
191
192 #: help.c:213
193 msgid "use 'x' for the UserAgent header"
194 msgstr "использовать 'x' в качестве заголовка UserAgent"
195
196 #: help.c:214
197 msgid "use 'x' for the Referer header"
198 msgstr "использовать 'x' в качестве заголовка Referer"
199
200 #: help.c:218
201 #, c-format
202 msgid " *** networking settings ***\n"
203 msgstr " *** настройки сети ***\n"
204
205 #: help.c:219
206 msgid "limit the MTU size"
207 msgstr "ограничивать размер MTU"
208
209 #: help.c:220
210 msgid "do not disable Naggle"
211 msgstr "не отключать алгоритм Naggle"
212
213 #: help.c:221
214 msgid "receive buffer size"
215 msgstr "размер буфера приема"
216
217 #: help.c:222
218 msgid "transmit buffer size"
219 msgstr "размер буфера передачи"
220
221 #: help.c:223
222 msgid "resolve hostname only once (useful when pinging roundrobin DNS: also takes the first DNS lookup out of the loop so that the first measurement is also correct)"
223 msgstr "резолвить имя хоста только один раз (полезно, когда пингуется round robin DNS: также берется первый DNS ответ из цикла таким образом, что первое измерение тоже корректно)"
224
225 #: help.c:224
226 msgid "do not abort the program if resolving failed: keep retrying"
227 msgstr "не выходить из программы если резолвинг не удался: продолжать попытки"
228
229 #: help.c:225
230 msgid "bind to an ip-address (and thus interface) with an optional port"
231 msgstr "биндиться на ip адрес (и, соответственно, интерфейс), опционально на порт"
232
233 #: help.c:227
234 msgid "\"TCP fast open\" (TFO), reduces the latency of TCP connects"
235 msgstr "\"TCP fast open\" (TFO), уменьшает задержку TCP подключений"
236
237 #: help.c:229
238 msgid "set priority of packets"
239 msgstr "устанавливать приоритет пакетов"
240
241 #: help.c:230
242 msgid "set TOS (type of service)"
243 msgstr "устанавливать TOS (тип сервиса)"
244
245 #: help.c:234
246 #, c-format
247 msgid " *** HTTP authentication ***\n"
248 msgstr " *** HTTP аутентификация ***\n"
249
250 #: help.c:235
251 msgid "activate (\"basic\") authentication"
252 msgstr "активировать (\"basic\") аутентификацию"
253
254 #: help.c:236
255 msgid "username for authentication"
256 msgstr "имя пользователя для аутентификации"
257
258 #: help.c:237
259 msgid "password for authentication"
260 msgstr "пароль для аутентификации"
261
262 #: help.c:238
263 msgid "read the password fom the file 'x' (replacement for -P)"
264 msgstr "читать пароль из файла 'x' (замена -P)"
265
266 #: help.c:242
267 #, c-format
268 msgid " *** output settings ***\n"
269 msgstr " *** настройки вывода ***\n"
270
271 #: help.c:243
272 msgid "show statuscodes"
273 msgstr "показывать коды ответа"
274
275 #: help.c:244
276 msgid "split measured time in its individual components (resolve, connect, send, etc."
277 msgstr "разделять замеренное время на индивидуальные составляющие (резолв, подключение, отправка и т.п.)"
278
279 #: help.c:245
280 msgid "from what ping value to show the value in red (must be bigger than yellow), only in color mode (-Y)"
281 msgstr "начиная от какого значения пинга показывать значение красным (должно быть больше, чем желтое), только в цветном режиме (-Y)"
282
283 #: help.c:246
284 msgid "from what ping value to show the value in yellow"
285 msgstr "начиная от какого значения пинга показывать значение желтым"
286
287 #: help.c:247
288 msgid "from what ping value to show the results"
289 msgstr "начиная от какого значения пинга показывать результаты"
290
291 #: help.c:248
292 msgid "put a timestamp before the measured values, use -v to include the date and -vv to show in microseconds"
293 msgstr "показывать таймстамп перед измеренными значениями, используйте -v, чтобы включить дату и -vv, чтобы показывать микросекунды"
294
295 #: help.c:249
296 msgid "show an aggregate each x[/y[/z[/etc]]] seconds"
297 msgstr "показывать совокупный результат каждые x[/y[/z[/т.д.]]] секунд"
298
299 #: help.c:251
300 msgid "show fingerprint (SSL)"
301 msgstr "показывать фингерпринт (SSL)"
302
303 #: help.c:253
304 msgid "verbose mode"
305 msgstr "показывать подробности (verbose)"
306
307 #: help.c:257
308 #, c-format
309 msgid " *** \"GET\" (instead of HTTP \"HEAD\") settings ***\n"
310 msgstr " *** \"GET\" (вместо HTTP \"HEAD\") настройки ***\n"
311
312 #: help.c:258
313 msgid "do a GET request instead of HEAD (read the contents of the page as well)"
314 msgstr "делать GET запрос вместо HEAD запроса (читать содержимое страницы в том числе)"
315
316 #: help.c:259
317 msgid "show transfer speed in KB/s (use with -G)"
318 msgstr "показывать скорость передачи в КБ/с (используется с -G)"
319
320 #: help.c:260
321 msgid "like -b but use compression if available"
322 msgstr "как и -b но использовать сжатие если доступно"
323
324 #: help.c:261
325 msgid "limit the amount of data transferred (for -b) to 'x' (in bytes)"
326 msgstr "ограничить количество переданных данных (для -b) до 'x' байт"
327
328 #: help.c:262
329 msgid "show the number of KB transferred (for -b)"
330 msgstr "показывать количество переданных данных в КБ (для -b)"
331
332 #: help.c:266
333 #, c-format
334 msgid " *** output mode settings ***\n"
335 msgstr " *** настройки режима вывода ***\n"
336
337 #: help.c:267
338 msgid "quiet, only returncode"
339 msgstr "тихий режим, возвращать только код возврата"
340
341 #: help.c:268
342 msgid "give machine parseable output (see also -o and -e)"
343 msgstr "выдавать машиночитаемый вывод (смотрите также -o и -e)"
344
345 #: help.c:269
346 msgid "json output, cannot be combined with -m"
347 msgstr "json вывод, не может быть использовано вместе с -m"
348
349 #: help.c:270
350 msgid "what http results codes indicate 'ok' comma separated WITHOUT spaces inbetween default is 200, use with -e"
351 msgstr "какие HTTP коды ответа считать за 'ok'. разделять запятыми БЕЗ пробелов, по умолчанию 200, использовать вместе с -e"
352
353 #: help.c:271
354 msgid "string to display when http result code doesn't match"
355 msgstr "строка для показа когда код ответа HTTP не совпадает"
356
357 #: help.c:272
358 msgid "Nagios-mode: return 1 when avg. response time >= warn, 2 if >= crit, otherwhise return 0"
359 msgstr "Nagios-mode 1: возвращать 1 когда сред. времени ответа >= \"warn\", 2 когда оно >= \"crit\", в остальных случаях возвращать 0"
360
361 #: help.c:273
362 msgid "Nagios mode 2: return 0 when all fine, 'x' when anything failes"
363 msgstr "Nagios mode 2: возвращать 0 когда все в порядке, 'x' когда что-то идет не так"
364
365 #: help.c:274
366 msgid "add a cookie to the request"
367 msgstr "добавлять куки к запросу"
368
369 #: help.c:275
370 msgid "add colors"
371 msgstr "добавлять цвета"
372
373 #: help.c:276
374 msgid "audible ping"
375 msgstr "слышимый пинг"
376
377 #: help.c:281
378 #, c-format
379 msgid " *** GUI/ncurses mode settings ***\n"
380 msgstr " *** Настройки режима GUI/ncurses ***\n"
381
382 #: help.c:282
383 msgid "ncurses/GUI mode"
384 msgstr "ncurses/GUI режим"
385
386 #: help.c:284
387 msgid "draw phase (fourier transform) in gui"
388 msgstr "рисовать фазу (преобразование Фурье) в GUI"
389
390 #: help.c:286
391 msgid "when the duration is x or more, show ping line in the slow log window (the middle window)"
392 msgstr "когда длительность больше или равна x, показывать строку пинга в окне медленного журнала (среднее окно)"
393
394 #: help.c:287
395 msgid "do not scale to values above x"
396 msgstr "не масштабировать значения больше 'x'"
397
398 #: help.c:288
399 msgid "do not show graphs (in ncurses/GUI mode)"
400 msgstr "не показывать графики (в ncurses/GUI режиме)"
401
402 #: help.c:292
403 msgid "show the version"
404 msgstr "показывать версию"
405
406 #: help.c:305
407 #, c-format
408 msgid "Voorbeeld:\n"
409 msgstr "Пример:\n"
410
411 #: io.c:43
412 #: io.c:78
413 #, c-format
414 msgid "myread::select failed: %s"
415 msgstr "myread::select потерпел неудачу: %s"
416
417 #: io.c:94
418 #, c-format
419 msgid "myread::read failed: %s"
420 msgstr "myread::read потерпел неудачу: %s"
421
422 #: io.c:138
423 #, c-format
424 msgid "mywrite::select failed: %s"
425 msgstr "mywrite::select потерпел неудачу: %s"
426
427 #: io.c:152
428 #, c-format
429 msgid "mywrite::write failed: %s"
430 msgstr "mywrite::write потерпел неудачу: %s"
431
432 #: io.c:174
433 #, c-format
434 msgid "set_fd_nonblocking failed! (%s)\n"
435 msgstr "set_fd_nonblocking потерпел неудачу! (%s)\n"
436
437 #: io.c:187
438 #, c-format
439 msgid "set_fd_blocking failed! (%s)\n"
440 msgstr "set_fd_blocking потерпел неудачу! (%s)\n"
441
442 #: main.c:109
443 #: main.c:108
444 #, c-format
445 msgid "%s, run time: %.3fs, press ctrl + c to stop"
446 msgstr "%s, время работы: %.3fs, нажмите ctrl + c, чтобы остановить"
447
448 #: main.c:244
449 #: main.c:243
450 #, c-format
451 msgid "Got signal %d\n"
452 msgstr "Есть сигнал %d\n"
453
454 #: main.c:255
455 #: main.c:254
456 #, c-format
457 msgid "Cannot open password-file %s"
458 msgstr "Не получается открыть файл пароля %s"
459
460 #: main.c:258
461 #: main.c:257
462 #, c-format
463 msgid "Problem reading password from file %s"
464 msgstr "Проблема чтения пароля из файла %s"
465
466 #: main.c:365
467 #: main.c:364
468 #, c-format
469 msgid "URL too big, HTTPing has a %d bytes limit"
470 msgstr "URL слишком длинный, HTTPing имеет лимит %d байт"
471
472 #: main.c:384
473 #: main.c:383
474 msgid "using \"http://\" with SSL enabled (-l)"
475 msgstr "Используем \"http://\" с включенным SSL (-l)"
476
477 #: main.c:519
478 #: main.c:518
479 #, c-format
480 msgid "AGG[%d]: %d values, min/avg/max%s = %.1f/%.1f/%.1f"
481 msgstr "СВКПН[%d]: %d значений, мин/сред/макс%s = %.1f/%.1f/%.1f"
482
483 #: main.c:519
484 #: main.c:2294
485 #: main.c:518
486 #: main.c:2289
487 msgid "/sd"
488 msgstr "/sd"
489
490 #: main.c:576
491 #: main.c:575
492 msgid "-n: missing parameter\n"
493 msgstr "-n: отсутствующий параметр\n"
494
495 #: main.c:594
496 #: main.c:603
497 #: main.c:593
498 #: main.c:602
499 #, c-format
500 msgid "cannot convert ip address '%s' (for -y)\n"
501 msgstr "не получается конвертировать IP адрес '%s' (для -y)\n"
502
503 #: main.c:710
504 #: main.c:709
505 #, c-format
506 msgid "CRITICAL - connecting failed: %s"
507 msgstr "КРИТИЧНО - подключение не удалось: %s"
508
509 #: main.c:715
510 #: main.c:714
511 #, c-format
512 msgid "CRITICAL - average httping-time is %.1f\n"
513 msgstr "КРИТИЧНО - среднее httping-время %.1f\n"
514
515 #: main.c:720
516 #: main.c:719
517 #, c-format
518 msgid "WARNING - average httping-time is %.1f\n"
519 msgstr "ПРЕДУПРЕЖДЕНИЕ - среднее httping-время %.1f\n"
520
521 #: main.c:724
522 #: main.c:723
523 #, c-format
524 msgid "OK - average httping-time is %.1f (%s)|ping=%f\n"
525 msgstr "OK - среднее httping-время %.1f (%s)|ping=%f\n"
526
527 #: main.c:734
528 #: main.c:733
529 #, c-format
530 msgid "OK - all fine, avg httping time is %.1f|ping=%f\n"
531 msgstr "OK - все в порядке, сред httping время %.1f|ping=%f\n"
532
533 #: main.c:738
534 #: main.c:737
535 #, c-format
536 msgid "%s: - failed: %s"
537 msgstr "%s: - не удалось: %s"
538
539 #: main.c:1025
540 #: main.c:1020
541 #, c-format
542 msgid ""
543 "\n"
544 " *** -A is no longer required ***\n"
545 "\n"
546 msgstr ""
547 "\n"
548 " *** -A больше не требуется ***\n"
549 "\n"
550
551 #: main.c:1170
552 #: main.c:1165
553 msgid "-i cannot have a value smaller than zero"
554 msgstr "-i не может иметь значение меньше нуля"
555
556 #: main.c:1224
557 #: main.c:1232
558 #: main.c:1219
559 #: main.c:1227
560 msgid "-n and -N are mutual exclusive\n"
561 msgstr "-n и -N являются взаимоисключающими\n"
562
563 #: main.c:1253
564 #: main.c:1248
565 #, c-format
566 msgid "Warning: TCP TFO is not supported. Disabling.\n"
567 msgstr "Предупреждение: TCP TFO не поддерживается. Отключаем.\n"
568
569 #: main.c:1269
570 #: main.c:1264
571 #, c-format
572 msgid ""
573 "\n"
574 "\n"
575 "Please run:\n"
576 "\t%s --help\n"
577 "to see a list of options.\n"
578 "\n"
579 msgstr ""
580 "\n"
581 "\n"
582 "Пожалуйста выполните:\n"
583 "\t%s --help\n"
584 "чтобы посмотреть список опций.\n"
585 "\n"
586
587 #: main.c:1281
588 #, c-format
589 msgid ""
590 "No URL/host to ping given\n"
591 "\n"
592 msgstr ""
593 "Никакого URL/хоста для пинга не дано\n"
594 "\n"
595
596 #: main.c:1291
597 #: main.c:1286
598 msgid "Cannot combine -m, -M and -K"
599 msgstr "Нельзя совместить -m, -M и -K"
600
601 #: main.c:1294
602 #: main.c:1289
603 msgid "Aggregates can only be used in non-machine/json-output mode"
604 msgstr "Вывод совокупностей может быть только использован в немашиночитаемом/json-вывод режиме"
605
606 #: main.c:1299
607 #: main.c:1294
608 msgid "-b/-B can only be used when also using -G (GET instead of HEAD) or -l (use SSL)\n"
609 msgstr "-b/-B может быть использован только при использовании -G (GET вместо HEAD) или -l (использовать SSL)\n"
610
611 #: main.c:1302
612 #: main.c:1297
613 msgid "TCP Fast open and SSL not supported together\n"
614 msgstr "TCP Fast open и SSL не поддерживаются вместе\n"
615
616 #: main.c:1332
617 #: main.c:1327
618 msgid ""
619 "\n"
620 "Auto enabling SSL due to https-URL"
621 msgstr ""
622 "\n"
623 "Автоматически включаем SSL ввиду https URL"
624
625 #: main.c:1338
626 #: main.c:1333
627 #, c-format
628 msgid "Auto enabling SSL due to https-URL"
629 msgstr "Автоматически включаем SSL ввиду https-URL"
630
631 #: main.c:1347
632 #: main.c:1342
633 #, c-format
634 msgid ""
635 "\n"
636 "Connecting to host %s, port %d and requesting file %s"
637 msgstr ""
638 "\n"
639 "Подключаемся к хосту %s, порт %d и запрашиваем файл %s"
640
641 #: main.c:1350
642 #: main.c:1345
643 #, c-format
644 msgid ""
645 "\n"
646 "Using proxyserver: %s:%d"
647 msgstr ""
648 "\n"
649 "Используем прокси сервер: %s:%d"
650
651 #: main.c:1355
652 #: main.c:1350
653 #, c-format
654 msgid ""
655 "Connecting to host %s, port %d and requesting file %s\n"
656 "\n"
657 msgstr ""
658 "Подключаемся к хосту %s, порт %d и запрашиваем файл %s\n"
659 "\n"
660
661 #: main.c:1358
662 #: main.c:1353
663 #, c-format
664 msgid "Using proxyserver: %s:%d\n"
665 msgstr "Используем прокси сервер: %s:%d\n"
666
667 #: main.c:1369
668 #: main.c:1364
669 msgid "problem creating SSL context"
670 msgstr "Проблема при создании SSL контекста"
671
672 #: main.c:1389
673 #: main.c:1384
674 msgid "Interval must be > 0 when using adaptive interval"
675 msgstr "Интервал должен быть больше нуля при использовании адаптивного интервала"
676
677 #: main.c:1417
678 #: main.c:1435
679 #: main.c:1519
680 #: main.c:1412
681 #: main.c:1430
682 #: main.c:1514
683 #, c-format
684 msgid ""
685 "\n"
686 "Resolving hostname %s"
687 msgstr ""
688 "\n"
689 "Резолвим имя хоста %s"
690
691 #: main.c:1427
692 #: main.c:1452
693 #: main.c:1545
694 #: main.c:1422
695 #: main.c:1447
696 #: main.c:1540
697 #, c-format
698 msgid "No valid IPv4 or IPv6 address found for %s"
699 msgstr "Валидный IPv4 или IPv6 адрес не найден для %s"
700
701 #: main.c:1579
702 #: main.c:1574
703 msgid "Will no longer inform about request headers too large."
704 msgstr "Больше не сообщать о слишком больших заголовках запроса."
705
706 #: main.c:1581
707 #: main.c:1576
708 #, c-format
709 msgid "Request headers > 4KB! (%d bytes) This may give failures with some HTTP servers."
710 msgstr "Заголовок запроса > 4КБ! (%d байт) Это может привести к ошибке на некоторых HTTP серверах."
711
712 #: main.c:1685
713 #: main.c:1680
714 msgid "timeout connecting to host"
715 msgstr "тайм-аут при подключении к хосту"
716
717 #: main.c:1748
718 #: main.c:1743
719 msgid "error sending request to host"
720 msgstr "ошибка при отправке запроса к хосту"
721
722 #: main.c:1750
723 #: main.c:1800
724 #: main.c:1745
725 #: main.c:1795
726 msgid "timeout sending to host"
727 msgstr "тайм-аут при отправке к хосту"
728
729 #: main.c:1752
730 #: main.c:1747
731 msgid "retrieved invalid data from host"
732 msgstr "получены неправильные данные от хоста"
733
734 #: main.c:1756
735 #: main.c:1751
736 msgid "connection prematurely closed by peer"
737 msgstr "подключение преждевременно закрыто пиром"
738
739 #: main.c:1790
740 #: main.c:1785
741 msgid ""
742 "\n"
743 "No longer emitting message about \"still data in transit\""
744 msgstr ""
745 "\n"
746 "Больше не выводить сообщение о \"данных еще в пути\""
747
748 #: main.c:1792
749 #: main.c:1787
750 #, c-format
751 msgid ""
752 "\n"
753 "HTTP server started sending data with %d bytes still in transit"
754 msgstr ""
755 "\n"
756 "HTTP начал отправлять данные в то время как %d байт еще в пути"
757
758 #: main.c:1813
759 #: main.c:1808
760 msgid "failed to obtain TOS info"
761 msgstr "ошибка при получении TOS информации"
762
763 #: main.c:1827
764 #: main.c:1822
765 msgid ""
766 "\n"
767 "No longer emitting message about \"more data than response headers\""
768 msgstr ""
769 "\n"
770 "Больше не выводить сообщение о \"больше данных сверх заголовков ответа\""
771
772 #: main.c:1829
773 #: main.c:1824
774 msgid ""
775 "\n"
776 "HTTP server sent more data than just the response headers"
777 msgstr ""
778 "\n"
779 "HTTP сервер отправил больше данных сверх заголовков ответа"
780
781 #: main.c:1878
782 #: main.c:1873
783 msgid "'Content-Length'-header missing!"
784 msgstr "'Content-Length' заголовок отсутствует!"
785
786 #: main.c:1910
787 #: main.c:1905
788 msgid "short read during receiving reply-headers from host"
789 msgstr "короткое чтение во время получения заголовков ответа от хоста"
790
791 #: main.c:1912
792 #: main.c:1907
793 msgid "timeout while receiving reply-headers from host"
794 msgstr "тайм-аут при получении заголовков ответа от хоста"
795
796 #: main.c:1945
797 #: main.c:1940
798 msgid "read of response body dataa failed"
799 msgstr "неудача при чтении тела ответа"
800
801 #: main.c:1980
802 #: main.c:1975
803 msgid "error shutting down ssl"
804 msgstr "ошибка при завершении SSL"
805
806 #: main.c:2026
807 #: main.c:2087
808 #: main.c:2021
809 #: main.c:2082
810 #, c-format
811 msgid "getnameinfo() failed: %d (%s)"
812 msgstr "getnameinfo() не удался: %d (%s)"
813
814 #: main.c:2061
815 #: main.c:2056
816 msgid "connected to"
817 msgstr "подключено к"
818
819 #: main.c:2061
820 #: main.c:2056
821 msgid "pinged host"
822 msgstr "пингуемый хост"
823
824 #: main.c:2105
825 #: main.c:2100
826 #, c-format
827 msgid "%s%s%s%s%s:%s%d%s (%d/%d bytes), seq=%s%d%s "
828 msgstr "%s%s%s%s%s:%s%d%s (%d/%d байт), поряд.н.=%s%d%s "
829
830 #: main.c:2107
831 #: main.c:2102
832 #, c-format
833 msgid "%s%s%s%s%s:%s%d%s (%d bytes), seq=%s%d%s "
834 msgstr "%s%s%s%s%s:%s%d%s (%d bytes), поряд.н.=%s%d%s "
835
836 #: main.c:2113
837 #: main.c:2114
838 #: nc.c:721
839 #: main.c:2108
840 #: main.c:2109
841 msgid " n/a"
842 msgstr " н/д"
843
844 #: main.c:2119
845 #: main.c:2114
846 #, c-format
847 msgid "time=%s+%s+%s+%s+%s%s=%s%s%s%s ms %s%s%s"
848 msgstr "время=%s+%s+%s+%s+%s%s=%s%s%s%s мс %s%s%s"
849
850 #: main.c:2129
851 #: main.c:2124
852 #, c-format
853 msgid "time=%s%s%s ms %s%s%s"
854 msgstr "время=%s%s%s мс %s%s%s"
855
856 #: main.c:2149
857 #: main.c:2144
858 msgid "not "
859 msgstr "не "
860
861 #: main.c:2150
862 #: main.c:2145
863 msgid "compressed)"
864 msgstr "сжатый)"
865
866 #: main.c:2162
867 #: main.c:2157
868 #, c-format
869 msgid " toff=%d"
870 msgstr " t сдвиг=%d"
871
872 #: main.c:2166
873 #: main.c:2161
874 #, c-format
875 msgid " age=%d"
876 msgstr " возраст=%d"
877
878 #: main.c:2282
879 #: main.c:2277
880 #, c-format
881 msgid "--- %s ping statistics ---\n"
882 msgstr "--- %s статистика пинга ---\n"
883
884 #: main.c:2285
885 #: main.c:2280
886 #, c-format
887 msgid "internal error! (curncount)\n"
888 msgstr "внутренняя ошибка! (curncount)\n"
889
890 #: main.c:2290
891 #: main.c:2285
892 #, c-format
893 msgid "%s%d%s connects, %s%d%s ok, %s%3.2f%%%s failed, time %s%s%.0fms%s\n"
894 msgstr "%s%d%s подключений, %s%d%s ok, %s%3.2f%%%s неудавшихся, время %s%s%.0fмс%s\n"
895
896 #: main.c:2294
897 #: main.c:2289
898 #, c-format
899 msgid "round-trip min/avg/max%s = %s%.1f%s/%s%.1f%s/%s%.1f%s"
900 msgstr "туда-сюда мин/сред/макс%s = %s%.1f%s/%s%.1f%s/%s%.1f%s"
901
902 #: main.c:2305
903 #: main.c:2300
904 #, c-format
905 msgid "Transfer speed: min/avg/max = %s%f%s/%s%f%s/%s%f%s KB\n"
906 msgstr "Скорость передачи: мин/сред/макс = %s%f%s/%s%f%s/%s%f%s КБ\n"
907
908 #: mssl.c:79
909 #, c-format
910 msgid "READ_SSL: io-error: %s"
911 msgstr "SSL чтение, I/O ошибка: %s"
912
913 #: mssl.c:110
914 #, c-format
915 msgid "WRITE_SSL: io-error: %s"
916 msgstr "SSL запись, I/O ошибка: %s"
917
918 #: mssl.c:141
919 #, c-format
920 msgid "problem setting receive timeout (%s)"
921 msgstr "проблема при установке тайм-аута приема (%s)"
922
923 #: mssl.c:147
924 #, c-format
925 msgid "problem setting transmit timeout (%s)"
926 msgstr "проблема при установке тайм-аута передачи (%s)"
927
928 #: mssl.c:159
929 #, c-format
930 msgid "problem starting SSL connection: %d"
931 msgstr "проблема при старте SSL соединения: %d"
932
933 #: mssl.c:259
934 msgid "Problem sending request to proxy"
935 msgstr "Проблема при отправке запроса к прокси"
936
937 #: mssl.c:268
938 msgid "Problem retrieving proxy response"
939 msgstr "Проблема при получении ответа от прокси"
940
941 #: mssl.c:282
942 msgid "Invalid proxy response headers"
943 msgstr "Неверные заголовки ответа от прокси"
944
945 #: mssl.c:289
946 #, c-format
947 msgid "Proxy indicated error: %s"
948 msgstr "Proxy сообщила об ошибке: %s"
949
950 #: nc.c:57
951 msgid "realloc issue"
952 msgstr "realloc проблема"
953
954 #: nc.c:542
955 #, c-format
956 msgid "highest: %6.2fHz, avg: %6.2fHz"
957 msgstr "наибольшее: %6.2fHz, сред: %6.2fHz"
958
959 #: nc.c:668
960 #, c-format
961 msgid "graph range: %7.2fms - %7.2fms "
962 msgstr "диапазон графика: %7.2fмс - %7.2fмс "
963
964 #: nc.c:732
965 #, c-format
966 msgid "%s: n/a"
967 msgstr "%s: н/д"
968
969 #: nc.c:749
970 msgid "latest"
971 msgstr "последний"
972
973 #: nc.c:749
974 #: nc.c:769
975 msgid "min"
976 msgstr "мин"
977
978 #: nc.c:749
979 #: nc.c:769
980 msgid "avg"
981 msgstr "сред"
982
983 #: nc.c:749
984 #: nc.c:769
985 msgid "max"
986 msgstr "макс"
987
988 #: nc.c:749
989 #: nc.c:769
990 msgid "sd"
991 msgstr "sd"
992
993 #: nc.c:750
994 msgid "resolve"
995 msgstr "резолвить"
996
997 #: nc.c:751
998 msgid "connect"
999 msgstr "подключаться"
1000
1001 #: nc.c:752
1002 msgid "ssl "
1003 msgstr "ssl "
1004
1005 #: nc.c:753
1006 msgid "send "
1007 msgstr "отправлять "
1008
1009 #: nc.c:754
1010 msgid "request"
1011 msgstr "запрос"
1012
1013 #: nc.c:755
1014 msgid "close "
1015 msgstr "закрыть"
1016
1017 #: nc.c:756
1018 msgid "total "
1019 msgstr "всего "
1020
1021 #: nc.c:760
1022 #, c-format
1023 msgid "ok: %3d, fail: %3d%s, scc: %s, kalman: %s"
1024 msgstr "ОК: %2d, неудача: %2d%s, scc: %s, Kalman: %s"
1025
1026 #: nc.c:760
1027 msgid ", with TFO"
1028 msgstr ", с TFO"
1029
1030 #: nc.c:769
1031 msgid "cur"
1032 msgstr "тек."
1033
1034 #: nc.c:770
1035 msgid "t offst"
1036 msgstr "t сдвиг"
1037
1038 #: nc.c:773
1039 msgid "tcp rtt"
1040 msgstr "TCP RTT"
1041
1042 #: nc.c:775
1043 msgid "headers"
1044 msgstr "заголовки"
1045
1046 #: nc.c:782
1047 #, c-format
1048 msgid "# cookies: %d"
1049 msgstr "# куки: %d"
1050
1051 #: nc.c:784
1052 #, c-format
1053 msgid "trend: %c%6.2f%%, re-tx: %2d, pmtu: %5d, TOS: %02x"
1054 msgstr "тренд: %c%6.2f%%, re-tx: %2d, pmtu: %5d, TOS: %02x"
1055
1056 #: nc.c:787
1057 #, c-format
1058 msgid "HTTP rc: %s, SSL fp: %s"
1059 msgstr "HTTP rc: %s, SSL fp: %s"
1060
1061 #: nc.c:787
1062 msgid "n/a"
1063 msgstr "Н/Д"
1064
1065 #: nc.c:795
1066 #, c-format
1067 msgid "http result code: %s"
1068 msgstr "HTTP код ответа: %s"
1069
1070 #: nc.c:799
1071 #, c-format
1072 msgid ""
1073 "\n"
1074 "SSL fingerprint: %s"
1075 msgstr ""
1076 "\n"
1077 "SSL фингерпринт: %s"
1078
1079 #: res.c:36
1080 #, c-format
1081 msgid "Resolving %s %sfailed: %s"
1082 msgstr "Резолв %s %sне удался: %s"
1083
1084 #: res.c:36
1085 msgid "(IPv6) "
1086 msgstr "(IPv6) "
1087
1088 #: res.c:71
1089 #, c-format
1090 msgid "Problem resolving %s (IPv4): %s"
1091 msgstr "Проблема при резолве %s (IPv4): %s"
1092
1093 #: socks5.c:56
1094 #, c-format
1095 msgid "socks5connect: reply with requested authentication method does not say version 5 (%02x)"
1096 msgstr "socks5connect: ответ с запрошенным аутентификационным методом не выдает версию 5 (%02x)"
1097
1098 #: socks5.c:70
1099 #, c-format
1100 msgid "socks5connect: socks5 refuses our authentication methods: %02x"
1101 msgstr "socks5connect: socks5 отказывается от наших аутентификационных методов: %02x"
1102
1103 #: socks5.c:81
1104 msgid "socks5connect: socks5 server requests username/password authentication"
1105 msgstr "socks5connect: socks5 сервер запрашивает аутентификацию основанную на имени пользователя/пароле"
1106
1107 #: socks5.c:90
1108 msgid "socks5connect: failed transmitting username/password to socks5 server"
1109 msgstr "socks5connect: не удалось передать имя пользователя/пароль socks5 серверу"
1110
1111 #: socks5.c:96
1112 msgid "socks5connect: failed receiving authentication reply"
1113 msgstr "socks5connect: не удалось получить ответ аутентификации"
1114
1115 #: socks5.c:102
1116 msgid "socks5connect: password authentication failed"
1117 msgstr "socks5connect: аутентификация по паролю не удалась"
1118
1119 #: socks5.c:116
1120 #, c-format
1121 msgid "Cannot resolve %s"
1122 msgstr "Не получается резолв %s"
1123
1124 #: socks5.c:133
1125 msgid "socks5connect: failed to transmit associate request"
1126 msgstr "socks5connect: не удалось передать associate запрос"
1127
1128 #: socks5.c:139
1129 msgid "socks5connect: command reply receive failure"
1130 msgstr "socks5connect: ошибка при получение command ответа"
1131
1132 #: socks5.c:146
1133 #, c-format
1134 msgid "socks5connect: bind request replies with version other than 0x05 (%02x)"
1135 msgstr "socks5connect: bind запрос отвечает с версией отличной от 0x05 (%02x)"
1136
1137 #: socks5.c:152
1138 #, c-format
1139 msgid "socks5connect: failed to connect (%02x)"
1140 msgstr "socks5connect: не удалось подключиться (%02x)"
1141
1142 #: socks5.c:158
1143 #, c-format
1144 msgid "socks5connect: only accepting bind-replies with IPv4 address (%02x)"
1145 msgstr "socks5connect: только принимаем bind ответы с IPv4 адресом (%02x)"
1146
1147 #: tcp.c:31
1148 #: tcp.c:42
1149 #, c-format
1150 msgid "could not set TCP_NODELAY on socket (%s)"
1151 msgstr "не удалось установить TCP_NODELAY на сокет (%s)"
1152
1153 #: tcp.c:57
1154 #, c-format
1155 msgid "problem creating socket (%s)"
1156 msgstr "проблема при создании сокета (%s)"
1157
1158 #: tcp.c:69
1159 #, c-format
1160 msgid "error setting sockopt to interface (%s)"
1161 msgstr "проблема при установке sockopt на интерфейс (%s)"
1162
1163 #: tcp.c:75
1164 #, c-format
1165 msgid "error binding to interface (%s)"
1166 msgstr "проблема при биндинге к интерфейсу (%s)"
1167
1168 #: tcp.c:84
1169 #, c-format
1170 msgid "error setting MTU size (%s)"
1171 msgstr "ошибка при установке размера MTU (%s)"
1172
1173 #: tcp.c:101
1174 #, c-format
1175 msgid "error setting transmit buffer size (%s)"
1176 msgstr "ошибка при установке размера буфера передачи (%s)"
1177
1178 #: tcp.c:110
1179 #, c-format
1180 msgid "error setting receive buffer size (%s)"
1181 msgstr "ошибка при установке размера буфера приема (%s)"
1182
1183 #: tcp.c:119
1184 #, c-format
1185 msgid "error setting priority (%s)"
1186 msgstr "ошибка при установке приоритета (%s)"
1187
1188 #: tcp.c:128
1189 msgid "failed to set TOS info"
1190 msgstr "не удалось установить TOS информацию"
1191
1192 #: tcp.c:165
1193 #, c-format
1194 msgid "TCP TFO Not Supported. Please check if \"/proc/sys/net/ipv4/tcp_fastopen\" is 1. Disabling TFO for now.\n"
1195 msgstr "TCP TFO не поддерживается. Пожалуйста проверьте равняется ли \"/proc/sys/net/ipv4/tcp_fastopen\" единице. Пока что, отключаем TFO. \n"
1196
1197 #: tcp.c:195
1198 #, c-format
1199 msgid "problem connecting to host: %s"
1200 msgstr "проблема при подключении к хосту: %s"
1201
1202 #: tcp.c:208
1203 msgid "connect time out"
1204 msgstr "тайм-аут при подключении"
1205
1206 #: tcp.c:216
1207 #, c-format
1208 msgid "select() failed: %s"
1209 msgstr "select() не удался: %s"
1210
1211 #: tcp.c:228
1212 #, c-format
1213 msgid "getsockopt failed (%s)"
1214 msgstr "getsockopt не удался (%s)"
1215
1216 #: tcp.c:240
1217 #, c-format
1218 msgid "could not connect (%s)"
1219 msgstr "не смог подключиться (%s)"
1220
1221 #: utils.c:25
1222 msgid "gettimeofday failed"
1223 msgstr "gettimeofday не удался"
1224
1225 #~ #: main.c:1276 main.c:1271
1226
1227 #~ msgid "Cannot combine maximum MTU size setting with proxy connections or SSL"
1228 #~ msgstr "Нельзя совмещать настройку максимального размера MTU с прокси соединениями или SSL"
0 /* $Revision$ */
10 #include <libintl.h>
21 #include <unistd.h>
32 #include <stdio.h>
2322 unsigned char io_buffer[256] = { 0 };
2423 int io_len = 0, rc = -1;
2524
26 if ((rc = connect_to(fd, ai, timeout, NULL, NULL, 0, NULL)) < 0)
25 if ((rc = connect_to(fd, ai, timeout, NULL, NULL, 0, NULL)) == -1)
2726 return rc;
2827
2928 /* inform socks server about the auth. methods we support */
0 /* $Revision$ */
10 int socks5connect(int fd, struct addrinfo *ai, double timeout, const char *socks5_username, const char *socks5_password, const char *host, int port, char abort_on_resolve_failure);
0 /* Released under GPLv2 with exception for the OpenSSL library. See license.txt */
1 /* $Revision$ */
0 /* Released under AGPL v3 with exception for the OpenSSL library. See license.txt */
21
32 #include <sys/types.h>
43 #include <sys/time.h>
3635 {
3736 int flag = 1;
3837
39 if (setsockopt(fd, IPPROTO_TCP, TCP_NODELAY, (char *)&flag, sizeof(int)) < 0)
38 if (setsockopt(fd, IPPROTO_TCP, TCP_NODELAY, (char *)&flag, sizeof(int)) == -1)
4039 {
4140 set_error(gettext("could not set TCP_NODELAY on socket (%s)"), strerror(errno));
4241 return -1;
0 /* Released under GPLv2 with exception for the OpenSSL library. See license.txt */
1 /* $Revision$ */
0 /* Released under AGPL v3 with exception for the OpenSSL library. See license.txt */
21
32 int create_socket(struct sockaddr *bind_to, struct addrinfo *ai, int recv_buffer_size, int tx_buffer_size, int max_mtu, char use_no_delay, int priority, int tos);
43 int connect_to(int fd, struct addrinfo *ai, double timeout, char *tfo, char *msg, int msg_len, char *msg_accepted);
0 /* $Revision$ */
10 #include <stdio.h>
1 #include <string.h>
2 #include <errno.h>
3 #include <stdlib.h>
4
25 #include <sys/types.h>
36 #include <sys/socket.h>
7 #include <netinet/in.h>
8 #include <netinet/tcp.h>
49
5 int main(int argc, char *argv[])
6 {
7 int qlen = 5;
10 int main(void) {
11 int sfd = 0;
12 int qlen = 5;
813
9 setsockopt(sfd, SOL_TCP, TCP_FASTOPEN, &qlen, sizeof(qlen));
14 if ((sfd = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP)) == -1) {
15 fprintf(stderr, "socket(): %s\n", strerror(errno));
16 exit(EXIT_FAILURE);
17 }
1018
11 return 0;
19 #ifdef TCP_FASTOPEN
20 if (setsockopt(sfd, SOL_TCP, TCP_FASTOPEN, &qlen, sizeof(qlen)) == -1) {
21 fprintf(stderr, "setsockopt(): %s\n", strerror(errno));
22 exit(EXIT_FAILURE);
23 }
24 #else
25 fprintf(stderr, "TCP_FASTOPEN: undefined\n");
26 return EXIT_FAILURE;
27 #endif
28 return EXIT_SUCCESS;
1229 }
0 /* $Revision$ */
10 #include <fftw3.h>
21
32 int main(int argc, char *argv[])
0 /* $Revision$ */
10 #include <ncurses.h>
21
32 int main(int argc, char *argv[])
0 /* $Revision$ */
10 #include <ncurses/ncurses.h>
21
32 int main(int argc, char *argv[])
0 /* Released under GPLv2 with exception for the OpenSSL library. See license.txt */
1 /* $Revision$ */
0 /* Released under AGPL v3 with exception for the OpenSSL library. See license.txt */
21
32 #include <stdio.h>
43 #include <openssl/bio.h>
0 /* Released under GPLv2 with exception for the OpenSSL library. See license.txt */
1 /* $Revision$ */
0 /* Released under AGPL v3 with exception for the OpenSSL library. See license.txt */
21
32 #define _GNU_SOURCE
43 #include <errno.h>
0 /* Released under GPLv2 with exception for the OpenSSL library. See license.txt */
1 /* $Revision$ */
0 /* Released under AGPL v3 with exception for the OpenSSL library. See license.txt */
21
32 double get_ts(void);
43
0 VERSION=2.4
0 VERSION=2.5