#2343: preferences: network: incoming port
----------------------------+----------------------
Reporter: lemtargatwing | Owner:
Type: bug | Status: reopened
Priority: minor | Milestone: 1.3.7
Component: Core | Version: 1.3.6
Resolution: | Keywords:
----------------------------+----------------------
Changes (by alaneuler):
* status: closed => reopened
* resolution: Fixed =>
Comment:
Hi, on Arch Linux 5.0.9 I still have this problem.
The output of `deluge -v` is:
{{{
deluge: 1.3.15
libtorrent: 1.1.12.0
}}}
The error output is:
{{{
Unhandled error in Deferred:
Traceback (most recent call last):
File "/usr/lib/python2.7/site-packages/deluge/main.py", line 241, in
start_daemon
Daemon(options, args)
File "/usr/lib/python2.7/site-packages/deluge/core/daemon.py", line 170,
in __init__
component.start("PreferencesManager")
File "/usr/lib/python2.7/site-packages/deluge/component.py", line 296,
in start
deferreds.append(self.components[name]._component_start())
File "/usr/lib/python2.7/site-packages/deluge/component.py", line 124,
in _component_start
d = maybeDeferred(self.start)
--- <exception caught here> ---
File "/usr/lib/python2.7/site-packages/twisted/internet/defer.py", line
151, in maybeDeferred
result = f(*args, **kw)
File "/usr/lib/python2.7/site-
packages/deluge/core/preferencesmanager.py", line 171, in start
self._on_set_listen_interface)
File "/usr/lib/python2.7/site-packages/deluge/config.py", line 319, in
register_set_function
function(key, self.__config[key])
File "/usr/lib/python2.7/site-
packages/deluge/core/preferencesmanager.py", line 267, in
_on_set_listen_interface
self._on_set_random_port("random_port", self.config["random_port"])
File "/usr/lib/python2.7/site-
packages/deluge/core/preferencesmanager.py", line 285, in
_on_set_random_port
self.session.listen_on(listen_ports[0], listen_ports[1],
str(self.config["listen_interface"]).strip())
exceptions.RuntimeError: Invalid argument
}}}
The log (produced with command `sudo -u deluge -g deluge deluged -d -l
log.log -L debug`):
{{{
[INFO ] 19:15:51 daemon:127 Deluge daemon 1.3.15
[DEBUG ] 19:15:51 daemon:128 options: {'profile': False,
'read_only_config_keys': None, 'loglevel': 'debug', 'quiet': False,
'ui_interface': None, 'listen_interface': None, 'logfile': 'log.log',
'config': None, 'port': None, 'pidfile': None, 'donot': True}
[DEBUG ] 19:15:51 daemon:129 args: []
[DEBUG ] 19:15:51 core:78 Core init..
[DEBUG ] 19:15:51 core:84 read_only_config_keys: []
[INFO ] 19:15:51 core:87 Starting libtorrent 1.1.12.0 session..
[DEBUG ] 19:15:51 configmanager:111 Getting config 'core.conf'
[DEBUG ] 19:15:51 config:204 Setting 'info_sent' to 0.0 of <type
'float'>
[DEBUG ] 19:15:51 config:204 Setting 'lsd' to True of <type 'bool'>
[DEBUG ] 19:15:51 config:204 Setting 'send_info' to False of <type
'bool'>
[DEBUG ] 19:15:51 config:204 Setting 'move_completed_path' to
/srv/deluge/Downloads of <type 'str'>
[DEBUG ] 19:15:51 config:204 Setting 'enc_in_policy' to 1 of <type
'int'>
[DEBUG ] 19:15:51 config:204 Setting 'queue_new_to_top' to False of
<type 'bool'>
[DEBUG ] 19:15:51 config:204 Setting 'ignore_limits_on_local_network' to
True of <type 'bool'>
[DEBUG ] 19:15:51 config:204 Setting 'rate_limit_ip_overhead' to True of
<type 'bool'>
[DEBUG ] 19:15:51 config:204 Setting 'daemon_port' to 58846 of <type
'int'>
[DEBUG ] 19:15:51 config:204 Setting 'torrentfiles_location' to
/srv/deluge/Downloads of <type 'str'>
[DEBUG ] 19:15:51 config:204 Setting 'max_active_limit' to 8 of <type
'int'>
[DEBUG ] 19:15:51 config:204 Setting 'utpex' to True of <type 'bool'>
[DEBUG ] 19:15:51 config:204 Setting 'max_active_downloading' to 3 of
<type 'int'>
[DEBUG ] 19:15:51 config:204 Setting 'max_active_seeding' to 5 of <type
'int'>
[DEBUG ] 19:15:51 config:204 Setting 'allow_remote' to False of <type
'bool'>
[DEBUG ] 19:15:51 config:204 Setting 'max_half_open_connections' to 50
of <type 'int'>
[DEBUG ] 19:15:51 config:204 Setting 'download_location' to
/srv/deluge/Downloads of <type 'str'>
[DEBUG ] 19:15:51 config:204 Setting 'compact_allocation' to False of
<type 'bool'>
[DEBUG ] 19:15:51 config:204 Setting 'max_upload_speed' to -1.0 of <type
'float'>
[DEBUG ] 19:15:51 config:204 Setting 'cache_expiry' to 60 of <type
'int'>
[DEBUG ] 19:15:51 config:204 Setting 'prioritize_first_last_pieces' to
False of <type 'bool'>
[DEBUG ] 19:15:51 config:204 Setting 'auto_managed' to True of <type
'bool'>
[DEBUG ] 19:15:51 config:204 Setting 'enc_level' to 2 of <type 'int'>
[DEBUG ] 19:15:51 config:204 Setting 'max_connections_per_second' to 20
of <type 'int'>
[DEBUG ] 19:15:51 config:204 Setting 'dont_count_slow_torrents' to False
of <type 'bool'>
[DEBUG ] 19:15:51 config:204 Setting 'random_outgoing_ports' to True of
<type 'bool'>
[DEBUG ] 19:15:51 config:204 Setting 'dht' to True of <type 'bool'>
[DEBUG ] 19:15:51 config:204 Setting 'new_release_check' to True of
<type 'bool'>
[DEBUG ] 19:15:51 config:204 Setting 'enc_out_policy' to 1 of <type
'int'>
[DEBUG ] 19:15:51 config:204 Setting 'max_upload_slots_global' to 4 of
<type 'int'>
[DEBUG ] 19:15:51 config:204 Setting 'seed_time_limit' to 180 of <type
'int'>
[DEBUG ] 19:15:51 config:204 Setting 'cache_size' to 512 of <type 'int'>
[DEBUG ] 19:15:51 config:204 Setting 'share_ratio_limit' to 2.0 of <type
'float'>
[DEBUG ] 19:15:51 config:204 Setting 'max_download_speed' to -1.0 of
<type 'float'>
[DEBUG ] 19:15:51 config:204 Setting 'geoip_db_location' to
/usr/share/GeoIP/GeoIP.dat of <type 'str'>
[DEBUG ] 19:15:51 config:204 Setting 'natpmp' to True of <type 'bool'>
[DEBUG ] 19:15:51 config:204 Setting 'stop_seed_at_ratio' to False of
<type 'bool'>
[DEBUG ] 19:15:51 config:204 Setting 'peer_tos' to 0x00 of <type 'str'>
[DEBUG ] 19:15:51 config:204 Setting 'listen_interface' to of <type
'str'>
[DEBUG ] 19:15:51 config:204 Setting 'upnp' to True of <type 'bool'>
[DEBUG ] 19:15:51 config:204 Setting 'max_download_speed_per_torrent' to
-1 of <type 'int'>
[DEBUG ] 19:15:51 config:204 Setting 'outgoing_ports' to [0, 0] of <type
'list'>
[DEBUG ] 19:15:51 config:204 Setting 'enabled_plugins' to [] of <type
'list'>
[DEBUG ] 19:15:51 config:204 Setting 'random_port' to True of <type
'bool'>
[DEBUG ] 19:15:51 config:204 Setting 'autoadd_enable' to False of <type
'bool'>
[DEBUG ] 19:15:51 config:204 Setting 'max_connections_global' to 200 of
<type 'int'>
[DEBUG ] 19:15:51 config:204 Setting 'enc_prefer_rc4' to True of <type
'bool'>
[DEBUG ] 19:15:51 config:204 Setting 'listen_ports' to [6881, 6891] of
<type 'list'>
[DEBUG ] 19:15:51 config:204 Setting 'max_upload_slots_per_torrent' to
-1 of <type 'int'>
[DEBUG ] 19:15:51 config:204 Setting 'stop_seed_ratio' to 2.0 of <type
'float'>
[DEBUG ] 19:15:51 config:204 Setting 'seed_time_ratio_limit' to 7.0 of
<type 'float'>
[DEBUG ] 19:15:51 config:204 Setting 'max_upload_speed_per_torrent' to
-1 of <type 'int'>
[DEBUG ] 19:15:51 config:204 Setting 'copy_torrent_file' to False of
<type 'bool'>
[DEBUG ] 19:15:51 config:204 Setting 'del_copy_torrent_file' to False of
<type 'bool'>
[DEBUG ] 19:15:51 config:204 Setting 'move_completed' to False of <type
'bool'>
[DEBUG ] 19:15:51 config:204 Setting 'proxies' to {'peer': {'username':
'', 'password': '', 'hostname': '', 'type': 0, 'port': 8080}, 'web_seed':
{'username': '', 'password': '', 'hostname': '', 'type': 0, 'port': 8080},
'tracker': {'username': '', 'password': '', 'hostname': '', 'type': 0,
'port': 8080}, 'dht': {'username': '', 'password': '', 'hostname': '',
'type': 0, 'port': 8080}} of <type 'dict'>
[DEBUG ] 19:15:51 config:204 Setting 'add_paused' to False of <type
'bool'>
[DEBUG ] 19:15:51 config:204 Setting 'max_connections_per_torrent' to -1
of <type 'int'>
[DEBUG ] 19:15:51 config:204 Setting 'remove_seed_at_ratio' to False of
<type 'bool'>
[DEBUG ] 19:15:51 config:204 Setting 'autoadd_location' to
/srv/deluge/Downloads of <type 'str'>
[DEBUG ] 19:15:51 config:204 Setting 'plugins_location' to
/srv/deluge/.config/deluge/plugins of <type 'str'>
[DEBUG ] 19:15:51 config:399 Config /srv/deluge/.config/deluge/core.conf
version: 1.1 loaded: {'info_sent': 0.0, 'lsd': True, 'send_info': False,
'move_completed_path': u'/srv/deluge/Downloads', 'enc_in_policy': 1,
'queue_new_to_top': False, 'ignore_limits_on_local_network': True,
'rate_limit_ip_overhead': True, 'daemon_port': 58846, 'natpmp': True,
'max_active_limit': 800, 'utpex': True, 'max_active_downloading': 100,
'max_active_seeding': 100, 'allow_remote': False,
'max_half_open_connections': 50, 'download_location':
u'/srv/deluge/Downloads', 'compact_allocation': False, 'max_upload_speed':
-1.0, 'cache_expiry': 60, 'prioritize_first_last_pieces': False,
'auto_managed': False, 'enc_level': 2, 'max_connections_per_second': 50,
'dont_count_slow_torrents': False, 'random_outgoing_ports': True,
'max_upload_slots_per_torrent': -1, 'new_release_check': True,
'enc_out_policy': 1, 'outgoing_ports': [56882, 56883], 'seed_time_limit':
1000000, 'cache_size': 512, 'share_ratio_limit': 1000000.0,
'max_download_speed': -1.0, 'geoip_db_location':
u'/usr/share/GeoIP/GeoIP.dat', 'torrentfiles_location':
u'/srv/deluge/Downloads', 'stop_seed_at_ratio': False, 'peer_tos':
u'0x00', 'listen_interface': u'enp3s0', 'upnp': True,
'max_download_speed_per_torrent': -1, 'max_upload_slots_global': 1000,
'enabled_plugins': [], 'random_port': True, 'autoadd_enable': False,
'max_connections_global': 1000, 'enc_prefer_rc4': True, 'listen_ports':
[56881, 56882], 'dht': True, 'stop_seed_ratio': 2.0,
'seed_time_ratio_limit': 1000000.0, 'max_upload_speed_per_torrent': -1,
'copy_torrent_file': False, 'del_copy_torrent_file': False,
'move_completed': False, 'proxies': {u'peer': {u'username': u'',
u'password': u'', u'type': 0, u'hostname': u'', u'port': 8080},
u'web_seed': {u'username': u'', u'password': u'', u'type': 0, u'hostname':
u'', u'port': 8080}, u'dht': {u'username': u'', u'password': u'', u'type':
0, u'hostname': u'', u'port': 8080}, u'tracker': {u'username': u'',
u'password': u'', u'type': 2, u'hostname': u'127.0.0.1', u'port': 1080}},
'add_paused': False, 'max_connections_per_torrent': -1,
'remove_seed_at_ratio': False, 'autoadd_location':
u'/srv/deluge/Downloads', 'plugins_location':
u'/srv/deluge/.config/deluge/plugins'}
[DEBUG ] 19:15:51 alertmanager:53 AlertManager initialized..
[DEBUG ] 19:15:51 pluginmanagerbase:65 Plugin manager init..
[DEBUG ] 19:15:51 configmanager:111 Getting config 'core.conf'
[DEBUG ] 19:15:51 pluginmanagerbase:124 Found plugin: Extractor 0.6 at
/usr/lib/python2.7/site-packages/deluge/plugins/Extractor-0.6-py2.7.egg
[DEBUG ] 19:15:51 pluginmanagerbase:124 Found plugin: Execute 1.3 at
/usr/lib/python2.7/site-packages/deluge/plugins/Execute-1.3-py2.7.egg
[DEBUG ] 19:15:51 pluginmanagerbase:124 Found plugin: Blocklist 1.3 at
/usr/lib/python2.7/site-packages/deluge/plugins/Blocklist-1.3-py2.7.egg
[DEBUG ] 19:15:51 pluginmanagerbase:124 Found plugin: AutoAdd 1.5 at
/usr/lib/python2.7/site-packages/deluge/plugins/AutoAdd-1.5-py2.7.egg
[DEBUG ] 19:15:51 pluginmanagerbase:124 Found plugin: Label 0.2 at
/usr/lib/python2.7/site-packages/deluge/plugins/Label-0.2-py2.7.egg
[DEBUG ] 19:15:51 pluginmanagerbase:124 Found plugin: Notifications 0.2
at /usr/lib/python2.7/site-
packages/deluge/plugins/Notifications-0.2-py2.7.egg
[DEBUG ] 19:15:51 pluginmanagerbase:124 Found plugin: WebUi 0.1 at
/usr/lib/python2.7/site-packages/deluge/plugins/WebUi-0.1-py2.7.egg
[DEBUG ] 19:15:51 pluginmanagerbase:124 Found plugin: Scheduler 0.3 at
/usr/lib/python2.7/site-packages/deluge/plugins/Scheduler-0.3-py2.7.egg
[DEBUG ] 19:15:51 torrentmanager:139 TorrentManager init..
[DEBUG ] 19:15:51 configmanager:111 Getting config 'core.conf'
[DEBUG ] 19:15:51 config:311 Registering function for
max_connections_per_torrent key..
[DEBUG ] 19:15:51 torrentmanager:930 max_connections_per_torrent set to
-1..
[DEBUG ] 19:15:51 config:311 Registering function for
max_upload_slots_per_torrent key..
[DEBUG ] 19:15:51 torrentmanager:936 max_upload_slots_per_torrent set to
-1..
[DEBUG ] 19:15:51 config:311 Registering function for
max_upload_speed_per_torrent key..
[DEBUG ] 19:15:51 torrentmanager:941 max_upload_speed_per_torrent set to
-1..
[DEBUG ] 19:15:51 config:311 Registering function for
max_download_speed_per_torrent key..
[DEBUG ] 19:15:51 torrentmanager:946 max_download_speed_per_torrent set
to -1..
[DEBUG ] 19:15:51 alertmanager:97 Registered handler for alert
torrent_finished_alert
[DEBUG ] 19:15:51 alertmanager:97 Registered handler for alert
torrent_paused_alert
[DEBUG ] 19:15:51 alertmanager:97 Registered handler for alert
torrent_checked_alert
[DEBUG ] 19:15:51 alertmanager:97 Registered handler for alert
tracker_reply_alert
[DEBUG ] 19:15:51 alertmanager:97 Registered handler for alert
tracker_announce_alert
[DEBUG ] 19:15:51 alertmanager:97 Registered handler for alert
tracker_warning_alert
[DEBUG ] 19:15:51 alertmanager:97 Registered handler for alert
tracker_error_alert
[DEBUG ] 19:15:51 alertmanager:97 Registered handler for alert
storage_moved_alert
[DEBUG ] 19:15:51 alertmanager:97 Registered handler for alert
storage_moved_failed_alert
[DEBUG ] 19:15:51 alertmanager:97 Registered handler for alert
torrent_resumed_alert
[DEBUG ] 19:15:51 alertmanager:97 Registered handler for alert
state_changed_alert
[DEBUG ] 19:15:51 alertmanager:97 Registered handler for alert
save_resume_data_alert
[DEBUG ] 19:15:51 alertmanager:97 Registered handler for alert
save_resume_data_failed_alert
[DEBUG ] 19:15:51 alertmanager:97 Registered handler for alert
file_renamed_alert
[DEBUG ] 19:15:51 alertmanager:97 Registered handler for alert
metadata_received_alert
[DEBUG ] 19:15:51 alertmanager:97 Registered handler for alert
file_error_alert
[DEBUG ] 19:15:51 alertmanager:97 Registered handler for alert
file_completed_alert
[DEBUG ] 19:15:51 alertmanager:97 Registered handler for alert
fastresume_rejected_alert
[DEBUG ] 19:15:51 filtermanager:105 FilterManager init..
[DEBUG ] 19:15:51 configmanager:111 Getting config 'core.conf'
[DEBUG ] 19:15:51 config:311 Registering function for autoadd_enable
key..
[DEBUG ] 19:15:51 autoadd:124 _on_autoadd_enable
[DEBUG ] 19:15:51 config:311 Registering function for autoadd_location
key..
[DEBUG ] 19:15:51 autoadd:131 _on_autoadd_location
[DEBUG ] 19:15:51 configmanager:111 Getting config 'core.conf'
[INFO ] 19:15:51 rpcserver:369 Starting DelugeRPC server
localhost:58846
[DEBUG ] 19:15:51 rpcserver:398 Registering method:
core.add_torrent_file
[DEBUG ] 19:15:51 rpcserver:398 Registering method:
core.add_torrent_magnet
[DEBUG ] 19:15:51 rpcserver:398 Registering method: core.add_torrent_url
[DEBUG ] 19:15:51 rpcserver:398 Registering method: core.connect_peer
[DEBUG ] 19:15:51 rpcserver:398 Registering method: core.create_torrent
[DEBUG ] 19:15:51 rpcserver:398 Registering method: core.disable_plugin
[DEBUG ] 19:15:51 rpcserver:398 Registering method: core.enable_plugin
[DEBUG ] 19:15:51 rpcserver:398 Registering method:
core.force_reannounce
[DEBUG ] 19:15:51 rpcserver:398 Registering method: core.force_recheck
[DEBUG ] 19:15:51 rpcserver:398 Registering method:
core.get_available_plugins
[DEBUG ] 19:15:51 rpcserver:398 Registering method:
core.get_cache_status
[DEBUG ] 19:15:51 rpcserver:398 Registering method: core.get_config
[DEBUG ] 19:15:51 rpcserver:398 Registering method:
core.get_config_value
[DEBUG ] 19:15:51 rpcserver:398 Registering method:
core.get_config_values
[DEBUG ] 19:15:51 rpcserver:398 Registering method:
core.get_enabled_plugins
[DEBUG ] 19:15:51 rpcserver:398 Registering method: core.get_filter_tree
[DEBUG ] 19:15:51 rpcserver:398 Registering method: core.get_free_space
[DEBUG ] 19:15:51 rpcserver:398 Registering method:
core.get_libtorrent_version
[DEBUG ] 19:15:51 rpcserver:398 Registering method: core.get_listen_port
[DEBUG ] 19:15:51 rpcserver:398 Registering method:
core.get_num_connections
[DEBUG ] 19:15:51 rpcserver:398 Registering method: core.get_path_size
[DEBUG ] 19:15:51 rpcserver:398 Registering method:
core.get_session_state
[DEBUG ] 19:15:51 rpcserver:398 Registering method:
core.get_session_status
[DEBUG ] 19:15:51 rpcserver:398 Registering method:
core.get_torrent_status
[DEBUG ] 19:15:51 rpcserver:398 Registering method:
core.get_torrents_status
[DEBUG ] 19:15:51 rpcserver:398 Registering method: core.glob
[DEBUG ] 19:15:51 rpcserver:398 Registering method: core.move_storage
[DEBUG ] 19:15:51 rpcserver:398 Registering method:
core.pause_all_torrents
[DEBUG ] 19:15:51 rpcserver:398 Registering method: core.pause_torrent
[DEBUG ] 19:15:51 rpcserver:398 Registering method: core.queue_bottom
[DEBUG ] 19:15:51 rpcserver:398 Registering method: core.queue_down
[DEBUG ] 19:15:51 rpcserver:398 Registering method: core.queue_top
[DEBUG ] 19:15:51 rpcserver:398 Registering method: core.queue_up
[DEBUG ] 19:15:51 rpcserver:398 Registering method: core.remove_torrent
[DEBUG ] 19:15:51 rpcserver:398 Registering method: core.rename_files
[DEBUG ] 19:15:51 rpcserver:398 Registering method: core.rename_folder
[DEBUG ] 19:15:51 rpcserver:398 Registering method: core.rescan_plugins
[DEBUG ] 19:15:51 rpcserver:398 Registering method:
core.resume_all_torrents
[DEBUG ] 19:15:51 rpcserver:398 Registering method: core.resume_torrent
[DEBUG ] 19:15:51 rpcserver:398 Registering method: core.set_config
[DEBUG ] 19:15:51 rpcserver:398 Registering method:
core.set_torrent_auto_managed
[DEBUG ] 19:15:51 rpcserver:398 Registering method:
core.set_torrent_file_priorities
[DEBUG ] 19:15:51 rpcserver:398 Registering method:
core.set_torrent_max_connections
[DEBUG ] 19:15:51 rpcserver:398 Registering method:
core.set_torrent_max_download_speed
[DEBUG ] 19:15:51 rpcserver:398 Registering method:
core.set_torrent_max_upload_slots
[DEBUG ] 19:15:51 rpcserver:398 Registering method:
core.set_torrent_max_upload_speed
[DEBUG ] 19:15:51 rpcserver:398 Registering method:
core.set_torrent_move_completed
[DEBUG ] 19:15:51 rpcserver:398 Registering method:
core.set_torrent_move_completed_path
[DEBUG ] 19:15:51 rpcserver:398 Registering method:
core.set_torrent_options
[DEBUG ] 19:15:51 rpcserver:398 Registering method:
core.set_torrent_prioritize_first_last
[DEBUG ] 19:15:51 rpcserver:398 Registering method:
core.set_torrent_remove_at_ratio
[DEBUG ] 19:15:51 rpcserver:398 Registering method:
core.set_torrent_stop_at_ratio
[DEBUG ] 19:15:51 rpcserver:398 Registering method:
core.set_torrent_stop_ratio
[DEBUG ] 19:15:51 rpcserver:398 Registering method:
core.set_torrent_trackers
[DEBUG ] 19:15:51 rpcserver:398 Registering method:
core.test_listen_port
[DEBUG ] 19:15:51 rpcserver:398 Registering method: core.upload_plugin
[DEBUG ] 19:15:51 rpcserver:398 Registering method:
daemon.get_method_list
[DEBUG ] 19:15:51 rpcserver:398 Registering method: daemon.info
[DEBUG ] 19:15:51 rpcserver:398 Registering method: daemon.shutdown
[DEBUG ] 19:15:51 config:311 Registering function for
torrentfiles_location key..
[DEBUG ] 19:15:51 config:311 Registering function for listen_ports key..
[DEBUG ] 19:15:51 config:311 Registering function for listen_interface
key..
[DEBUG ] 19:15:51 preferencesmanager:270 random port value set to True
[DEBUG ] 19:15:51 preferencesmanager:284 listen port range set to
52153-52163
[ERROR ] 19:15:51 component:118 [Failure instance: Traceback: <type
'exceptions.RuntimeError'>: Invalid argument
}}}
--
Ticket URL: <https://dev.deluge-torrent.org/ticket/2343#comment:6>
Deluge <http://deluge-torrent.org/>
Deluge Project
--
You received this message because you are subscribed to the Google Groups
"Deluge Dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/deluge-dev.
For more options, visit https://groups.google.com/d/optout.