largefile patch added

git-svn-id: https://pupnp.svn.sourceforge.net/svnroot/pupnp/trunk@79 119443c7-1b9e-41f8-b6fc-b9c35fce742c
This commit is contained in:
Oxy
2006-08-17 05:17:50 +00:00
parent 83782e8ae2
commit 1716c7a10d
2 changed files with 20 additions and 8 deletions

View File

@@ -367,7 +367,7 @@ http_SendMessage( IN SOCKINFO * info,
return UPNP_E_FILE_READ_ERROR; return UPNP_E_FILE_READ_ERROR;
} }
} else if( Instr && Instr->IsRangeActive ) { } else if( Instr && Instr->IsRangeActive ) {
if( fseek( Fp, Instr->RangeOffset, SEEK_CUR ) != 0 ) { if( fseeko( Fp, Instr->RangeOffset, SEEK_CUR ) != 0 ) {
free( ChunkBuf ); free( ChunkBuf );
return UPNP_E_FILE_READ_ERROR; return UPNP_E_FILE_READ_ERROR;
} }
@@ -1762,6 +1762,7 @@ http_SendStatusResponse( IN SOCKINFO * info,
* memory ptr * memory ptr
* 'c': (no args) appends CRLF "\r\n" * 'c': (no args) appends CRLF "\r\n"
* 'd': arg = int number // appends decimal number * 'd': arg = int number // appends decimal number
* 'h': arg = off_t number // appends off_t number
* 't': arg = time_t * gmt_time // appends time in RFC 1123 fmt * 't': arg = time_t * gmt_time // appends time in RFC 1123 fmt
* 'D': (no args) appends HTTP DATE: header * 'D': (no args) appends HTTP DATE: header
* 'S': (no args) appends HTTP SERVER: header * 'S': (no args) appends HTTP SERVER: header
@@ -1797,6 +1798,7 @@ http_MakeMessage( INOUT membuffer * buf,
char c; char c;
char *s = NULL; char *s = NULL;
int num; int num;
off_t bignum;
size_t length; size_t length;
time_t *loc_time; time_t *loc_time;
time_t curr_time; time_t curr_time;
@@ -1884,6 +1886,16 @@ http_MakeMessage( INOUT membuffer * buf,
} }
} }
else if( c == 'h' ) // off_t
{
bignum = ( off_t )va_arg( argp, off_t );
sprintf( tempbuf, "%lld", bignum );
if( membuffer_append( buf, tempbuf, strlen( tempbuf ) ) != 0 ) {
goto error_handler;
}
}
else if( c == 't' || c == 'D' ) // date else if( c == 't' || c == 'D' ) // date
{ {
if( c == 'D' ) { if( c == 'D' ) {
@@ -1925,12 +1937,12 @@ http_MakeMessage( INOUT membuffer * buf,
else if( c == 'N' ) { else if( c == 'N' ) {
// content-length header // content-length header
num = ( int )va_arg( argp, int ); bignum = ( off_t )va_arg( argp, off_t );
assert( num >= 0 ); assert( bignum >= 0 );
if( http_MakeMessage if( http_MakeMessage
( buf, http_major_version, http_minor_version, "sdc", ( buf, http_major_version, http_minor_version, "shc",
"CONTENT-LENGTH: ", num ) != 0 ) { "CONTENT-LENGTH: ", bignum ) != 0 ) {
goto error_handler; goto error_handler;
} }
} }
@@ -1996,9 +2008,9 @@ http_MakeMessage( INOUT membuffer * buf,
"<html><body><h1>", "<html><body><h1>",
status_code, http_get_code_text( status_code ), status_code, http_get_code_text( status_code ),
"</h1></body></html>" ); "</h1></body></html>" );
num = strlen( tempbuf ); bignum = strlen( tempbuf );
if( http_MakeMessage( buf, http_major_version, http_minor_version, "NTcs", num, // content-length if( http_MakeMessage( buf, http_major_version, http_minor_version, "NTcs", bignum, // content-length
"text/html", // content-type "text/html", // content-type
tempbuf ) != 0 ) // body tempbuf ) != 0 ) // body
{ {

View File

@@ -632,7 +632,7 @@ get_file_info( IN const char *filename,
rc = get_content_type( filename, &info->content_type ); rc = get_content_type( filename, &info->content_type );
DBGONLY( UpnpPrintf( UPNP_INFO, HTTP, __FILE__, __LINE__, DBGONLY( UpnpPrintf( UPNP_INFO, HTTP, __FILE__, __LINE__,
"file info: %s, length: %d, last_mod=%s readable=%d\n", "file info: %s, length: %lld, last_mod=%s readable=%d\n",
filename, info->file_length, filename, info->file_length,
asctime( gmtime( &info->last_modified ) ), asctime( gmtime( &info->last_modified ) ),
info->is_readable ); ) info->is_readable ); )