@rubylang

Страница 235 из 1684
ojab
25.07.2016
13:23:14
то что не обновлялся это да, но если нет проблем — почему бы не юзать?

Nikolay
25.07.2016
13:29:28
та вот проблема в настройке опенссл и есть

Nikolay
25.07.2016
13:32:25
dh key too small (OpenSSL::SSL::SSLError)

Google
Nazar
25.07.2016
13:34:32
у тебя вообще ключ dh присутствует?

посмотри какие шифры у тебя по дефолту активны

Nikolay
25.07.2016
13:36:27
а как?

ojab
25.07.2016
13:36:30
openssl s_client -connect host:port что говорит?

openssl какой версии?

Nikolay
25.07.2016
13:38:23
Protocol : TLSv1 из вывода ссл клиента

openssl version OpenSSL 1.0.2d 9 Jul 2015

сегодня руби 2.3.1 свежий собрал с гемом опенссл

ojab
25.07.2016
13:40:55
вывод ssl клиента весь давай (серт можешь убрать), интересует cipher

2.3.1 too old, дефолтный размер ключа только в 2.4.0 починят

if ((!SSL_C_IS_EXPORT(s->s3->tmp.new_cipher) && dh_size < 1024) || (SSL_C_IS_EXPORT(s->s3->tmp.new_cipher) && dh_size < 512)) { SSLerr(SSL_F_SSL3_CHECK_CERT_AND_ALGORITHM, SSL_R_DH_KEY_TOO_SMALL); goto f_err; }

openssl'ю должно 1024 хватать

Nikolay
25.07.2016
13:43:08
https://gist.github.com/foxmuldercp/5bfe16f3b19accd9b37bbfc07939ef3a

Google
ojab
25.07.2016
13:44:12
ох, прозреваю что Server Temp Key: DH, 768 bits openssl'ю не нравится

в идеале надо попросить овнера сервера перегенерировать dh_params и сделать его побольше

Nikolay
25.07.2016
13:46:02
хм, кстати, возможно да

ojab
25.07.2016
13:47:07
без этого надо или юзать старый openssl, или отключить D-H key exchange, или форсировать экспортные cipher'ы

Nikolay
25.07.2016
13:48:39
уй

ojab
25.07.2016
13:50:08
короче самое адекватное решение — context.ciphers = 'DEFAULT:!DH'

и пинать владельца epp-сервера

дабы он dhparams перегенерировал

>The value DH, 768 bits indicates that the DH key length is 768 bits. This value is the default value for the version of Java that is used to generate the keystore file (keytool -genkey). This value is not configurable, until Java 1.8.

мда

Nikolay
25.07.2016
13:53:32
угу. и там таки ерр сервер на жаве

ojab
25.07.2016
13:55:20
А openssl s_client -tls1, -tls1_1 и -tls1_2 что покажет?

арр

ну в общем если разные версии tls форсировать

Nikolay
25.07.2016
13:59:23
так, пока я обошелся блокировкой сифера

ojab
25.07.2016
13:59:45
чото непонятно как perl коннектится

Nikolay
25.07.2016
14:00:48
может обход и уход в совместимость

ojab
25.07.2016
14:01:12
хзхз, проверь лучше tls1.1/tls1.2

может их можно зафорсировать и всё будет ок

Nikolay
25.07.2016
14:10:50
EPP::ResponseError: Command completed successfully

Google
Nikolay
25.07.2016
14:10:57
отлично, я щитаю

окромя хелло ничего не работает (

ojab
25.07.2016
14:20:03
client.last_request`/`client.last_response есть?

Nikolay
25.07.2016
14:26:54
пусты (

после helo

ojab
25.07.2016
14:27:36
А остальное падает с ResponseError?

Nikolay
25.07.2016
14:27:37
#puts client.hello =>true

угу. /home/mulder/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/epp-client-2.1.0/lib/epp-client/server.rb:289:in `logout!': Command completed successfully (code 1000) (EPP::ResponseError)

ojab
25.07.2016
14:29:45
а client.login! и потом client.last_error?

теоретически 1000 — успешный логин

Nikolay
25.07.2016
14:32:20
а практически хоть бери и переписывай

и версию тлс понижал

Nikolay
25.07.2016
14:34:37
undefined method `login' for #<EPP::Client

последняя ошибка - пустая

ojab
25.07.2016
14:35:22
bang login, not plain login

Nikolay
25.07.2016
14:35:23
epp.rb:11:in `<main>': no implicit conversion of nil into String

ojab
25.07.2016
14:35:27
.login!

Nikolay
25.07.2016
14:35:32
?

ojab
25.07.2016
14:35:51
client.login!

а не client.login

Google
Nikolay
25.07.2016
14:35:55
угу. фейлит

undefined method `login!' for #<E

Konstantin
25.07.2016
14:39:44
а в рубях же нельзя никак сделать, чтобы выполнить кусок кода в случае ошибки, не перехватывая её? надо перехватывать и выбрасывать заново?

yopp
25.07.2016
14:40:01
да

а как ещё? :)

Konstantin
25.07.2016
14:40:08
это немного дно особенно с точки зрения перформанса

I
25.07.2016
14:40:27
Пруфы, Билли!

yopp
25.07.2016
14:40:32
это немного единственный вариант ваще

Admin
ERROR: S client not available

Konstantin
25.07.2016
14:40:41
пруфы что эксепшены это дорого?

Nikolay
25.07.2016
14:40:43
ахаха

Aldar
25.07.2016
14:41:03
в руби сообществе принято класть на перформанс

yopp
25.07.2016
14:41:04
эксепшены дорого, но не надо вообще эксепшенами для сигналов пользоваться

эксепшены это аварийные состояния

ojab
25.07.2016
14:41:32
throw никто не отменял для такого

Konstantin
25.07.2016
14:41:34
@dd_bb хочу ensure_for_errors (

yopp
25.07.2016
14:42:08
Konstantin
25.07.2016
14:42:11
ojab типа выбросить, а там где словил catch уже зарайзиться?

yopp
25.07.2016
14:42:23
throw не для исключений

@dd_bb хочу ensure_for_errors (
ты объясни чо ты сделать хочешь сначала :)

Google
ojab
25.07.2016
14:42:56
я не очень понимаю зачем может понадобиться производительный raise

Konstantin
25.07.2016
14:44:17
def read _read_from_socket rescue TimeoutError, Errno::ECONNRESET => e @socket.close raise e end

если схематично

@igorpavlov https://github.com/jruby/jruby/wiki/PerformanceTuning#common-profiling-hotspots Stack trace/backtrace generation: Generating backtraces for exceptions, Kernel#caller, etc are more expensive on JRuby due to the way the JVM optimizes.

yopp
25.07.2016
14:45:57
ensure тут не сработет

так как закроет сокет сразу

Konstantin
25.07.2016
14:46:07
@bikolya я не хочу его закрывать, когда всё норм

yopp
25.07.2016
14:46:12
ну так, да

я не понимаю почему тебя ебёт тут перформанс

Konstantin
25.07.2016
14:46:28
да он не то чтобы ебет

yopp
25.07.2016
14:46:29
он тебя в этом случае ебать совершенно не должен :)

потому что Timeout это уже всё

Konstantin
25.07.2016
14:46:42
несовсем

yopp
25.07.2016
14:46:53
в смысле для сокета — всё

Konstantin
25.07.2016
14:46:59
так как в рубях принято делать self-recovered connection'ы

yopp
25.07.2016
14:47:05
ну да

Konstantin
25.07.2016
14:47:06
то если у тебя дохуя таймаутов

ты начинаешь кидать много экспепшенов

вхолостую

yopp
25.07.2016
14:47:18
много это сколько?

Страница 235 из 1684