diff --git a/Makefile.am b/Makefile.am
index 906ead71..2de9d190 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -26,6 +26,10 @@ FORCE:
debug:
$(MAKE) all CFLAGS="-Wno-unused-parameter @DEBUG@"
+win64:
+ $(MAKE) all CFLAGS="-O2 -s" CXXFLAGS="-O2 -s"
+win32:
+ $(MAKE) all CFLAGS="-O2 -s" CXXFLAGS="-O2 -s"
profile:
$(MAKE) all CFLAGS="@PROFILE@"
diff --git a/Makefile.in b/Makefile.in
index 2b3c8ed1..3e5367d4 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -952,6 +952,10 @@ FORCE:
debug:
$(MAKE) all CFLAGS="-Wno-unused-parameter @DEBUG@"
+win64:
+ $(MAKE) all CFLAGS="-O2 -s" CXXFLAGS="-O2 -s"
+win32:
+ $(MAKE) all CFLAGS="-O2 -s" CXXFLAGS="-O2 -s"
profile:
$(MAKE) all CFLAGS="@PROFILE@"
diff --git a/NEWS b/NEWS
index ca772c04..30fe7eeb 100644
--- a/NEWS
+++ b/NEWS
@@ -18,6 +18,54 @@ Feature differences from Xiph release
any extra tags are shown in the conf/icecast.xml.dist file
+2.4.0.kh17
+. HTTP handling update. A lot of this is internal but the mechanism allows for
+ updating http headers from the XML using the http-headers block at the global
+ level or per mount point. The same sort of block can be used within the relay
+ for specifying any headers sent to a relay.
+
+. XML parsing updates. This allows for simple tags to be embedded into the parent
+ tag. examples include
+
+
+
+ ...
+
+
+
+
+
+
+. Relay hijack capability. Two possible use cases
+
+ - In the multiple host relay situation, every relay-delay seconds, the previously
+ failed but higher priority hosts are re-tried and if one works then switches in
+ to provide the feed for the stream. listeners are not moved.
+
+ - source client can override relay without moving listeners. This effectively
+ shuts down the pulling part of the relay but stays around until the source
+ client exits, at which point the relay restarts. This can be seen as another
+ type of fallback, one without the issue of shared fallback mounts causing
+ listeners to end up on unexpected mount points. As the listeners stay in one
+ place then things like stats are more consistent.
+
+. SSL can be used on relay feed. Use boolean tag ssl or tls on the above host. The
+ relay can redirect to https to achieve the same thing.
+
+. priority tag on relay to allow for order host startup different to the order in
+ the XML. 1 is highest order, unspecified implies ordered per XML.
+
+. add ignore case for user agent matching.
+
+. priority tag on mount to allow for search order when you can match multiple mount
+ blocks (due to wildcard).
+
+. Small update to CORS handling, interaction with http work.
+. fnmatch (wildcard handling was broken in windows now fixed) and can use extended
+ settings like @ etc
+. Minor web page update
+. Document updates.
+
2.4.0.kh16
. Locking updates. Mostly for the config, mount lookup and client processing.
. Add redirect_limit to auth URL options, default 1 but 0-10 allowed.
diff --git a/configure b/configure
index e03cc3f8..c5a3a3f2 100755
--- a/configure
+++ b/configure
@@ -1,6 +1,6 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.71 for Icecast 2.4.0-kh17-pre5.
+# Generated by GNU Autoconf 2.71 for Icecast 2.4.0-kh17.
#
# Report bugs to .
#
@@ -621,8 +621,8 @@ MAKEFLAGS=
# Identity of this package.
PACKAGE_NAME='Icecast'
PACKAGE_TARNAME='icecast'
-PACKAGE_VERSION='2.4.0-kh17-pre5'
-PACKAGE_STRING='Icecast 2.4.0-kh17-pre5'
+PACKAGE_VERSION='2.4.0-kh17'
+PACKAGE_STRING='Icecast 2.4.0-kh17'
PACKAGE_BUGREPORT='karl@kheyes.plus.com'
PACKAGE_URL=''
@@ -1423,7 +1423,7 @@ if test "$ac_init_help" = "long"; then
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
-\`configure' configures Icecast 2.4.0-kh17-pre5 to adapt to many kinds of systems.
+\`configure' configures Icecast 2.4.0-kh17 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -1494,7 +1494,7 @@ fi
if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of Icecast 2.4.0-kh17-pre5:";;
+ short | recursive ) echo "Configuration of Icecast 2.4.0-kh17:";;
esac
cat <<\_ACEOF
@@ -1628,7 +1628,7 @@ fi
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
-Icecast configure 2.4.0-kh17-pre5
+Icecast configure 2.4.0-kh17
generated by GNU Autoconf 2.71
Copyright (C) 2021 Free Software Foundation, Inc.
@@ -2182,7 +2182,7 @@ cat >config.log <<_ACEOF
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
-It was created by Icecast $as_me 2.4.0-kh17-pre5, which was
+It was created by Icecast $as_me 2.4.0-kh17, which was
generated by GNU Autoconf 2.71. Invocation command line was
$ $0$ac_configure_args_raw
@@ -3669,7 +3669,7 @@ fi
# Define the identity of the package.
PACKAGE='icecast'
- VERSION='2.4.0-kh17-pre5'
+ VERSION='2.4.0-kh17'
printf "%s\n" "#define PACKAGE \"$PACKAGE\"" >>confdefs.h
@@ -21561,7 +21561,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
-This file was extended by Icecast $as_me 2.4.0-kh17-pre5, which was
+This file was extended by Icecast $as_me 2.4.0-kh17, which was
generated by GNU Autoconf 2.71. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@@ -21629,7 +21629,7 @@ ac_cs_config_escaped=`printf "%s\n" "$ac_cs_config" | sed "s/^ //; s/'/'\\\\\\\\
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config='$ac_cs_config_escaped'
ac_cs_version="\\
-Icecast config.status 2.4.0-kh17-pre5
+Icecast config.status 2.4.0-kh17
configured by $0, generated by GNU Autoconf 2.71,
with options \\"\$ac_cs_config\\"
diff --git a/configure.ac b/configure.ac
index 064668a2..b8b09a11 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1,5 +1,5 @@
dnl Process this file with autoconf to produce a configure script.
-AC_INIT([Icecast], [2.4.0-kh17-pre5], [karl@kheyes.plus.com])
+AC_INIT([Icecast], [2.4.0-kh17], [karl@kheyes.plus.com])
AC_CONFIG_AUX_DIR([build-aux])
AM_INIT_AUTOMAKE([foreign])
diff --git a/win32/icecast.nsis b/win32/icecast.nsis
index 249fcfa3..97009e39 100644
--- a/win32/icecast.nsis
+++ b/win32/icecast.nsis
@@ -13,7 +13,7 @@
# installer containing your program.
Name "Icecast KH"
-OutFile "icecast-2.4.0-kh17pre5_win32_setup.exe"
+OutFile "icecast-2.4.0-kh17_win32_setup.exe"
InstallDir "$ProgramFiles\Icecast KH"
InstallDirRegKey HKLM SOFTWARE\Icecast "Install_Dir"
@@ -31,12 +31,12 @@ XPStyle on
;Version Information
-VIProductVersion "2.4.0.16"
+VIProductVersion "2.4.0.17"
VIAddVersionKey /LANG=${LANG_ENGLISH} "ProductName" "Icecast KH"
VIAddVersionKey /LANG=${LANG_ENGLISH} "ProductVersion" "2.4.0"
-VIAddVersionKey /LANG=${LANG_ENGLISH} "LegalCopyright" "Karl Heyes @2000-2022"
+VIAddVersionKey /LANG=${LANG_ENGLISH} "LegalCopyright" "Karl Heyes @2000-2023"
VIAddVersionKey /LANG=${LANG_ENGLISH} "FileDescription" "Icecast KH streaming media server installer"
-VIAddVersionKey /LANG=${LANG_ENGLISH} "FileVersion" "2.4.0-KH17pre5"
+VIAddVersionKey /LANG=${LANG_ENGLISH} "FileVersion" "2.4.0-KH17"
Page components
Page directory
diff --git a/win32/icecast64.nsis b/win32/icecast64.nsis
index e9db64cb..88036b8f 100644
--- a/win32/icecast64.nsis
+++ b/win32/icecast64.nsis
@@ -13,7 +13,7 @@
# installer containing your program.
Name "Icecast KH"
-OutFile "icecast-2.4.0-kh17pre5_win64_setup.exe"
+OutFile "icecast-2.4.0-kh17_win64_setup.exe"
InstallDir "$ProgramFiles64\Icecast KH"
InstallDirRegKey HKLM SOFTWARE\Icecast "Install_Dir"
@@ -31,12 +31,12 @@ XPStyle on
;Version Information
-VIProductVersion "2.4.0.16"
+VIProductVersion "2.4.0.17"
VIAddVersionKey /LANG=${LANG_ENGLISH} "ProductName" "Icecast KH"
VIAddVersionKey /LANG=${LANG_ENGLISH} "ProductVersion" "2.4.0"
-VIAddVersionKey /LANG=${LANG_ENGLISH} "LegalCopyright" "Karl Heyes @2000-2022"
+VIAddVersionKey /LANG=${LANG_ENGLISH} "LegalCopyright" "Karl Heyes @2000-2023"
VIAddVersionKey /LANG=${LANG_ENGLISH} "FileDescription" "Icecast KH streaming media server installer"
-VIAddVersionKey /LANG=${LANG_ENGLISH} "FileVersion" "2.4.0-KH17pre5"
+VIAddVersionKey /LANG=${LANG_ENGLISH} "FileVersion" "2.4.0-KH17"
Page components
Page directory