517{
518 lt::session_params sp;
519 auto& p = sp.settings;
520
521 sp.disk_io_constructor = lt::default_disk_io_constructor;
522
523 int block_size = 1024 * 1024;
524 std::string outgoing_interface = listen_interface.get_ip();
525 std::string listen_interfaces = listen_interface.get_ip() + ":" + listen_port;
526
527 p.set_bool(lt::settings_pack::enable_dht, false);
528 p.set_int(lt::settings_pack::auto_manage_interval, 60);
529 p.set_int(lt::settings_pack::auto_manage_startup, 1);
530 p.set_int(lt::settings_pack::min_reconnect_time, 1);
531 p.set_int(lt::settings_pack::max_failcount, 10);
532
533
534
535
536
537
538
539 p.set_str(lt::settings_pack::outgoing_interfaces, outgoing_interface);
540 p.set_bool(lt::settings_pack::strict_end_game_mode, false);
541
542 p.set_bool(lt::settings_pack::smooth_connects, false);
543 p.set_bool(lt::settings_pack::allow_multiple_connections_per_ip, true);
544 p.set_bool(lt::settings_pack::announce_to_all_tiers, true);
545 p.set_bool(lt::settings_pack::announce_to_all_trackers, true);
546 p.set_bool(lt::settings_pack::auto_sequential, true);
547
548
549
550 p.set_bool(lt::settings_pack::incoming_starts_queued_torrents, true);
551
552 p.set_bool(lt::settings_pack::enable_incoming_tcp, true);
553 p.set_bool(lt::settings_pack::enable_outgoing_tcp, true);
554 p.set_bool(lt::settings_pack::enable_incoming_utp, false);
555 p.set_bool(lt::settings_pack::enable_outgoing_utp, false);
556 p.set_bool(lt::settings_pack::enable_lsd, false);
557 p.set_bool(lt::settings_pack::enable_natpmp, false);
558 p.set_bool(lt::settings_pack::enable_upnp, false);
559 p.set_bool(lt::settings_pack::prefer_rc4, false);
560 p.set_bool(lt::settings_pack::prefer_udp_trackers, true);
561 p.set_bool(lt::settings_pack::rate_limit_ip_overhead, false);
562
563
564 p.set_int(lt::settings_pack::aio_threads, 1);
565
566 p.set_int(lt::settings_pack::hashing_threads, 1);
567 p.set_int(lt::settings_pack::disk_io_read_mode, 3);
568 p.set_int(lt::settings_pack::disk_io_write_mode, 3);
569 p.set_int(lt::settings_pack::allowed_enc_level, 3);
570 p.set_int(lt::settings_pack::allowed_fast_set_size, 5);
571 p.set_int(lt::settings_pack::seed_choking_algorithm, 1);
572 p.set_int(lt::settings_pack::choking_algorithm, 0);
573 p.set_int(lt::settings_pack::in_enc_policy, 2);
574 p.set_int(lt::settings_pack::out_enc_policy, 2);
575 p.set_int(lt::settings_pack::mixed_mode_algorithm, 0);
576 p.set_int(lt::settings_pack::suggest_mode, 0);
577
578 p.set_int(lt::settings_pack::close_file_interval, 0);
579 p.set_int(lt::settings_pack::inactivity_timeout, 10);
580 p.set_int(lt::settings_pack::request_queue_time, 50);
581 p.set_int(lt::settings_pack::peer_timeout, 20);
582 p.set_int(lt::settings_pack::request_timeout, 10);
583 p.set_int(lt::settings_pack::predictive_piece_announce, 20);
584 p.set_int(lt::settings_pack::whole_pieces_threshold, 20);
585 p.set_int(lt::settings_pack::mmap_file_size_cutoff, 0);
586
587
588 p.set_int(lt::settings_pack::upload_rate_limit, 0);
589 p.set_int(lt::settings_pack::download_rate_limit, 0);
590
591
592 p.set_int(lt::settings_pack::unchoke_slots_limit, -1);
593 p.set_int(lt::settings_pack::max_failcount, 3);
594 p.set_int(lt::settings_pack::max_http_recv_buffer_size, 1024 * 1024 * 8);
595 p.set_int(lt::settings_pack::max_rejects, 20);
596 p.set_int(lt::settings_pack::max_queued_disk_bytes, 1024 * 1024 * 1024);
597
598 p.set_int(lt::settings_pack::read_cache_line_size, 512);
599
600
601 p.set_int(lt::settings_pack::cache_size_volatile, 128);
602 p.set_int(lt::settings_pack::checking_mem_usage, 1024);
603
604
605
606 p.set_bool(lt::settings_pack::use_parole_mode, false);
607
608
609 p.set_int(lt::settings_pack::tracker_completion_timeout, 30);
610 p.set_int(lt::settings_pack::tracker_receive_timeout, 30);
611 p.set_int(lt::settings_pack::stop_tracker_timeout, 30);
612 p.set_int(lt::settings_pack::tracker_backoff, 250);
613 p.set_int(lt::settings_pack::tracker_maximum_response_length, 1024 * 1024 * 8);
614 p.set_bool(lt::settings_pack::validate_https_trackers, false);
615 p.set_int(lt::settings_pack::alert_mask, lt::alert_category::all);
616
617 p.set_str(lt::settings_pack::listen_interfaces, listen_interfaces);
618
620
621 p.set_bool(lt::settings_pack::piece_extent_affinity, true);
622 p.set_bool(lt::settings_pack::seeding_outgoing_connections, false);
623
624 p.set_int(lt::settings_pack::tick_interval, 500);
625 p.set_int(lt::settings_pack::torrent_connect_boost, 255);
626
627 p.set_int(lt::settings_pack::connection_speed, 0);
628 p.set_int(lt::settings_pack::active_seeds, 0);
629 p.set_int(lt::settings_pack::active_downloads, 10);
630 p.set_int(lt::settings_pack::active_checking, 10);
631 p.set_int(lt::settings_pack::active_limit, 10);
632 p.set_int(lt::settings_pack::active_tracker_limit, 10);
633 p.set_int(lt::settings_pack::connections_limit, 10);
634
635 p.set_int(lt::settings_pack::file_pool_size, 10);
636 p.set_int(lt::settings_pack::listen_queue_size, 10);
637 p.set_int(lt::settings_pack::max_allowed_in_request_queue, 50000);
638 p.set_int(lt::settings_pack::max_out_request_queue, 50000);
639 p.set_int(lt::settings_pack::dht_upload_rate_limit, block_size * 10);
640
641 p.set_int(lt::settings_pack::write_cache_line_size, 512);
642
643
644
645
646 p.set_int(lt::settings_pack::send_buffer_watermark_factor, 50);
647 p.set_int(lt::settings_pack::send_buffer_low_watermark, 1024 * 10);
648 p.set_int(lt::settings_pack::send_buffer_watermark, 1024 * 500);
649 p.set_int(lt::settings_pack::send_socket_buffer_size, 1024 * 512);
650 p.set_int(lt::settings_pack::recv_socket_buffer_size, 1024 * 1024 * 1024);
651
652 p.set_bool(lt::settings_pack::no_atime_storage, true);
653 p.set_bool(lt::settings_pack::enable_set_file_valid_data, false);
654 p.set_int(lt::settings_pack::disk_write_mode, 1);
655 p.set_bool(lt::settings_pack::disable_hash_checks, false);
656 } else {
657
658
659 p.set_bool(lt::settings_pack::piece_extent_affinity, false);
660 p.set_bool(lt::settings_pack::seeding_outgoing_connections, true);
661
662 p.set_int(lt::settings_pack::tick_interval, 150);
663 p.set_int(lt::settings_pack::torrent_connect_boost, 255);
664
665 p.set_int(lt::settings_pack::connection_speed, 200);
666 p.set_int(lt::settings_pack::active_seeds, 1000);
667 p.set_int(lt::settings_pack::active_downloads, 0);
668 p.set_int(lt::settings_pack::active_checking, 1000);
669 p.set_int(lt::settings_pack::active_limit, 2000);
670 p.set_int(lt::settings_pack::active_tracker_limit, 2000);
671 p.set_int(lt::settings_pack::connections_limit, 8000);
672
673 p.set_int(lt::settings_pack::file_pool_size, 20);
674 p.set_int(lt::settings_pack::listen_queue_size, 3000);
675 p.set_int(lt::settings_pack::max_allowed_in_request_queue, 2000);
676 p.set_int(lt::settings_pack::max_out_request_queue, 2000);
677 p.set_int(lt::settings_pack::dht_upload_rate_limit, block_size * 8);
678
679 p.set_int(lt::settings_pack::write_cache_line_size, 128);
680
681
682
683
684 p.set_int(lt::settings_pack::send_buffer_watermark_factor, 150);
685 p.set_int(lt::settings_pack::send_buffer_low_watermark, 1024 * 10);
686 p.set_int(lt::settings_pack::send_buffer_watermark, 1024 * 1024 * 1024);
687 p.set_int(lt::settings_pack::send_socket_buffer_size, 1024 * 1024 * 1024);
688 p.set_int(lt::settings_pack::recv_socket_buffer_size, 1024 * 512);
689
690
691
692
693
694 }
695
696 return sp;
697}