Поиском поискал по форуму, инфо не пролетало, вдруг кому пригодится.
С версии ROS 6.45.1 сменилось API для initial login (API login):
https: //wiki.mikrotik.com/wiki/Manual:API#Initial_login
Соответственно, нужно немного поправить модуль mikrotik, файл create.noserver.hw_mikrotik.pm (потом удалить noserver/_hw_mikrotik.pm и переустановить модуль)
или сразу поправить файл noserver/_hw_mikrotik.pm,
функция hw_connect, с 201 строки:
вместо:
$m->{sock}->blocking(0);
my $reply = $m->hw_dialog('/login') or return 0;
exists $reply->{ret} or return 0;
my $md5 = new Digest::MD5;
$md5->add(chr(0));
$md5->add($m->{pass});
$md5->add(pack('H*',$reply->{ret}));
$reply = $m->hw_dialog('/login','=name='.$m->{user},'=response=00'.$md5->hexdigest) or return 0;
return $reply->{'!done'};
Вот так:
$m->{sock}->blocking(0);
my $reply = $m->hw_dialog('/login','=name='.$m->{user},'=password='.$m->{pass}) or return 0;
return $reply->{'!done'};