Merge tag 'upstream/2.5'
Upstream version 2.5
Abhijith PA
7 years ago
10 | 10 | # do not wish to do so, delete this exception statement from your |
11 | 11 | # version. If you delete this exception statement from all source |
12 | 12 | # files in the program, then also delete it here. |
13 | # $Revision: 278 $ | |
14 | 13 | |
15 | 14 | -include makefile.inc |
16 | 15 | |
55 | 54 | ARCHIVE=/bin/tar cf - |
56 | 55 | COMPRESS=/bin/gzip -9 |
57 | 56 | |
58 | TRANSLATIONS=nl.mo | |
57 | TRANSLATIONS=nl.mo ru.mo | |
59 | 58 | |
60 | 59 | 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 |
61 | 60 | |
62 | 61 | MAN_EN=httping.1 |
63 | 62 | MAN_NL=httping-nl.1 |
63 | MAN_RU=httping-ru.1 | |
64 | 64 | |
65 | 65 | DOCS=license.txt license.OpenSSL readme.txt |
66 | 66 | |
110 | 110 | $(INSTALLMAN) $(MAN_EN) $(DESTDIR)/$(MANDIR)/man1 |
111 | 111 | $(INSTALLDIR) $(DESTDIR)/$(MANDIR)/nl/man1 |
112 | 112 | $(INSTALLMAN) $(MAN_NL) $(DESTDIR)/$(MANDIR)/nl/man1 |
113 | $(INSTALLDIR) $(DESTDIR)/$(MANDIR)/ru/man1 | |
114 | $(INSTALLMAN) $(MAN_RU) $(DESTDIR)/$(MANDIR)/ru/man1 | |
113 | 115 | $(INSTALLDIR) $(DESTDIR)/$(DOCDIR) |
114 | 116 | $(INSTALLDOC) $(DOCS) $(DESTDIR)/$(DOCDIR) |
115 | 117 | ifneq ($(DEBUG),yes) |
117 | 119 | endif |
118 | 120 | mkdir -p $(DESTDIR)/$(PREFIX)/share/locale/nl/LC_MESSAGES |
119 | 121 | 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 | ||
120 | 125 | |
121 | 126 | makefile.inc: |
122 | 127 | ./configure |
123 | 128 | |
124 | 129 | nl.mo: nl.po |
125 | 130 | msgfmt -o nl.mo nl.po |
131 | ru.mo: ru.po | |
132 | msgfmt -o ru.mo ru.po | |
133 | ||
126 | 134 | |
127 | 135 | clean: |
128 | 136 | $(RMDIR) $(OBJS) $(TARGET) *~ core cov-int *.mo |
134 | 142 | # source package |
135 | 143 | $(RMDIR) $(PACKAGE)* |
136 | 144 | $(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) | |
138 | 146 | $(INSTALLBIN) configure $(PACKAGE) |
139 | 147 | $(ARCHIVE) $(PACKAGE) | $(COMPRESS) > $(PACKAGE).tgz |
140 | 148 | $(RMDIR) $(PACKAGE) |
2 | 2 | FILE=`mktemp` |
3 | 3 | FILE2=`mktemp` |
4 | 4 | |
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 \*\*\* | |
6 | 6 | echo |
7 | 7 | |
8 | 8 | if [ -z "$CC" ] |
57 | 57 | TFO="" |
58 | 58 | fi |
59 | 59 | |
60 | $CC -O0 -lncursesw -o $FILE test_ncurses.c 2> $FILE2 | |
60 | $CC -O0 -o $FILE test_ncurses.c -lncursesw 2> $FILE2 | |
61 | 61 | if [ $? -eq 0 ] || [ $F_NC -eq 1 ] ; then |
62 | 62 | echo \+ system has ncurses development libraries |
63 | 63 | NC="NC=yes" |
66 | 66 | NC="" |
67 | 67 | fi |
68 | 68 | |
69 | $CC -O0 -lssl -lcrypto -o $FILE test_openssl.c 2> $FILE2 | |
69 | $CC -O0 -o $FILE test_openssl.c -lssl -lcrypto 2> $FILE2 | |
70 | 70 | if [ $? -eq 0 ] || [ $F_OS -eq 1 ] ; then |
71 | 71 | echo \+ system has OpenSSL development libraries |
72 | 72 | SSL="SSL=yes" |
75 | 75 | SSL="SSL=no" |
76 | 76 | fi |
77 | 77 | |
78 | $CC -O0 -lfftw3 -o $FILE test_fftw3.c 2> $FILE2 | |
78 | $CC -O0 -o $FILE test_fftw3.c -lfftw3 2> $FILE2 | |
79 | 79 | if [ $? -eq 0 ] || [ $F_FW -eq 1 ] ; then |
80 | 80 | echo \+ system has FFTW3 development libraries |
81 | 81 | 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 */ | |
2 | 1 | |
3 | 2 | #include <libintl.h> |
4 | 3 | #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 */ | |
2 | 1 | |
3 | 2 | void error_exit(const char *format, ...); |
4 | 3 | void set_error(const char *str, ...); |
0 | /* $Revision$ */ | |
1 | 0 | void fft_init(int sample_rate_in); |
2 | 1 | void fft_free(void); |
3 | 2 | void fft_do(double *in, double *output_mag, double *output_phase); |
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 */ | |
2 | 1 | |
3 | 2 | #ifndef __GEN_H__ |
4 | 3 | #define __GEN_H__ |
73 | 73 | |
74 | 74 | void version(void) |
75 | 75 | { |
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")); | |
77 | 77 | #ifndef NO_SSL |
78 | 78 | fprintf(stderr, gettext(" * SSL support included (-l)\n")); |
79 | 79 | #endif |
209 | 209 | format_help(NULL, "--divert-connect", gettext("connect to a different host than in the URL given")); |
210 | 210 | format_help(NULL, "--keep-cookies", gettext("return the cookies given by the HTTP server in the following request(s)")); |
211 | 211 | 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")); | |
213 | 213 | format_help("-I x", "--user-agent", gettext("use 'x' for the UserAgent header")); |
214 | 214 | format_help("-R x", "--referer", gettext("use 'x' for the Referer header")); |
215 | 215 | format_help(NULL, "--header", gettext("adds an extra request-header")); |
270 | 270 | format_help("-q", "--quiet", gettext("quiet, only returncode")); |
271 | 271 | format_help("-m", "--parseable-output", gettext("give machine parseable output (see also -o and -e)")); |
272 | 272 | 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")); | |
274 | 274 | format_help("-e x", "--result-string", gettext("string to display when http result code doesn't match")); |
275 | 275 | 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")); |
276 | 276 | 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 */ | |
2 | 1 | |
3 | 2 | #include <assert.h> |
4 | 3 | #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 */ | |
2 | 1 | |
3 | 2 | int get_HTTP_headers(int socket_h, SSL *ssl_h, char **headers, int *overflow, double timeout); |
4 | 3 | 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 | |
1 | 1 | .\" |
2 | 2 | .\" This file may be copied under the conditions described |
3 | 3 | .\" in the GNU GENERAL PUBLIC LICENSE, version 2 |
4 | 4 | .\" that can be found on the website of the free software |
5 | 5 | .\" foundation. |
6 | 6 | .\" |
7 | .TH HTTPING 1 2013-03 "httping" | |
7 | .TH HTTPING 1 2016-09 "httping" | |
8 | 8 | .SH NAME |
9 | 9 | httping - meten van de latency en doorvoorsnelheid van een http server |
10 | 10 | .SH SAMENVATTING |
92 | 92 | .B "\-p portnumber" |
93 | 93 | Gebruik dit on combinatie met h. Het zet het port-nummer om te pingen. |
94 | 94 | .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 | |
95 | 98 | .B "\-q" |
96 | 99 | Geef geen uitvoer, alleen een teruggave code. |
97 | 100 | .TP |
235 | 238 | Deze man-page beschrijft |
236 | 239 | .B httping |
237 | 240 | 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 | |
239 | 242 | 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 | |
1 | 1 | .\" |
2 | 2 | .\" This file may be copied under the conditions described |
3 | 3 | .\" in the GNU GENERAL PUBLIC LICENSE, version 2 |
4 | 4 | .\" that can be found on the website of the free software |
5 | 5 | .\" foundation. |
6 | 6 | .\" |
7 | .TH HTTPING 1 2013-07 "httping" | |
7 | .TH HTTPING 1 2016-09 "httping" | |
8 | 8 | .SH NAME |
9 | 9 | httping - measure the latency and throughput of a webserver |
10 | 10 | .SH SYNOPSIS |
98 | 98 | .B "\-R str" |
99 | 99 | Referer-string to send to the webserver. |
100 | 100 | .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 | |
101 | 104 | .B "\-r" |
102 | 105 | 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'). |
103 | 106 | .TP |
239 | 242 | This page describes |
240 | 243 | .B httping |
241 | 244 | 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. | |
244 | 247 | 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 */ | |
2 | 1 | |
3 | 2 | #include <errno.h> |
4 | 3 | #include <libintl.h> |
39 | 38 | if (errno == EINTR) |
40 | 39 | return RC_CTRLC; |
41 | 40 | |
42 | set_error(gettext("myread::select failed: %s"), strerror(errno)); | |
41 | set_error(gettext("read_to::select failed: %s"), strerror(errno)); | |
43 | 42 | |
44 | 43 | return RC_SHORTREAD; |
45 | 44 | } |
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 */ | |
2 | 1 | |
3 | 2 | ssize_t read_to(int fd, char *whereto, size_t len, double timeout); |
4 | 3 | 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 | |
1 | 1 | |
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 | |
3 | 3 | on the website of the free software foundation. |
4 | 4 | |
5 | 5 | 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 */ | |
2 | 1 | |
3 | 2 | #define _GNU_SOURCE |
4 | 3 | #include <sys/ioctl.h> |
638 | 637 | struct tm tm; |
639 | 638 | memset(&tm, 0x00, sizeof tm); |
640 | 639 | |
641 | /* 22 Feb 2013 09:13:56 */ | |
640 | /* 22 Feb 2015 09:13:56 */ | |
642 | 641 | if (strptime(komma + 1, "%d %b %Y %H:%M:%S %Z", &tm)) |
643 | 642 | return mktime(&tm); |
644 | 643 | } |
659 | 658 | struct tm tm; |
660 | 659 | memset(&tm, 0x00, sizeof tm); |
661 | 660 | |
662 | /* 22 Feb 2013 09:13:56 */ | |
661 | /* 22 Feb 2015 09:13:56 */ | |
663 | 662 | if (strptime(komma + 1, "%d %b %Y %H:%M:%S %Z", &tm)) |
664 | 663 | age = their_ts - mktime(&tm); |
665 | 664 | } |
1035 | 1034 | bps.Bps_avg = 0; |
1036 | 1035 | |
1037 | 1036 | setlocale(LC_ALL, ""); |
1038 | bindtextdomain("HTTPing", LOCALEDIR); | |
1039 | textdomain("HTTPing"); | |
1037 | bindtextdomain("httping", LOCALEDIR); | |
1038 | textdomain("httping"); | |
1040 | 1039 | |
1041 | 1040 | init_statst(&t_resolve); |
1042 | 1041 | init_statst(&t_connect); |
1414 | 1413 | if (!(get_instead_of_head || use_ssl) && show_Bps) |
1415 | 1414 | error_exit(gettext("-b/-B can only be used when also using -G (GET instead of HEAD) or -l (use SSL)\n")); |
1416 | 1415 | |
1417 | if (use_tfo && use_ssl) | |
1418 | error_exit(gettext("TCP Fast open and SSL not supported together\n")); | |
1419 | ||
1420 | 1416 | if (colors) |
1421 | 1417 | set_colors(ncurses_mode); |
1422 | 1418 | |
1445 | 1441 | #ifdef NC |
1446 | 1442 | if (ncurses_mode) |
1447 | 1443 | { |
1448 | slow_log(gettext("\nAuto enabling SSL due to https-URL")); | |
1444 | slow_log(gettext("\nAuto enabling SSL due to https-URL\n")); | |
1449 | 1445 | update_terminal(); |
1450 | 1446 | } |
1451 | 1447 | else |
1452 | 1448 | #endif |
1453 | 1449 | { |
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")); | |
1457 | 1456 | |
1458 | 1457 | if (verbose) |
1459 | 1458 | { |
1750 | 1749 | if (fd >= 0) |
1751 | 1750 | { |
1752 | 1751 | /* set fd blocking */ |
1753 | if (set_fd_blocking(fd) == -1) | |
1752 | if (set_fd_blocking(fd) == -1) /* FIXME redundant? already in connect_to etc? */ | |
1754 | 1753 | { |
1755 | 1754 | stats_close(&fd, &t_close, 1); |
1756 | 1755 | break; |
1805 | 1804 | |
1806 | 1805 | #ifndef NO_SSL |
1807 | 1806 | if (use_ssl) |
1808 | rc = WRITE_SSL(ssl_h, request, req_len); | |
1807 | rc = WRITE_SSL(ssl_h, request, req_len, timeout); | |
1809 | 1808 | else |
1810 | 1809 | #endif |
1811 | 1810 | { |
1819 | 1818 | e.g. until the transmitbuffers are empty and the data was |
1820 | 1819 | sent to the next hop |
1821 | 1820 | */ |
1821 | #ifndef __CYGWIN__ | |
1822 | 1822 | for(;;) |
1823 | 1823 | { |
1824 | 1824 | int bytes_left = 0; |
1837 | 1837 | */ |
1838 | 1838 | usleep(write_sleep); |
1839 | 1839 | } |
1840 | #endif | |
1840 | 1841 | |
1841 | 1842 | dafter_write_complete = get_ts(); |
1842 | 1843 |
0 | 0 | extern volatile int stop; |
1 | extern volatile char got_sigquit; | |
1 | 2 | extern int max_x, max_y; |
2 | 3 | |
3 | 4 | void determine_terminal_size(int *max_y, int *max_x); |
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 */ | |
3 | 1 | #include <errno.h> |
4 | 2 | #include <libintl.h> |
5 | 3 | #include <string.h> |
25 | 23 | #include "io.h" |
26 | 24 | #include "http.h" |
27 | 25 | #include "utils.h" |
26 | #include "main.h" | |
28 | 27 | |
29 | 28 | BIO *bio_err = NULL; |
30 | 29 | |
41 | 40 | CRYPTO_cleanup_all_ex_data(); |
42 | 41 | } |
43 | 42 | |
44 | char close_ssl_connection(SSL *ssl_h) | |
43 | int close_ssl_connection(SSL *const ssl_h) | |
45 | 44 | { |
46 | 45 | int rc = SSL_shutdown(ssl_h); |
47 | 46 | |
62 | 61 | return 0; |
63 | 62 | } |
64 | 63 | |
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 | } | |
72 | 106 | |
73 | 107 | rc = SSL_read(ssl_h, whereto, len); |
74 | 108 | if (rc == -1) |
75 | 109 | { |
76 | 110 | if (errno != EINTR && errno != EAGAIN) |
77 | { | |
78 | 111 | 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) | |
84 | 117 | return 0; |
85 | } | |
86 | else | |
87 | { | |
88 | whereto += rc; | |
89 | len -= rc; | |
90 | } | |
118 | ||
119 | whereto += rc; | |
120 | len -= rc; | |
91 | 121 | } |
92 | 122 | |
93 | 123 | return cnt; |
94 | 124 | } |
95 | 125 | |
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 | } | |
103 | 168 | |
104 | 169 | rc = SSL_write(ssl_h, wherefrom, len); |
105 | 170 | if (rc == -1) |
106 | 171 | { |
107 | 172 | if (errno != EINTR && errno != EAGAIN) |
108 | { | |
109 | 173 | 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) | |
115 | 178 | return 0; |
116 | } | |
117 | else | |
118 | { | |
119 | wherefrom += rc; | |
120 | len -= rc; | |
121 | } | |
179 | ||
180 | wherefrom += rc; | |
181 | len -= rc; | |
122 | 182 | } |
123 | 183 | |
124 | 184 | return cnt; |
125 | 185 | } |
126 | 186 | |
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 | { | |
130 | 189 | double dstart = get_ts(); |
190 | double end = get_ts() + timeout; | |
131 | 191 | |
132 | 192 | struct timeval tv; |
133 | 193 | tv.tv_sec = (long)(timeout / 1000.0); |
152 | 212 | *s_bio = BIO_new_socket(fd, BIO_NOCLOSE); |
153 | 213 | SSL_set_bio(*ssl_h, *s_bio, *s_bio); |
154 | 214 | |
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) | |
159 | 259 | return -1; |
160 | } | |
161 | 260 | |
162 | 261 | *ssl_handshake = get_ts() - dstart; |
163 | 262 | |
263 | if (set_fd_blocking(fd) == -1) | |
264 | return -1; | |
265 | ||
164 | 266 | return 0; |
165 | 267 | } |
166 | 268 | |
167 | SSL_CTX * initialize_ctx(char ask_compression) | |
269 | SSL_CTX * initialize_ctx(const char ask_compression) | |
168 | 270 | { |
169 | 271 | const SSL_METHOD *meth = NULL; |
170 | 272 | SSL_CTX *ctx = NULL; |
191 | 293 | return ctx; |
192 | 294 | } |
193 | 295 | |
194 | char * get_fingerprint(SSL *ssl_h) | |
296 | char * get_fingerprint(SSL *const ssl_h) | |
195 | 297 | { |
196 | 298 | char *string = NULL; |
197 | 299 | |
227 | 329 | return string; |
228 | 330 | } |
229 | 331 | |
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) | |
231 | 333 | { |
232 | 334 | int rc = -1; |
233 | 335 | char request_headers[4096] = { 0 }; |
238 | 340 | request_headers_len = snprintf(request_headers, sizeof request_headers, "CONNECT %s:%d HTTP/1.1\r\nUser-Agent: HTTPing v" VERSION \ |
239 | 341 | "\r\nProxy-Connection: keep-alive\r\nConnection: keep-alive\r\nHost: %s\r\n", hostname, portnr, hostname); |
240 | 342 | |
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 | } | |
250 | 352 | |
251 | 353 | request_headers_len += snprintf(&request_headers[request_headers_len], sizeof request_headers - request_headers_len, "\r\n"); |
252 | 354 | |
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) | |
254 | 356 | return rc; |
255 | 357 | |
256 | 358 | 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 */ | |
2 | 1 | |
3 | 2 | #include <netdb.h> |
4 | 3 | #include <netinet/in.h> |
6 | 5 | #include <arpa/inet.h> |
7 | 6 | |
8 | 7 | 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 | 0 | # Dutch translations for HTTPing package. |
1 | # Copyright (C) 2013 folkert van heusden | |
1 | # Copyright (C) 2016 folkert van heusden | |
2 | 2 | # 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. | |
4 | 4 | # Translated by Joris Zwart - http://joriszwart.nl/ |
5 | 5 | # |
6 | 6 | msgid "" |
7 | 7 | msgstr "" |
8 | 8 | "Project-Id-Version: HTTPing\n" |
9 | 9 | "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" | |
12 | 12 | "Last-Translator: Joris Zwart <hallo@joriszwart.nl>\n" |
13 | 13 | "Language-Team: Dutch\n" |
14 | 14 | "Language: nl\n" |
186 | 186 | msgstr "voeg geen \"Host:\"-regel in het verbindingsverzoek" |
187 | 187 | |
188 | 188 | #: 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" | |
191 | 191 | |
192 | 192 | #: help.c:213 |
193 | 193 | msgid "use 'x' for the UserAgent header" |
347 | 347 | msgstr "json uitvoer, kan niet met -m gecombineerd worden" |
348 | 348 | |
349 | 349 | #: 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" | |
351 | 351 | 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" |
352 | 352 | |
353 | 353 | #: help.c:271 |
40 | 40 | |
41 | 41 | |
42 | 42 | 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 | |
44 | 44 | |
45 | 45 | Please support my opensource development: http://www.vanheusden.com/wishlist.php |
46 | 46 | 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 */ | |
2 | 1 | |
3 | 2 | #include <sys/types.h> |
4 | 3 | #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 */ | |
2 | 1 | |
3 | 2 | #define incopy(a) *((struct in_addr *)a) |
4 | 3 |
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$ */ | |
1 | 0 | #include <libintl.h> |
2 | 1 | #include <unistd.h> |
3 | 2 | #include <stdio.h> |
23 | 22 | unsigned char io_buffer[256] = { 0 }; |
24 | 23 | int io_len = 0, rc = -1; |
25 | 24 | |
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) | |
27 | 26 | return rc; |
28 | 27 | |
29 | 28 | /* inform socks server about the auth. methods we support */ |
0 | /* $Revision$ */ | |
1 | 0 | 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 */ | |
2 | 1 | |
3 | 2 | #include <sys/types.h> |
4 | 3 | #include <sys/time.h> |
36 | 35 | { |
37 | 36 | int flag = 1; |
38 | 37 | |
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) | |
40 | 39 | { |
41 | 40 | set_error(gettext("could not set TCP_NODELAY on socket (%s)"), strerror(errno)); |
42 | 41 | 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 */ | |
2 | 1 | |
3 | 2 | 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); |
4 | 3 | int connect_to(int fd, struct addrinfo *ai, double timeout, char *tfo, char *msg, int msg_len, char *msg_accepted); |
0 | /* $Revision$ */ | |
1 | 0 | #include <stdio.h> |
1 | #include <string.h> | |
2 | #include <errno.h> | |
3 | #include <stdlib.h> | |
4 | ||
2 | 5 | #include <sys/types.h> |
3 | 6 | #include <sys/socket.h> |
7 | #include <netinet/in.h> | |
8 | #include <netinet/tcp.h> | |
4 | 9 | |
5 | int main(int argc, char *argv[]) | |
6 | { | |
7 | int qlen = 5; | |
10 | int main(void) { | |
11 | int sfd = 0; | |
12 | int qlen = 5; | |
8 | 13 | |
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 | } | |
10 | 18 | |
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; | |
12 | 29 | } |
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 */ | |
2 | 1 | |
3 | 2 | #include <stdio.h> |
4 | 3 | #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 */ | |
2 | 1 | |
3 | 2 | #define _GNU_SOURCE |
4 | 3 | #include <errno.h> |