mirror of https://github.com/aria2/aria2
Merge branch 'wasamasa-xdg-support'
commit
9800f61b9a
|
@ -429,9 +429,11 @@ DHT
|
||||||
~~~
|
~~~
|
||||||
|
|
||||||
aria2 supports mainline compatible DHT. By default, the routing table
|
aria2 supports mainline compatible DHT. By default, the routing table
|
||||||
for IPv4 DHT is saved to ``$HOME/.aria2/dht.dat`` and the routing
|
for IPv4 DHT is saved to ``$XDG_CACHE_HOME/aria2/dht.dat`` and the
|
||||||
table for IPv6 DHT is saved to ``$HOME/.aria2/dht6.dat``. aria2 uses
|
routing table for IPv6 DHT is saved to
|
||||||
same port number to listen on for both IPv4 and IPv6 DHT.
|
``$XDG_CACHE_HOME/aria2/dht6.dat`` unless files exist at
|
||||||
|
``$HOME/.aria2/dht.dat`` or ``$HOME/.aria2/dht6.dat``. aria2 uses same
|
||||||
|
port number to listen on for both IPv4 and IPv6 DHT.
|
||||||
|
|
||||||
UDP tracker
|
UDP tracker
|
||||||
~~~~~~~~~~~
|
~~~~~~~~~~~
|
||||||
|
|
|
@ -801,12 +801,14 @@ BitTorrent Specific Options
|
||||||
.. option:: --dht-file-path=<PATH>
|
.. option:: --dht-file-path=<PATH>
|
||||||
|
|
||||||
Change the IPv4 DHT routing table file to PATH.
|
Change the IPv4 DHT routing table file to PATH.
|
||||||
Default: ``$HOME/.aria2/dht.dat``
|
Default: ``$HOME/.aria2/dht.dat`` if present, otherwise
|
||||||
|
``$XDG_CACHE_HOME/aria2/dht.dat``.
|
||||||
|
|
||||||
.. option:: --dht-file-path6=<PATH>
|
.. option:: --dht-file-path6=<PATH>
|
||||||
|
|
||||||
Change the IPv6 DHT routing table file to PATH.
|
Change the IPv6 DHT routing table file to PATH.
|
||||||
Default: ``$HOME/.aria2/dht6.dat``
|
Default: ``$HOME/.aria2/dht6.dat`` if present, otherwise
|
||||||
|
``$XDG_CACHE_HOME/aria2/dht6.dat``.
|
||||||
|
|
||||||
.. option:: --dht-listen-addr6=<ADDR>
|
.. option:: --dht-listen-addr6=<ADDR>
|
||||||
|
|
||||||
|
@ -1181,7 +1183,8 @@ Advanced Options
|
||||||
.. option:: --conf-path=<PATH>
|
.. option:: --conf-path=<PATH>
|
||||||
|
|
||||||
Change the configuration file path to PATH.
|
Change the configuration file path to PATH.
|
||||||
Default: ``$HOME/.aria2/aria2.conf``
|
Default: ``$HOME/.aria2/aria2.conf`` if present, otherwise
|
||||||
|
``$XDG_CONFIG_HOME/aria2/aria2.conf``.
|
||||||
|
|
||||||
.. option:: --console-log-level=<LEVEL>
|
.. option:: --console-log-level=<LEVEL>
|
||||||
|
|
||||||
|
@ -1839,10 +1842,12 @@ FILES
|
||||||
aria2.conf
|
aria2.conf
|
||||||
~~~~~~~~~~
|
~~~~~~~~~~
|
||||||
|
|
||||||
By default, aria2 parses ``$HOME/.aria2/aria2.conf`` as a
|
By default, aria2 checks whether the legacy path
|
||||||
configuration file. You can specify the path to configuration file
|
``$HOME/.aria2/aria2.conf`` is present, otherwise it parses
|
||||||
using :option:`--conf-path` option. If you don't want to use the
|
``$XDG_CONFIG_HOME/aria2/aria2.conf`` as its configuration file. You
|
||||||
configuration file, use :option:`--no-conf` option.
|
can specify the path to configuration file using :option:`--conf-path`
|
||||||
|
option. If you don't want to use the configuration file, use
|
||||||
|
:option:`--no-conf` option.
|
||||||
|
|
||||||
The configuration file is a text file and has 1 option per each
|
The configuration file is a text file and has 1 option per each
|
||||||
line. In each line, you can specify name-value pair in the format:
|
line. In each line, you can specify name-value pair in the format:
|
||||||
|
@ -1867,9 +1872,11 @@ lines beginning ``#`` are treated as comments::
|
||||||
dht.dat
|
dht.dat
|
||||||
~~~~~~~~
|
~~~~~~~~
|
||||||
|
|
||||||
By default, the routing table of IPv4 DHT is saved to the path
|
Unless the legacy file paths ``$HOME/.aria2/dht.dat`` and
|
||||||
``$HOME/.aria2/dht.dat`` and the routing table of IPv6 DHT is saved to
|
``$HOME/.aria2/dht6.dat`` are pointing to existing files, the routing
|
||||||
the path ``$HOME/.aria2/dht6.dat``.
|
table of IPv4 DHT is saved to the path
|
||||||
|
``$XDG_CACHE_HOME/aria2/dht.dat`` and the routing table of IPv6 DHT is
|
||||||
|
saved to the path ``$XDG_CACHE_HOME/aria2/dht6.dat``.
|
||||||
|
|
||||||
Netrc
|
Netrc
|
||||||
~~~~~
|
~~~~~
|
||||||
|
|
|
@ -96,8 +96,10 @@ times.
|
||||||
DHT routing table file format
|
DHT routing table file format
|
||||||
-----------------------------
|
-----------------------------
|
||||||
|
|
||||||
aria2 saves IPv4 DHT routing table in ``${HOME}/.aria2/dht.dat`` and
|
aria2 saves IPv4 DHT routing table in
|
||||||
IPv6 DHT routing table in ``${HOME}/.aria2/dht6.dat`` by default.
|
``${XDG_CACHE_HOME}/aria2/dht.dat`` and IPv6 DHT routing table in
|
||||||
|
``${XDG_CACHE_HOME}/aria2/dht6.dat`` by default unless
|
||||||
|
``${HOME}/.aria2/dht.dat`` and ``${HOME}/.aria2/dht.dat`` are present.
|
||||||
|
|
||||||
``dht.dat`` and ``dht6.dat`` files use same binary encoding and have
|
``dht.dat`` and ``dht6.dat`` files use same binary encoding and have
|
||||||
following fields. All multi byte integers are in network byte
|
following fields. All multi byte integers are in network byte
|
||||||
|
|
|
@ -174,7 +174,7 @@ std::vector<OptionHandler*> OptionHandlerFactory::createOptionHandlers()
|
||||||
OptionHandler* op(new DefaultOptionHandler
|
OptionHandler* op(new DefaultOptionHandler
|
||||||
(PREF_CONF_PATH,
|
(PREF_CONF_PATH,
|
||||||
TEXT_CONF_PATH,
|
TEXT_CONF_PATH,
|
||||||
util::getHomeDir()+"/.aria2/aria2.conf",
|
util::getConfigFile(),
|
||||||
PATH_TO_FILE));
|
PATH_TO_FILE));
|
||||||
op->addTag(TAG_ADVANCED);
|
op->addTag(TAG_ADVANCED);
|
||||||
handlers.push_back(op);
|
handlers.push_back(op);
|
||||||
|
@ -2043,7 +2043,7 @@ std::vector<OptionHandler*> OptionHandlerFactory::createOptionHandlers()
|
||||||
OptionHandler* op(new DefaultOptionHandler
|
OptionHandler* op(new DefaultOptionHandler
|
||||||
(PREF_DHT_FILE_PATH,
|
(PREF_DHT_FILE_PATH,
|
||||||
TEXT_DHT_FILE_PATH,
|
TEXT_DHT_FILE_PATH,
|
||||||
util::getHomeDir()+"/.aria2/dht.dat",
|
util::getDHTFile(false),
|
||||||
PATH_TO_FILE));
|
PATH_TO_FILE));
|
||||||
op->addTag(TAG_BITTORRENT);
|
op->addTag(TAG_BITTORRENT);
|
||||||
handlers.push_back(op);
|
handlers.push_back(op);
|
||||||
|
@ -2052,7 +2052,7 @@ std::vector<OptionHandler*> OptionHandlerFactory::createOptionHandlers()
|
||||||
OptionHandler* op(new DefaultOptionHandler
|
OptionHandler* op(new DefaultOptionHandler
|
||||||
(PREF_DHT_FILE_PATH6,
|
(PREF_DHT_FILE_PATH6,
|
||||||
TEXT_DHT_FILE_PATH6,
|
TEXT_DHT_FILE_PATH6,
|
||||||
util::getHomeDir()+"/.aria2/dht6.dat",
|
util::getDHTFile(true),
|
||||||
PATH_TO_FILE));
|
PATH_TO_FILE));
|
||||||
op->addTag(TAG_BITTORRENT);
|
op->addTag(TAG_BITTORRENT);
|
||||||
handlers.push_back(op);
|
handlers.push_back(op);
|
||||||
|
|
31
src/util.cc
31
src/util.cc
|
@ -1336,6 +1336,37 @@ std::string getHomeDir()
|
||||||
}
|
}
|
||||||
#endif // __MINGW32__
|
#endif // __MINGW32__
|
||||||
|
|
||||||
|
std::string getXDGDir(const std::string& environmentVariable,
|
||||||
|
const std::string& fallbackDirectory)
|
||||||
|
{
|
||||||
|
std::string filename;
|
||||||
|
const char* p = getenv(environmentVariable.c_str());
|
||||||
|
if (p && p[0] == '/') {
|
||||||
|
filename = p;
|
||||||
|
} else {
|
||||||
|
filename = fallbackDirectory;
|
||||||
|
}
|
||||||
|
return filename;
|
||||||
|
}
|
||||||
|
|
||||||
|
std::string getConfigFile() {
|
||||||
|
std::string filename = getHomeDir() + "/.aria2/aria2.conf";
|
||||||
|
if (!File(filename).exists()) {
|
||||||
|
filename = getXDGDir("XDG_CONFIG_HOME", getHomeDir()+"/.config") +
|
||||||
|
"/aria2/aria2.conf";
|
||||||
|
}
|
||||||
|
return filename;
|
||||||
|
}
|
||||||
|
|
||||||
|
std::string getDHTFile(bool ipv6) {
|
||||||
|
std::string filename = getHomeDir() + (ipv6 ? "/.aria2/dht6.dat" : "/.aria2/dht.dat");
|
||||||
|
if (!File(filename).exists()) {
|
||||||
|
filename = getXDGDir("XDG_CACHE_HOME", getHomeDir()+"/.cache") +
|
||||||
|
(ipv6 ? "/aria2/dht6.dat" : "/aria2/dht.dat");
|
||||||
|
}
|
||||||
|
return filename;
|
||||||
|
}
|
||||||
|
|
||||||
int64_t getRealSize(const std::string& sizeWithUnit)
|
int64_t getRealSize(const std::string& sizeWithUnit)
|
||||||
{
|
{
|
||||||
std::string::size_type p = sizeWithUnit.find_first_of("KMkm");
|
std::string::size_type p = sizeWithUnit.find_first_of("KMkm");
|
||||||
|
|
|
@ -349,6 +349,13 @@ void setGlobalSignalHandler(int signal, sigset_t* mask,
|
||||||
|
|
||||||
std::string getHomeDir();
|
std::string getHomeDir();
|
||||||
|
|
||||||
|
std::string getXDGDir(const std::string& environmentVariable,
|
||||||
|
const std::string& fallbackDirectory);
|
||||||
|
|
||||||
|
std::string getConfigFile();
|
||||||
|
|
||||||
|
std::string getDHTFile(bool ipv6);
|
||||||
|
|
||||||
int64_t getRealSize(const std::string& sizeWithUnit);
|
int64_t getRealSize(const std::string& sizeWithUnit);
|
||||||
|
|
||||||
std::string abbrevSize(int64_t size);
|
std::string abbrevSize(int64_t size);
|
||||||
|
|
Loading…
Reference in New Issue