axis-c-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Royston Day <r...@mpc-data.co.uk>
Subject Re: adb with base64Binary and xmime.xsd - little howto
Date Wed, 26 Sep 2007 15:29:44 GMT
Hi all,

> hello users,

> because i concentrate on codegeneration and
> and sending files, i just want to give
> back some of my knowlegde, since it's working.

> i don't explain how to generate and implement,
> i just explain, how i create a wsdl for this
> purpose.

> thx to Dimuthu Chathuranga this little howto
> was possible, hope some of you will find
> this useful.

> mfg derMark

I've been using the axutil base64 libraries recently and came across a
issue in the base64.c source file (located in .../util/src/base64.c),
in the following function which is used by the axutil base64 binary
library to calculate the number of encoded bytes:

AXIS2_EXTERN int AXIS2_CALL axutil_base64_decode_len(const char *bufcoded)
{
    int nbytesdecoded;
    register const unsigned char *bufin;
    register int nprbytes;

    bufin = (const unsigned char *) bufcoded;
    while (pr2six[*(bufin++)] <= 63);

    nprbytes = (bufin - (const unsigned char *) bufcoded) - 1;

    nbytesdecoded = ((nprbytes + 3) / 4) * 3;

    return nbytesdecoded + 1;
}

I believe that this calculation of the number of encoded bytes is
incorrect and have applied a quick fix as follows:

AXIS2_EXTERN int AXIS2_CALL axutil_base64_decode_len(const char *bufcoded)
{
    int nbytesdecoded;
    register const unsigned char *bufin;
    register int nprbytes;

    bufin = (const unsigned char *) bufcoded;
    while (pr2six[*(bufin++)] <= 63);

    nprbytes = (bufin - (const unsigned char *) bufcoded) - 1;

    nbytesdecoded = ((nprbytes >> 2) * 3);

    if (nprbytes & 0x03) nbytesdecoded += (nprbytes & 0x03) - 1;

    return nbytesdecoded;
}

I hope this is of some help.

Best regards,

Royston


- - -

Royston Day, Software Engineer
MPC Data Limited
e-mail: rday@mpc-data.co.uk   web: www.mpc-data.co.uk
tel:  +44 (0) 1225 710600     fax: +44 (0) 1225 710601
ddi: +44 (0) 1225 710634


MPC Data Limited is a company registered in England and Wales with
company number 05507446

Registered Address: County Gate, County Way, Trowbridge, Wiltshire,
BA14 7FJ VAT no: 850625238

The information in this email and in the attached documents is
confidential and may be legally privileged. Any unauthorized review,
copying, disclosure or distribution is prohibited and may be unlawful.
It is intended solely for the addressee. Access to this email by
anyone else is unauthorized. If you are not the intended recipient,
please contact the sender by reply email and destroy all copies of the
original message. When addressed to our clients any opinions or advice
contained in this email is subject to the terms and conditions
expressed in the governing contract.


---------------------------------------------------------------------
To unsubscribe, e-mail: axis-c-user-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-c-user-help@ws.apache.org


Mime
View raw message