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
の処理が抜けている。