- Timestamp:
- 2008-08-04T14:21:49Z (16 years ago)
- Branches:
- master
- Children:
- 8661caa
- Parents:
- 8a90001
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
dcc.c
r8a90001 r4ac647d 114 114 } 115 115 116 /* As defined in ft.h */ 117 void imcb_file_finished( file_transfer_t *file ) 118 { 119 dcc_file_transfer_t *df = file->priv; 120 121 if( file->bytes_transferred >= file->file_size ) 122 dcc_finish( file ); 123 else 124 df->proto_finished = TRUE; 125 } 126 116 127 dcc_file_transfer_t *dcc_alloc_transfer( char *file_name, size_t file_size, struct im_connection *ic ) 117 128 { … … 154 165 155 166 df->progress_timeout = b_timeout_add( DCC_MAX_STALL * 1000, dcc_progress, df ); 167 168 imcb_log( ic, "File transfer request from %s for %s (%zd kb). ", user_nick, file_name, file_size/1024 ); 169 170 imcb_log( ic, "Accept the file transfer if you'd like the file. If you don't, issue the 'transfers reject' command."); 156 171 157 172 return file; … … 411 426 412 427 if( file->bytes_transferred >= file->file_size ) { 413 dcc_finish( file ); 428 if( df->proto_finished ) 429 dcc_finish( file ); 414 430 return FALSE; 415 431 } … … 493 509 return dcc_abort( df, "Remote end closed connection" ); 494 510 511 if( !ft->write( df->ft, ft->buffer, ret ) ) 512 return FALSE; 513 495 514 df->bytes_sent += ret; 496 515 … … 509 528 } 510 529 511 if( !ft->write( df->ft, ft->buffer, ret ))512 return FALSE;530 if( df->bytes_sent == ret ) 531 ft->started = time( NULL ); 513 532 514 533 if( done ) 515 534 { 516 closesocket( fd ); 517 dcc_finish( ft ); 535 if( df->watch_out ) 536 b_event_remove( df->watch_out ); 537 538 if( df->proto_finished ) 539 dcc_finish( ft ); 518 540 519 541 df->watch_in = 0; … … 572 594 return dcc_abort( df, "send() sent %d instead of %d", ret, data_len ); 573 595 596 if( df->bytes_sent == 0 ) 597 file->started = time( NULL ); 598 574 599 df->bytes_sent += ret; 575 600 … … 610 635 void dcc_finish( file_transfer_t *file ) 611 636 { 637 dcc_file_transfer_t *df = file->priv; 638 time_t diff = time( NULL ) - file->started ? : 1; 639 612 640 file->status |= FT_STATUS_FINISHED; 613 641 … … 615 643 file->finished( file ); 616 644 645 imcb_log( df->ic, "File %s transferred successfully at %d kb/s!" , file->file_name, (int) ( file->bytes_transferred / 1024 / diff ) ); 617 646 dcc_close( file ); 618 647 }
Note: See TracChangeset
for help on using the changeset viewer.