asn1rt_ber_bin模块在哪里?

时间:2014-12-31 07:05:11

标签: erlang rabbitmq

当测试" rabbitmq的ldap" (版本3.4.2),rabbitmq的日志显示错误如下:

但在erlang的医生中,没有这样的" asn1rt_ber_bin"模块。这里的问题是什么?

=INFO REPORT==== 31-Dec-2014::13:56:31 ===
    LDAP bind error: cn=admin,dc=xxx,dc=xxx {'EXIT',
                                                 {undef,
                                                  [{asn1rt_ber_bin,
                                                    decode_tag,
                                                    [<<48,12,2,1,1,97,7,10,1,
                                                       0,4,0,4,0>>],
                                                    []},
                                                   {eldap,check_tag,1,
                                                    [{file,
                                                      "eldap-wrapper/eldap-git/src/eldap.erl"},
                                                     {line,683}]},
                                                   {eldap,recv_response,2,
                                                    [{file,
                                                      "eldap-wrapper/eldap-git/src/eldap.erl"},
                                                     {line,670}]},
                                                   {eldap,exec_simple_bind,1,
                                                    [{file,
                                                      "eldap-wrapper/eldap-git/src/eldap.erl"},
                                                     {line,451}]},
                                                   {eldap,do_the_simple_bind,
                                                    3,
                                                    [{file,
                                                      "eldap-wrapper/eldap-git/src/eldap.erl"},
                                                     {line,438}]},
                                                   {eldap,loop,2,
                                                    [{file,
                                                      "eldap-wrapper/eldap-git/src/eldap.erl"},
                                                     {line,397}]}]}}

相关代码如下:

%%% Sanity check of received packet
check_tag(Data) ->
    case asn1rt_ber_bin:decode_tag(b2l(Data)) of
    {_Tag, Data1, _Rb} ->
        case asn1rt_ber_bin:decode_length(b2l(Data1)) of
        {{_Len, _Data2}, _Rb2} -> ok;
        _ -> throw({error,decoded_tag_length})
        end;
    _ -> throw({error,decoded_tag})
    end.

1 个答案:

答案 0 :(得分:1)

自R15以来已被删除。您可以使用R14 Erlang版本,或者遵循R15自述文件中提供的信息:

  

OTP-9419用于ber解码和每编码的链接驱动程序具有           被替换为nifs。要启用nifs的使用通过           erlc或asn1rt的nif选项:编译时编译。如果你           以前使用过链接驱动程序,你必须重新编译           您的ASN1模块与当前版本的asn1           应用程序作为链接驱动程序模块已经           除去。