/ / メモ
2009-08-21

手抜き

byte[] decodeChunked(byte[] src)
{
    byte[] d;
    size_t spos,epos,cpos,chunkSize;
    int i;
    while(1)
    {
        cpos = (cast(string)src[spos..$]).indexOf("\r\n") + 2; //チャンクサイズが書いてある行を取得

        epos = spos + cpos;
        if(src.length < epos) break;

        chunkSize = strtol((cast(string)src[spos..epos]).ptr,null,16); //チャンクサイズを取得

        d ~= src[epos..epos+chunkSize]; //チャンクサイズ分追加

        spos = epos+chunkSize+2;
        if(src.length < spos) break;
    }
    return d;
}

strtol のエラー処理
chunk extension
trailer
の処理が抜けている。

トラックバック http://mikanya.dip.jp/memo/2009-08-21-1[an error occurred while processing this directive]