]> git.ipfire.org Git - thirdparty/freeradius-server.git/commitdiff
manually reformat in preparation for auto formatter developer/alandekok master
authorAlan T. DeKok <aland@freeradius.org>
Fri, 19 Jun 2026 19:25:15 +0000 (15:25 -0400)
committerAlan T. DeKok <aland@freeradius.org>
Fri, 19 Jun 2026 19:37:19 +0000 (15:37 -0400)
40 files changed:
doc/antora/modules/reference/pages/raddb/mods-available/radutmp.adoc [deleted file]
doc/antora/modules/reference/pages/raddb/mods-available/sradutmp.adoc [deleted file]
raddb/mods-available/always
raddb/mods-available/attr_filter
raddb/mods-available/chap
raddb/mods-available/cipher
raddb/mods-available/crl
raddb/mods-available/csv
raddb/mods-available/cui
raddb/mods-available/detail
raddb/mods-available/dpsk
raddb/mods-available/eap
raddb/mods-available/etc_group
raddb/mods-available/home_server_pool
raddb/mods-available/icmp
raddb/mods-available/kafka
raddb/mods-available/krb5
raddb/mods-available/kv
raddb/mods-available/ldap
raddb/mods-available/logtee
raddb/mods-available/mschap
raddb/mods-available/opendirectory
raddb/mods-available/perl
raddb/mods-available/python
raddb/mods-available/radius
raddb/mods-available/radutmp [deleted file]
raddb/mods-available/rediswho
raddb/mods-available/redundant_sql
raddb/mods-available/rest
raddb/mods-available/smtp
raddb/mods-available/sql
raddb/mods-available/sqlcounter
raddb/mods-available/sqlippool
raddb/mods-available/sradutmp [deleted file]
raddb/mods-available/totp
raddb/mods-available/unbound
raddb/mods-available/unix
raddb/mods-available/wimax
raddb/mods-available/winbind
raddb/mods-available/yubikey

diff --git a/doc/antora/modules/reference/pages/raddb/mods-available/radutmp.adoc b/doc/antora/modules/reference/pages/raddb/mods-available/radutmp.adoc
deleted file mode 100644 (file)
index 6b076a2..0000000
+++ /dev/null
@@ -1,8 +0,0 @@
-
-== Default Configuration
-
-```
-```
-
-// Copyright (C) 2026 Network RADIUS SAS.  Licenced under CC-by-NC 4.0.
-// This documentation was developed by Network RADIUS SAS.
diff --git a/doc/antora/modules/reference/pages/raddb/mods-available/sradutmp.adoc b/doc/antora/modules/reference/pages/raddb/mods-available/sradutmp.adoc
deleted file mode 100644 (file)
index 6b076a2..0000000
+++ /dev/null
@@ -1,8 +0,0 @@
-
-== Default Configuration
-
-```
-```
-
-// Copyright (C) 2026 Network RADIUS SAS.  Licenced under CC-by-NC 4.0.
-// This documentation was developed by Network RADIUS SAS.
index 86cf5751a20c5da8364679ac3177e9946f389ab8..ab5e011e469fb055b86c21d15d7ce41fc842230a 100644 (file)
@@ -18,7 +18,7 @@
 #
 #  == Syntax
 #
-#always <name> {
+##always <name> {
        #
        #  rcode:: Return code.
        #
@@ -40,7 +40,7 @@
        #  | `updated`  | Indicate that the request has been updated.
        #  |===
        #
-#      rcode = <value>
+##     rcode = <value>
 
        #
        #  simulcount::
@@ -48,7 +48,7 @@
        #  If an instance of this module is listed in a `session {}`
        #  section, this simulates a user having `<integer>` number of sessions.
        #
-#      simulcount = <integer>
+##     simulcount = <integer>
 
        #
        #  mpp::
@@ -56,8 +56,8 @@
        #  If an instance is listed in a `session {}` section, this
        #  simulates the user having multilink sessions.
        #
-#      mpp = <integer>
-#}
+##     mpp = <integer>
+##}
 
 #
 #  == xlat for peeking and poking the status
index e1b81c246d29cf75e44b6deac9e19c3e5b321eba..8e12e3177f9d1da211616d9b6a3f2c3f455b6801 100644 (file)
 #
 #  The configuration items are:
 #
-#attr_filter attr_filter.<section> {
+##attr_filter attr_filter.<section> {
        #
        #  key:: The `key` to use for filter the packets.
        #
-#      key = "<value>"
+##     key = "<value>"
 
        #
        #  relaxed:: Only move attribute if it passed all rules, or if the config says we
        #  should copy unmatched attributes.
        #
-#      relaxed = no
+##     relaxed = no
 
        #
        #  filename:: The `filename` with the attributes to filter.
        #
-#      filename = </path/><section>
-#}
+##     filename = </path/><section>
+##}
 
 #
 #  == Configuration Settings
index af7157beaef13a6d8cf580dd2fcd172287123158..9edc3dae28a21831a7565f91ae500a2844f1b132 100644 (file)
@@ -9,6 +9,9 @@
 #
 #  This module authenticates requests containing a `CHAP-Password` attribute.
 #
+#  NOTE: You should never send CHAP-Password in RADIUS/UDP packets.  CHAP
+#  is secure ONLY when used inside of TTLS.
+#
 #  CHAP authentication requires access to the Password.Cleartext for the user.
 #
 #  Standard Unix system authentication or passwords encrypted via `crypt()`
index b01b0ad2044712746a519bec5f6e78527de396cc..944e3e2b6d064582362527b4094430fcf4111b7f 100644 (file)
 #
 #  e.g:
 #
+#    ```
 #    %base64.encode(%cipher_encrypt(<plaintext>))
 #    %cipher_decrypt(%base64.decode(<ciphertext>))
+#    ```
 #
-#  NOTE: The supported versions are determined _entirely_ by the version of OpenSSL used, we
-#  pass the name of the digest off to OpenSSL and it tells _us_ whether it's valid/supported
+#  NOTE: The supported versions are determined _entirely_ by the version of OpenSSL used, FreeRADIUS
+#  simply passes the name of the digest off to OpenSSL and it tells _us_ whether it's valid/supported
 #  or not.
 #
-#  OpenSSL >= 1.0.0 should support at least:
+#  OpenSSL should support at least:
 #
 #   * `md2`     (not recommended)
 #   * `md4`     (not recommended)
@@ -48,9 +50,6 @@
 #   * `sha256`  (the default)
 #   * `sha384`
 #   * `sha512`
-#
-#  OpenSSL >= 1.1.1 also supports the `sha3` family of digest functions.
-#
 #   * `sha3_224`
 #   * `sha3_256`
 #   * `sha3_384`
@@ -114,9 +113,9 @@ cipher {
                #  Parameters for the OAEP RSA padding scheme.
                #
                oaep {
-#                      oaep_digest = "sha256"
-#                      mgf1_digest = "sha256"
-#                      label = ""
+##                     oaep_digest = "sha256"
+##                     mgf1_digest = "sha256"
+##                     label = ""
                }
 
                #
index eaf822af0235dff2408e737f7b17566f3c873f53..6c969f471d84b56b3b31e8aad586945c33dfee39 100644 (file)
@@ -45,8 +45,8 @@ crl {
        #  Only base CRL distribution points should be listed here.  Deltas
        #  which they refer to will automatically be fetched.
        #
-#      url = http://example.com/ca.crl
-#      url = ldap://ldap.example.com/cn=example%20CA,dc=example,dc=com?certificateRevocationList;binary
+##     url = http://example.com/ca.crl
+##     url = ldap://ldap.example.com/cn=example%20CA,dc=example,dc=com?certificateRevocationList;binary
 
        #
        #  retry_delay:: How long to wait before retrying a fetch failure.
index b6faf2b6e10fa07149def6c94200dbed6330258a..c1716d22eb3dfb7ea58e6e613d9476c6a8d5f99d 100644 (file)
 #
 #  The CSV map can be used in a `map` section, as in the following example.
 #
+#    ```
 #    map csv User-Name {
 #              Attribute-Name := field1
 #              Attribute-Name := field2
 #              ...
 #    }
+#    ```
 #
 #  The argument to "map" is dynamically expanded.  The result is taken
 #  as a string, and is used as the value of the "key".  The key is
@@ -151,7 +153,9 @@ csv {
        #
        #  Configuration items are in the format:
        #
+       #    ```
        #    <fr attr> <op> <csv field>
+       #    ```
        #
        #  Where:
        #
@@ -188,10 +192,12 @@ csv {
        #  as given the key` field above.  For example, the map could
        #  look like this:
        #
+       #       ```
        #       map csv User-Name {
        #               reply.Reply-Message := 'color'
        #               my-integer := 'count'
-       #       }
+       #       }       
+       #       ```
        #
        #  This map does the same operations as the key / update
        #  fields given above.  The benefit here is that the key can
index d78919dd23e2b4721dfd7da7eef2222e4f45518e..5bfa2ce8c1f45f6bc3a968e047506b75febbb4bd 100644 (file)
@@ -51,11 +51,11 @@ sql cuisql {
        #  ====
        #  For dialect `mysql` and `postgresql` the following information should be provided:
        #
-#      server = "localhost"
-#      port = 3306
-#      login = "radius"
-#      password = "radpass"
-#      radius_db = "radius"
+##     server = "localhost"
+##     port = 3306
+##     login = "radius"
+##     password = "radpass"
+##     radius_db = "radius"
        #  ====
 
        #
index 013a778786f8c456b3a7cf782894422d32e4af7a..d9c14713a8695956f6879b16e39f892b972183b8 100644 (file)
@@ -122,7 +122,7 @@ detail {
        #
        #  NOTE: The attributes should be listed one to a line.
        #
-#      suppress {
-#              User-Password
-#      }
+##     suppress {
+##             User-Password
+##     }
 }
index 57d0ebaffabae564adf0f3c3c0c8aa2a214aa4c2..6aa425313e8398408b98c480ea30b2530ad115ba 100644 (file)
@@ -27,6 +27,7 @@
 #
 #  Then place the following configuration into the "recv Access-Request" section:
 #
+#      ```
 #      recv Access-Request {
 #              ...
 #              rewrite_called_station_id
@@ -36,8 +37,8 @@
 #                      control.PSK-Identity := "bob"
 #                      control.Pre-Shared-Key := "this-is-super-secret"
 #              }
-#
 #      }
+#      ```
 #
 #  Alternatively, you can read control.PSK-Identity and
 #  control.Pre-Shared-Key from a database.  Just do that before
@@ -50,6 +51,7 @@
 #
 #  Then create an "authenticate dpsk" section which calls the "dpsk" module:
 #
+#      ```
 #      authenticate dpsk {
 #              dpsk
 #              if (updated) {
@@ -57,6 +59,7 @@
 #                      ... cache reply.PSK-Identity
 #              }
 #      }
+#      ```
 #
 #  In the "authenticate" section, the module will return
 #
@@ -131,7 +134,9 @@ dpsk {
        #
        #  PSKs can also be stored in a CSV file.  The format of the file is:
        #
+       #       ```
        #       identity,psk,mac
+       #       ```
        #
        #  If there are commas in a field, then the field can be
        #  double quoted: "psk".
@@ -155,8 +160,10 @@ dpsk {
        #  server does not have to be reloaded when the file changes.  Instead,
        #  the file can be generated, and then moved into place atomically:
        #
+       #       ```
        #       create csv file > psk.csv.new
        #       mv psk.csv.new psk.csv
+       #       ```
        #
        #  Any process which writes a new "psk.csv" file MUST NOT
        #  write to the file directly, as that will cause the dpsk
index 8bbf9e14f145a7f53ed79227a70ac53aaed8ec76..b0521916ccd585af81dadf10bacaf9794db70b13 100644 (file)
@@ -111,9 +111,9 @@ eap {
        type = ttls
        type = mschapv2
        type = peap
-#      type = fast
-#      type = aka
-#      type = sim
+##     type = fast
+##     type = aka
+##     type = sim
 
        #
        #  === EAP-MD5
index 6351878880b5cd5f81b002f88bc5526aafebaf1a..18e4c8a4418fb0395d185248948a287bffa5f012 100644 (file)
 #  You will have to define the `Etc-Group-Name` in the `dictionary` file,
 #  as a `string` type.  For example:
 #
-#      ATTRIBUTE Etc-Group-Name string 3020
-#
-#  We cannot use the `Group` attribute here.  The `Group` attribute is
-#  automatically created by the `unix` module, and checked against
-#  `/etc/group` automatically.  Which means that the `Group` attribute
-#  has a pre-defined meaning, and you *cannot* use it for this module.
+#      ```
+#      DEFINE Etc-Group-Name string
+#      ```
 #
 csv etc_group {
        filename = ${modconfdir}/csv/${.:instance}
index 8e695fc98935263c18d67d911e45d8b1a2dd49f0..16baa1d8109c8d2601c0d191552eb7545b3af272 100644 (file)
@@ -46,9 +46,11 @@ load-balance pool1 {
 #  `Calling-Station-Id`, the above `pool1` configuration can be
 #  modified with one addition:
 #
+#      ```
 #      load-balance pool1 Calling-Station-Id {
 #              ...
 #      }
+#      ```
 #
 #  See the `load-balance` keyword documentation for more information.
 #
@@ -69,9 +71,11 @@ load-balance pool1 {
 #  server to run the `radius` module.  The simplest way to do this is
 #  to add a section:
 #
+#      ```
 #      authenticate proxy {
 #              pool1
 #      }
+#      ```
 #
 #  And then set `Auth-Type := proxy`.  See the sites-available/proxy
 #  example for more information.
@@ -83,12 +87,14 @@ load-balance pool1 {
 #
 #  In v3, we have:
 #
+#      ```
 #      home_server radius1 {
 #              type = auth+acct
 #              ipaddr = 192.0.2.1
 #              port = 1812
 #              secret = testing123
 #      }
+#      ```
 #
 #  This translates to the `radius` module, with name `home1`, and the following contents.
 #
index 3b8bedf67c9e9f0ace913eda81f244982566f5f0..92a5e8645b13a999160339c94ee82f46e09bc9ff 100644 (file)
 #
 #  On Linux, you may need to do:
 #
+#      ```
 #      $ setcap cap_net_raw+ep ${bindir}/radiusd
+#      ```
 #
-#  In order for the `icmp` module to bind to a "raw" socket.
+#  In order to allow the `icmp` module to bind to a raw socket.
 #
 
 #
index 0f99df5a29b2234b2c2382efe22ffce2c08c7e7f..1be3eac6aae88491355d8eb06acace08048a1c60 100644 (file)
@@ -103,24 +103,24 @@ kafka {
        #  `"500"` rather than `"500ms"` for time values, and raw byte
        #  counts rather than `"1M"` for sizes.
        #
-#      properties {
-#              "ssl.engine.id" = "pkcs11"
-#              "socket.keepalive.enable" = "true"
-#      }
+##     properties {
+##             "ssl.engine.id" = "pkcs11"
+##             "socket.keepalive.enable" = "true"
+##     }
 
        #
        #  Each declared topic also accepts its own `properties { }`
        #  block for per-topic librdkafka settings that aren't named
        #  knobs:
        #
-       #  topic {
-       #      radius-accounting {
-       #          request_required_acks = -1
-       #          properties {
-       #              "compression.codec" = "lz4"
-       #          }
-       #      }
-       #  }
+##     topic {
+##             radius-accounting {
+##                     request_required_acks = -1
+##                     properties {
+##                             "compression.codec" = "lz4"
+##                     }
+##             }
+##     }
 }
 
 #
@@ -148,9 +148,11 @@ kafka {
 #  section and the topic is inferred from the section's packet type.
 #  For example:
 #
+#      ```
 #      recv Accounting-Request {
 #          kafka                # publishes to topic "Accounting-Request"
 #      }
+#      ```
 #
 #  This is tidy when you name topics after packet types; if you don't,
 #  stick with the explicit `kafka.produce.<topic>` form.  Either way,
@@ -161,6 +163,7 @@ kafka {
 #  different topics can publish different shapes from one module
 #  instance:
 #
+#      ```
 #      kafka {
 #          server = "localhost:9092"
 #          topic {
@@ -174,9 +177,11 @@ kafka {
 #              }
 #          }
 #      }
+#      ```
 #
 #  In a virtual server:
 #
+#      ```
 #      recv Accounting-Request {
 #          kafka.produce.radius-accounting
 #      }
@@ -184,6 +189,7 @@ kafka {
 #      recv Access-Request {
 #          kafka.produce.radius-auth
 #      }
+#      ```
 #
 #  `value` is required per topic.  `key` is optional; when omitted,
 #  librdkafka picks a partition according to the configured
@@ -196,11 +202,13 @@ kafka {
 #  key and payload).  It returns `true` on successful delivery and
 #  `false` on failure:
 #
+#      ```
 #      send Accounting-Response {
 #          if (!%kafka.produce('radius-accounting', %json.encode(&request.[*]))) {
 #              reject
 #          }
 #      }
+#      ```
 #
 #  As with the method, the topic argument must name a declared topic.
 #
index 5eb113be591162475b1d2290f2b17c14e7d2c41b..ee3ff02ab3f7451f4560a9b20459cab27846c3d5 100644 (file)
@@ -83,6 +83,7 @@ krb5 {
 #  section of your `radiusd.conf` file:
 #
 #  [source, unlang]
+#  ----
 #  Auth-Type Kerberos {
 #      krb5
 #  }
index 24f0d9a2a27af15a52efab880d29a8f422919fb6..0e0de6be9a4c1cbc4a896291d462effc32789a3d 100644 (file)
@@ -40,8 +40,8 @@
 #  However, the cache module stores _attributes_, and _lists of
 #  attributes_.
 #
-#  In contrast, the `kv` module stores _values_.  e.g. ipv4addr,
-#  uint32, etc.  The use-case for the `kv` module is to store a small
+#  In contrast, the `kv` module stores _values_.  e.g. `ipv4addr`,
+#  `uint32`, etc.  The use-case for the `kv` module is to store a small
 #  number of simple values that can be shared across multiple threads.
 #
 #  == Functions
index 2d35291b54a5a6805041fc235db21131d1733048..9d59735ac09d8d695fe4a00b8070df17b58cc12a 100644 (file)
@@ -84,7 +84,9 @@ ldap {
        #  Group membership can be queried by using the above "ldapsearch" string,
        #  and adding "memberof" qualifiers.  For ActiveDirectory, use:
        #
+       #    ```
        #    ldapsearch ... '(&(objectClass=user)(sAMAccountName=user)(memberof=CN=group,${base_dn}))'
+       #    ```
        #
        #  Where 'user' is the user as above, and 'group' is the group you are querying for.
        #  ====
@@ -136,7 +138,9 @@ ldap {
        #
        #  Values should be in the format:
        #
+       #    ```
        #    <fr attr> <op> <value>
+       #    ```
        #
        #  Where:
        #
@@ -162,7 +166,9 @@ ldap {
        #
        #  Configuration items are in the format:
        #
+       #    ```
        #    <fr attr> <op> <ldap attr>
+       #    ```
        #
        #  Where:
        #
@@ -192,11 +198,11 @@ ldap {
        #
        update {
                control.Password.With-Header    += 'userPassword'
-#              control.Password.NT             := 'ntPassword'
-#              reply.Reply-Message             := 'radiusReplyMessage'
-#              reply.Tunnel-Type               := 'radiusTunnelType'
-#              reply.Tunnel-Medium-Type        := 'radiusTunnelMediumType'
-#              reply.Tunnel-Private-Group-ID   := 'radiusTunnelPrivategroupId'
+##             control.Password.NT             := 'ntPassword'
+##             reply.Reply-Message             := 'radiusReplyMessage'
+##             reply.Tunnel-Type               := 'radiusTunnelType'
+##             reply.Tunnel-Medium-Type        := 'radiusTunnelMediumType'
+##             reply.Tunnel-Private-Group-ID   := 'radiusTunnelPrivategroupId'
 
                #  NOTE: Where only a list is specified as the RADIUS attribute,
                #  the value of the LDAP attribute is parsed as a valuepair
@@ -795,11 +801,11 @@ ldap {
                #
                #  NOTE: If `start_tls = yes`, then fill up those such options with the certificate information.
                #
-#              ca_file = ${certdir}/cacert.pem
-#              ca_path = ${certdir}
-#              certificate_file = /path/to/radius.crt
-#              private_key_file = /path/to/radius.key
-#              random_file = /dev/urandom
+##             ca_file = ${certdir}/cacert.pem
+##             ca_path = ${certdir}
+##             certificate_file = /path/to/radius.crt
+##             private_key_file = /path/to/radius.key
+##             random_file = /dev/urandom
 
                #
                #  require_cert:: Certificate Verification requirements.
@@ -956,11 +962,11 @@ ldap {
 #  Reusing the same name means that this policy will be used instead
 #  of the module.
 #
-#@policy ldap {
-#      timeout 1s {
-#              ldap
-#      }
-#}
+##@policy ldap {
+##     timeout 1s {
+##             ldap
+##     }
+##}
 
 
 #
index 2988875f27cea49fc2cd65e5ca34824b4c3f09ea..5985e92ebb61dcc284a2f15b88f9fae4c25ccc0a 100644 (file)
 #  file.  Each instance of the module can send log messages to one,
 #  and only one, destination.
 #
+#  You should probably use the `linelog` message instead of this one.
+#
 #  NOTE: Multiple `logtee`s modules may be used for any given request.
 #  The `logtee` modules will not affect normal logging output.
 #  i.e. This logging is *in addition* to any other logging that is
 #  done by the server.
 #
 
+
 #
 #  == Configuration Settings
 #
@@ -100,7 +103,7 @@ logtee {
        reconnection_delay = 1.0
 
        #
-       #  .File as the destination for log output
+       #  file:: Configuration for 'file' destination
        #
        file {
                #
@@ -127,7 +130,7 @@ logtee {
        }
 
        #
-       #  .UNIX socket-file as the destination for log outputx
+       #  unix:: configuration for Unix sockets
        #
        unix {
                #
@@ -137,7 +140,7 @@ logtee {
        }
 
        #
-       #  .TCP-server as the destination for log output
+       #  tcp: configuration for TCP sockets
        #
        tcp {
                #
@@ -152,7 +155,7 @@ logtee {
        }
 
        #
-       #  .UDP-server as the destination for log output
+       #  udp: configuration for UDP sockets
        #
        udp {
                #
index dc5c116fab43a18f9bdf3f5f1c232879a1a0138e..457bdde3adb340e1faaa8245727c35cbe57ff3cb 100644 (file)
@@ -222,7 +222,10 @@ mschap {
        }
 
        #
-       #  .Pass Change
+       #  passchange:: Control parameters for changing passwords via MS-CHAP.
+       #
+       #  NOTE: This functionality should only be used inside of PEAP.  Anything else
+       #  is insecure.
        #
        passchange {
                #
@@ -241,9 +244,9 @@ mschap {
                #
                #  Uncomment the three lines below, and change the path to `ntlm_auth.
                #
-#              ntlm_auth = "/usr/bin/ntlm_auth --helper-protocol=ntlm-change-password-1"
-#              ntlm_auth_username = "username: %mschap('User-Name')"
-#              ntlm_auth_domain = "nt-domain: %mschap('NT-Domain')"
+##             ntlm_auth = "/usr/bin/ntlm_auth --helper-protocol=ntlm-change-password-1"
+##             ntlm_auth_username = "username: %mschap('User-Name')"
+##             ntlm_auth_domain = "nt-domain: %mschap('NT-Domain')"
 
                #
                #  local_cpw::
@@ -255,8 +258,8 @@ mschap {
                #
                #  TIP: We give both examples here, but *only one should be used*.
                #
-#              local_cpw = %exec('/path/to/script', %mschap('User-Name'), %{MS-CHAP-New-Cleartext-Password})
-#              local_cpw = %sql("UPDATE radcheck set value='%{MS-CHAP-New-NT-Password}' where username='%{User-Name}' and attribute='Password.NT'")
+##             local_cpw = %exec('/path/to/script', %mschap('User-Name'), %{MS-CHAP-New-Cleartext-Password})
+##             local_cpw = %sql("UPDATE radcheck set value='%{MS-CHAP-New-NT-Password}' where username='%{User-Name}' and attribute='Password.NT'")
 
        }
 
@@ -283,7 +286,7 @@ mschap {
 #      retry_msg = "Re-enter (or reset) the password"
 
        #
-       #  .Attributes
+       #  attributes:: the list of attributes used by the mschap module
        #
        #  The `mschap` module needs to be configured with which attributes contain
        #  MS-CHAP data in the request and which should be used for MS-CHAP data
@@ -366,23 +369,23 @@ mschap {
        #  TACACS+ does not have any inherent support for MPPE keys or password
        #  changing using MSCHAP.
        #
-#      attributes {
-#              username = User-Name
-#              chap_challenge = MS-CHAP-Challenge
-#              chap_response = MS-CHAP-Response
-#              chap2_response = MS-CHAP2-Response
+##     attributes {
+##             username = User-Name
+##             chap_challenge = MS-CHAP-Challenge
+##             chap_response = MS-CHAP-Response
+##             chap2_response = MS-CHAP2-Response
 
                #
                #  TACACS+ puts the MS-CHAP2-Success information in the Data field,
                #  but we call it MS-CHAP2-Success for simplicity.
                #  See the ALIAS definition in dictionary/tacacs/dictionary.freeradius.internal
                #
-#              chap2_success = MS-CHAP2-Success
+##             chap2_success = MS-CHAP2-Success
 
                #
                #  Similarly, TACACS+ puts the MS-CHAP-Error into the Server-Message
                #  field.
                #
-#              chap_error = MS-CHAP-Error
-#      }
+##             chap_error = MS-CHAP-Error
+##     }
 }
index 46045a20df355c27082779784bd69d76233533fe..4e62b7f6625b7e0432e4f84f75574658521a54ba 100644 (file)
@@ -24,7 +24,9 @@
 #  In order to allow NTLM passwords, you may need to run the following
 #  command on the OpenDirectory machine:
 #
+#      ```
 #      dscl -u diradmin -p /LDAPv3/127.0.0.1 -append /Config/dirserv apple-enabled-auth-mech SMB-NTLM2v
+#      ```
 #
 
 #
index 2b0c971fa006b6767945e925fce3dffb2115e33c..8b8b521ad3ec9adceca2a7c6803c6d928bfe9ebd 100644 (file)
@@ -66,7 +66,9 @@
 #  Attributes can be set by assigning values to the array entries of leaf
 #  nodes.  E.g.
 #
+#  ```
 #  $p->{'reply'}{'foo'}[0] = 'baa'
+#  ```
 #
 #  In addition, the Perl array functions `push`, `pop`, `shift` and `unshift`
 #  can be used to add or remove instances of attributes.
 #  The return codes from functions in the `perl_script` are passed directly back
 #  to the server.  These codes are defined in `mods-config/example.pl`
 #
+#  WARN:: The Perl module is slow compared to `unlang`.  The only reason to use
+#  Perl is when you need to use a third-party API that is only accessible via
+#  a Perl library.
+#
 
 #
 #  == Configuration Settings
@@ -115,9 +121,9 @@ perl {
        #
        #  These options cause the old FreeRADIUS v3 default subroutine
        #  names to be used
-#      func_recv_access_request = authorize
-#      func_recv_accounting_request = preacct
-#      func_send = postauth
+##     func_recv_access_request = authorize
+##     func_recv_accounting_request = preacct
+##     func_send = postauth
 
        #
        #  config { ... }::
@@ -134,10 +140,10 @@ perl {
        #  $RAD_PERLCONF{'sub-config'}->{'name'}
        #  ----
        #
-#      config {
-#              name = "value"
-#              sub-config {
-#                      name = "value of name from config.sub-config"
-#              }
-#      }
+##     config {
+##             name = "value"
+##             sub-config {
+##                     name = "value of name from config.sub-config"
+##             }
+##     }
 }
index 27dfb9c655ece7577f205e53ee0bc1a04be26bb4..a6ca056e12f8135cf4105b6753ed2233b492b634 100644 (file)
 #  Similarly, `mod_recv_access_request` or `mod_recv` can be used to
 #  load the function from a module other than the one specified in the
 #  `module` option.
-
-#
-#  Please see the file global.d/python for server-global configuration
-#  items which control the Python path.
 #
+#  WARN:: The Python module is slow compared to `unlang`.  The only reason to use
+#  Python is when you need to use a third-party API that is only accessible via
+#  a Python library.
 
+#  == Global Configuration
 #
-#  [NOTE]
-#  ====
-#  See `global.d/python` for configuration items that affect the
-#  python interpreter globally, such as the Python path.
-#  ====
+#  Please see the file `global.d/python` for server-global configuration
+#  items which control the Python path.
 #
 
 #
@@ -81,11 +78,11 @@ python {
 #      func_detach = detach
 
        #
-       #  config { ... }::
+       #  config { ... }:: Define configuration items which are accessible to the Python script.
        #
        #  You can define configuration items (and nested sub-sections) in python `config { ... }`
        #  section. These items will be accessible in the Python script through `freeradius.config`
-       #  dict for instance:
+       #  dict as read-only items.
        #
        #  e.g:
        #
@@ -95,10 +92,10 @@ python {
        #  freeradius.config['sub-config']['name']
        #  ----
        #
-#      config {
-#              name = "value"
-#              sub-config {
-#                      name = "value of name from config.sub-config"
-#              }
-#      }
+##     config {
+##             name = "value"
+##             sub-config {
+##                     name = "value of name from config.sub-config"
+##             }
+##     }
 }
index 50e7620a5efb4b21ae6ee56b94d6652a32889c02..ba3c2f36b8f22fd03f7a4b0393561ed6decb8bbc 100644 (file)
@@ -423,9 +423,9 @@ radius {
        #
        #  The TCP configuration is identical to the `udp` configuration.
        #
-#      tcp {
-#              ...
-#      }
+       tcp {
+               # copy configuration items here
+       }
 
        #
        #  == Connection trunking
diff --git a/raddb/mods-available/radutmp b/raddb/mods-available/radutmp
deleted file mode 100644 (file)
index e69de29..0000000
index a8063f3451fb4f2a54de34f59facd6bfb7fe4a6f..eeb47bdf7ebe234b1721c3b3f32b1862c4ea17ef 100644 (file)
@@ -109,27 +109,27 @@ rediswho {
        #
        #  === Accounting-On
        #
-#      Accounting-On {
-#              insert = ""
-#              trim =   ""
-#              expire = ""
-#      }
+##     Accounting-On {
+##             insert = ""
+##             trim =   ""
+##             expire = ""
+##     }
 
        #
        #  === Accounting-Off
        #
-#      Accounting-Off {
-#              insert = ""
-#              trim =   ""
-#              expire = ""
-#      }
+##     Accounting-Off {
+##             insert = ""
+##             trim =   ""
+##             expire = ""
+##     }
 
        #
        #  === Failed
        #
-#      Failed {
-#              insert = ""
-#              trim =   ""
-#              expire = ""
-#      }
+##     Failed {
+##             insert = ""
+##             trim =   ""
+##             expire = ""
+##     }
 }
index ae1c035d1cf9fb3c2218faf9e846c6a3b67aaab0..4adaf4ada8791edb96aba3ea77cc4853b109f4b0 100644 (file)
@@ -10,7 +10,7 @@
 #  The `redundant_sql` module handles SQL expansions in a redundant manner.
 #
 #
-#  This configuration can be thought of as a `virtual` module.
+#  This configuration is a `virtual` module.
 #
 #  e.g. If you have two redundant SQL servers, and you want to use
 #  them in the recv and accounting sections, you could place a
index 95b49fd0e3261827c3722e770e93385690d4504f..63a6f139bf8b269859a94a0d40e6eef6f314492c 100644 (file)
@@ -20,7 +20,7 @@ rest {
        #
        tls {
                #
-               #  .Certificate validation options
+               #  Certificate validation options
                #
                #  Specifies how the certificate(s) presented by the HTTPS server being contacted
                #  are validated, and which certificates (if any) to send to the HTTPS server.
@@ -142,7 +142,7 @@ rest {
                #
                #  The contents of the keylog file allows wireshark captures to be decrypted for debugging purposes.
                #
-               #  NOTE:: keylog_file is not expanded at runtime.
+               #  NOTE: keylog_file is not expanded at runtime.
                #
 #              keylog_file = '/path/to/keylog_file'
        }
index 24d469f3eafbb634743dc49b248d61052b0f9e65..b81cf903e71ba1731b159e20f439249e607f0e27 100644 (file)
@@ -25,7 +25,7 @@ smtp {
        #
        tls {
                #
-               #  .Certificate validation options
+               #  Certificate validation options
                #
                #  Specifies how the certificate(s) presented by the
                #  SMTP server are validated, and which certificates
@@ -44,7 +44,7 @@ smtp {
                #  intermediary signing CAs, shallowest (direct signee of the certificate_file)
                #  to deepest (signed directly by the root CA).
                #
-#              certificate_file     = /path/to/radius.pem
+#              certificate_file = /path/to/radius.pem
 
                #
                #  ca_file:: PEM formatted file containing the chain
@@ -58,7 +58,7 @@ smtp {
                #  most common way of validating the certificate
                #  presented by an SMTP server.
                #
-#              ca_file              = "${certdir}/cacert.pem"
+#              ca_file = "${certdir}/cacert.pem"
 
                #
                #  ca_issuer_file:: PEM formatted file containing the
@@ -72,15 +72,11 @@ smtp {
                #  by other intermediary CAs, or root CAs, in the
                #  trusted certificate chain.
                #
-#              ca_issuer_file     = "${certdir}/caissuer.pem"
+#              ca_issuer_file = "${certdir}/caissuer.pem"
 
                #
                #  ca_path:: A directory containing multiple root CA certs named by their hash.
                #
-               #  See the OpenSSL documentation for more details:
-               #  - https://www.openssl.org/docs/man1.1.0/man3/SSL_CTX_set_default_verify_paths.html
-               #  - https://www.openssl.org/docs/man1.1.1/man1/c_rehash.html
-               #
                #  This configuration option should only be used when the SMTP server being contacted
                #  is not known ahead of time (using a URL from an external source), and/or the CA used
                #  to sign the SMTP server certificate is unknown.
@@ -89,14 +85,14 @@ smtp {
                #  will be the operating system's set of trusted CAs.  This will be visible in the debug
                #  output when FreeRADIUS starts.
                #
-#              ca_path              = "${certdir}"
+#              ca_path = "${certdir}"
 
                #
                #  private_key_file:: PEM formatted file containing the private key for the specified `certificate_file`
                #
                #  This item must be specified if `certificate_file` is being used.
                #
-#              private_key_file     = /path/to/radius.key
+#              private_key_file = /path/to/radius.key
 
                #
                #  private_key_password:: Password used to decrypt the `private_key_file`.
@@ -106,7 +102,7 @@ smtp {
                #
                #  random_file:: Source of random data used for various cryptographic functions.
                #
-#              random_file          = /dev/urandom
+#              random_file = /dev/urandom
 
                #
                #  check_cert:: Server certificate verification requirements.
@@ -274,10 +270,10 @@ smtp {
        #  be automatically added to the email.  Only the list of
        #  `recipients` will be used.
        #
-#      recipients = SMTP-Recipients[*]
-#      recipients = SMTP-TO[*]
-#      recipients = SMTP-CC[*]
-#      recipients = SMTP-BCC[*]
+##     recipients = SMTP-Recipients[*]
+##     recipients = SMTP-TO[*]
+##     recipients = SMTP-CC[*]
+##     recipients = SMTP-BCC[*]
 
        #
        #  to:: Set the body `TO` header.
index 2354dec5081ec61f2f3ebc5fc7d7744ce53813aa..830e6d42cf60770049df830038e84e6115458fd0 100644 (file)
@@ -89,10 +89,10 @@ sql {
        #
        #  .Connection info:
        #
-#      server = "localhost"
-#      port = 3306
-#      login = "radius"
-#      password = "radpass"
+##     server = "localhost"
+##     port = 3306
+##     login = "radius"
+##     password = "radpass"
 
        #
        #  radius_db:: Database table configuration for everything.
@@ -385,7 +385,7 @@ sql {
 #      query_number_attribute = 'Query-Number'
 
        #
-       #  .Read database-specific queries.
+       #  Database-specific queries.
        #
        #  Not all drivers ship with `query.conf` or `schema.sql` files. For those which don't,
        #  please create them and contribute them back to the project.
index c6154602602f0715538aa69c65fe3b33322af353..1282e0dc0d538e733c0cd7446f94b395b27f978f 100644 (file)
@@ -28,7 +28,9 @@
 #
 #  Configuration explanation.
 #
+#      ```
 #      sqlcounter <name> {
+#      ```
 #
 #  sql_module_instance:: Holds the instance of the `sql` module to use when
 #  querying the SQL database.
@@ -37,7 +39,9 @@
 #  (usually for failover situations), you can specify which module has access to
 #  the Accounting Data (`radacct table`).
 #
+#      ```
 #      sql_module_instance = sql_foo
+#      ```
 #
 #  reset:: Defines when the counters are all reset to zero.
 #
@@ -69,7 +73,9 @@
 #  The `query` parameter specifies the SQL query used to get the current Counter value
 #  from the database.
 #
+#      ```
 #      key = "%{Stripped-User-Name || User-Name}"
+#      ```
 #
 #  reset_period_start_name::  The name of the attribute which is used to store the
 #  time that the current reset period started.
@@ -125,8 +131,8 @@ sqlcounter dailycounter {
        sql_module_instance = sql
        dialect = ${modules.sql.dialect}
 
-#      reset_period_start_name = control.${.:instance}-Reset-Start
-#      reset_period_end_name = control.${.:instance}-Reset-End
+##     reset_period_start_name = control.${.:instance}-Reset-Start
+##     reset_period_end_name = control.${.:instance}-Reset-End
        counter_name = control.Daily-Session-Time
        check_name = control.Max-Daily-Session
        reply_name = reply.Session-Timeout
index d35960840455c12bb6e0a94f05a6ba5dbcd7fe0d..428e30c204c377dba313e12ffd72f6b716046e7d 100644 (file)
@@ -145,7 +145,7 @@ sqlippool {
 #       gateway = "%{Gateway-IP-Address}"
 
        #
-       #  .Load the queries from a separate file.
+       #  Load the queries from a separate file.
        #
        $INCLUDE ${modconfdir}/sql/ippool/${dialect}/queries.conf
 }
diff --git a/raddb/mods-available/sradutmp b/raddb/mods-available/sradutmp
deleted file mode 100644 (file)
index e69de29..0000000
index 44f200582426f3d3b2bb06014c7093fd3d83f45c..dcf770522e9e4c5d9baca90453ce11f891480470 100644 (file)
@@ -6,7 +6,7 @@
 #
 #  = Time-based One-Time Passwords (TOTP)
 #
-#  Defined in `rfc6238`, and used in Google Authenticator.
+#  Defined in `RFC6238`, and used in Google Authenticator, among others.
 #
 #  This module can only be used in the "authenticate" section.
 #
@@ -33,7 +33,7 @@
 #  intended to be used where the local administrator knows the TOTP
 #  secret key, and user has an authenticator app on their phone.
 #
-#  NOTE: Also that while you can use the Google "chart" APIs to
+#  WARN:: Also that while you can use the Google "chart" APIs to
 #  generate a QR code, doing this will give the secret to Google!
 #
 #  Administrators should instead install a tool such as "qrcode"
index 0b42cc0b45a5d27f994facb42475b67aedf5908d..7fdd41613649f89bfbe321134b44f855d9aabd1f 100644 (file)
@@ -32,12 +32,12 @@ unbound dns {
        #
        #  filename:: The libunbound configuration file.
        #
-       #  filename = "${confdir}/mods-config/unbound/default.conf"
+#      filename = "${confdir}/mods-config/unbound/default.conf"
 
        #
-       #  timeoit:: For unbound queries.
+       #  timeout:: For unbound queries.
        #
-       #  timeout = 3000
+#      timeout = 3000
 
        #
        #  resolvconf:: resolv.conf file to instruct unbound to load
@@ -49,14 +49,14 @@ unbound dns {
        #  This is NOT RECOMMENDED.  A local caching DNS server will
        #  substantially improve performance.
        #
-       #  resolvconf = "/etc/resolv.conf"
+#      resolvconf = "/etc/resolv.conf"
 
        #
        #  hosts:: hosts file to load data from.
        #
        #  Defaults to not set.
        #
-       #  hosts = "/etc/hosts"
+#      hosts = "/etc/hosts"
 }
 
 #
@@ -64,7 +64,7 @@ unbound dns {
 #
 #  A function based on the instance name can be used to perform DNS lookups.
 #
-#  %dns(<owner>, <record type>[, <limit>])
+#      %dns(<owner>, <record type>[, <limit>])
 #
 #  You must quote the parameters, e.g. `'example.com'`.
 #
@@ -95,6 +95,6 @@ unbound dns {
 #  The above example will perform an `MX` lookup on `example.com`, and
 #  will return just the first result.
 #
-#  NOTE:: The DNS queries are blocking!  A slow (or unavailable) DNS
+#  NOTE: The DNS queries are blocking!  A slow (or unavailable) DNS
 #  server can completely destroy the performance of FreeRADIUS.
 #
index 3277e7295b9f5db35821a0ce01af560616bfd77c..022b5dedd6712c58f796b2aebc4da3f0af3e2930 100644 (file)
@@ -24,7 +24,9 @@
 #  The module also registers a Unix group expansion, where it is possible
 #  to check if the user is a member of a particular Unix group.
 #
-#    if (%unix.group(admin)) { ...
+#      ```
+#      if (%unix.group(admin)) { ...
+#      ```
 #
 #  The expansion returns `true` if the `User-Name` is a membber of the given
 #  group, and `false` otherwise.
index 9c9f247a6ebf92894b21bd572549f70266a8849c..bdfc7446083ee59452fd82846822cd58fd142115 100644 (file)
 #  `Calling-Station-Id` attribute to the normal format as
 #  specified in RFC 3580 Section 3.21.
 #
+#      ```
 #      recv Access-Request {
 #              ...
 #              wimax
 #              ...
 #      }
+#      ```
 #
 #  == send Access-Accept
 #
@@ -41,6 +43,7 @@
 #  has been used, AND the EAP method derives MSK and EMSK, then
 #  the various WiMAX keys can be calculated.
 #
+#      ```
 #      send Access-Accept {
 #              ...
 #
@@ -66,6 +69,7 @@
 #
 #              ...
 #      }
+#      ```
 #
 #  == Miscellaneous
 #
@@ -95,7 +99,9 @@
 #
 #  You have to create it, and put it into the request or reply as something like:
 #
-#    WiMAX-MN-NAI = User-Name}
+#    ```
+#    WiMAX-MN-NAI = User-Name
+#    ```
 #
 #  You will also have to have the appropriate IP address (`v4` or `v6`)
 #  in order to calculate the keys below.
index 9b7e927d10c71e1a09e928e0945e9ea5189ceb34..e038fab51deb22114bb5dc3c6951796132b2979e 100644 (file)
@@ -5,7 +5,7 @@
 
 #######################################################################
 #
-#  = WinModule
+#  = Winbind
 #
 #  The `winbind` module authenticate PAP passwords against Microsoft Active
 #  Directory or Samba, via the winbind API.
@@ -65,7 +65,7 @@ winbind {
        }
 
        #
-       #  .Reusable Handles
+       #  reuse:: Maintain long-term connections to the windbind server.
        #
        #  Reusable connection handles are allocated in blocks.  These
        #  parameters allow for tuning how that is done.
index 2da12a828f8f0bb38d905f467390b709a99e3870..4f434242102258690bc8d8c12f556e06d09e5503 100644 (file)
 #
 yubikey {
        #
-       #  id_length:: The length (number of ASCII bytes) of the Public-ID portion
-       #  of the OTP string.
+       #  id_length:: The length (number of ASCII bytes) of the Public-ID
+       #  portion of the OTP string.
        #
        #  Yubikey defaults to a 6 byte ID (2 * 6 = 12)
        #
 #      id_length = 12
 
        #
-       #  split:: If true, the authorize method of `rlm_yubikey` will attempt to split the
-       #  value of `User-Password`, into the user's password, and the OTP token.
+       #  split:: If true, the authorize method of `rlm_yubikey` will
+       #  attempt to split the value of `User-Password`, into the user's
+       #  password, and the OTP token.
        #
-       #  NOTE: If enabled and successful, the value of `request.User-Password` will be
-       #  truncated and `request.Vendor-Specific.Yubicon.Yubikey-OTP` will be added.
+       #  NOTE: If enabled and successful, the value of
+       #  `request.User-Password` will be truncated and
+       #  `request.Vendor-Specific.Yubicon.Yubikey-OTP` will be added.
        #
 #      split = yes
 
        #
        #  decrypt:: Whether tokens will be decrypted and processed locally.
        #
-       #  In the `recv Access-Request` section, this module should be placed before the
-       #  persistent storage module.
+       #  In the `recv Access-Request` section, this module should be placed
+       #  before the persistent storage module.
        #
        #  The following authenticate section should be added:
        #
@@ -51,16 +53,18 @@ yubikey {
        #  }
        #  ----
        #
-       #  If two factor authentication (password concatenated with OTP) is required, split
-       #  configuration should be set to yes and the pap module should be uncommented.
+       #  If two factor authentication (password concatenated with OTP) is
+       #  required, split configuration should be set to yes and the pap
+       #  module should be uncommented.
        #
-       #  Each account will need a password added (either using attribute `Password.Cleartext`,
-       #  `SSHA-Password`, etc.).
+       #  Each account will need a password added (either using attribute
+       #  `Password.Cleartext`, `SSHA-Password`, etc.).
        #
-       #  The module itself does not provide persistent storage as
-       #  this would duplicate functionality already in the server.
+       #  The module itself does not provide persistent storage as this
+       #  would duplicate functionality already in the server.
        #
-       #  Yubikey authentication needs two attributes retrieved from persistent storage:
+       #  Yubikey authentication needs two attributes retrieved from
+       #  persistent storage:
        #
        #  [options="header,autowidth"]
        #  |===
@@ -75,8 +79,9 @@ yubikey {
        #                                                         the request list after successful decryption.
        #  |===
        #
-       #  NOTE: `Vendor-Specific.Yubicon.Yubikey-Counter` isn't strictly required, but the server will generate
-       #  warnings if it's not present when `yubikey.authenticate` is called.
+       #  NOTE: `Vendor-Specific.Yubicon.Yubikey-Counter` isn't strictly
+       #  required, but the server will generate warnings if it's not
+       #  present when `yubikey.authenticate` is called.
        #
        #  These attributes are available after `authorization`:
        #
@@ -95,7 +100,8 @@ yubikey {
        #  | `request.Vendor-Specific.Yubicon.Yubikey-OTP` | The OTP portion of `User-Password`.
        #  |===
        #
-       #  These attributes are available after authentication (if successful):
+       #  These attributes are available after authentication (if
+       #  successful):
        #
        #  [options="header,autowidth"]
        #  |===
@@ -119,7 +125,8 @@ yubikey {
        decrypt = no
 
        #
-       #  validate:: Validation mode - Tokens will be validated against a Yubicloud server.
+       #  validate:: Validation mode - Tokens will be validated against a
+       #  Yubicloud server.
        #
        validate = no
 
@@ -142,8 +149,9 @@ yubikey {
                #  | `%s`   | Placeholder for the token string itself.
                #  |===
                #
-               #  NOTE: If no URLs are listed, will default to the default URLs in the
-               #  ykclient library, which point to the yubico validation servers.
+               #  NOTE: If no URLs are listed, will default to the default URLs in
+               #  the ykclient library, which point to the yubico validation
+               #  servers.
                #
                servers {
 #                      uri = 'http://api.yubico.com/wsapi/2.0/verify?id=%d&otp=%s'
@@ -171,10 +179,9 @@ yubikey {
                        #
                        #  start:: Connections to create during module instantiation.
                        #
-                       #  If the server cannot create specified number of
-                       #  connections during instantiation it will exit.
-                       #  Set to `0` to allow the server to start without the
-                       #  external service being available.
+                       #  If the server cannot create specified number of connections
+                       #  during instantiation it will exit. Set to `0` to allow the
+                       #  server to start without the external service being available.
                        #
                        start = 0
 
@@ -186,18 +193,18 @@ yubikey {
                        #
                        #  max:: Maximum number of connections.
                        #
-                       #  If these connections are all in use and a new one
-                       #  is requested, the request will NOT get a connection.
+                       #  If these connections are all in use and a new one is requested,
+                       #  the request will NOT get a connection.
                        #
-                       #  Setting `max` to *LESS* than the number of threads means
-                       #  that some threads may starve, and you will see errors
-                       #  like _No connections available and at max connection limit_.
+                       #  Setting `max` to *LESS* than the number of threads means that
+                       #  some threads may starve, and you will see errors like _No
+                       #  connections available and at max connection limit_.
                        #
-                       #  Setting `max` to MORE than the number of threads means
-                       #  that there are more connections than necessary.
+                       #  Setting `max` to MORE than the number of threads means that
+                       #  there are more connections than necessary.
                        #
-                       #  If `max` is not specified, then it defaults to the number
-                       #  of workers configured.
+                       #  If `max` is not specified, then it defaults to the number of
+                       #  workers configured.
                        #
 #                      max =
                        #
@@ -208,8 +215,8 @@ yubikey {
                        uses = 0
 
                        #
-                       #  retry_delay:: The number of seconds to wait after the server tries
-                       #  to open a connection, and fails.
+                       #  retry_delay:: The number of seconds to wait after the server
+                       #  tries to open a connection, and fails.
                        #
                        #  During this time, no new connections will be opened.
                        #
@@ -225,7 +232,8 @@ yubikey {
                        #
                        #  idle_timeout:: The idle timeout (in seconds).
                        #
-                       #  A connection which is unused for this length of time will be closed.
+                       #  A connection which is unused for this length of time will be
+                       #  closed.
                        #
                        #  NOTE: A setting of 0 means infinite (no timeout).
                        #
@@ -234,22 +242,25 @@ yubikey {
                        #
                        #  spread:: Enable LRU (Least Recently Used).
                        #
-                       #  The `yubico` library uses `curl` multi-handles. If the multi-handle is reused
-                       #  before all requests are completed the connections are re-established.
+                       #  The `yubico` library uses `curl` multi-handles. If the
+                       #  multi-handle is reused before all requests are completed the
+                       #  connections are re-established.
                        #
-                       #  The cost of re-establishing the connections is greater than the benefit of
-                       #  maintaining a small pool of connections or optimising for link latency.
+                       #  The cost of re-establishing the connections is greater than the
+                       #  benefit of maintaining a small pool of connections or optimising
+                       #  for link latency.
                        #
                        spread = yes
 
                        #
                        #  [NOTE]
                        #  ====
-                       #  All configuration settings are enforced.  If a connection is closed because of
-                       #  `idle_timeout`, `uses`, or `lifetime`, then the total
-                       #  number of connections MAY fall below `min`.
+                       #  All configuration settings are enforced. If a connection is
+                       #  closed because of `idle_timeout`, `uses`, or `lifetime`, then
+                       #  the total number of connections MAY fall below `min`.
                        #
-                       #  When that happens, it will open a new connection. It will also log a *WARNING* message.
+                       #  When that happens, it will open a new connection. It will also
+                       #  log a *WARNING* message.
                        #
                        #  The solution is to either lower the "min" connections, or
                        #  increase lifetime/idle_timeout.