Exemple #1
0
def test_pack_unpack_single_tag():
    # name --> 0x101 257
    # type --> 6
    # data --> SVN
    tag_in = ECTag('client_version', 'string', u'SVN')

    tag_bin = tag_in.pack()

    tag_out, len, _ = unpack_ectag(tag_bin, False)

    assert tag_in.tagname == tag_out.tagname
    print tag_out.tagname, tag_out.tagtype, tag_out.tagdata
Exemple #2
0
def test_pack_unpack_complex_tag():

    subtag1 = ECTag('client_hash', 'hash16', '1234567890abcdef')
    subtag2 = ECTag('server_address', 'ipv4', "192.168.1.37:9527")
    subtag3 = ECTag('server_users', 'uint32', 0x5a5a)

    subtags = [ subtag1, subtag2, subtag3]
    maintag  = ECTag('server', 'string', "aMule Server No2", subtags)

    maintag_bin = maintag.pack()

    maintag_out ,length, _  = unpack_ectag(maintag_bin, False)

    print maintag_out.debugrepr()
Exemple #3
0
def unpack_ecpacket(data, utf8_num=True ):

    op, data = unpack_ecpacket_op(data)

    op = codes.ops_rev[op]

    tagcount, data = unpack_ectag_tagcount(data, utf8_num)

    subtags = [ ]

    for i in range(tagcount):
        tag, data, _ = unpack_ectag(data, utf8_num)
        subtags.append(tag)

    return ECPacket( op, subtags)