# HG changeset patch # User michael # Date 1186663732 0 # Node ID 7dd23262372fc99d82d6316b721c907b2a00495a # Parent 4d1a56112d922a3833117080237baca2f8d37ba9 forw_ptr CRC diff -r 4d1a56112d92 -r 7dd23262372f nutenc.c --- a/nutenc.c Thu Aug 09 12:38:24 2007 +0000 +++ b/nutenc.c Thu Aug 09 12:48:52 2007 +0000 @@ -180,8 +180,14 @@ static void put_packet(NUTContext *nut, ByteIOContext *bc, ByteIOContext *dyn_bc, int calculate_checksum){ uint8_t *dyn_buf=NULL; int dyn_size= url_close_dyn_buf(dyn_bc, &dyn_buf); + int forw_ptr= dyn_size + 4*calculate_checksum; - put_v(bc, dyn_size + 4*calculate_checksum); + if(forw_ptr > 4096) + init_checksum(bc, av_crc04C11DB7_update, 0); + put_v(bc, forw_ptr); + if(forw_ptr > 4096) + put_le32(bc, get_checksum(bc)); + if(calculate_checksum) init_checksum(bc, av_crc04C11DB7_update, 0); put_buffer(bc, dyn_buf, dyn_size); @@ -350,7 +356,7 @@ put_flush_packet(bc); - //FIXME info header, header repeation, header packet CRC, ... + //FIXME info header, header repeation, ... return 0; }