Yeah ? So is this a dummy and the real publish happens elsewhere ?
void CSharedFileList::SendListToServer(){
std::vector<CKnownFile*> SortedList;
{
wxMutexLocker lock(list_mut);
if (m_Files_map.empty() || !theApp->IsConnectedED2K() ) {
return;
}
// Getting a sorted list of the non-published files.
SortedList.reserve( m_Files_map.size() );
CKnownFileMap::iterator it = m_Files_map.begin();
for ( ; it != m_Files_map.end(); ++it ) {
if (!it->second->GetPublishedED2K()) {
SortedList.push_back( it->second );
}
}
}
std::sort( SortedList.begin(), SortedList.end(), SortFunc );
// Limits for the server.
CServer* server = theApp->serverconnect->GetCurrentServer();
uint32 limit = server ? server->GetSoftFiles() : 0;
if( limit == 0 || limit > 200 ) {
limit = 200;
}
if( (uint32)SortedList.size() < limit ) {
limit = SortedList.size();
if (limit == 0) {
m_lastPublishED2KFlag = false;
return;
}
}
CMemFile files;
// Files sent.
files.WriteUInt32(limit);
uint16 count = 0;
// Add to packet
std::vector<CKnownFile*>::iterator sorted_it = SortedList.begin();
for ( ; (sorted_it != SortedList.end()) && (count < limit); ++sorted_it ) {
CKnownFile* file = *sorted_it;
if (!file->IsLargeFile() || (server && server->SupportsLargeFilesTCP())) {
CreateOfferedFilePacket(file, &files, server, NULL);
}
file->SetPublishedED2K(true);
++count;
}