| 569 | } |
| 570 | |
| 571 | void Ftp::DataChannel::receive( std::ostream& stream ) { |
| 572 | connect(); |
| 573 | |
| 574 | // Receive data |
| 575 | char buffer[1024]; |
| 576 | std::size_t received; |
| 577 | |
| 578 | while ( mDataSocket->receive( buffer, sizeof( buffer ), received ) == Socket::Done ) { |
| 579 | stream.write( buffer, static_cast<std::streamsize>( received ) ); |
| 580 | |
| 581 | if ( !stream.good() ) { |
| 582 | Log::error( "FTP Error: Writing to the file has failed" ); |
| 583 | break; |
| 584 | } |
| 585 | } |
| 586 | |
| 587 | // Close the data socket |
| 588 | mDataSocket->disconnect(); |
| 589 | mConnected = false; |
| 590 | } |
| 591 | |
| 592 | void Ftp::DataChannel::send( std::istream& stream ) { |
| 593 | connect(); |
no test coverage detected