MCPcopy Create free account
hub / github.com/amule-project/amule / AddServer

Method AddServer

src/ServerList.cpp:200–268  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

198
199
200bool CServerList::AddServer(CServer* in_server, bool fromUser)
201{
202 if ( !in_server->GetPort() ) {
203 if ( fromUser ) {
204 AddLogLineC(CFormat( _("Server not added: [%s:%d] does not specify a valid port.") )
205 % in_server->GetAddress()
206 % in_server->GetPort()
207 );
208 }
209
210 return false;
211 } else if (
212 !in_server->HasDynIP() &&
213 (
214 !IsGoodIP( in_server->GetIP(), thePrefs::FilterLanIPs() ) ||
215 ( // don't test for filtered while ipfilter is still loading,
216 // it will be filtered when filter loading is finished
217 theApp->ipfilter->IsReady()
218 && theApp->ipfilter->IsFiltered(in_server->GetIP(), true))
219 )
220 ) {
221 if ( fromUser ) {
222 AddLogLineC(CFormat( _("Server not added: The IP of [%s:%d] is filtered or invalid.") )
223 % in_server->GetAddress()
224 % in_server->GetPort()
225 );
226 }
227
228 return false;
229 }
230
231 CServer* test_server = GetServerByAddress(in_server->GetAddress(), in_server->GetPort());
232 // Avoid duplicate (dynIP) servers: If the server which is to be added, is a dynIP-server
233 // but we don't know yet it's DN, we need to search for an already available server with
234 // that IP.
235 if (test_server == NULL && in_server->GetIP() != 0) {
236 test_server = GetServerByIPTCP(in_server->GetIP(), in_server->GetPort());
237 }
238
239 if (test_server) {
240 if ( fromUser ) {
241 AddLogLineC(CFormat( _("Server not added: Server with matching IP:Port [%s:%d] found in list.") )
242 % in_server->GetAddress()
243 % in_server->GetPort()
244 );
245 }
246
247 test_server->ResetFailedCount();
248 Notify_ServerRefresh( test_server );
249
250 return false;
251 }
252
253 theStats::AddServer();
254
255 m_servers.push_back(in_server);
256 NotifyObservers( EventType( EventType::INSERTED, in_server ) );
257

Callers 2

LoadServerMetMethod · 0.45
LoadStaticServersMethod · 0.45

Calls 9

CFormatClass · 0.85
IsGoodIPFunction · 0.85
HasDynIPMethod · 0.80
ResetFailedCountMethod · 0.80
EventTypeEnum · 0.70
GetPortMethod · 0.45
GetIPMethod · 0.45
IsReadyMethod · 0.45
IsFilteredMethod · 0.45

Tested by

no test coverage detected