gnunet-handbook

The GNUnet Handbook
Log | Files | Refs

commit 378f616d277a6064653175c11dc318263069fb80
parent 3234b526e4ee2892c095bc4d1287c5e5c71519aa
Author: Martin Schanzenbach <schanzen@gnunet.org>
Date:   Thu,  5 Jan 2023 19:49:01 +0900

Silence warnings

Diffstat:
Mdevelopers/rest/peerinfo.rst | 6++++--
Mdevelopers/subsystems/identity/identity.rst | 2+-
Mdevelopers/tutorial.rst | 96++++++++++++++++++++++++++++++++++++++++---------------------------------------
Mguis/fs-gtk.rst | 8++++----
Rpreface.rst -> preface.rst.bak | 0
Musers/configuration.rst | 91++++++++++++++++++++++++++++++++++++++++---------------------------------------
6 files changed, 104 insertions(+), 99 deletions(-)

diff --git a/developers/rest/peerinfo.rst b/developers/rest/peerinfo.rst @@ -16,9 +16,11 @@ A peer consists of an ``identifier`` and one or more ``addresses`` with ``expira Peerinfo Response ----------------- -The response of the peerinfo API is a JSON Array:: +The response of the peerinfo API is a JSON Array: - [ +.. code-block:: text + + [ { "peer":'identifier', "array": [ diff --git a/developers/subsystems/identity/identity.rst b/developers/subsystems/identity/identity.rst @@ -55,7 +55,7 @@ anonymous and pseudonymous egos. libgnunetidentity ----------------- -.. _Connecting-to-the-service: +.. _Connecting-to-the-identity-service: Connecting to the service ^^^^^^^^^^^^^^^^^^^^^^^^^ diff --git a/developers/tutorial.rst b/developers/tutorial.rst @@ -61,7 +61,7 @@ modifications from the default configuration. We need to create a separate service home and a file containing our modifications for this peer: -:: +.. code-block:: text $ mkdir ~/gnunet1/ $ touch peer1.conf @@ -71,7 +71,7 @@ simplified usage we want to prevent the peer to connect to the GNUnet network since this could lead to confusing output. This modifications will replace the default settings: -:: +.. code-block:: text [PATHS] # Use this directory to store GNUnet data @@ -101,7 +101,7 @@ additional service not automatically started can be started using Once you have started your peer, you can use many other GNUnet commands to interact with it. For example, you can run: -:: +.. code-block:: text $ gnunet-peerinfo -s @@ -109,7 +109,7 @@ to obtain the public key of your peer. You should see an output containing the peer ID similar to: -:: +.. code-block:: text I am peer `0PA02UVRKQTS2C .. JL5Q78F6H0B1ACPV1CJI59MEQUMQCC5G'. @@ -126,7 +126,7 @@ and GET commands we issue ussing the ``gnunet-dht-put`` and can observe the behavior of your own peer's DHT with respect to the specified KEY: -:: +.. code-block:: text # start gnunet with all default services: $ gnunet-arm -c ~/peer1.conf -s @@ -138,7 +138,7 @@ specified KEY: Now open a separate terminal and change again to the ``gnunet/src/dht`` directory: -:: +.. code-block:: text $ cd ~/gnunet/src/dht # put VALUE under KEY in the DHT: @@ -178,7 +178,7 @@ To configure the second peer, use the files ``$PREFIX/share/gnunet/config.d`` as a template for your main configuration file: -:: +.. code-block:: text $ cat $PREFIX/share/gnunet/config.d/*.conf > peer2.conf @@ -200,7 +200,7 @@ to specify ``-c peer2.conf`` as an additional command line argument. Now, generate the 2nd peer's private key: -:: +.. code-block:: text $ gnunet-peerinfo -s -c peer2.conf @@ -216,7 +216,7 @@ Start the second peer and connect the peers Then, you can start a second peer using: -:: +.. code-block:: text $ gnunet-arm -c peer2.conf -s $ gnunet-arm -c peer2.conf -i dht @@ -235,7 +235,7 @@ To setup peer 1 as bootstrapping server change the configuration of the first one to be a hostlist server by adding the following lines to ``peer1.conf`` to enable bootstrapping server: -:: +.. code-block:: text [hostlist] OPTIONS = -p @@ -244,7 +244,7 @@ Then change ``peer2.conf`` and replace the "\ ``SERVERS``\ " line in the "\ ``[hostlist]``\ " section with "\ ``http://localhost:8080/``\ ". Restart both peers using: -:: +.. code-block:: text # stop first peer $ gnunet-arm -c peer1.conf -e @@ -283,7 +283,8 @@ should: Check that they are connected using ``gnunet-core -c peer1.conf``, which should give you the other peer's peer identity: -:: + +.. code-block:: text $ gnunet-core -c peer1.conf Peer `9TVUCS8P5A7ILLBGO6 [...shortened...] 1KNBJ4NGCHP3JPVULDG' @@ -319,7 +320,7 @@ be found in the testbed default configuration file With the testbed API, a sample test case can be structured as follows: -:: +.. code-block:: text #include <unistd.h> #include <gnunet/platform.h> @@ -426,7 +427,7 @@ https://git.gnunet.org/gnunet.git/tree/doc/documentation/testbed_test.c or in the ``doc/`` folder of your repository check-out. After installing GNUnet, the above source code can be compiled as: -:: +.. code-block:: text $ export CPPFLAGS="-I/path/to/gnunet/headers" $ export LDFLAGS="-L/path/to/gnunet/libraries" @@ -503,7 +504,7 @@ To develop a new peer-to-peer application or to extend GNUnet we provide a template build system for writing GNUnet extensions in C. It can be obtained as follows: -:: +.. code-block:: text $ git clone https://git.gnunet.org/gnunet-ext.git $ cd gnunet-ext/ @@ -567,7 +568,7 @@ scheduler and then invoke the ``run`` function (with the remaining non-option arguments) and a handle to the parsed configuration (and the configuration file name that was used, which is typically not needed): -:: +.. code-block:: text #include <gnunet/platform.h> #include <gnunet/gnunet_util_lib.h> @@ -608,7 +609,7 @@ expanding the ``options`` array. For example, the following would add a string-option and a binary flag (defaulting to ``NULL`` and ``GNUNET\_NO`` respectively): -:: +.. code-block:: text static char *string_option; static int a_flag; @@ -677,7 +678,7 @@ Connecting to the Service Before a client library can implement the application-specific protocol with the service, a connection must be created: -:: +.. code-block:: text struct GNUNET_MQ_MessageHandlers handlers[] = { // ... @@ -709,7 +710,7 @@ In GNUnet, messages are always sent beginning with a defines the size and the type of the message, the payload follows after this header. -:: +.. code-block:: text struct GNUNET_MessageHeader { @@ -720,7 +721,7 @@ this header. Existing message types are defined in ``gnunet\_protocols.h``. A common way to create a message is with an envelope: -:: +.. code-block:: text struct GNUNET_MQ_Envelope *env; struct GNUNET_MessageHeader *msg; @@ -762,7 +763,7 @@ message. Fixed size messages are fully checked by the MQ-logic, and thus only need to provide the handler to process the message. Note that the prefixes ``check\_`` and ``handle\_`` are mandatory. -:: +.. code-block:: text static void handle_fix (void *cls, const struct MyMessage *msg) @@ -845,7 +846,7 @@ Starting a Service The key API definition for creating a service is the ``GNUNET\_SERVICE\_MAIN`` macro: -:: +.. code-block:: text GNUNET_SERVICE_MAIN ("service-name", @@ -866,7 +867,7 @@ will be called for incoming messages from clients. A minimal version of the three central service functions would look like this: -:: +.. code-block:: text static void run (void *cls, @@ -926,7 +927,7 @@ peers. One of the first things any service that extends the P2P protocol typically does is connect to the ``CORE`` service using: -:: +.. code-block:: text #include <gnunet/gnunet_core_service.h> @@ -948,7 +949,7 @@ be known to the service. This is notified by the ``CORE`` ``connects`` callback, which communicates the identity of the new peer to the service: -:: +.. code-block:: text void * connects (void *cls, @@ -1015,7 +1016,7 @@ messages will be received from the peer and the service is no longer allowed to send messages to the peer. The disconnect callback looks like the following: -:: +.. code-block:: text void disconnects (void *cls, @@ -1049,7 +1050,7 @@ PEERSTORE contains the following fields: The first step is to start a connection to the PEERSTORE service: -:: +.. code-block:: text #include "gnunet_peerstore_service.h" @@ -1065,7 +1066,7 @@ Storing records To store a new record, use the following function: -:: +.. code-block:: text struct GNUNET_PEERSTORE_StoreContext * GNUNET_PEERSTORE_store (struct GNUNET_PEERSTORE_Handle *h, @@ -1095,7 +1096,7 @@ The ``GNUNET_PEERSTORE_store`` function returns a handle to the store operation. This handle can be used to cancel the store operation only before the continuation function is called: -:: +.. code-block:: text void GNUNET_PEERSTORE_store_cancel (struct GNUNET_PEERSTORE_StoreContext @@ -1108,7 +1109,7 @@ Retrieving records To retrieve stored records, use the following function: -:: +.. code-block:: text struct GNUNET_PEERSTORE_IterateContext * GNUNET_PEERSTORE_iterate (struct GNUNET_PEERSTORE_Handle *h, @@ -1147,7 +1148,7 @@ PEERSTORE offers the functionality of monitoring for new records stored under a specific key combination (subsystem, peerid, key). To start the monitoring, use the following function: -:: +.. code-block:: text struct GNUNET_PEERSTORE_WatchContext * GNUNET_PEERSTORE_watch (struct GNUNET_PEERSTORE_Handle *h, @@ -1162,7 +1163,7 @@ Whenever a new record is stored under the given key combination, the continue until the connection to the PEERSTORE service is broken or the watch operation is canceled: -:: +.. code-block:: text void GNUNET_PEERSTORE_watch_cancel (struct GNUNET_PEERSTORE_WatchContext @@ -1176,7 +1177,7 @@ Disconnecting from PEERSTORE When the connection to the PEERSTORE service is no longer needed, disconnect using the following function: -:: +.. code-block:: text void GNUNET_PEERSTORE_disconnect (struct GNUNET_PEERSTORE_Handle *h, @@ -1196,7 +1197,7 @@ access it and retrieve data stored by any peers in the network. This section will explain how to use the DHT. Of course, the first thing to do is to connect to the DHT service: -:: +.. code-block:: text dht_handle = GNUNET_DHT_connect (cfg, parallel_requests); @@ -1224,7 +1225,7 @@ been stored. In order to improve the availablilty of the data and to compensate for possible errors, peers leaving and other unfavorable events, just make several PUT requests! -:: +.. code-block:: text message_sent_cont (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc) @@ -1267,7 +1268,7 @@ If we give a route option ``GNUNET\_DHT\_RO\_RECORD\_ROUTE`` the callback will get a list of all the peers the data has travelled, both on the PUT path and on the GET path. -:: +.. code-block:: text static void get_result_iterator (void *cls, struct GNUNET_TIME_Absolute expiration, @@ -1328,7 +1329,7 @@ is application-specific. Applications that do not use an extended query should check that the ``xquery\_size`` is zero. The block group is typically used to filter duplicate replies. -:: +.. code-block:: text static enum GNUNET_BLOCK_EvaluationResult block_plugin_SERVICE_evaluate (void *cls, @@ -1360,7 +1361,7 @@ used to obtain the key of a block --- for example, by means of hashing. If deriving the key is not possible, the function should simply return ``GNUNET\_SYSERR`` (the DHT will still work just fine with such blocks). -:: +.. code-block:: text static int block_plugin_SERVICE_get_key (void *cls, enum GNUNET_BLOCK_Type type, @@ -1381,7 +1382,7 @@ initialization function specifies what block types the plugin cares about and returns a struct with the functions that are to be used for validation and obtaining keys (the ones just defined above). -:: +.. code-block:: text void * libgnunet_plugin_block_SERVICE_init (void *cls) @@ -1408,7 +1409,7 @@ Shutdown of the plugin Following GNUnet's general plugin API concept, the plugin must export a second function for cleaning up. It usually does very little. -:: +.. code-block:: text void * libgnunet_plugin_block_SERVICE_done (void *cls) @@ -1427,7 +1428,7 @@ Integration of the plugin with the build system In order to compile the plugin, the ``Makefile.am`` file for the service SERVICE should contain a rule similar to this: -:: +.. code-block:: text plugindir = $(libdir)/gnunet @@ -1465,7 +1466,7 @@ key parameters, to allow for filtering of messages. When an event happens, the appropriate callback is called with all the information about the event. -:: +.. code-block:: text static void get_callback (void *cls, @@ -1529,7 +1530,7 @@ Even if services are managed by ``gnunet-arm``, you can start them with to your configuration file to start the DHT service in a ``gdb`` session in a fresh ``xterm``: -:: +.. code-block:: text [dht] PREFIX=xterm -e gdb --args @@ -1537,7 +1538,7 @@ in a fresh ``xterm``: Alternatively, you can stop a service that was started via ARM and run it manually: -:: +.. code-block:: text $ gnunet-arm -k dht $ gdb --args gnunet-service-dht -L DEBUG @@ -1570,7 +1571,8 @@ GNU Free Documentation License license, GNU Free Documentation License Version 1.3, 3 November 2008 -:: + +.. code-block:: text Copyright © 2000, 2001, 2002, 2007, 2008 Free Software Foundation, Inc. http://fsf.org/ @@ -2015,7 +2017,7 @@ To use this License in a document you have written, include a copy of the License in the document and put the following copyright and license notices just after the title page: -:: +.. code-block:: text Copyright (C) year your name. Permission is granted to copy, distribute and/or modify this document @@ -2028,7 +2030,7 @@ notices just after the title page: If you have Invariant Sections, Front-Cover Texts and Back-Cover Texts, replace the "with...Texts." line with this: -:: +.. code-block:: text with the Invariant Sections being list their titles, with the Front-Cover Texts being list, and with the Back-Cover Texts diff --git a/guis/fs-gtk.rst b/guis/fs-gtk.rst @@ -19,12 +19,12 @@ the \"Statistics\" icon, and then select \"Publish\" from the menu. Afterwards, the following publishing dialog will appear: -|image3| +.. image:: /images/gnunet-gtk-0-10-fs-publish.png In this dialog, select the \"Add File\" button. This will open a file selection dialog: -|image4| +.. image:: /images/gnunet-gtk-0-10-fs-publish-select.png Now, you should select a file from your computer to be published on GNUnet. To see more of GNUnet's features later, you should pick a PNG or @@ -39,12 +39,12 @@ be interested in the progress dialog and potential errors that might be encountered during processing. After the progress dialog automatically disappears, your file should now appear in the publishing dialog: -|image5| +.. image:: /images/gnunet-gtk-0-10-fs-publish-with-file.png Now, select the file (by clicking on the file name) and then click the \"Edit\" button. This will open the editing dialog: -|image6| +.. image:: /images/gnunet-gtk-0-10-fs-publish-editing.png In this dialog, you can see many details about your file. In the top left area, you can see meta data extracted about the file, such as the diff --git a/preface.rst b/preface.rst.bak diff --git a/users/configuration.rst b/users/configuration.rst @@ -18,7 +18,7 @@ either pass it to the component at execution time, or name it A config file is a text file containing sections, and each section contains its values. The right format follows: -:: +.. code-block:: text [section1] value1 = string @@ -33,14 +33,14 @@ variables, like ``$VAR``, especially when they represent filenames in in the filesystem. It is also possible to provide defaults values for those variables that are unset, by using the following syntax: -:: +.. code-block:: text ${VAR:-default} However, there are two ways a user can set ``$``-prefixable variables: (a) by defining them under a ``[paths]`` section -:: +.. code-block:: text [paths] GNUNET_DEPLOYMENT_SHARED = ${HOME}/shared-data @@ -50,7 +50,7 @@ However, there are two ways a user can set ``$``-prefixable variables: or (b) by setting them in the environment -:: +.. code-block:: text $ export VAR=/x @@ -82,14 +82,15 @@ Assuming the configuration file is called ``~/.config/gnunet.conf``, you start your peer using the ``gnunet-arm`` command (say as user ``gnunet``) using: -:: + +.. code-block:: text gnunet-arm -c ~/.config/gnunet.conf -s The \"-s\" option here is for \"start\". The command should return almost instantly. If you want to stop GNUnet, you can use: -:: +.. code-block:: text gnunet-arm -c ~/.config/gnunet.conf -e @@ -99,7 +100,7 @@ Note that this will only start the basic peer, no actual applications will be available. If you want to start the file-sharing service, use (after starting GNUnet): -:: +.. code-block:: text gnunet-arm -c ~/.config/gnunet.conf -i fs @@ -107,7 +108,7 @@ The \"-i fs\" option here is for \"initialize\" the \"fs\" (file-sharing) application. You can also selectively kill only file-sharing support using -:: +.. code-block:: text gnunet-arm -c ~/.config/gnunet.conf -k fs @@ -117,13 +118,13 @@ by setting \"IMMEDIATE_START=YES\" in the respective section of the configuration file (for example, \"[fs]\"). Then GNUnet with file-sharing support would be started whenever you enter: -:: +.. code-block:: text gnunet-arm -c ~/.config/gnunet.conf -s Alternatively, you can combine the two options: -:: +.. code-block:: text gnunet-arm -c ~/.config/gnunet.conf -s -i fs @@ -133,7 +134,7 @@ GNUnet from ``init``. Finally, you should edit your ``crontab`` (using the ``crontab`` command) and insert a line  -.. code-block:: cron +.. code-block:: text @reboot gnunet-arm -c ~/.config/gnunet.conf -s @@ -149,7 +150,7 @@ This requires you to create a user ``gnunet`` and an additional group Then, you create a configuration file ``/etc/gnunet.conf`` which should contain the lines:  -:: +.. code-block:: text [arm] START_SYSTEM_SERVICES = YES @@ -167,14 +168,14 @@ Afterwards, you need to perform another setup step for each normal user account from which you want to access GNUnet. First, grant the normal user (``$USER``) permission to the group gnunet: -:: +.. code-block:: text # adduser $USER gnunet Then, create a configuration file in ``~/.config/gnunet.conf`` for the $USER with the lines: -:: +.. code-block:: text [arm] START_SYSTEM_SERVICES = NO @@ -359,7 +360,7 @@ When configuring any of the F2F (\"friend-to-friend\") modes, you first need to create a file with the peer identities of your friends. Ask your friends to run -:: +.. code-block:: text $ gnunet-peerinfo -sq @@ -403,7 +404,7 @@ To activate bootstrapping, edit the ``[hostlist]``-section in your configuration file. You have to set the argument ``-b`` in the options line: -:: +.. code-block:: text [hostlist] OPTIONS = -b @@ -413,13 +414,13 @@ default bootstrapping server is \"http://v10.gnunet.org/hostlist\". [^] To set the server you have to edit the line \"SERVERS\" in the hostlist section. To use the default server you should set the lines to -:: +.. code-block:: text SERVERS = http://v10.gnunet.org/hostlist [^] To use bootstrapping your configuration file should include these lines: -:: +.. code-block:: text [hostlist] OPTIONS = -b @@ -436,7 +437,7 @@ and are loaded during startup. To activate hostlist learning you have to add the ``-e`` switch to the ``OPTIONS`` line in the hostlist section: -:: +.. code-block:: text [hostlist] OPTIONS = -b -e @@ -444,14 +445,14 @@ To activate hostlist learning you have to add the ``-e`` switch to the Furthermore you can specify in which file the lists are saved. To save the lists in the file ``hostlists.file`` just add the line: -:: +.. code-block:: text HOSTLISTFILE = hostlists.file Best practice is to activate both bootstrapping and hostlist learning. So your configuration file should include these lines: -:: +.. code-block:: text [hostlist] OPTIONS = -b -e @@ -491,14 +492,14 @@ If you wish to connect to a specific peer apart from the automatically negotiated connections, you can use the ``hello`` URI of the peer. The URI is returned by the following command to *peer to be connected to*: -:: +.. code-block:: text $ gnunet-peerinfo -s -g The URI output is passed to the ``gnunet-peerinfo`` command of *peer that is connecting*: -:: +.. code-block:: text $ gnunet-peerinfo -s -p URI @@ -524,7 +525,7 @@ To provide these options directly in the configuration, you can enter the following settings in the ``[hostlist]`` section of the configuration: -:: +.. code-block:: text # Type of proxy server, # Valid values: HTTP, HTTP_1_0, SOCKS4, SOCKS5, SOCKS4A, SOCKS5_HOSTNAME @@ -557,7 +558,7 @@ To configure your peer to act as a bootstrap server you have to add the configuration file. Besides that you have to specify a port number for the http server. In conclusion you have to add the following lines: -:: +.. code-block:: text [hostlist] HTTPPORT = 12980 @@ -574,7 +575,7 @@ bootstrapping. To activate hostlist advertisement on your peer, you have to set the following lines in your configuration file: -:: +.. code-block:: text [hostlist] EXTERNAL_DNS_NAME = example.org @@ -671,7 +672,7 @@ Setup Instructions - In the $HOME directory of $USER, create a ``.my.cnf`` file with the following lines - .. code-block:: conf + .. code-block:: text [client] user=$USER @@ -690,14 +691,14 @@ Testing You should briefly try if the database connection works. First, login as $USER. Then use: -:: +.. code-block:: text $ mysql -u $USER mysql> use gnunet; If you get the message -:: +.. code-block:: text Database changed @@ -712,7 +713,7 @@ If you get it may be resolvable by -:: +.. code-block:: text ln -s /var/run/mysqld/mysqld.sock /tmp/mysql.sock @@ -727,7 +728,7 @@ For GNUnet, you probably want to set the option .. todo:: Code block not C, set appropriate language -:: +.. code-block:: text innodb_flush_log_at_trx_commit = 0 @@ -856,7 +857,7 @@ that the file-sharing service is loaded. This is done by setting the ``START_ON_DEMAND`` option in section ``[fs]`` to \"YES\". Alternatively, you can run -:: +.. code-block:: text $ gnunet-arm -i fs @@ -922,7 +923,7 @@ In summary, in order to get all services to log at level ``INFO`` to log-files called ``SERVICENAME-logs``, the following global prefix should be used: -:: +.. code-block:: text GLOBAL_POSTFIX = -l $SERVICEHOME/{}-logs -L INFO @@ -941,7 +942,7 @@ protocols are configured together with the transport service. The configuration section for the transport service itself is quite similar to all the other services -.. code-block:: conf +.. code-block:: text START_ON_DEMAND = YES @UNIXONLY@ PORT = 2091 @@ -1086,7 +1087,7 @@ There are the following options for the wlan plugin (they should be like this in your default config file, you only need to adjust them if the values are incorrect for your system) -:: +.. code-block:: text # section for the wlan transport plugin [transport-wlan] @@ -1107,13 +1108,13 @@ Before starting GNUnet, you have to make sure that your wlan interface is in monitor mode. One way to put the wlan interface into monitor mode (if your interface name is wlan0) is by executing: -:: +.. code-block:: text sudo airmon-ng start wlan0 Here is an example what the result should look like: -:: +.. code-block:: text Interface Chipset Driver wlan0 Intel 4965 a/b/g/n iwl4965 - [phy0] @@ -1137,7 +1138,7 @@ computer, it is usually the first channel of the card. Peers will only find each other and communicate if they are on the same channel. Channels must be set manually, e.g. by using: -:: +.. code-block:: text iwconfig wlan0 channel 1 @@ -1188,7 +1189,7 @@ the site-specific configuration file. In the respective ``server config``,\ ``virtual host`` or ``directory`` section add the following lines: -:: +.. code-block:: text ProxyTimeout 300 ProxyRequests Off @@ -1210,7 +1211,7 @@ the example configuration file for Apache2/HTTPD provided in In the respective HTTPS ``server config``,\ ``virtual host`` or ``directory`` section add the following lines: -:: +.. code-block:: text SSLProxyEngine On ProxyTimeout 300 @@ -1290,14 +1291,14 @@ Reverse Proxy - Configure your GNUnet peer To have your GNUnet peer announce the address, you have to specify the ``EXTERNAL_HOSTNAME`` option in the ``[transport-http_server]`` section: -:: +.. code-block:: text [transport-http_server] EXTERNAL_HOSTNAME = http://www.foo.org/bar/ and/or ``[transport-https_server]`` section: -:: +.. code-block:: text [transport-https_server] EXTERNAL_HOSTNAME = https://www.foo.org/bar/ @@ -1327,7 +1328,7 @@ To blacklist connections to P565\... on peer AG2P\... using tcp add: .. todo:: too long? .. todo:: verify whether these still produce errors in pdf output -:: +.. code-block:: text [transport-blacklist AG2PHES1BARB9IJCPAMJTFPVJ5V3A72S3F2A8SBUB8DAQ2V0O3V8G6G2JU56FHGFOHMQVKBSQFV98TCGTC3RJ1NINP82G0RC00N1520] P565723JO1C2HSN6J29TAQ22MN6CI8HTMUU55T0FUQG4CMDGGEQ8UCNBKUMB94GC8R9G4FB2SF9LDOBAJ6AMINBP4JHHDD6L7VD801G = tcp @@ -1335,7 +1336,7 @@ To blacklist connections to P565\... on peer AG2P\... using tcp add: To blacklist connections to P565\... on peer AG2P\... using all plugins add: -:: +.. code-block:: text [transport-blacklist-AG2PHES1BARB9IJCPAMJTFPVJ5V3A72S3F2A8SBUB8DAQ2V0O3V8G6G2JU56FHGFOHMQVKBSQFV98TCGTC3RJ1NINP82G0RC00N1520] P565723JO1C2HSN6J29TAQ22MN6CI8HTMUU55T0FUQG4CMDGGEQ8UCNBKUMB94GC8R9G4FB2SF9LDOBAJ6AMINBP4JHHDD6L7VD801G = @@ -1381,7 +1382,7 @@ To configure these options directly in the configuration, you can configure the following settings in the ``[transport-http_client]`` and ``[transport-https_client]`` section of the configuration: -:: +.. code-block:: text # Type of proxy server, # Valid values: HTTP, SOCKS4, SOCKS5, SOCKS4A, SOCKS5_HOSTNAME