OberonCore https://forum.oberoncore.ru/ |
|
Предлагаю поправку CommTCP https://forum.oberoncore.ru/viewtopic.php?f=23&t=6649 |
Страница 1 из 1 |
Автор: | adimetrius [ Пятница, 21 Август, 2020 11:48 ] |
Заголовок сообщения: | Предлагаю поправку CommTCP |
Коллеги, насколько мне известно, ОДЗ номеров TCP-портов 0..65535. Однако PROCEDURE CommTCP.NewStream проверяет номер порта только на >= 0. А если номер порта > 65535, поток все равно благополучно создается, но ессно порт там абы какой. Предлагаю усилить проверку: было: Код: IF ok & (portnr >= 0) THEN (* only non-negative port numbers are legal *) сделать: Код: IF ok & (portnr >= 0) & (portnr < 65536) THEN (* portnr ∈ 0..65535 *) В продолжении процедуры уже есть грамотная обработка ошибок, если порт некорректный - возникает ошибка invalidLocalAdr. |
Автор: | Александр Ильин [ Пятница, 21 Август, 2020 12:18 ] |
Заголовок сообщения: | Re: Предлагаю поправку CommTCP |
Предлагаю также использовать идиоматический порядок записи при проверке вхождения в диапазон: Код: IF ok & (0 <= portnr) & (portnr <= 65535) THEN (тогда и комментарий в исходнике не нужен). |
Автор: | adimetrius [ Пятница, 21 Август, 2020 16:58 ] |
Заголовок сообщения: | Re: Предлагаю поправку CommTCP |
Ага |
Страница 1 из 1 | Часовой пояс: UTC + 3 часа |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |