Skip to content

File Transfer

File transfer configuration options.

enabled

Control if file transfers are shown in the UI (e.g. file transfer requests are shown, file transfer options are presented in menus, etc).

toml
# Type: boolean
# Values: true, false
# Default: true

[file_transfer]
enabled = true

save_directory

Default directory to save files in. If not set, user will see a file dialog. [^1]

toml
# Type: string
# Values: any string
# Default: not set

[file_transfer]
save_directory = "/Users/halloy/Downloads"

passive

If true, act as the "client" for the transfer. Requires the remote user act as the server.

toml
# Type: boolean
# Values: true, false
# Default: true

[file_transfer]
passive = true

timeout

Time (in seconds) to wait before timing out a transfer waiting to be accepted.

toml
# Type: integer
# Values: any non-negative integer
# Default: 300

[file_transfer]
timeout = 300

auto_accept

Configuration for automatically accepting incoming file transfers.

enabled

If true, automatically accept incoming file transfers. Requires save_directory to be set.

toml
# Type: boolean
# Values: true, false
# Default: false

[file_transfer.auto_accept]
enabled = false

nicks

Automatically accept incoming file transfers from these nicks. Note auto_accept has to be enabled.

toml
# Type: array of strings
# Values: array of any strings
# Default: []

[file_transfer.auto_accept]
nicks = ["nick1", "nick2"]

masks

Automatically accept incoming file transfers matching these masks. Matches are made against the full nickname (i.e. nickname, username, and hostname in the format nickname!username@hostname). Note auto_accept has to be enabled.

💡 Tip

Use toml multi-line literal strings '''\bfoo'd\b''' when writing a regex. This allows you to write the regex without escaping. You can also use a literal string '\bfoo\b', but then you can't use ' inside the string.

Without literal strings, you'd have to write the above as "\\bfoo'd\\b"

toml
# Type: array of strings
# Values: array of any strings
# Default: []

[file_transfer.auto_accept]
masks = [
    '''nick!ident@example\.com''',
    '''.*@foobar\.com'''
]

server

This section is required if passive is true. One side of the file transfer must operate as the "server", who the other user connects with to establish a connection.

public_address

Address advertised to the remote user to connect to.

toml
# Type: string
# Values: any string
# Default: not set

[file_transfer.server]
public_address = "<some ip>"

bind_address

Address to bind to when accepting connections.

toml
# Type: string
# Values: any string
# Default: not set

[file_transfer.server]
bind_address = "<some ip>"

bind_port_first

First port in port range to bind to.

toml
# Type: integer
# Values: any non-negative integer
# Default: not set

[file_transfer.server]
bind_port_first = 1024

bind_port_last

Last port in port range to bind to.

toml
# Type: integer
# Values: any non-negative integer
# Default: not set

[file_transfer.server]
bind_port_last = 5000