Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
80 commits
Select commit Hold shift + click to select a range
d27e2cc
SASL Authentication for Clients
MrLenin Jun 27, 2018
1dd995e
Reabse and address PR comments
delthas Aug 31, 2023
e819082
Update translations from Crowdin for id_ID
znc-jenkins Feb 26, 2024
f7d7d09
docker: Fix startup-sequence locations
christian-heusel Feb 28, 2024
d4bda2a
Merge pull request #1901 from christian-heusel/fix-docker-build
DarthGandalf Mar 2, 2024
4202b3a
Show a better error message if cmake is missing
DarthGandalf Mar 3, 2024
eb45a52
Merge branch '1.9.x'
DarthGandalf Mar 3, 2024
19e99fb
Try to fix merge conflict by rerunning CI
DarthGandalf Mar 3, 2024
3761c91
Update translations from Crowdin for id_ID
znc-jenkins Mar 3, 2024
8b76859
Add a helpful tooltip
viper476 Apr 9, 2024
207eaf4
Fix title case of tooltips
DarthGandalf Apr 9, 2024
82e82f0
Merge branch '1.9.x'
DarthGandalf Apr 9, 2024
1e89f7b
Fix casing
viper476 Apr 9, 2024
d6605d1
Fix casing on traffic info table
viper476 Apr 11, 2024
9372430
Merge pull request #1907 from 4G3NT/1.9.x
DarthGandalf Apr 11, 2024
8cbf8d6
Fix RCE vulnerability in modtcl
DarthGandalf Jul 1, 2024
ae353ac
ZNC 1.9.1
DarthGandalf Jul 3, 2024
25fa7a5
Return version number to 1.9.x
DarthGandalf Jul 3, 2024
0506e95
Merge branch '1.9.x'
DarthGandalf Jul 3, 2024
9e9d75c
Switch integration test to qt6 (#1916)
DarthGandalf Sep 17, 2024
afefc04
Simply disconnect if SASL not available on server
DarthGandalf Oct 13, 2024
fcef287
CI: update freebsd image
DarthGandalf Oct 13, 2024
a3867d1
unify indents in startup.pl
DarthGandalf Oct 13, 2024
25b19bb
modperl: remove given/when
DarthGandalf Oct 13, 2024
d49399b
Implement chghost capability
DarthGandalf Oct 15, 2024
9dcd44a
Make code a bit clearer
DarthGandalf Oct 15, 2024
b536d0f
Small optimization for message processing
DarthGandalf Oct 15, 2024
20c540a
Make CHGHOST work with detached channels
DarthGandalf Oct 15, 2024
309aa78
Bump actions/upload-artifact from 3 to 4 (#1902)
dependabot[bot] Oct 16, 2024
f894af5
Bump codecov/codecov-action from 3 to 4 (#1903)
dependabot[bot] Oct 16, 2024
bfd731c
Bump docker/build-push-action from 5 to 6 (#1920)
dependabot[bot] Nov 1, 2024
1224d30
Don't emulate chghost for disabled channels
DarthGandalf Dec 29, 2024
579906d
Don't send emulated chghost-JOIN to channels where the nick wasn't
DarthGandalf Dec 29, 2024
7c616f1
Avoid allocating useless vector in a loop
DarthGandalf Dec 29, 2024
dd99d3e
simplify test
DarthGandalf Dec 29, 2024
44e4b95
Welcome to 2025 (#1929)
MAGICCC Feb 7, 2025
41a0030
Merge branch 'master' into sasl
DarthGandalf Feb 13, 2025
c6ae8d1
saslplain: use CZNC::AuthUser()
DarthGandalf Feb 13, 2025
22f27b2
Fix indentation of SASL code.
DarthGandalf Feb 13, 2025
c8266aa
Rename new callback, fix build
DarthGandalf Feb 13, 2025
4ef64eb
rename next sasl module hook
DarthGandalf Feb 13, 2025
99a5a52
fail2ban: Reset the counter upon successful login
DarthGandalf Feb 15, 2025
6e9980d
Various SASL changes
DarthGandalf Feb 14, 2025
af21753
Rename saslplain to saslplainauth for consistency with other auth
DarthGandalf Feb 22, 2025
ab763a7
CMake: use cmake_{push,pop}_check_state() (#1933)
dacav Feb 23, 2025
4f07558
Remove a footgun by decreasing the SASL API surface for modules
DarthGandalf Feb 23, 2025
ed20d48
Apply suggestions from code review
DarthGandalf Feb 23, 2025
8778a2b
Parse network and client from authzid. Tests will be in future commit
DarthGandalf Feb 24, 2025
3745710
Support SASL EXTERNAL in certauth
DarthGandalf Feb 24, 2025
fc0dd14
fix flaky chghost test
DarthGandalf Feb 25, 2025
843b40b
Merge branch 'master' into sasl
DarthGandalf Feb 25, 2025
a85533b
Merge branch 'master' of github.com:znc/znc
DarthGandalf Feb 25, 2025
db5eeb1
Merge branch 'master' into sasl
DarthGandalf Feb 25, 2025
9f8015b
Add several more tests to sasl
DarthGandalf Feb 28, 2025
2e685e6
CI: disable python test on mac
DarthGandalf Mar 1, 2025
4c94434
CI: disable another python test on mac
DarthGandalf Mar 1, 2025
e8c4cda
Fix syntax of the filter
DarthGandalf Mar 1, 2025
ffcf3ae
Merge branch 'master' into sasl
DarthGandalf Mar 1, 2025
6203ae6
Remove the word "either" (#1938)
mattxtaz Mar 6, 2025
201d522
CI: try to fix crowdin CLI invocation
DarthGandalf Mar 8, 2025
2aeac2f
CI: try to update crowdin config for new format
DarthGandalf Mar 9, 2025
0524b9a
CI: update usage of crowdin client
DarthGandalf Mar 15, 2025
bf6c6c6
Update translations from Crowdin for bg_BG da_DK de_DE el_GR es_ES fr…
znc-jenkins Mar 15, 2025
ac2c307
CI: update comments in jenkinsfile crowdin
DarthGandalf Mar 15, 2025
7cbdb16
Merge branch 'master' of github.com:znc/znc
DarthGandalf Mar 15, 2025
2ac6493
Merge branch 'master' into sasl
DarthGandalf Mar 15, 2025
d657840
Merge branch 'sasl' of github.com:DarthGandalf/znc into sasl
DarthGandalf Mar 15, 2025
93e364b
Add modpython sasl test
DarthGandalf Mar 15, 2025
a7dffb8
Add modperl support for sasl
DarthGandalf Mar 16, 2025
0a45c47
SASL: Support receiving USER and NICK after CAP END
DarthGandalf Mar 16, 2025
89e6d58
SASL: Move tests which are not about modules
DarthGandalf Mar 16, 2025
ab41256
Remove accidentally added header from previous commit
DarthGandalf Mar 16, 2025
9ec6ce8
Merge pull request #1936 from DarthGandalf/sasl
DarthGandalf Mar 16, 2025
30fbf11
Fix host name retrieval during TLS certificate generation (#1935)
dacav Mar 16, 2025
29104e8
certauth: use SHA-256 instead of SHA-1 for fingerprints
DarthGandalf Mar 16, 2025
ce47e7e
Fix sending server passwords with spaces in them
DarthGandalf Mar 16, 2025
ebfe114
log: don't log user quit to disabled channels
DarthGandalf Mar 16, 2025
bf5aa45
Update translations from Crowdin for bg_BG da_DK de_DE el_GR es_ES fr…
znc-jenkins Mar 17, 2025
df6a507
Bump codecov/codecov-action from 4 to 5 (#1923)
dependabot[bot] Mar 18, 2025
69cb57e
Add @since comment to SASL module callbacks
DarthGandalf Apr 11, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
4 changes: 2 additions & 2 deletions .appveyor.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ install:
build_script:
- git submodule update --init
- mkdir build
- c:\cygwin-root\bin\sh -lc "cd $APPVEYOR_BUILD_FOLDER/build; ../configure --enable-charset --enable-zlib --enable-openssl --enable-perl --enable-python --enable-cyrus --enable-argon < /dev/null; result=$?; cmake --system-information > config.log; appveyor PushArtifact config.log; exit $result"
- c:\cygwin-root\bin\sh -lc "cd $APPVEYOR_BUILD_FOLDER/build; env ZNC_QT_VER=5 ../configure --enable-charset --enable-zlib --enable-openssl --enable-perl --enable-python --enable-cyrus --enable-argon < /dev/null; result=$?; cmake --system-information > config.log; appveyor PushArtifact config.log; exit $result"
- c:\cygwin-root\bin\sh -lc "cd $APPVEYOR_BUILD_FOLDER/build; make VERBOSE=1 -j2 < /dev/null"
- c:\cygwin-root\bin\sh -lc "cd $APPVEYOR_BUILD_FOLDER/build; make install < /dev/null"
- c:\cygwin-root\bin\sh -lc "znc --version"
Expand All @@ -27,4 +27,4 @@ build_script:
- c:\cygwin-root\bin\sh -lc "rebase -s -v $(cat /tmp/files-to-rebase)"
test_script:
- c:\cygwin-root\bin\sh -lc "cd $APPVEYOR_BUILD_FOLDER/build; make VERBOSE=1 unittest < /dev/null"
- c:\cygwin-root\bin\sh -lc "cd $APPVEYOR_BUILD_FOLDER/build; make VERBOSE=1 inttest < /dev/null"
- c:\cygwin-root\bin\sh -lc "cd $APPVEYOR_BUILD_FOLDER/build; env ZNC_QT_VER=5 make VERBOSE=1 inttest < /dev/null"
22 changes: 11 additions & 11 deletions .ci/Jenkinsfile.crowdin
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,8 @@ timestamps {
step([$class: 'WsCleanup'])
}
def tasks = [:]
def crowdin_cli = "java -jar ${tool 'crowdin-cli'}/crowdin-cli.jar --config .ci/crowdin.yml"
def crowdin_cli = "java -jar ${tool 'crowdin-cli'}/crowdin-cli.jar"
def crowdin_cli_suffix = "--config .ci/crowdin.yml"
for (def branch in branches) {
def upstream_branch = branch
def my_branch = "l10n_${branch}"
Expand All @@ -43,18 +44,16 @@ timestamps {
stage("Crowdin for ${upstream_branch}") {
withCredentials([string(credentialsId: '11c7e2b4-f990-4670-98a4-c89d2a5a2f43', variable: 'CROWDIN_API_KEY')]) {
withEnv(['CROWDIN_BASE_PATH='+pwd()]) {
sh "$crowdin_cli upload sources --branch ${upstream_branch}"
// sh "$crowdin_cli upload translations --branch ${upstream_branch}"
sh "$crowdin_cli download --branch ${upstream_branch}"
sh "$crowdin_cli upload sources --branch ${upstream_branch} ${crowdin_cli_suffix}"
// sh "$crowdin_cli upload translations --branch ${upstream_branch} ${crowdin_cli_suffix}"
sh "$crowdin_cli download --branch ${upstream_branch} ${crowdin_cli_suffix}"
}
}
sh 'LANG=C.UTF-8 find . -name "*.po" -exec msgfilter -i "{}" -o "{}.replacement" .ci/cleanup-po.pl ";"'
sh 'find . -name "*.po" -exec mv "{}.replacement" "{}" ";"'
withCredentials([string(credentialsId: 'fe727e3e-a8e0-4019-817f-6583c3c51ef7', variable: 'CROWDIN_API2_KEY')]) {
def headers = [[maskValue: true, name: 'Authorization', value: "Bearer ${env.CROWDIN_API2_KEY}"], [maskValue: false, name: 'User-Agent', value: 'https://github.com/znc/znc/blob/master/.ci/Jenkinsfile.crowdin']]
def headers = [[maskValue: true, name: 'Authorization', value: "Bearer ${env.CROWDIN_API_KEY}"], [maskValue: false, name: 'User-Agent', value: 'https://github.com/znc/znc/blob/master/.ci/Jenkinsfile.crowdin']]
def contributors = httpRequest consoleLogResponseBody: true, customHeaders: headers, url: "https://crowdin.com/api/v2/projects/289533/members?limit=500"
writeFile file: 'contributors.tmp', text: contributors.content
}
sh 'LANG=C.UTF-8 find . -name "*.po" -exec msgfilter -i "{}" -o "{}.replacement" .ci/cleanup-po.pl ";"'
sh 'find . -name "*.po" -exec mv "{}.replacement" "{}" ";"'
sh '.ci/crowdin-contributors.py < contributors.tmp'
sh 'rm contributors.tmp'
}
Expand All @@ -74,17 +73,18 @@ timestamps {
echo 'No changes found'
return
}
sh "git remote add my git@github.com:${my_user}/${my_repo}.git"
if (!pr_mode) {
sshagent(credentials: ['baf2df74-935d-40e5-b20f-076e92fa3e9f']) {
sh "git push upstream HEAD:refs/heads/${upstream_branch}"
}
return
}
// Create pull request if it doesn't exist yet
// Note: the following code hasn't been executed for long time, so probably nothing here works anymore, APIs might have changed, etc.
sh "git remote add my git@github.com:${my_user}/${my_repo}.git"
sshagent(credentials: ['6ef10f80-20dc-4661-af45-52a6e1e15749']) {
sh "git push my HEAD:refs/heads/${my_branch} -f"
}
// Create pull request if it doesn't exist yet
withCredentials([string(credentialsId: '7a2546ae-8a29-4eab-921c-6a4803456dce', variable: 'GITHUB_OAUTH_KEY')]) {
def headers = [[maskValue: true, name: 'Authorization', value: "token ${env.GITHUB_OAUTH_KEY}"], [maskValue: false, name: 'Accept', value: 'application/vnd.github.v3+json'], [maskValue: false, name: 'User-Agent', value: 'https://github.com/znc/znc/blob/master/.ci/Jenkinsfile.crowdin']]
def pulls = httpRequest consoleLogResponseBody: true, customHeaders: headers, url: "https://api.github.com/repos/${upstream_user}/${upstream_repo}/pulls?head=${my_user}:${my_branch}&base=${upstream_branch}"
Expand Down
5 changes: 3 additions & 2 deletions .ci/crowdin.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
project_identifier: znc-bouncer
# https://crowdin.com/project/znc-bouncer
project_id: 289533
preserve_hierarchy: true
api_key_env: CROWDIN_API_KEY
api_token_env: CROWDIN_API_KEY
base_path_env: CROWDIN_BASE_PATH

files:
Expand Down
4 changes: 2 additions & 2 deletions .github/build.sh
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ ls -la
cpanm --local-lib=~/perl5 local::lib
eval $(perl -I ~/perl5/lib/perl5/ -Mlocal::lib)
cpanm --notest Devel::Cover::Report::Clover
pip3 install --user coverage
pip3 install --user --break-system-packages coverage
export ZNC_MODPERL_COVERAGE=1
#export ZNC_MODPYTHON_COVERAGE=1

Expand Down Expand Up @@ -39,7 +39,7 @@ ls -lRa

case "${CC:-gcc}" in
gcc)
lcov --directory . --capture --output-file lcov-coverage.txt
lcov --directory . --capture --output-file lcov-coverage.txt --ignore-errors mismatch
lcov --list lcov-coverage.txt
;;
clang)
Expand Down
2 changes: 1 addition & 1 deletion .github/ubuntu_deps.sh
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
sudo apt-get update
sudo apt-get install -y tcl-dev libsasl2-dev libicu-dev swig qtbase5-dev libboost-locale-dev libperl-dev libargon2-dev cpanminus gettext clang llvm lcov
sudo apt-get install -y tcl-dev libsasl2-dev libicu-dev swig qt6-base-dev libboost-locale-dev libperl-dev libargon2-dev cpanminus gettext clang llvm lcov
sudo apt-get upgrade -y

35 changes: 19 additions & 16 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,24 +6,24 @@ on:
jobs:
gcc:
name: GCC
runs-on: ubuntu-20.04
runs-on: ubuntu-24.04
steps:
- uses: actions/checkout@v4
with:
submodules: true
- run: source .github/ubuntu_deps.sh
- run: source .github/build.sh
- uses: codecov/codecov-action@v3
- uses: codecov/codecov-action@v5
with:
name: ${{ github.job }}
- uses: actions/upload-artifact@v3
- uses: actions/upload-artifact@v4
with:
name: codecov debug results ${{ github.job }}
path: "/tmp/codecov.*.gz"

tarball:
name: Tarball
runs-on: ubuntu-20.04
runs-on: ubuntu-24.04
steps:
- uses: actions/checkout@v4
with:
Expand All @@ -36,19 +36,19 @@ jobs:
cd znc-git-$date
export CFGFLAGS="--with-gtest=$GITHUB_WORKSPACE/third_party/googletest/googletest --with-gmock=$GITHUB_WORKSPACE/third_party/googletest/googlemock --disable-swig"
source $GITHUB_WORKSPACE/.github/build.sh
- uses: actions/upload-artifact@v3
- uses: actions/upload-artifact@v4
with:
name: znc-tarball
path: /tmp/znc-git*.tar.gz
if-no-files-found: error
- uses: codecov/codecov-action@v3
- uses: codecov/codecov-action@v5
with:
name: ${{ github.job }}

# can be removed when asan below is fixed
clang:
name: Clang
runs-on: ubuntu-20.04
runs-on: ubuntu-24.04
env:
CXX: clang++
CC: clang
Expand All @@ -58,18 +58,18 @@ jobs:
submodules: true
- run: source .github/ubuntu_deps.sh
- run: source .github/build.sh
- uses: codecov/codecov-action@v3
- uses: codecov/codecov-action@v5
with:
name: ${{ github.job }}
- uses: actions/upload-artifact@v3
- uses: actions/upload-artifact@v4
with:
name: codecov debug results ${{ github.job }}
path: "/tmp/codecov.*.gz"


#clang_asan:
#name: Clang ASAN
#runs-on: ubuntu-20.04
#runs-on: ubuntu-24.04
#env:
#CXX: clang++
#CC: clang
Expand All @@ -81,11 +81,11 @@ jobs:
#submodules: true
#- run: source .github/ubuntu_deps.sh
#- run: source .github/build.sh
#- uses: codecov/codecov-action@v3
#- uses: codecov/codecov-action@v5

#clang_tsan:
#name: Clang TSAN
#runs-on: ubuntu-20.04
#runs-on: ubuntu-24.04
#env:
#CXX: clang++
#CC: clang
Expand All @@ -97,7 +97,7 @@ jobs:
#submodules: true
#- run: source .github/ubuntu_deps.sh
#- run: source .github/build.sh
#- uses: codecov/codecov-action@v3
#- uses: codecov/codecov-action@v5

# TODO: enable
#CXXFLAGS: "-fsanitize=memory -O1 -fno-omit-frame-pointer -fno-optimize-sibling-calls -fsanitize-memory-track-origins"
Expand All @@ -119,9 +119,12 @@ jobs:
submodules: true
- run: |
brew update
brew install icu4c qt5 gettext pkg-config cpanminus boost
brew install icu4c qt6 gettext pkg-config cpanminus boost argon2 swig
- run: source .github/build.sh
- uses: codecov/codecov-action@v3
env:
# https://github.com/znc/znc/issues/1937
GTEST_FILTER: "-*Modpython*:LanguagesTests/AllLanguages.ServerDependentCapInModule/1"
- uses: codecov/codecov-action@v5

docker:
name: Docker push
Expand Down Expand Up @@ -156,7 +159,7 @@ jobs:
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}
- uses: docker/build-push-action@v5
- uses: docker/build-push-action@v6
with:
context: .
push: ${{ github.repository == 'znc/znc' && github.event_name == 'push' }}
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/cifuzz.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ jobs:
dry-run: false
language: c++
- name: Upload Crash
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
if: failure() && steps.build.outcome == 'success'
with:
name: artifacts
Expand Down
11 changes: 8 additions & 3 deletions .github/workflows/codeql.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ name: "CodeQL"

on:
push:
branches: [ 'master', '1.6.x' ]
branches: [ 'master', '1.9.x' ]
pull_request:
# The branches below must be a subset of the branches above
branches: [ 'master' ]
Expand All @@ -12,7 +12,7 @@ on:
jobs:
analyze:
name: Analyze
runs-on: ubuntu-20.04
runs-on: ubuntu-24.04
permissions:
actions: read
contents: read
Expand All @@ -28,14 +28,19 @@ jobs:
uses: actions/checkout@v4
with:
submodules: true
- run: source .github/ubuntu_deps.sh
- run: |
source .github/ubuntu_deps.sh
sudo apt-get remove -y qt6-base-dev
sudo apt-get install -y qtbase5-dev

- name: Initialize CodeQL
uses: github/codeql-action/init@v3
with:
languages: ${{ matrix.language }}

- run: source .github/build.sh
env:
ZNC_QT_VER: "5"

- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v3
Expand Down
28 changes: 15 additions & 13 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
#
# Copyright (C) 2004-2024 ZNC, see the NOTICE file for details.
# Copyright (C) 2004-2025 ZNC, see the NOTICE file for details.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
Expand Down Expand Up @@ -55,6 +55,7 @@ include(use_homebrew)
include(GNUInstallDirs)
include(CheckCXXSymbolExists)
include(copy_csocket)
include(CMakePushCheckState)

set(CMAKE_THREAD_PREFER_PTHREAD true)
set(THREADS_PREFER_PTHREAD_FLAG true)
Expand Down Expand Up @@ -89,13 +90,12 @@ if(WANT_OPENSSL)
# LibreSSL gained that function later too.
# TODO: maybe remove this check at some point, and stop supporting old
# libssl versions
function(check_SSL_SESSION_get0_cipher)
cmake_push_check_state(RESET)
set(CMAKE_REQUIRED_LIBRARIES ${OPENSSL_LIBRARIES})
set(CMAKE_REQUIRED_INCLUDES ${OPENSSL_INCLUDE_DIR})
check_cxx_symbol_exists(SSL_SESSION_get0_cipher openssl/ssl.h
HAVE_SSL_SESSION_get0_cipher)
endfunction()
check_SSL_SESSION_get0_cipher()
cmake_pop_check_state()
set(ZNC_CMAKE_FIND_DEPS
"${ZNC_CMAKE_FIND_DEPS}\nfind_dependency(OpenSSL)")
list(APPEND zncpubdeps OpenSSL::SSL)
Expand All @@ -120,15 +120,15 @@ if(WANT_CYRUS)
# next ubuntu version has 2.1.26 which has libsasl2.pc
#
# osx (as of El Capitan) doesn't have it either...
set(_old_cmake_required_libraries "${CMAKE_REQUIRED_LIBRARIES}")
set(CMAKE_REQUIRED_LIBRARIES ${CMAKE_REQUIRED_LIBRARIES} -lsasl2)
# sys/types.h here is workaround for sasl 2.1.26:
# https://github.com/znc/znc/issues/1243
# https://lists.andrew.cmu.edu/pipermail/cyrus-sasl/2012-December/002572.html
# https://cgit.cyrus.foundation/cyrus-sasl/commit/include/sasl.h?id=2f740223fa1820dd71e6ab0e50d4964760789209
check_cxx_symbol_exists(sasl_server_init "sys/types.h;sasl/sasl.h"
CYRUS_HARDCODED)
set(CMAKE_REQUIRED_LIBRARIES "${_old_cmake_required_libraries}")
cmake_push_check_state(RESET)
set(CMAKE_REQUIRED_LIBRARIES -lsasl2)
# sys/types.h here is workaround for sasl 2.1.26:
# https://github.com/znc/znc/issues/1243
# https://lists.andrew.cmu.edu/pipermail/cyrus-sasl/2012-December/002572.html
# https://cgit.cyrus.foundation/cyrus-sasl/commit/include/sasl.h?id=2f740223fa1820dd71e6ab0e50d4964760789209
check_cxx_symbol_exists(sasl_server_init "sys/types.h;sasl/sasl.h"
CYRUS_HARDCODED)
cmake_pop_check_state()
if(CYRUS_HARDCODED)
add_library(HardcodedCyrusDep INTERFACE)
add_library(PkgConfig::CYRUS ALIAS HardcodedCyrusDep)
Expand Down Expand Up @@ -318,6 +318,8 @@ check_cxx_symbol_exists(lstat "sys/types.h;sys/stat.h;unistd.h" HAVE_LSTAT)
check_cxx_symbol_exists(getpassphrase "stdlib.h" HAVE_GETPASSPHRASE)
check_cxx_symbol_exists(tcsetattr "termios.h;unistd.h" HAVE_TCSETATTR)
check_cxx_symbol_exists(clock_gettime "time.h" HAVE_CLOCK_GETTIME)
check_cxx_symbol_exists(gethostname "unistd.h" ZNC_HAVE_GETHOSTNAME)
check_cxx_symbol_exists(uname "sys/utsname.h" ZNC_HAVE_UNAME)

# Note that old broken systems, such as OpenBSD, NetBSD, which don't support
# AI_ADDRCONFIG, also have thread-unsafe getaddrinfo(). Gladly, they fixed
Expand Down
8 changes: 8 additions & 0 deletions ChangeLog.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,11 @@
# ZNC 1.9.1 (2024-07-03)

* This is a security release to fix CVE-2024-39844: remote code execution vulnerability in modtcl.
* To mitigate this for existing installations, simply unload the modtcl module for every user, if it's loaded. Note that only users with admin rights can load modtcl at all.
* Thanks to Johannes Kuhn (DasBrain) for reporting, to glguy for the patch, and to multiple IRC network operators for help with mitigating this on server side before disclosure.
* Improve tooltips in webadmin.


# ZNC 1.9.0 (2024-02-22)

## New
Expand Down
2 changes: 1 addition & 1 deletion Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ RUN apk add --no-cache --virtual build-dependencies \
&& cd / && rm -rf /znc-src

COPY docker/slim/entrypoint.sh /
COPY docker/*/??-*.sh /startup-sequence/
COPY docker/*/??-*.sh docker/*/startup-sequence/??-*.sh /startup-sequence/

VOLUME /znc-data

Expand Down
5 changes: 3 additions & 2 deletions Jenkinsfile
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,8 @@

timestamps {
node('freebsd') {
// freebsd 13.1 + pkg install git openjdk17 cmake icu pkgconf swig python3 boost-libs gettext-tools qt5-buildtools qt5-network qt5-qmake
// AWS EC2 AMI: FreeBSD 14.1-STABLE-amd64-20241003 UEFI-PREFERRED base UFS
// pkg install git openjdk22 cmake icu pkgconf swig python3 boost-libs gettext-tools qt6-base libargon2
// Then fill known_hosts with https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/githubs-ssh-key-fingerprints
// (needed for crowdin cron job in jenkins)
timeout(time: 30, unit: 'MINUTES') {
Expand All @@ -14,7 +15,7 @@ timestamps {
}
dir("$wsdir/build") {
stage('Build') {
sh "cmake $wsdir -DWANT_PERL=ON -DWANT_PYTHON=ON -DCMAKE_INSTALL_PREFIX=$wsdir/build/install-prefix"
sh "cmake $wsdir -DWANT_PERL=ON -DWANT_PYTHON=ON -DWANT_ARGON=ON -DCMAKE_INSTALL_PREFIX=$wsdir/build/install-prefix"
sh 'make VERBOSE=1 all'
}
stage('Unit test') {
Expand Down
3 changes: 3 additions & 0 deletions TRANSLATORS.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,17 +9,20 @@ These people helped translating ZNC to various languages:
* ChaosEngine (Andrzej Pauli)
* cirinho (Ciro Moniz)
* CJSStryker
* Danit
* DarthGandalf
* dgw
* Dreiundachzig
* Dremski
* eggoez (Baguz Ach)
* eleanorsilly (ellie is not coding in the slightest)
* freonesuka (Андрей Вальтер)
* gremax
* hypech
* JakaMedia (Jaka Media Teknologi)
* Jay2k1
* kloun (Victor Kukshiev)
* kumanoff
* leon-th (Leon T.)
* LiteHell
* lorenzosu
Expand Down
Loading
Loading