exim.git
6 years agoAdd support for -bP config
Heiko Schlittermann (HS12-RIPE) [Thu, 12 Nov 2015 11:14:14 +0000 (12:14 +0100)]
Add support for -bP config

6 years agoLogging: support +outgoing_port on defer lines and per-host error lines
Jeremy Harris [Tue, 10 Nov 2015 23:12:26 +0000 (23:12 +0000)]
Logging: support +outgoing_port on defer lines and per-host error lines

6 years agoTestsuite: reorder for dependencies; rename TPDA to events
Jeremy Harris [Tue, 10 Nov 2015 19:01:58 +0000 (19:01 +0000)]
Testsuite: reorder for dependencies; rename TPDA to events

6 years agoExpansions: New ${ipv6denorm:<string>} and ${ipv6norm:<string>} operators. Bug 1650
Jeremy Harris [Wed, 4 Nov 2015 18:20:04 +0000 (18:20 +0000)]
Expansions: New ${ipv6denorm:<string>} and ${ipv6norm:<string>} operators.  Bug 1650

6 years agoTestsuite: perl executable location may differ
Jeremy Harris [Sun, 8 Nov 2015 18:56:19 +0000 (18:56 +0000)]
Testsuite: perl executable location may differ

6 years agoTestsuite: fix fallout from TLS-by-default
Jeremy Harris [Sun, 8 Nov 2015 17:40:59 +0000 (17:40 +0000)]
Testsuite: fix fallout from TLS-by-default

Also handle testsuite run user different from testsuite files owner

6 years agoTLS: Default tls_advertise_hosts to "*". Bug 1709
Jeremy Harris [Sun, 1 Nov 2015 19:46:28 +0000 (19:46 +0000)]
TLS: Default tls_advertise_hosts to "*".  Bug 1709

Make the option available in non-TLS builds, and clear in testsuite
confs as needed to keep TLS and non-TLS testcase outputs the same.

An error is logged at startup if tls_advertise_hosts is nonempty
but tls_certificate is not set.

6 years agoTestsuite: Add munge for EXPERIMENTAL_DSN_INFO
Jeremy Harris [Sat, 7 Nov 2015 12:48:06 +0000 (12:48 +0000)]
Testsuite: Add munge for EXPERIMENTAL_DSN_INFO

6 years agoDKIM: fix non-debug build. Bug 1713
Jasen Betts [Sat, 7 Nov 2015 11:53:52 +0000 (11:53 +0000)]
DKIM: fix non-debug build.  Bug 1713

6 years agoTransport: permit an empty string for the transport_filter option. Bug 1714
Jeremy Harris [Fri, 6 Nov 2015 15:55:25 +0000 (15:55 +0000)]
Transport: permit an empty string for the transport_filter option.  Bug 1714

6 years agoPRDR: Introduce $prdr_requested flag variable. Bug 1712
Jeremy Harris [Tue, 3 Nov 2015 14:40:56 +0000 (14:40 +0000)]
PRDR: Introduce $prdr_requested flag variable.  Bug 1712

6 years agoRadius: Change name of header file for RADIUSCLIENTNEW to match Fedora and (apparentl...
Jeremy Harris [Mon, 2 Nov 2015 23:59:49 +0000 (23:59 +0000)]
Radius: Change name of header file for RADIUSCLIENTNEW to match Fedora and (apparently) Gentoo.

Also include a hack to avoid a definition conflict between that Radius header
and a DBM header.

This work imported from Gentoo (more than one author).

6 years agoAvoid misaligned access in cached lookup. Bug 1708
Jeremy Harris [Mon, 2 Nov 2015 19:03:26 +0000 (19:03 +0000)]
Avoid misaligned access in cached lookup.  Bug 1708

6 years agoSource: Remove trailing whitespaces from src/*.{h,c}
Heiko Schlittermann (HS12-RIPE) [Sat, 31 Oct 2015 21:47:29 +0000 (22:47 +0100)]
Source: Remove trailing whitespaces from src/*.{h,c}

6 years agoLookups: Do not escape percent or underbar in the ${quote_pgsql: } operator. Bug...
Jeremy Harris [Fri, 30 Oct 2015 14:54:17 +0000 (14:54 +0000)]
Lookups: Do not escape percent or underbar in the ${quote_pgsql: } operator.  Bug 1706

6 years agoCygwin: update from Exim Cygwin maintainer. Bug 1707
Jeremy Harris [Fri, 30 Oct 2015 15:35:29 +0000 (15:35 +0000)]
Cygwin: update from Exim Cygwin maintainer.  Bug 1707

6 years agoDocs: fix naming of the ldap_default_servers option
Heiko Schlittermann (HS12-RIPE) [Thu, 29 Oct 2015 12:24:15 +0000 (13:24 +0100)]
Docs: fix naming of the ldap_default_servers option

6 years agoTestsuite: allow for sudo -u <user> in test scripts
Heiko Schlittermann (HS12-RIPE) [Tue, 27 Oct 2015 21:49:20 +0000 (22:49 +0100)]
Testsuite: allow for sudo -u <user> in test scripts

6 years agoDocs: minor tweaks
Jeremy Harris [Tue, 27 Oct 2015 14:21:25 +0000 (14:21 +0000)]
Docs: minor tweaks

6 years agoManualroute: use same host for all RCPTs of a message, even under hosts_randomize...
Eric Andresen [Tue, 27 Oct 2015 14:10:32 +0000 (14:10 +0000)]
Manualroute: use same host for all RCPTs of a message, even under hosts_randomize.  Bug 830

Patch from author adjusted by JH to retain MX priorities when /MX indirection is used.

6 years agoTestsuite: followon -bt output changes
Jeremy Harris [Mon, 26 Oct 2015 19:01:09 +0000 (19:01 +0000)]
Testsuite: followon -bt output changes

6 years agoTestsuite: deal better with -bt output and long test-system ipv4 addresses
Jeremy Harris [Mon, 26 Oct 2015 12:24:39 +0000 (12:24 +0000)]
Testsuite: deal better with -bt output and long test-system ipv4 addresses

6 years agoPipe transport: fix log_defer_output option. Bug 840
Jeremy Harris [Sun, 25 Oct 2015 22:42:22 +0000 (22:42 +0000)]
Pipe transport: fix log_defer_output option.  Bug 840

6 years agoDKIM: ignore space & tab embedded in base64 during decode. Bug 1700
Jeremy Harris [Thu, 15 Oct 2015 20:40:17 +0000 (21:40 +0100)]
DKIM: ignore space & tab embedded in base64 during decode.  Bug 1700

6 years agocode tidying
Jeremy Harris [Thu, 15 Oct 2015 19:36:27 +0000 (20:36 +0100)]
code tidying

6 years agoDoc: clarify the syntax of the "begin <section>"
Heiko Schlittermann (HS12-RIPE) [Tue, 20 Oct 2015 17:13:15 +0000 (19:13 +0200)]
Doc: clarify the syntax of the "begin <section>"

6 years agoMerge remote-tracking branch 'github/pr/34'
Phil Pennock [Sat, 17 Oct 2015 20:02:41 +0000 (16:02 -0400)]
Merge remote-tracking branch 'github/pr/34'

GitHub user @puleglot "Alexander Tsoy" reported build failures for
RADIUS:
> Was broken by commits 93a6fce and 55414b2

These are the recent const-ification work.  Changes LGTM.

6 years agoUtils: exiqgrep error/usage if there are non-understood arguments. Bug 1586
Jeremy Harris [Sat, 17 Oct 2015 19:47:46 +0000 (20:47 +0100)]
Utils: exiqgrep error/usage if there are non-understood arguments.  Bug 1586

6 years agoFix conflicting types errors in radius auth
Alexander Tsoy [Sat, 17 Oct 2015 17:39:10 +0000 (20:39 +0300)]
Fix conflicting types errors in radius auth

Was broken by commits 93a6fce2 and 55414b25

6 years agoCheck maximum (folded) line length in default spec file data ACL and smtp transport...
Jeremy Harris [Tue, 13 Oct 2015 16:04:03 +0000 (17:04 +0100)]
Check maximum (folded) line length in default spec file data ACL and smtp transport.  Bug 1684

6 years agoLog deferred deliveries for transport max_parallel
Jeremy Harris [Tue, 13 Oct 2015 10:43:34 +0000 (11:43 +0100)]
Log deferred deliveries for transport max_parallel

6 years agomax_parallel transport option. Bug 1698
Jeremy Harris [Tue, 13 Oct 2015 00:40:27 +0000 (01:40 +0100)]
max_parallel transport option.  Bug 1698

6 years agomax_parallel transport option
Jeremy Harris [Thu, 8 Oct 2015 22:59:27 +0000 (23:59 +0100)]
max_parallel transport option

6 years agoFix typo in debug output
Heiko Schlittermann (HS12-RIPE) [Thu, 1 Oct 2015 08:58:18 +0000 (10:58 +0200)]
Fix typo in debug output

6 years agoHandle >1 parallelism in serialize db entries
Jeremy Harris [Sun, 11 Oct 2015 13:53:41 +0000 (14:53 +0100)]
Handle >1 parallelism in serialize db entries

6 years agocode tidying
Jeremy Harris [Sun, 11 Oct 2015 11:22:50 +0000 (12:22 +0100)]
code tidying

6 years agoTidying
Jeremy Harris [Sat, 3 Oct 2015 22:19:58 +0000 (23:19 +0100)]
Tidying

6 years agoSOCKS: fix function prototype
Jeremy Harris [Sat, 3 Oct 2015 21:04:24 +0000 (22:04 +0100)]
SOCKS: fix function prototype

6 years agoTestsuite: nail testcase to ipv4 to avoid output difference in non-6 build
Jeremy Harris [Wed, 30 Sep 2015 17:05:10 +0000 (18:05 +0100)]
Testsuite: nail testcase to ipv4 to avoid output difference in non-6 build

6 years agoIncrease verbosity of (panic)log message for string_sprintf overflow
Jeremy Harris [Wed, 30 Sep 2015 15:23:42 +0000 (16:23 +0100)]
Increase verbosity of (panic)log message for string_sprintf overflow

6 years agoTestsuite: nail testcase to ipv4 to avoid output difference in 4+6 environment
Jeremy Harris [Tue, 29 Sep 2015 20:05:36 +0000 (21:05 +0100)]
Testsuite: nail testcase to ipv4 to avoid output difference in 4+6 environment

6 years agoFix gnutls library version check, for system certs feature. Bug 1691
Jeremy Harris [Tue, 29 Sep 2015 19:14:59 +0000 (20:14 +0100)]
Fix gnutls library version check, for system certs feature. Bug 1691

6 years agoDocs: add ref for DCC
Jeremy Harris [Tue, 22 Sep 2015 11:41:10 +0000 (12:41 +0100)]
Docs: add ref for DCC

6 years agoTestsuite: move regex testcase to Content-scanning section
Jeremy Harris [Tue, 22 Sep 2015 10:30:11 +0000 (11:30 +0100)]
Testsuite: move regex testcase to Content-scanning section

6 years agoDNS: avoid overflow in cache TTL for negative entries. Bug 1395
Jeremy Harris [Sun, 20 Sep 2015 20:47:10 +0000 (21:47 +0100)]
DNS: avoid overflow in cache TTL for negative entries.  Bug 1395

6 years agoTestsuite: remove unused acl option from testcase
Jeremy Harris [Sun, 20 Sep 2015 12:34:06 +0000 (13:34 +0100)]
Testsuite: remove unused acl option from testcase
Fixes case-fail on non-contentscan builds.

6 years agoRetry: always use interface, if set, for retry DB key. Bug 1678
Jeremy Harris [Sat, 19 Sep 2015 12:59:22 +0000 (13:59 +0100)]
Retry: always use interface, if set, for retry DB key.  Bug 1678

Even constant values must be used, as multiple transports with
different values may be in play and should be kept distinct.

6 years agoDNS: time-limit cached returns, using TTL. Bug 1395
Jeremy Harris [Thu, 17 Sep 2015 12:35:16 +0000 (13:35 +0100)]
DNS: time-limit cached returns, using TTL.  Bug 1395

This can matter for fast-changing data such as DNSBLs.

6 years agoDocs: fix example for listextract expansion item
Jeremy Harris [Thu, 17 Sep 2015 08:15:35 +0000 (09:15 +0100)]
Docs: fix example for listextract expansion item

6 years agoChangeLog: Update about process info
Heiko Schlittermann (HS12-RIPE) [Mon, 14 Sep 2015 22:00:44 +0000 (00:00 +0200)]
ChangeLog: Update about process info

6 years agoAdd the Exim version to process info (exiwhat)
Heiko Schlittermann (HS12-RIPE) [Mon, 14 Sep 2015 21:46:55 +0000 (23:46 +0200)]
Add the Exim version to process info (exiwhat)

6 years agoTestsuite: output changes resulting from 055e2cb463e4
Jeremy Harris [Sun, 13 Sep 2015 14:28:33 +0000 (15:28 +0100)]
Testsuite: output changes resulting from 055e2cb463e4

6 years ago TLS: downgrade fail of cert-based authentication from log message to debug messsage
Jeremy Harris [Sun, 13 Sep 2015 14:26:34 +0000 (15:26 +0100)]
TLS: downgrade fail of cert-based authentication from log message to debug messsage

6 years agofix docs messup
Jeremy Harris [Sat, 12 Sep 2015 14:57:17 +0000 (15:57 +0100)]
fix docs messup

6 years agoNew $callout_address variable to record spamd (etc) address. Bug 1652
Jeremy Harris [Sat, 12 Sep 2015 14:00:45 +0000 (15:00 +0100)]
New $callout_address variable to record spamd (etc) address.  Bug 1652

6 years agoDocs: Typo, make long option name searchable.
Heiko Schlittermann (HS12-RIPE) [Thu, 10 Sep 2015 20:01:53 +0000 (22:01 +0200)]
Docs: Typo, make long option name searchable.

This is related to Bug 1197 and was fixed there for another
long option.

6 years agoDSN: Under EXPERIMENTAL_DSN_INFO add extras to bounce messages. Bug 1686
Jeremy Harris [Wed, 9 Sep 2015 15:03:38 +0000 (16:03 +0100)]
DSN: Under EXPERIMENTAL_DSN_INFO add extras to bounce messages.  Bug 1686

6 years ago Capture substrings in ACL regex= . Bug 425.
Jeremy Harris [Tue, 8 Sep 2015 22:05:20 +0000 (23:05 +0100)]
Capture substrings in ACL regex= .  Bug 425.

6 years agoTestsuite: a DSN case for a remote-MTA specified by name rather than IP
Jeremy Harris [Thu, 3 Sep 2015 15:13:18 +0000 (16:13 +0100)]
Testsuite: a DSN case for a remote-MTA specified by name rather than IP

6 years agoeditorconfig philosophy, more vim hints
Phil Pennock [Fri, 28 Aug 2015 19:03:23 +0000 (15:03 -0400)]
editorconfig philosophy, more vim hints

6 years agoCommon .editorconfig file for text editors
Phil Pennock [Fri, 28 Aug 2015 03:15:01 +0000 (23:15 -0400)]
Common .editorconfig file for text editors

6 years agoUpdate ChangeLog about Bug 1671
Heiko Schlittermann (HS12-RIPE) [Tue, 25 Aug 2015 11:37:47 +0000 (13:37 +0200)]
Update ChangeLog about Bug 1671

6 years agoClose logs after daemon-process exceptional write. Bug 728
Jeremy Harris [Tue, 25 Aug 2015 09:36:27 +0000 (10:36 +0100)]
Close logs after daemon-process exceptional write.  Bug 728

6 years agoDocs: clarify header_syntax acl condition return value
Jeremy Harris [Sun, 23 Aug 2015 17:34:36 +0000 (18:34 +0100)]
Docs: clarify header_syntax acl condition return value

6 years agoRemember the fail reason for verify=headers_syntax. Bug 264
Jeremy Harris [Fri, 21 Aug 2015 17:08:39 +0000 (18:08 +0100)]
Remember the fail reason for verify=headers_syntax.  Bug 264

6 years agoFix post-transport-crash: safeguard for missing spool BUG 1671
Heiko Schlittermann (HS12-RIPE) [Thu, 20 Aug 2015 11:58:06 +0000 (13:58 +0200)]
Fix post-transport-crash: safeguard for missing spool BUG 1671

Based on a proposal from Wolfgang Breyha.

6 years agoAdd a .ctags file to src
Heiko Schlittermann (HS12-RIPE) [Fri, 21 Aug 2015 10:26:50 +0000 (12:26 +0200)]
Add a .ctags file to src

6 years agoTestsuite: auto-detect the Exim binary in ../src/build*
Heiko Schlittermann (HS12) [Wed, 19 Aug 2015 16:17:51 +0000 (18:17 +0200)]
Testsuite: auto-detect the Exim binary in ../src/build*

6 years agoTestsuite: Update README about flavours
Heiko Schlittermann (HS12-RIPE) [Wed, 19 Aug 2015 16:18:22 +0000 (18:18 +0200)]
Testsuite: Update README about flavours

6 years agoTestsuite: Update debian8 flavour for 5600
Heiko Schlittermann (HS12-RIPE) [Wed, 19 Aug 2015 14:43:35 +0000 (16:43 +0200)]
Testsuite: Update debian8 flavour for 5600

6 years agoFix post-transport-crash.
Heiko Schlittermann (HS12-RIPE) [Wed, 19 Aug 2015 13:22:41 +0000 (15:22 +0200)]
Fix post-transport-crash.

The crash probably was introduced in a39bd74d3e94 and
needs 'split_spool_directory=yes' to expose.

Thanks to Wolfgang Breyha, who found the same fix.

6 years agoDocs: add note on spf lookup type, in experimental-spec
Jeremy Harris [Mon, 17 Aug 2015 18:08:52 +0000 (19:08 +0100)]
Docs: add note on spf lookup type, in experimental-spec

6 years agoDocs: Remove trailing whitespace
Heiko Schlittermann (HS12-RIPE) [Mon, 17 Aug 2015 15:38:47 +0000 (17:38 +0200)]
Docs: Remove trailing whitespace

6 years agoDocs: Clarify white space in $h_<name> expansion
Heiko Schlittermann (HS12-RIPE) [Mon, 17 Aug 2015 15:37:08 +0000 (17:37 +0200)]
Docs: Clarify white space in $h_<name> expansion

6 years agoImprove the consistency of logging incoming and outgoing interfaces.
Tony Finch [Thu, 13 Aug 2015 14:16:51 +0000 (15:16 +0100)]
Improve the consistency of logging incoming and outgoing interfaces.

The I= interface field on outgoing lines is now after the H= remote
host field, same as incoming lines. There is a separate outgoing_interface
log selector which allows you to disable the outgoing I= field.

(slight massaging by JH)

6 years agoOverhaul the debug_selector and log_selector machinery to support variable-length...
Tony Finch [Thu, 13 Aug 2015 14:16:48 +0000 (15:16 +0100)]
Overhaul the debug_selector and log_selector machinery to support variable-length bit vectors. No functional change.

6 years agoFix timeout adjustment in c528cec4
Heiko Schlittermann (HS12-RIPE) [Wed, 12 Aug 2015 22:20:12 +0000 (00:20 +0200)]
Fix timeout adjustment in c528cec4

6 years agoTestsuite: Add short help to server
Heiko Schlittermann (HS12) [Wed, 12 Aug 2015 22:13:51 +0000 (00:13 +0200)]
Testsuite: Add short help to server

6 years agoAdjust the timeout after interrupted select()
Heiko Schlittermann (HS12-RIPE) [Wed, 12 Aug 2015 21:45:44 +0000 (23:45 +0200)]
Adjust the timeout after interrupted select()

6 years agoGnuTLS: avoid whining about OCSP when not requested by config
Jeremy Harris [Tue, 11 Aug 2015 21:54:53 +0000 (22:54 +0100)]
GnuTLS: avoid whining about OCSP when not requested by config

6 years agoFix ESMTP MAIL command option processing
Heiko Schlittermann (HS12-RIPE) [Tue, 11 Aug 2015 15:36:29 +0000 (17:36 +0200)]
Fix ESMTP MAIL command option processing

If the address containes spaces, the option processing
was confused.

6 years agoBuild: Make test_{os,parse,dbfn,string} work
Heiko Schlittermann (HS12-RIPE) [Tue, 11 Aug 2015 07:13:11 +0000 (09:13 +0200)]
Build: Make test_{os,parse,dbfn,string} work

6 years agoTestsuite: Add test for MAIL with spaces + options
Heiko Schlittermann (HS12) [Mon, 10 Aug 2015 16:10:26 +0000 (18:10 +0200)]
Testsuite: Add test for MAIL with spaces + options

6 years agoReally re-select() when interrupted.
Heiko Schlittermann (HS12-RIPE) [Sun, 9 Aug 2015 22:39:36 +0000 (00:39 +0200)]
Really re-select() when interrupted.

6 years agoCompiler quietening
Heiko Schlittermann (HS12-RIPE) [Sun, 9 Aug 2015 21:29:44 +0000 (23:29 +0200)]
Compiler quietening

6 years agoOpenSSL: fix complile on pre-EC-capable library versions
Jeremy Harris [Thu, 6 Aug 2015 20:38:33 +0000 (21:38 +0100)]
OpenSSL: fix complile on pre-EC-capable library versions

6 years agoDup GnuTLS test to OpenSSL
Jeremy Harris [Wed, 5 Aug 2015 20:19:40 +0000 (21:19 +0100)]
Dup GnuTLS test to OpenSSL

6 years agoTestsuite: Avoid requesting TLS cert-status requests from GnuTLS test utility unless...
Jeremy Harris [Wed, 5 Aug 2015 15:01:50 +0000 (16:01 +0100)]
Testsuite: Avoid requesting TLS cert-status requests from GnuTLS test utility unless wanted

6 years agoTestsuite: pass GnuTLS despite OCSP whining
Jeremy Harris [Sun, 2 Aug 2015 15:09:54 +0000 (16:09 +0100)]
Testsuite: pass GnuTLS despite OCSP whining

6 years agoDocs: add notes on library version limitations on OCSP stapling. Bug 1664
Jeremy Harris [Sun, 2 Aug 2015 13:33:56 +0000 (14:33 +0100)]
Docs: add notes on library version limitations on OCSP stapling.  Bug 1664

6 years agoGnuTLS: avoid using OCSP on buggy library versions. Bug 1664
Jeremy Harris [Sun, 2 Aug 2015 12:53:15 +0000 (13:53 +0100)]
GnuTLS: avoid using OCSP on buggy library versions.  Bug 1664

6 years agoTestsuite: Add testcase for OCSP-nonaware client, to supporting server. Bug 1664
Jeremy Harris [Sun, 2 Aug 2015 12:44:31 +0000 (13:44 +0100)]
Testsuite: Add testcase for OCSP-nonaware client, to supporting server.  Bug 1664

The logfile here is for (I hope) the passing case, though the fixed GnuTLS library
is not yet available.  Also due to the bug, client-gnutls is not usable for the
test; client-openssl must be used - meaning that a GnuTLS-only system cannot run
the testcase:

  OCSP-GnuTLS/5650 OCSP stapling, server
  ** Command 15 ("client-ssl", starting at line 98)
  ** Return code 127 (expected 0)

6 years agoDocs: Add a note about the maximum spam bar length
Heiko Schlittermann (HS12-RIPE) [Thu, 30 Jul 2015 07:43:51 +0000 (09:43 +0200)]
Docs: Add a note about the maximum spam bar length

6 years agoDocs: Clarify the "any output" phrase
Heiko Schlittermann (HS12-RIPE) [Wed, 29 Jul 2015 21:55:09 +0000 (23:55 +0200)]
Docs: Clarify the "any output" phrase

6 years agoAdd ref from logging chapter to slow_lookup_log main config option
Jeremy Harris [Sun, 26 Jul 2015 17:21:33 +0000 (18:21 +0100)]
Add ref from logging chapter to slow_lookup_log main config option

6 years agoCompiler quietening
Jeremy Harris [Sun, 28 Jun 2015 14:14:02 +0000 (15:14 +0100)]
Compiler quietening

6 years agoDocs: add detail on keys for lookups
Jeremy Harris [Sat, 25 Jul 2015 12:50:43 +0000 (13:50 +0100)]
Docs: add detail on keys for lookups

6 years agoClean docs for next release
Jeremy Harris [Sun, 26 Jul 2015 15:54:16 +0000 (16:54 +0100)]
Clean docs for next release

6 years agoDoc: parallel builds (make -j) work exim-4_86
Heiko Schlittermann (HS12-RIPE) [Thu, 23 Jul 2015 21:20:37 +0000 (23:20 +0200)]
Doc: parallel builds (make -j) work

6 years agoDocs: emphasize that the smtp_connection log selector applies to inbound exim-4_86_RC5
Jeremy Harris [Thu, 16 Jul 2015 15:25:53 +0000 (16:25 +0100)]
Docs: emphasize that the smtp_connection log selector applies to inbound