*
* @author Roland Haeder <webmaster@ship-simu.org>
* @version 0.0
- * @copyright Copyright (c) 2007 - 2008 Roland Haeder, 2009 - 2011 Hub Developer Team
+ * @copyright Copyright (c) 2007 - 2008 Roland Haeder, 2009 - 2012 Hub Developer Team
* @license GNU GPL 3.0 or any newer version
*
* This program is free software: you can redistribute it and/or modify
$cfg->setConfigEntry('list_group_class', 'ListGroupList');
// CFG: HUB-ANNOUNCEMENT-HELPER-CLASS
-$cfg->setConfigEntry('hub_announcement_helper_class', 'HubDescriptorHelper');
+$cfg->setConfigEntry('hub_announcement_helper_class', 'HubAnnouncementHelper');
// CFG: HUB-SELF-CONNECT-HELPER-CLASS
$cfg->setConfigEntry('hub_self_connect_helper_class', 'HubSelfConnectHelper');
// CFG: NODE-WELCOME-TEASER-FILTER
$cfg->setConfigEntry('node_welcome_teaser_filter', 'NodeWelcomeTeaserFilter');
-// CFG: NODE-BOOTSTRAP-GENERATE-HUBID-FILTER
+// CFG: NODE-BOOTSTRAP-GENERATE-NODEID-FILTER
$cfg->setConfigEntry('node_bootstrap_generate_nodeid_filter', 'NodeBootstrapGenerateNodeIdFilter');
// CFG: NODE-BOOTSTRAP-GENERATE-SESSIONID-FILTER
$cfg->setConfigEntry('node_bootstrap_generate_sessionid_filter', 'NodeBootstrapGenerateSessionIdFilter');
+// CFG: NODE-BOOTSTRAP-GENERATE-PRIVATE-KEY-FILTER
+$cfg->setConfigEntry('node_bootstrap_generate_private_key_filter', 'NodeBootstrapGeneratePrivateKeyFilter');
+
// CFG: NODE-BOOTSTRAP-RESTORE-NODELIST-FILTER
$cfg->setConfigEntry('node_bootstrap_restore_nodelist_filter', 'NodeBootstrapRestoreNodeListFilter');
// CFG: NODE-SHUTDOWN-NODE-FILTER
$cfg->setConfigEntry('node_shutdown_node_filter', 'NodeShutdownNodeFilter');
+// CFG: PACKAGE-FILTER-CHAIN-CLASS
+$cfg->setConfigEntry('package_filter_chain_class', 'PackageFilterChain');
+
+// CFG: PACKAGE-TAG-ANNOUNCEMENT-FILTER
+$cfg->setConfigEntry('package_tag_announcement_filter', 'PackageAnnouncementTagFilter');
+
+// CFG: PACKAGE-TAG-ANNOUNCEMENT-ANSWER-FILTER
+$cfg->setConfigEntry('package_tag_announcement_answer_filter', 'PackageAnnouncementAnswerTagFilter');
+
+// CFG: PACKAGE-TAG-SELF-CONNECT-FILTER
+$cfg->setConfigEntry('package_tag_self_connect_filter', 'PackageSelfConnectTagFilter');
+
+// CFG: MESSAGE-TYPE-ANNOUNCEMENT-HANDLER-CLASS
+$cfg->setConfigEntry('message_type_announcement_handler_class', 'NodeMessageAnnouncementHandler');
+
+// CFG: MESSAGE-TYPE-ANNOUNCEMENT-ANSWER-HANDLER-CLASS
+$cfg->setConfigEntry('message_type_announcement_answer_handler_class', 'NodeMessageAnnouncementAnswerHandler');
+
+// CFG: MESSAGE-TYPE-SELF-CONNECT-HANDLER-CLASS
+$cfg->setConfigEntry('message_type_self_connect_handler_class', 'NodeMessageSelfConnectHandler');
+
+// CFG: NODE-ANSWER-MESSAGE-ANNOUNCEMENT-HELPER-CLASS
+$cfg->setConfigEntry('node_answer_message_announcement_helper_class', 'NodeAnnouncementMessageAnswerHelper');
+
// CFG: NEWS-READER-CLASS
$cfg->setConfigEntry('news_reader_class', 'ConsoleNewsReader');
// CFG: NODE-ANNOUNCEMENT-TEMPLATE-CLASS
$cfg->setConfigEntry('node_announcement_template_class', 'XmlAnnouncementTemplateEngine');
-// CFG: NODE-ANNOUNCEMENT-TEMPLATE-EXTENSION
-$cfg->setConfigEntry('node_announcement_template_extension', '.xml');
+// CFG: NODE-ANNOUNCEMENT-ANSWER-TEMPLATE-CLASS
+$cfg->setConfigEntry('node_announcement_answer_template_class', 'XmlAnnouncementAnswerTemplateEngine');
+
+// CFG: NODE-MESSAGE-TEMPLATE-EXTENSION
+$cfg->setConfigEntry('node_message_template_extension', '.xml');
+
+// CFG: NODE-ANSWER-TEMPLATE-EXTENSION
+$cfg->setConfigEntry('node_answer_template_extension', '.xml');
// CFG: NODE-ANNOUNCEMENT-TEMPLATE-TYPE
$cfg->setConfigEntry('node_announcement_template_type', 'xml/announcement');
// CFG: NODE-ANNOUNCEMENT-STACKER-CLASS
$cfg->setConfigEntry('node_announcement_stacker_class', 'FiLoStacker');
+// CFG: NODE-ANNOUNCEMENT-ANSWER-STACKER-CLASS
+$cfg->setConfigEntry('node_announcement_answer_stacker_class', 'FiLoStacker');
+
+// CFG: NODE-ANNOUNCEMENT-ANSWER-TEMPLATE-TYPE
+$cfg->setConfigEntry('node_announcement_answer_template_type', 'xml/answer/announcement');
+
// CFG: NODE-SELF-CONNECT-TEMPLATE-CLASS
$cfg->setConfigEntry('node_self_connect_template_class', 'XmlSelfConnectTemplateEngine');
-// CFG: NODE-SELF-CONNECT-TEMPLATE-EXTENSION
-$cfg->setConfigEntry('node_self_connect_template_extension', '.xml');
-
// CFG: NODE-SELF-CONNECT-TEMPLATE-TYPE
$cfg->setConfigEntry('node_self_connect_template_type', 'xml/self_connect');
// CFG: STACKER-ANNOUNCEMENT-MAX-SIZE
$cfg->setConfigEntry('stacker_announcement_max_size', 20);
+// CFG: STACKER-ANNOUNCEMENT-ANSWER-MAX-SIZE
+$cfg->setConfigEntry('stacker_announcement_answer_max_size', 20);
+
// CFG: STACKER-SELF-CONNECT-MAX-SIZE
$cfg->setConfigEntry('stacker_self_connect_max_size', 10);
// CFG: STACKER-PACKAGE-OUTGOING-MAX-SIZE
$cfg->setConfigEntry('stacker_package_outgoing_max_size', 100);
+// CFG: STACKER-PACKAGE-DECODED-DATA-MAX-SIZE
+$cfg->setConfigEntry('stacker_package_decoded_data_max_size', 200);
+
+// CFG: STACKER-PACKAGE-HANDLED-DECODED-MAX-SIZE
+$cfg->setConfigEntry('stacker_package_handled_decoded_max_size', 200);
+
+// CFG: STACKER-PACKAGE-CHUNKED-DECODED-MAX-SIZE
+$cfg->setConfigEntry('stacker_package_chunked_decoded_max_size', 800);
+
+// CFG: STACKER-PACKAGE-NEW-MESSAGE-MAX-SIZE
+$cfg->setConfigEntry('stacker_package_new_message_max_size', 400);
+
+// CFG: STACKER-PACKAGE-PROCESSED-MESSAGE-MAX-SIZE
+$cfg->setConfigEntry('stacker_package_processed_message_max_size', 400);
+
// CFG: STACKER-PACKAGE-BACKBUFFER-MAX-SIZE
$cfg->setConfigEntry('stacker_package_backbuffer_max_size', 1000);
// CFG: STACKER-DECODED-DATA-MAX-SIZE
$cfg->setConfigEntry('stacker_decoded_data_max_size', 100);
-// CFG: STACKER-PACKAGE-DECODED-DATA-MAX-SIZE
-$cfg->setConfigEntry('stacker_package_decoded_data_max_size', 200);
-
-// CFG: STACKER-PACKAGE-HANDLED-DECODED-MAX-SIZE
-$cfg->setConfigEntry('stacker_package_handled_decoded_max_size', 200);
-
// CFG: STACKER-FINAL-CHUNKS-MAX-SIZE
$cfg->setConfigEntry('stacker_final_chunks_max_size', 100);
+// CFG: STACKER-PENDING-CHUNKS-MAX-SIZE
+$cfg->setConfigEntry('stacker_pending_chunks_max_size', 500);
+
+// CFG: STACKER-CHUNK-RAW-DATA-MAX-SIZE
+$cfg->setConfigEntry('stacker_chunk_raw_data_max_size', 100);
+
+// CFG: STACKER-DECODED-PACKAGE-MAX-SIZE
+$cfg->setConfigEntry('stacker_decoded_package_max_size', 100);
+
// CFG: NEWS-MAIN-LIMIT
$cfg->setConfigEntry('news_main_limit', 5);
// CFG: HUB-SOCKET-LISTENER-TASK-CLASS
$cfg->setConfigEntry('hub_socket_listener_task_class', 'HubSocketListenerTask');
+// CFG: HUB-CHUNK-ASSEMBLER-TASK-CLASS
+$cfg->setConfigEntry('hub_chunk_assembler_task_class', 'HubChunkAssemblerTask');
+
+// CFG: HUB-PACKAGE-DECODER-TASK-CLASS
+$cfg->setConfigEntry('hub_package_decoder_task_class', 'HubPackageDecoderTask');
+
// CFG: TASK-NETWORK-PACKAGE-WRITER-STARTUP-DELAY
$cfg->setConfigEntry('task_network_package_writer_startup_delay', 2500);
// CFG: TASK-SOCKET-LISTENER-MAX-RUNS
$cfg->setConfigEntry('task_socket_listener_max_runs', 0);
+// CFG: TASK-CHUNK-ASSEMBLER-STATUP-DELAY
+$cfg->setConfigEntry('task_chunk_assembler_startup_delay', 1500);
+
+// CFG: TASK-PACKAGE-DECODER-STATUP-DELAY
+$cfg->setConfigEntry('task_package_decoder_startup_delay', 1300);
+
+// CFG: TASK-CHUNK-ASSEMBLER-INTERVAL-DELAY
+$cfg->setConfigEntry('task_chunk_assembler_interval_delay', 10);
+
+// CFG: TASK-PACKAGE-DECODER-INTERVAL-DELAY
+$cfg->setConfigEntry('task_package_decoder_interval_delay', 10);
+
+// CFG: TASK-CHUNK-ASSEMBLER-MAX-RUNS
+$cfg->setConfigEntry('task_chunk_assembler_max_runs', 0);
+
+// CFG: TASK-PACKAGE-DECODER-MAX-RUNS
+$cfg->setConfigEntry('task_package_decoder_max_runs', 0);
+
// CFG: TASK-LIST-CLASS
$cfg->setConfigEntry('task_list_class', 'TaskList');
// CFG: NODE-ANNOUNCED-STATE-CLASS
$cfg->setConfigEntry('node_announced_state_class', 'NodeAnnouncedState');
+// CFG: NODE-REACHABLE-STATE-CLASS
+$cfg->setConfigEntry('node_reachable_state_class', 'NodeReachableState');
+
// CFG: NETWORK-PACKAGE-CLASS
$cfg->setConfigEntry('network_package_class', 'NetworkPackage');
// CFG: UDP-CONNECT-RETRY-MAX
$cfg->setConfigEntry('udp_connect_retry_max', 5);
+// CFG: TCP-SOCKET-ACCEPT-WAIT-SEC
+// @TODO This and the next value is very static again
+$cfg->setConfigEntry('tcp_socket_accept_wait_sec', 3);
+
+// CFG: TCP-SOCKET-ACCEPT-WAIT-USEC
+$cfg->setConfigEntry('tcp_socket_accept_wait_usec', 0);
+
// CFG: NODE-STATE-CHECKED-PACKAGE-CLASS
$cfg->setConfigEntry('node_state_checked_package_class', 'NewConnectionNodeState');
+// CFG: NODE-ID
+$cfg->setConfigEntry('node_id', '');
+
// CFG: SESSION-ID
$cfg->setConfigEntry('session_id', '');
+// CFG: PRIVATE-KEY
+$cfg->setConfigEntry('private_key', '');
+
+// CFG: PRIVATE-KEY-HASH
+$cfg->setConfigEntry('private_key_hash', '');
+
+// CFG: INTERNAL-IP
+$cfg->setConfigEntry('internal_ip', ConsoleTools::acquireSelfIPAddress());
+
// CFG: EXTERNAL-IP
$cfg->setConfigEntry('external_ip', '');
+// CFG: NODE-STATUS
+$cfg->setConfigEntry('node_status', 'invalid');
+
// CFG: PACKAGE-FRAGMENTER-CLASS
$cfg->setConfigEntry('package_fragmenter_class', 'PackageFragmenter');
// CFG: CHUNK-HANDLER-CLASS
$cfg->setConfigEntry('chunk_handler_class', 'ChunkHandler');
+// CFG: PACKAGE-DECODER-CLASS
+$cfg->setConfigEntry('package_decoder_class', 'PackageDecoder');
+
+// CFG: PACKAGE-RECIPIENT-MAX-COUNT
+// @TODO This is very static, rewrite it to more flexible
+$cfg->setConfigEntry('package_recipient_max_count', 3);
+
///////////////////////////////////////////////////////////////////////////////
// Peer states
///////////////////////////////////////////////////////////////////////////////
// CFG: PEER-CONNECTED-STATE-CLASS
$cfg->setConfigEntry('peer_connected_state_class', 'ConnectedPeerState');
+// CFG: PEER-PROBLEM-STATE-CLASS
+$cfg->setConfigEntry('peer_problem_state_class', 'ProblemPeerState');
+
// CFG: PEER-CONNECTION-REFUSED-STATE-CLASS
$cfg->setConfigEntry('peer_connection_refused_state_class', 'ConnectionRefusedPeerState');