sync with OpenBSD -current
This commit is contained in:
parent
f11f16fb18
commit
9134045afa
20 changed files with 344 additions and 177 deletions
|
@ -1,6 +1,6 @@
|
||||||
# $OpenBSD: Makefile,v 1.20 2024/08/18 10:02:10 tb Exp $
|
# $OpenBSD: Makefile,v 1.21 2025/01/15 10:54:17 tb Exp $
|
||||||
|
|
||||||
SUBDIR = libressl openssl11 openssl31 openssl32
|
SUBDIR = libressl openssl33 openssl34
|
||||||
|
|
||||||
# the above binaries must have been built before we can continue
|
# the above binaries must have been built before we can continue
|
||||||
SUBDIR += netcat
|
SUBDIR += netcat
|
||||||
|
@ -10,7 +10,7 @@ SUBDIR += botan
|
||||||
# What is below takes a long time.
|
# What is below takes a long time.
|
||||||
# setting REGRESS_SKIP_SLOW to "yes" in mk.conf
|
# setting REGRESS_SKIP_SLOW to "yes" in mk.conf
|
||||||
# will skip the tests that do not test libressl
|
# will skip the tests that do not test libressl
|
||||||
# but do things like test openssl11 to openssl 3
|
# but do things like test openssl 3.x to openssl 3.y
|
||||||
SUBDIR += version
|
SUBDIR += version
|
||||||
SUBDIR += cipher
|
SUBDIR += cipher
|
||||||
# This takes a really long time.
|
# This takes a really long time.
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
# $OpenBSD: Makefile,v 1.9 2024/08/18 10:02:10 tb Exp $
|
# $OpenBSD: Makefile,v 1.10 2025/01/15 10:54:17 tb Exp $
|
||||||
|
|
||||||
.include <bsd.own.mk>
|
.include <bsd.own.mk>
|
||||||
|
|
||||||
|
@ -20,14 +20,11 @@ CXX = /usr/local/bin/eg++
|
||||||
.endif
|
.endif
|
||||||
|
|
||||||
LIBRARIES = libressl
|
LIBRARIES = libressl
|
||||||
.if exists(/usr/local/bin/eopenssl11)
|
.if exists(/usr/local/bin/eopenssl33)
|
||||||
LIBRARIES += openssl11
|
LIBRARIES += openssl33
|
||||||
.endif
|
.endif
|
||||||
.if exists(/usr/local/bin/eopenssl31)
|
.if exists(/usr/local/bin/eopenssl34)
|
||||||
LIBRARIES += openssl31
|
LIBRARIES += openssl34
|
||||||
.endif
|
|
||||||
.if exists(/usr/local/bin/eopenssl32)
|
|
||||||
LIBRARIES += openssl32
|
|
||||||
.endif
|
.endif
|
||||||
|
|
||||||
PROGS = client
|
PROGS = client
|
||||||
|
|
|
@ -1,20 +1,17 @@
|
||||||
# $OpenBSD: Makefile,v 1.13 2024/08/18 10:02:10 tb Exp $
|
# $OpenBSD: Makefile,v 1.14 2025/01/15 10:54:17 tb Exp $
|
||||||
|
|
||||||
# Connect a client to a server. Both can be current libressl, or
|
# Connect a client to a server. Both can be current libressl, or
|
||||||
# openssl 1.1 or 3.0. Create client and server certificates
|
# openssl 3.x. Create client and server certificates
|
||||||
# that are signed by a CA and not signed by a fake CA. Try all
|
# that are signed by a CA and not signed by a fake CA. Try all
|
||||||
# combinations with, without, and with wrong CA for client and server
|
# combinations with, without, and with wrong CA for client and server
|
||||||
# and check the result of certificate verification.
|
# and check the result of certificate verification.
|
||||||
|
|
||||||
LIBRARIES = libressl
|
LIBRARIES = libressl
|
||||||
.if exists(/usr/local/bin/eopenssl11)
|
.if exists(/usr/local/bin/eopenssl33)
|
||||||
LIBRARIES += openssl11
|
LIBRARIES += openssl33
|
||||||
.endif
|
.endif
|
||||||
.if exists(/usr/local/bin/eopenssl31)
|
.if exists(/usr/local/bin/eopenssl34)
|
||||||
LIBRARIES += openssl31
|
LIBRARIES += openssl34
|
||||||
.endif
|
|
||||||
.if exists(/usr/local/bin/eopenssl32)
|
|
||||||
LIBRARIES += openssl32
|
|
||||||
.endif
|
.endif
|
||||||
|
|
||||||
.for cca in noca ca fakeca
|
.for cca in noca ca fakeca
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
# $OpenBSD: Makefile,v 1.16 2024/08/18 10:02:10 tb Exp $
|
# $OpenBSD: Makefile,v 1.17 2025/01/15 10:54:17 tb Exp $
|
||||||
|
|
||||||
# Connect a client to a server. Both can be current libressl, or
|
# Connect a client to a server. Both can be current libressl, or
|
||||||
# openssl 1.1 or 3.0. Create lists of supported ciphers
|
# openssl 1.1 or 3.0. Create lists of supported ciphers
|
||||||
|
@ -7,14 +7,11 @@
|
||||||
# have used correct cipher by grepping in their session print out.
|
# have used correct cipher by grepping in their session print out.
|
||||||
|
|
||||||
LIBRARIES = libressl
|
LIBRARIES = libressl
|
||||||
.if exists(/usr/local/bin/eopenssl11)
|
.if exists(/usr/local/bin/eopenssl33)
|
||||||
LIBRARIES += openssl11
|
LIBRARIES += openssl33
|
||||||
.endif
|
.endif
|
||||||
.if exists(/usr/local/bin/eopenssl31)
|
.if exists(/usr/local/bin/eopenssl34)
|
||||||
LIBRARIES += openssl31
|
LIBRARIES += openssl34
|
||||||
.endif
|
|
||||||
.if exists(/usr/local/bin/eopenssl32)
|
|
||||||
LIBRARIES += openssl32
|
|
||||||
.endif
|
.endif
|
||||||
|
|
||||||
CLEANFILES = *.tmp *.ciphers ciphers.mk
|
CLEANFILES = *.tmp *.ciphers ciphers.mk
|
||||||
|
@ -44,9 +41,8 @@ client-${clib}-server-${slib}.ciphers: \
|
||||||
uniq -d <$@.tmp >$@
|
uniq -d <$@.tmp >$@
|
||||||
# we are only interested in ciphers supported by libressl
|
# we are only interested in ciphers supported by libressl
|
||||||
sort $@ client-libressl.ciphers >$@.tmp
|
sort $@ client-libressl.ciphers >$@.tmp
|
||||||
. if "${clib}" == "openssl11" || "${slib}" == "openssl11" || \
|
. if "${clib}" == "openssl33" || "${slib}" == "openssl33" || \
|
||||||
"${clib}" == "openssl31" || "${slib}" == "openssl31" || \
|
"${clib}" == "openssl34" || "${slib}" == "openssl34"
|
||||||
"${clib}" == "openssl32" || "${slib}" == "openssl32"
|
|
||||||
# OpenSSL's SSL_CTX_set_cipher_list doesn't accept TLSv1.3 ciphers
|
# OpenSSL's SSL_CTX_set_cipher_list doesn't accept TLSv1.3 ciphers
|
||||||
sed -i '/^TLS_/d' $@.tmp
|
sed -i '/^TLS_/d' $@.tmp
|
||||||
. endif
|
. endif
|
||||||
|
@ -74,9 +70,8 @@ regress: ciphers.mk
|
||||||
.endif
|
.endif
|
||||||
|
|
||||||
LEVEL_libressl =
|
LEVEL_libressl =
|
||||||
LEVEL_openssl11 = ,@SECLEVEL=0
|
LEVEL_openssl33 = ,@SECLEVEL=0
|
||||||
LEVEL_openssl31 = ,@SECLEVEL=0
|
LEVEL_openssl34 = ,@SECLEVEL=0
|
||||||
LEVEL_openssl32 = ,@SECLEVEL=0
|
|
||||||
|
|
||||||
.for clib in ${LIBRARIES}
|
.for clib in ${LIBRARIES}
|
||||||
.for slib in ${LIBRARIES}
|
.for slib in ${LIBRARIES}
|
||||||
|
@ -137,7 +132,7 @@ check-cipher-${cipher}-client-${clib}-server-${slib}: \
|
||||||
. endif
|
. endif
|
||||||
. if "${clib}" == "libressl"
|
. if "${clib}" == "libressl"
|
||||||
# libressl client may prefer chacha-poly if aes-ni is not supported
|
# libressl client may prefer chacha-poly if aes-ni is not supported
|
||||||
. if "${slib}" == "openssl11" || "${slib}" == "openssl31" || "${slib}" == "openssl32"
|
. if "${slib}" == "openssl33" || "${slib}" == "openssl34"
|
||||||
egrep -q ' Cipher *: TLS_(AES_256_GCM_SHA384|CHACHA20_POLY1305_SHA256)$$' ${@:S/^check/server/}.out
|
egrep -q ' Cipher *: TLS_(AES_256_GCM_SHA384|CHACHA20_POLY1305_SHA256)$$' ${@:S/^check/server/}.out
|
||||||
. else
|
. else
|
||||||
egrep -q ' Cipher *: TLS_(AES_256_GCM_SHA384|CHACHA20_POLY1305_SHA256)$$' ${@:S/^check/server/}.out
|
egrep -q ' Cipher *: TLS_(AES_256_GCM_SHA384|CHACHA20_POLY1305_SHA256)$$' ${@:S/^check/server/}.out
|
||||||
|
|
|
@ -1,14 +1,11 @@
|
||||||
# $OpenBSD: Makefile,v 1.9 2024/08/18 10:02:10 tb Exp $
|
# $OpenBSD: Makefile,v 1.10 2025/01/15 10:54:17 tb Exp $
|
||||||
|
|
||||||
LIBRARIES = libressl
|
LIBRARIES = libressl
|
||||||
.if exists(/usr/local/bin/eopenssl11)
|
.if exists(/usr/local/bin/eopenssl33)
|
||||||
LIBRARIES += openssl11
|
LIBRARIES += openssl33
|
||||||
.endif
|
.endif
|
||||||
.if exists(/usr/local/bin/eopenssl31)
|
.if exists(/usr/local/bin/eopenssl34)
|
||||||
LIBRARIES += openssl31
|
LIBRARIES += openssl34
|
||||||
.endif
|
|
||||||
.if exists(/usr/local/bin/eopenssl32)
|
|
||||||
LIBRARIES += openssl32
|
|
||||||
.endif
|
.endif
|
||||||
|
|
||||||
# run netcat server and connect with test client
|
# run netcat server and connect with test client
|
||||||
|
|
|
@ -1,43 +0,0 @@
|
||||||
# $OpenBSD: Makefile,v 1.8 2021/12/02 17:10:53 kn Exp $
|
|
||||||
|
|
||||||
.if ! exists(/usr/local/bin/eopenssl11)
|
|
||||||
regress:
|
|
||||||
# install openssl-1.1 from ports for interop tests
|
|
||||||
@echo 'Run "pkg_add openssl--%1.1" to run tests against OpenSSL 1.1'
|
|
||||||
@echo SKIPPED
|
|
||||||
.else
|
|
||||||
|
|
||||||
PROGS = client server
|
|
||||||
CPPFLAGS = -I /usr/local/include/eopenssl11
|
|
||||||
LDFLAGS = -L /usr/local/lib/eopenssl11
|
|
||||||
LDADD = -lssl -lcrypto
|
|
||||||
DPADD = /usr/local/lib/eopenssl11/libssl.a \
|
|
||||||
/usr/local/lib/eopenssl11/libcrypto.a
|
|
||||||
LD_LIBRARY_PATH = /usr/local/lib/eopenssl11
|
|
||||||
REGRESS_TARGETS = run-self-client-server
|
|
||||||
.for p in ${PROGS}
|
|
||||||
REGRESS_TARGETS += run-ldd-$p run-version-$p run-protocol-$p
|
|
||||||
.endfor
|
|
||||||
|
|
||||||
.for p in ${PROGS}
|
|
||||||
|
|
||||||
run-ldd-$p: ldd-$p.out
|
|
||||||
# check that $p is linked with OpenSSL 1.1
|
|
||||||
grep -q /usr/local/lib/eopenssl11/libcrypto.so ldd-$p.out
|
|
||||||
grep -q /usr/local/lib/eopenssl11/libssl.so ldd-$p.out
|
|
||||||
# check that $p is not linked with LibreSSL
|
|
||||||
! grep -v libc.so ldd-$p.out | grep /usr/lib/
|
|
||||||
|
|
||||||
run-version-$p: $p-self.out
|
|
||||||
# check that runtime version is OpenSSL 1.1
|
|
||||||
grep 'SSLEAY_VERSION: OpenSSL 1.1' $p-self.out
|
|
||||||
|
|
||||||
run-protocol-$p: $p-self.out
|
|
||||||
# check that OpenSSL 1.1 protocol version is TLS 1.3
|
|
||||||
grep 'Protocol *: TLSv1.3' $p-self.out
|
|
||||||
|
|
||||||
.endfor
|
|
||||||
|
|
||||||
.endif # exists(/usr/local/bin/eopenssl11)
|
|
||||||
|
|
||||||
.include <bsd.regress.mk>
|
|
|
@ -1,44 +0,0 @@
|
||||||
# $OpenBSD: Makefile,v 1.2 2024/10/22 16:31:10 tb Exp $
|
|
||||||
|
|
||||||
.if ! exists(/usr/local/bin/eopenssl32)
|
|
||||||
regress:
|
|
||||||
# install openssl-3.2 ports for interop tests
|
|
||||||
@echo 'Run "pkg_add openssl--%3.2" to run tests against OpenSSL 3.2'
|
|
||||||
@echo SKIPPED
|
|
||||||
.else
|
|
||||||
|
|
||||||
PROGS = client server
|
|
||||||
CFLAGS += -DOPENSSL_SUPPRESS_DEPRECATED
|
|
||||||
CPPFLAGS = -I /usr/local/include/eopenssl32
|
|
||||||
LDFLAGS = -L /usr/local/lib/eopenssl32
|
|
||||||
LDADD = -lssl -lcrypto
|
|
||||||
DPADD = /usr/local/lib/eopenssl32/libssl.a \
|
|
||||||
/usr/local/lib/eopenssl32/libcrypto.a
|
|
||||||
LD_LIBRARY_PATH = /usr/local/lib/eopenssl32
|
|
||||||
REGRESS_TARGETS = run-self-client-server
|
|
||||||
.for p in ${PROGS}
|
|
||||||
REGRESS_TARGETS += run-ldd-$p run-version-$p run-protocol-$p
|
|
||||||
.endfor
|
|
||||||
|
|
||||||
.for p in ${PROGS}
|
|
||||||
|
|
||||||
run-ldd-$p: ldd-$p.out
|
|
||||||
# check that $p is linked with OpenSSL 3.2
|
|
||||||
grep -q /usr/local/lib/eopenssl32/libcrypto.so ldd-$p.out
|
|
||||||
grep -q /usr/local/lib/eopenssl32/libssl.so ldd-$p.out
|
|
||||||
# check that $p is not linked with LibreSSL
|
|
||||||
! grep -v libc.so ldd-$p.out | grep /usr/lib/
|
|
||||||
|
|
||||||
run-version-$p: $p-self.out
|
|
||||||
# check that runtime version is OpenSSL 3.2
|
|
||||||
grep 'SSLEAY_VERSION: OpenSSL 3.2' $p-self.out
|
|
||||||
|
|
||||||
run-protocol-$p: $p-self.out
|
|
||||||
# check that OpenSSL 3.2 protocol version is TLS 1.3
|
|
||||||
grep 'Protocol *: TLSv1.3' $p-self.out
|
|
||||||
|
|
||||||
.endfor
|
|
||||||
|
|
||||||
.endif # exists(/usr/local/bin/eopenssl32)
|
|
||||||
|
|
||||||
.include <bsd.regress.mk>
|
|
44
regress/lib/libssl/interop/openssl33/Makefile
Normal file
44
regress/lib/libssl/interop/openssl33/Makefile
Normal file
|
@ -0,0 +1,44 @@
|
||||||
|
# $OpenBSD: Makefile,v 1.1 2025/01/15 10:54:17 tb Exp $
|
||||||
|
|
||||||
|
.if ! exists(/usr/local/bin/eopenssl33)
|
||||||
|
regress:
|
||||||
|
# install openssl-3.3 from ports for interop tests
|
||||||
|
@echo 'Run "pkg_add openssl--%3.3" to run tests against OpenSSL 3.3'
|
||||||
|
@echo SKIPPED
|
||||||
|
.else
|
||||||
|
|
||||||
|
PROGS = client server
|
||||||
|
CFLAGS += -DOPENSSL_SUPPRESS_DEPRECATED
|
||||||
|
CPPFLAGS = -I /usr/local/include/eopenssl33
|
||||||
|
LDFLAGS = -L /usr/local/lib/eopenssl33
|
||||||
|
LDADD = -lssl -lcrypto
|
||||||
|
DPADD = /usr/local/lib/eopenssl33/libssl.a \
|
||||||
|
/usr/local/lib/eopenssl33/libcrypto.a
|
||||||
|
LD_LIBRARY_PATH = /usr/local/lib/eopenssl33
|
||||||
|
REGRESS_TARGETS = run-self-client-server
|
||||||
|
.for p in ${PROGS}
|
||||||
|
REGRESS_TARGETS += run-ldd-$p run-version-$p run-protocol-$p
|
||||||
|
.endfor
|
||||||
|
|
||||||
|
.for p in ${PROGS}
|
||||||
|
|
||||||
|
run-ldd-$p: ldd-$p.out
|
||||||
|
# check that $p is linked with OpenSSL 3.3
|
||||||
|
grep -q /usr/local/lib/eopenssl33/libcrypto.so ldd-$p.out
|
||||||
|
grep -q /usr/local/lib/eopenssl33/libssl.so ldd-$p.out
|
||||||
|
# check that $p is not linked with LibreSSL
|
||||||
|
! grep -v libc.so ldd-$p.out | grep /usr/lib/
|
||||||
|
|
||||||
|
run-version-$p: $p-self.out
|
||||||
|
# check that runtime version is OpenSSL 3.3
|
||||||
|
grep 'SSLEAY_VERSION: OpenSSL 3.3' $p-self.out
|
||||||
|
|
||||||
|
run-protocol-$p: $p-self.out
|
||||||
|
# check that OpenSSL 3.3 protocol version is TLS 1.3
|
||||||
|
grep 'Protocol *: TLSv1.3' $p-self.out
|
||||||
|
|
||||||
|
.endfor
|
||||||
|
|
||||||
|
.endif # exists(/usr/local/bin/eopenssl33)
|
||||||
|
|
||||||
|
.include <bsd.regress.mk>
|
44
regress/lib/libssl/interop/openssl34/Makefile
Normal file
44
regress/lib/libssl/interop/openssl34/Makefile
Normal file
|
@ -0,0 +1,44 @@
|
||||||
|
# $OpenBSD: Makefile,v 1.1 2025/01/15 10:54:17 tb Exp $
|
||||||
|
|
||||||
|
.if ! exists(/usr/local/bin/eopenssl34)
|
||||||
|
regress:
|
||||||
|
# install openssl-3.4 from ports for interop tests
|
||||||
|
@echo 'Run "pkg_add openssl--%3.4" to run tests against OpenSSL 3.4'
|
||||||
|
@echo SKIPPED
|
||||||
|
.else
|
||||||
|
|
||||||
|
PROGS = client server
|
||||||
|
CFLAGS += -DOPENSSL_SUPPRESS_DEPRECATED
|
||||||
|
CPPFLAGS = -I /usr/local/include/eopenssl34
|
||||||
|
LDFLAGS = -L /usr/local/lib/eopenssl34
|
||||||
|
LDADD = -lssl -lcrypto
|
||||||
|
DPADD = /usr/local/lib/eopenssl34/libssl.a \
|
||||||
|
/usr/local/lib/eopenssl34/libcrypto.a
|
||||||
|
LD_LIBRARY_PATH = /usr/local/lib/eopenssl34
|
||||||
|
REGRESS_TARGETS = run-self-client-server
|
||||||
|
.for p in ${PROGS}
|
||||||
|
REGRESS_TARGETS += run-ldd-$p run-version-$p run-protocol-$p
|
||||||
|
.endfor
|
||||||
|
|
||||||
|
.for p in ${PROGS}
|
||||||
|
|
||||||
|
run-ldd-$p: ldd-$p.out
|
||||||
|
# check that $p is linked with OpenSSL 3.4
|
||||||
|
grep -q /usr/local/lib/eopenssl34/libcrypto.so ldd-$p.out
|
||||||
|
grep -q /usr/local/lib/eopenssl34/libssl.so ldd-$p.out
|
||||||
|
# check that $p is not linked with LibreSSL
|
||||||
|
! grep -v libc.so ldd-$p.out | grep /usr/lib/
|
||||||
|
|
||||||
|
run-version-$p: $p-self.out
|
||||||
|
# check that runtime version is OpenSSL 3.4
|
||||||
|
grep 'SSLEAY_VERSION: OpenSSL 3.4' $p-self.out
|
||||||
|
|
||||||
|
run-protocol-$p: $p-self.out
|
||||||
|
# check that OpenSSL 3.4 protocol version is TLS 1.3
|
||||||
|
grep 'Protocol *: TLSv1.3' $p-self.out
|
||||||
|
|
||||||
|
.endfor
|
||||||
|
|
||||||
|
.endif # exists(/usr/local/bin/eopenssl34)
|
||||||
|
|
||||||
|
.include <bsd.regress.mk>
|
|
@ -1,20 +1,14 @@
|
||||||
# $OpenBSD: Makefile,v 1.11 2024/08/18 10:02:10 tb Exp $
|
# $OpenBSD: Makefile,v 1.12 2025/01/15 10:54:17 tb Exp $
|
||||||
|
|
||||||
LIBRARIES = libressl
|
LIBRARIES = libressl
|
||||||
.if exists(/usr/local/bin/eopenssl11)
|
.if exists(/usr/local/bin/eopenssl33)
|
||||||
LIBRARIES += openssl11
|
#LIBRARIES += openssl33
|
||||||
.endif
|
.endif
|
||||||
.if exists(/usr/local/bin/eopenssl31)
|
.if exists(/usr/local/bin/eopenssl34)
|
||||||
#LIBRARIES += openssl31
|
#LIBRARIES += openssl34
|
||||||
.endif
|
|
||||||
.if exists(/usr/local/bin/eopenssl32)
|
|
||||||
#LIBRARIES += openssl32
|
|
||||||
.endif
|
.endif
|
||||||
|
|
||||||
run-session-client-libressl-server-libressl \
|
run-session-client-libressl-server-libressl:
|
||||||
run-session-client-libressl-server-openssl11 \
|
|
||||||
run-session-client-openssl11-server-libressl \
|
|
||||||
run-session-client-openssl11-server-openssl11:
|
|
||||||
# TLS 1.3 needs some extra setup for session reuse
|
# TLS 1.3 needs some extra setup for session reuse
|
||||||
@echo DISABLED
|
@echo DISABLED
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
# $OpenBSD: Makefile,v 1.9 2024/08/18 10:02:10 tb Exp $
|
# $OpenBSD: Makefile,v 1.10 2025/01/15 10:54:17 tb Exp $
|
||||||
|
|
||||||
# Connect a client to a server. Both can be current libressl, or
|
# Connect a client to a server. Both can be current libressl, or
|
||||||
# openssl 1.1 or openssl 3.0. Pin client or server to a fixed TLS
|
# openssl 1.1 or openssl 3.0. Pin client or server to a fixed TLS
|
||||||
|
@ -7,11 +7,11 @@
|
||||||
# print out.
|
# print out.
|
||||||
|
|
||||||
LIBRARIES = libressl
|
LIBRARIES = libressl
|
||||||
.if exists(/usr/local/bin/eopenssl11)
|
.if exists(/usr/local/bin/eopenssl33)
|
||||||
LIBRARIES += openssl11
|
LIBRARIES += openssl33
|
||||||
.endif
|
.endif
|
||||||
.if exists(/usr/local/bin/eopenssl31)
|
.if exists(/usr/local/bin/eopenssl34)
|
||||||
LIBRARIES += openssl31
|
LIBRARIES += openssl34
|
||||||
.endif
|
.endif
|
||||||
|
|
||||||
VERSIONS = any TLS1_2 TLS1_3
|
VERSIONS = any TLS1_2 TLS1_3
|
||||||
|
@ -29,7 +29,8 @@ FAIL_${cver}_${sver} = !
|
||||||
.for slib in ${LIBRARIES}
|
.for slib in ${LIBRARIES}
|
||||||
|
|
||||||
.if ("${cver}" != TLS1_3 && "${sver}" != TLS1_3) && \
|
.if ("${cver}" != TLS1_3 && "${sver}" != TLS1_3) && \
|
||||||
((("${clib}" != openssl31 && "${slib}" != openssl31)) || \
|
((("${clib}" != openssl33 && "${slib}" != openssl33)) || \
|
||||||
|
(("${clib}" != openssl34 && "${slib}" != openssl34)) || \
|
||||||
(("${cver}" != any && "${sver}" != any) && \
|
(("${cver}" != any && "${sver}" != any) && \
|
||||||
("${cver}" != TLS1 && "${sver}" != TLS1) && \
|
("${cver}" != TLS1 && "${sver}" != TLS1) && \
|
||||||
("${cver}" != TLS1_1 && "${sver}" != TLS1_1)))
|
("${cver}" != TLS1_1 && "${sver}" != TLS1_1)))
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
#
|
#
|
||||||
# $OpenBSD: appstest.sh,v 1.65 2024/08/23 04:57:12 tb Exp $
|
# $OpenBSD: appstest.sh,v 1.66 2025/01/15 05:02:01 tb Exp $
|
||||||
#
|
#
|
||||||
# Copyright (c) 2016 Kinichiro Inoguchi <inoguchi@openbsd.org>
|
# Copyright (c) 2016 Kinichiro Inoguchi <inoguchi@openbsd.org>
|
||||||
#
|
#
|
||||||
|
@ -1883,7 +1883,7 @@ function test_version {
|
||||||
#---------#---------#---------#---------#---------#---------#---------#---------
|
#---------#---------#---------#---------#---------#---------#---------#---------
|
||||||
|
|
||||||
openssl_bin=${OPENSSL:-/usr/bin/openssl}
|
openssl_bin=${OPENSSL:-/usr/bin/openssl}
|
||||||
other_openssl_bin=${OTHER_OPENSSL:-/usr/local/bin/eopenssl11}
|
other_openssl_bin=${OTHER_OPENSSL:-/usr/local/bin/eopenssl33}
|
||||||
other_openssl_version=`$other_openssl_bin version | cut -b 1-10`
|
other_openssl_version=`$other_openssl_bin version | cut -b 1-10`
|
||||||
|
|
||||||
ecdsa_tests=0
|
ecdsa_tests=0
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
# $OpenBSD: Makefile,v 1.14 2024/09/04 04:35:30 tb Exp $
|
# $OpenBSD: Makefile,v 1.15 2025/01/15 11:00:09 tb Exp $
|
||||||
|
|
||||||
SUBDIR += libressl
|
SUBDIR += libressl
|
||||||
.if exists(/usr/local/bin/eopenssl32)
|
.if exists(/usr/local/bin/eopenssl33)
|
||||||
SUBDIR += openssl
|
SUBDIR += openssl
|
||||||
.endif
|
.endif
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
# $OpenBSD: Makefile,v 1.2 2024/10/15 21:03:10 tb Exp $
|
# $OpenBSD: Makefile,v 1.3 2025/01/15 11:00:09 tb Exp $
|
||||||
|
|
||||||
EOPENSSL = eopenssl32
|
EOPENSSL = eopenssl33
|
||||||
|
|
||||||
LDADD += -Wl,-rpath,/usr/local/lib/${EOPENSSL} -L/usr/local/lib/${EOPENSSL}
|
LDADD += -Wl,-rpath,/usr/local/lib/${EOPENSSL} -L/usr/local/lib/${EOPENSSL}
|
||||||
CFLAGS += -I${.CURDIR}/ -I/usr/local/include/${EOPENSSL}/
|
CFLAGS += -I${.CURDIR}/ -I/usr/local/include/${EOPENSSL}/
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
/* $OpenBSD: if_ethersubr.c,v 1.295 2025/01/07 05:36:52 guenther Exp $ */
|
/* $OpenBSD: if_ethersubr.c,v 1.296 2025/01/15 06:15:44 dlg Exp $ */
|
||||||
/* $NetBSD: if_ethersubr.c,v 1.19 1996/05/07 02:40:30 thorpej Exp $ */
|
/* $NetBSD: if_ethersubr.c,v 1.19 1996/05/07 02:40:30 thorpej Exp $ */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -569,7 +569,8 @@ ether_input(struct ifnet *ifp, struct mbuf *m)
|
||||||
if (mq_enqueue(&pppoediscinq, m) == 0)
|
if (mq_enqueue(&pppoediscinq, m) == 0)
|
||||||
schednetisr(NETISR_PPPOE);
|
schednetisr(NETISR_PPPOE);
|
||||||
} else {
|
} else {
|
||||||
if (mq_enqueue(&pppoeinq, m) == 0)
|
m = pppoe_vinput(ifp, m);
|
||||||
|
if (m != NULL && mq_enqueue(&pppoeinq, m) == 0)
|
||||||
schednetisr(NETISR_PPPOE);
|
schednetisr(NETISR_PPPOE);
|
||||||
}
|
}
|
||||||
return;
|
return;
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
/* $OpenBSD: if_pppoe.c,v 1.84 2024/06/26 01:40:49 jsg Exp $ */
|
/* $OpenBSD: if_pppoe.c,v 1.85 2025/01/15 06:15:44 dlg Exp $ */
|
||||||
/* $NetBSD: if_pppoe.c,v 1.51 2003/11/28 08:56:48 keihan Exp $ */
|
/* $NetBSD: if_pppoe.c,v 1.51 2003/11/28 08:56:48 keihan Exp $ */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -42,6 +42,8 @@
|
||||||
#include <sys/socket.h>
|
#include <sys/socket.h>
|
||||||
#include <sys/syslog.h>
|
#include <sys/syslog.h>
|
||||||
#include <sys/ioctl.h>
|
#include <sys/ioctl.h>
|
||||||
|
#include <sys/smr.h>
|
||||||
|
#include <sys/percpu.h>
|
||||||
#include <net/if.h>
|
#include <net/if.h>
|
||||||
#include <net/if_var.h>
|
#include <net/if_var.h>
|
||||||
#include <net/if_types.h>
|
#include <net/if_types.h>
|
||||||
|
@ -124,7 +126,9 @@ struct pppoe_softc {
|
||||||
struct sppp sc_sppp; /* contains a struct ifnet as first element */
|
struct sppp sc_sppp; /* contains a struct ifnet as first element */
|
||||||
LIST_ENTRY(pppoe_softc) sc_list;/* [K] */
|
LIST_ENTRY(pppoe_softc) sc_list;/* [K] */
|
||||||
unsigned int sc_eth_ifidx; /* [K] */
|
unsigned int sc_eth_ifidx; /* [K] */
|
||||||
|
caddr_t sc_bpf;
|
||||||
|
|
||||||
|
SMR_LIST_ENTRY(pppoe_softc) sc_session_entry; /* [K] */
|
||||||
int sc_state; /* [K] discovery phase or session connected */
|
int sc_state; /* [K] discovery phase or session connected */
|
||||||
struct ether_addr sc_dest; /* [K] hardware address of concentrator */
|
struct ether_addr sc_dest; /* [K] hardware address of concentrator */
|
||||||
u_int16_t sc_session; /* [K] PPPoE session id */
|
u_int16_t sc_session; /* [K] PPPoE session id */
|
||||||
|
@ -175,6 +179,7 @@ static struct pppoe_softc *pppoe_find_softc_by_hunique(u_int8_t *, size_t, u_int
|
||||||
static struct mbuf *pppoe_get_mbuf(size_t len);
|
static struct mbuf *pppoe_get_mbuf(size_t len);
|
||||||
|
|
||||||
LIST_HEAD(pppoe_softc_head, pppoe_softc) pppoe_softc_list;
|
LIST_HEAD(pppoe_softc_head, pppoe_softc) pppoe_softc_list;
|
||||||
|
SMR_LIST_HEAD(pppoe_softc_sessions, pppoe_softc) pppoe_sessions; /* [K] */
|
||||||
|
|
||||||
/* interface cloning */
|
/* interface cloning */
|
||||||
int pppoe_clone_create(struct if_clone *, int);
|
int pppoe_clone_create(struct if_clone *, int);
|
||||||
|
@ -209,9 +214,19 @@ void
|
||||||
pppoeattach(int count)
|
pppoeattach(int count)
|
||||||
{
|
{
|
||||||
LIST_INIT(&pppoe_softc_list);
|
LIST_INIT(&pppoe_softc_list);
|
||||||
|
SMR_LIST_INIT(&pppoe_sessions);
|
||||||
if_clone_attach(&pppoe_cloner);
|
if_clone_attach(&pppoe_cloner);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
pppoe_set_state(struct pppoe_softc *sc, int state)
|
||||||
|
{
|
||||||
|
KERNEL_ASSERT_LOCKED();
|
||||||
|
if (sc->sc_state == PPPOE_STATE_SESSION)
|
||||||
|
SMR_LIST_REMOVE_LOCKED(sc, sc_session_entry);
|
||||||
|
sc->sc_state = state;
|
||||||
|
}
|
||||||
|
|
||||||
/* Create a new interface. */
|
/* Create a new interface. */
|
||||||
int
|
int
|
||||||
pppoe_clone_create(struct if_clone *ifc, int unit)
|
pppoe_clone_create(struct if_clone *ifc, int unit)
|
||||||
|
@ -230,6 +245,8 @@ pppoe_clone_create(struct if_clone *ifc, int unit)
|
||||||
sc->sc_sppp.pp_if.if_hdrlen = sizeof(struct ether_header) + PPPOE_HEADERLEN;
|
sc->sc_sppp.pp_if.if_hdrlen = sizeof(struct ether_header) + PPPOE_HEADERLEN;
|
||||||
sc->sc_sppp.pp_flags |= PP_KEEPALIVE; /* use LCP keepalive */
|
sc->sc_sppp.pp_flags |= PP_KEEPALIVE; /* use LCP keepalive */
|
||||||
sc->sc_sppp.pp_framebytes = PPPOE_HEADERLEN; /* framing added to ppp packets */
|
sc->sc_sppp.pp_framebytes = PPPOE_HEADERLEN; /* framing added to ppp packets */
|
||||||
|
sc->sc_sppp.pp_if.if_input = p2p_input;
|
||||||
|
sc->sc_sppp.pp_if.if_bpf_mtap = p2p_bpf_mtap;
|
||||||
sc->sc_sppp.pp_if.if_ioctl = pppoe_ioctl;
|
sc->sc_sppp.pp_if.if_ioctl = pppoe_ioctl;
|
||||||
sc->sc_sppp.pp_if.if_start = pppoe_start;
|
sc->sc_sppp.pp_if.if_start = pppoe_start;
|
||||||
sc->sc_sppp.pp_if.if_rtrequest = p2p_rtrequest;
|
sc->sc_sppp.pp_if.if_rtrequest = p2p_rtrequest;
|
||||||
|
@ -243,11 +260,14 @@ pppoe_clone_create(struct if_clone *ifc, int unit)
|
||||||
/* init timer for interface watchdog */
|
/* init timer for interface watchdog */
|
||||||
timeout_set_proc(&sc->sc_timeout, pppoe_timeout, sc);
|
timeout_set_proc(&sc->sc_timeout, pppoe_timeout, sc);
|
||||||
|
|
||||||
|
if_counters_alloc(&sc->sc_sppp.pp_if);
|
||||||
if_attach(&sc->sc_sppp.pp_if);
|
if_attach(&sc->sc_sppp.pp_if);
|
||||||
if_alloc_sadl(&sc->sc_sppp.pp_if);
|
if_alloc_sadl(&sc->sc_sppp.pp_if);
|
||||||
sppp_attach(&sc->sc_sppp.pp_if);
|
sppp_attach(&sc->sc_sppp.pp_if);
|
||||||
#if NBPFILTER > 0
|
#if NBPFILTER > 0
|
||||||
bpfattach(&sc->sc_sppp.pp_if.if_bpf, &sc->sc_sppp.pp_if, DLT_PPP_ETHER, 0);
|
bpfattach(&sc->sc_bpf, &sc->sc_sppp.pp_if, DLT_PPP_ETHER, 0);
|
||||||
|
bpfattach(&sc->sc_sppp.pp_if.if_bpf, &sc->sc_sppp.pp_if,
|
||||||
|
DLT_LOOP, sizeof(uint32_t));
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
NET_LOCK();
|
NET_LOCK();
|
||||||
|
@ -274,6 +294,7 @@ pppoe_clone_destroy(struct ifnet *ifp)
|
||||||
NET_UNLOCK();
|
NET_UNLOCK();
|
||||||
|
|
||||||
timeout_del(&sc->sc_timeout);
|
timeout_del(&sc->sc_timeout);
|
||||||
|
pppoe_set_state(sc, PPPOE_STATE_INITIAL);
|
||||||
|
|
||||||
sppp_detach(&sc->sc_sppp.pp_if);
|
sppp_detach(&sc->sc_sppp.pp_if);
|
||||||
if_detach(ifp);
|
if_detach(ifp);
|
||||||
|
@ -289,6 +310,8 @@ pppoe_clone_destroy(struct ifnet *ifp)
|
||||||
if (sc->sc_relay_sid)
|
if (sc->sc_relay_sid)
|
||||||
free(sc->sc_relay_sid, M_DEVBUF, sc->sc_relay_sid_len);
|
free(sc->sc_relay_sid, M_DEVBUF, sc->sc_relay_sid_len);
|
||||||
|
|
||||||
|
smr_barrier();
|
||||||
|
|
||||||
free(sc, M_DEVBUF, sizeof(*sc));
|
free(sc, M_DEVBUF, sizeof(*sc));
|
||||||
|
|
||||||
return (0);
|
return (0);
|
||||||
|
@ -318,6 +341,28 @@ pppoe_find_softc_by_session(u_int session, u_int ifidx)
|
||||||
return (NULL);
|
return (NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static struct pppoe_softc *
|
||||||
|
pppoe_smr_find_by_session(u_int session, u_int ifidx)
|
||||||
|
{
|
||||||
|
struct pppoe_softc *sc;
|
||||||
|
|
||||||
|
if (session == 0)
|
||||||
|
return (NULL);
|
||||||
|
|
||||||
|
smr_read_enter();
|
||||||
|
SMR_LIST_FOREACH(sc, &pppoe_sessions, sc_session_entry) {
|
||||||
|
if (sc->sc_session == session &&
|
||||||
|
sc->sc_eth_ifidx == ifidx) {
|
||||||
|
/* XXX if_ref() */
|
||||||
|
refcnt_take(&sc->sc_sppp.pp_if.if_refcnt);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
smr_read_leave();
|
||||||
|
|
||||||
|
return (sc);
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Check host unique token passed and return appropriate softc pointer,
|
* Check host unique token passed and return appropriate softc pointer,
|
||||||
* or NULL if token is bogus.
|
* or NULL if token is bogus.
|
||||||
|
@ -603,7 +648,7 @@ breakbreak:
|
||||||
|
|
||||||
memcpy(&sc->sc_dest, eh->ether_shost, sizeof(sc->sc_dest));
|
memcpy(&sc->sc_dest, eh->ether_shost, sizeof(sc->sc_dest));
|
||||||
sc->sc_padr_retried = 0;
|
sc->sc_padr_retried = 0;
|
||||||
sc->sc_state = PPPOE_STATE_PADR_SENT;
|
pppoe_set_state(sc, PPPOE_STATE_PADR_SENT);
|
||||||
if ((err = pppoe_send_padr(sc)) != 0) {
|
if ((err = pppoe_send_padr(sc)) != 0) {
|
||||||
PPPOEDEBUG(("%s: failed to send PADR, error=%d\n",
|
PPPOEDEBUG(("%s: failed to send PADR, error=%d\n",
|
||||||
sc->sc_sppp.pp_if.if_xname, err));
|
sc->sc_sppp.pp_if.if_xname, err));
|
||||||
|
@ -616,12 +661,16 @@ breakbreak:
|
||||||
if (sc == NULL)
|
if (sc == NULL)
|
||||||
goto done;
|
goto done;
|
||||||
|
|
||||||
|
KERNEL_ASSERT_LOCKED();
|
||||||
|
|
||||||
sc->sc_session = session;
|
sc->sc_session = session;
|
||||||
timeout_del(&sc->sc_timeout);
|
timeout_del(&sc->sc_timeout);
|
||||||
PPPOEDEBUG(("%s: session 0x%x connected\n",
|
PPPOEDEBUG(("%s: session 0x%x connected\n",
|
||||||
sc->sc_sppp.pp_if.if_xname, session));
|
sc->sc_sppp.pp_if.if_xname, session));
|
||||||
sc->sc_state = PPPOE_STATE_SESSION;
|
sc->sc_state = PPPOE_STATE_SESSION;
|
||||||
getmicrouptime(&sc->sc_session_time);
|
getmicrouptime(&sc->sc_session_time);
|
||||||
|
SMR_LIST_INSERT_HEAD_LOCKED(&pppoe_sessions, sc,
|
||||||
|
sc_session_entry);
|
||||||
sc->sc_sppp.pp_up(&sc->sc_sppp); /* notify upper layers */
|
sc->sc_sppp.pp_up(&sc->sc_sppp); /* notify upper layers */
|
||||||
|
|
||||||
break;
|
break;
|
||||||
|
@ -635,7 +684,7 @@ breakbreak:
|
||||||
sc->sc_sppp.pp_if.if_xname, session));
|
sc->sc_sppp.pp_if.if_xname, session));
|
||||||
|
|
||||||
/* clean up softc */
|
/* clean up softc */
|
||||||
sc->sc_state = PPPOE_STATE_INITIAL;
|
pppoe_set_state(sc, PPPOE_STATE_PADR_SENT);
|
||||||
memcpy(&sc->sc_dest, etherbroadcastaddr, sizeof(sc->sc_dest));
|
memcpy(&sc->sc_dest, etherbroadcastaddr, sizeof(sc->sc_dest));
|
||||||
if (sc->sc_ac_cookie) {
|
if (sc->sc_ac_cookie) {
|
||||||
free(sc->sc_ac_cookie, M_DEVBUF,
|
free(sc->sc_ac_cookie, M_DEVBUF,
|
||||||
|
@ -677,6 +726,108 @@ pppoe_disc_input(struct mbuf *m)
|
||||||
m_freem(m);
|
m_freem(m);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
struct mbuf *
|
||||||
|
pppoe_vinput(struct ifnet *ifp0, struct mbuf *m)
|
||||||
|
{
|
||||||
|
struct pppoe_softc *sc;
|
||||||
|
struct ifnet *ifp;
|
||||||
|
struct ether_header *eh;
|
||||||
|
struct pppoehdr *ph;
|
||||||
|
uint16_t proto;
|
||||||
|
int hlen = sizeof(*eh) + sizeof(*ph);
|
||||||
|
int phlen;
|
||||||
|
int plen;
|
||||||
|
int af = AF_UNSPEC;
|
||||||
|
#if NBPFILTER > 0
|
||||||
|
caddr_t if_bpf;
|
||||||
|
#endif
|
||||||
|
time_t now;
|
||||||
|
|
||||||
|
smr_read_enter();
|
||||||
|
sc = SMR_LIST_FIRST(&pppoe_sessions);
|
||||||
|
smr_read_leave();
|
||||||
|
if (sc == NULL)
|
||||||
|
return (m);
|
||||||
|
|
||||||
|
if (m->m_pkthdr.len < hlen)
|
||||||
|
return (m);
|
||||||
|
if (m->m_len < hlen) {
|
||||||
|
m = m_pullup(m, hlen);
|
||||||
|
if (m == NULL)
|
||||||
|
return (NULL);
|
||||||
|
}
|
||||||
|
|
||||||
|
eh = mtod(m, struct ether_header *);
|
||||||
|
ph = (struct pppoehdr *)(eh + 1);
|
||||||
|
if (ph->vertype != PPPOE_VERTYPE)
|
||||||
|
return (m);
|
||||||
|
if (ph->code != 0)
|
||||||
|
return (m);
|
||||||
|
|
||||||
|
sc = pppoe_smr_find_by_session(ntohs(ph->session), ifp0->if_index);
|
||||||
|
if (sc == NULL) {
|
||||||
|
/* no session, don't waste any more time */
|
||||||
|
m_freem(m);
|
||||||
|
return (NULL);
|
||||||
|
}
|
||||||
|
|
||||||
|
ifp = &sc->sc_sppp.pp_if;
|
||||||
|
|
||||||
|
plen = ntohs(ph->plen);
|
||||||
|
if (plen < sizeof(proto))
|
||||||
|
goto drop;
|
||||||
|
|
||||||
|
phlen = hlen + sizeof(proto);
|
||||||
|
if (m->m_pkthdr.len < phlen)
|
||||||
|
goto drop;
|
||||||
|
if (m->m_len < phlen) {
|
||||||
|
m = m_pullup(m, phlen);
|
||||||
|
if (m == NULL)
|
||||||
|
goto put;
|
||||||
|
}
|
||||||
|
|
||||||
|
proto = *(uint16_t *)(mtod(m, caddr_t) + hlen);
|
||||||
|
af = sppp_proto_up(ifp, proto);
|
||||||
|
if (af == AF_UNSPEC)
|
||||||
|
goto put;
|
||||||
|
|
||||||
|
#if NBPFILTER > 0
|
||||||
|
if_bpf = sc->sc_bpf;
|
||||||
|
if (if_bpf) {
|
||||||
|
m_adj(m, sizeof(*eh));
|
||||||
|
bpf_mtap(sc->sc_bpf, m, BPF_DIRECTION_IN);
|
||||||
|
m_adj(m, phlen - sizeof(*eh));
|
||||||
|
} else
|
||||||
|
#endif
|
||||||
|
m_adj(m, phlen);
|
||||||
|
|
||||||
|
plen -= sizeof(proto);
|
||||||
|
if (m->m_pkthdr.len < plen) {
|
||||||
|
counters_inc(ifp->if_counters, ifc_ierrors);
|
||||||
|
goto drop;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (m->m_pkthdr.len > plen)
|
||||||
|
m_adj(m, plen - m->m_pkthdr.len);
|
||||||
|
|
||||||
|
/* XXX not 64bit or MP safe */
|
||||||
|
now = getuptime();
|
||||||
|
if (sc->sc_sppp.pp_last_activity < now)
|
||||||
|
sc->sc_sppp.pp_last_activity = now;
|
||||||
|
|
||||||
|
m->m_pkthdr.ph_family = af;
|
||||||
|
if_vinput(ifp, m);
|
||||||
|
done:
|
||||||
|
m = NULL;
|
||||||
|
put:
|
||||||
|
if_put(ifp);
|
||||||
|
|
||||||
|
return (m);
|
||||||
|
drop:
|
||||||
|
m_freem(m);
|
||||||
|
goto done;
|
||||||
|
}
|
||||||
|
|
||||||
/* Input function for data packets */
|
/* Input function for data packets */
|
||||||
void
|
void
|
||||||
pppoe_data_input(struct mbuf *m)
|
pppoe_data_input(struct mbuf *m)
|
||||||
|
@ -731,8 +882,8 @@ pppoe_data_input(struct mbuf *m)
|
||||||
plen = ntohs(ph->plen);
|
plen = ntohs(ph->plen);
|
||||||
|
|
||||||
#if NBPFILTER > 0
|
#if NBPFILTER > 0
|
||||||
if(sc->sc_sppp.pp_if.if_bpf)
|
if (sc->sc_bpf)
|
||||||
bpf_mtap(sc->sc_sppp.pp_if.if_bpf, m, BPF_DIRECTION_IN);
|
bpf_mtap(sc->sc_bpf, m, BPF_DIRECTION_IN);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
m_adj(m, PPPOE_HEADERLEN);
|
m_adj(m, PPPOE_HEADERLEN);
|
||||||
|
@ -927,7 +1078,7 @@ pppoe_ioctl(struct ifnet *ifp, unsigned long cmd, caddr_t data)
|
||||||
&& sc->sc_state >= PPPOE_STATE_PADI_SENT
|
&& sc->sc_state >= PPPOE_STATE_PADI_SENT
|
||||||
&& sc->sc_state < PPPOE_STATE_SESSION) {
|
&& sc->sc_state < PPPOE_STATE_SESSION) {
|
||||||
timeout_del(&sc->sc_timeout);
|
timeout_del(&sc->sc_timeout);
|
||||||
sc->sc_state = PPPOE_STATE_INITIAL;
|
pppoe_set_state(sc, PPPOE_STATE_INITIAL);
|
||||||
sc->sc_padi_retried = 0;
|
sc->sc_padi_retried = 0;
|
||||||
sc->sc_padr_retried = 0;
|
sc->sc_padr_retried = 0;
|
||||||
memcpy(&sc->sc_dest, etherbroadcastaddr,
|
memcpy(&sc->sc_dest, etherbroadcastaddr,
|
||||||
|
@ -965,7 +1116,8 @@ pppoe_ioctl(struct ifnet *ifp, unsigned long cmd, caddr_t data)
|
||||||
if (sc->sc_state >= PPPOE_STATE_PADI_SENT &&
|
if (sc->sc_state >= PPPOE_STATE_PADI_SENT &&
|
||||||
sc->sc_state < PPPOE_STATE_SESSION) {
|
sc->sc_state < PPPOE_STATE_SESSION) {
|
||||||
timeout_del(&sc->sc_timeout);
|
timeout_del(&sc->sc_timeout);
|
||||||
sc->sc_state = PPPOE_STATE_INITIAL;
|
pppoe_set_state(sc,
|
||||||
|
PPPOE_STATE_INITIAL);
|
||||||
sc->sc_padi_retried = 0;
|
sc->sc_padi_retried = 0;
|
||||||
sc->sc_padr_retried = 0;
|
sc->sc_padr_retried = 0;
|
||||||
memcpy(&sc->sc_dest,
|
memcpy(&sc->sc_dest,
|
||||||
|
@ -1136,7 +1288,7 @@ pppoe_timeout(void *arg)
|
||||||
if (sc->sc_padr_retried >= PPPOE_DISC_MAXPADR) {
|
if (sc->sc_padr_retried >= PPPOE_DISC_MAXPADR) {
|
||||||
memcpy(&sc->sc_dest, etherbroadcastaddr,
|
memcpy(&sc->sc_dest, etherbroadcastaddr,
|
||||||
sizeof(sc->sc_dest));
|
sizeof(sc->sc_dest));
|
||||||
sc->sc_state = PPPOE_STATE_PADI_SENT;
|
pppoe_set_state(sc, PPPOE_STATE_PADI_SENT);
|
||||||
sc->sc_padr_retried = 0;
|
sc->sc_padr_retried = 0;
|
||||||
if ((err = pppoe_send_padi(sc)) != 0) {
|
if ((err = pppoe_send_padi(sc)) != 0) {
|
||||||
PPPOEDEBUG(("%s: failed to send PADI, error=%d\n",
|
PPPOEDEBUG(("%s: failed to send PADI, error=%d\n",
|
||||||
|
@ -1179,7 +1331,7 @@ pppoe_connect(struct pppoe_softc *sc)
|
||||||
x = splnet();
|
x = splnet();
|
||||||
|
|
||||||
/* save state, in case we fail to send PADI */
|
/* save state, in case we fail to send PADI */
|
||||||
sc->sc_state = PPPOE_STATE_PADI_SENT;
|
pppoe_set_state(sc, PPPOE_STATE_PADI_SENT);
|
||||||
sc->sc_padr_retried = 0;
|
sc->sc_padr_retried = 0;
|
||||||
err = pppoe_send_padi(sc);
|
err = pppoe_send_padi(sc);
|
||||||
if (err != 0)
|
if (err != 0)
|
||||||
|
@ -1211,7 +1363,7 @@ pppoe_disconnect(struct pppoe_softc *sc)
|
||||||
}
|
}
|
||||||
|
|
||||||
/* cleanup softc */
|
/* cleanup softc */
|
||||||
sc->sc_state = PPPOE_STATE_INITIAL;
|
pppoe_set_state(sc, PPPOE_STATE_INITIAL);
|
||||||
memcpy(&sc->sc_dest, etherbroadcastaddr, sizeof(sc->sc_dest));
|
memcpy(&sc->sc_dest, etherbroadcastaddr, sizeof(sc->sc_dest));
|
||||||
if (sc->sc_ac_cookie) {
|
if (sc->sc_ac_cookie) {
|
||||||
free(sc->sc_ac_cookie, M_DEVBUF, sc->sc_ac_cookie_len);
|
free(sc->sc_ac_cookie, M_DEVBUF, sc->sc_ac_cookie_len);
|
||||||
|
@ -1239,14 +1391,14 @@ pppoe_abort_connect(struct pppoe_softc *sc)
|
||||||
{
|
{
|
||||||
printf("%s: could not establish connection\n",
|
printf("%s: could not establish connection\n",
|
||||||
sc->sc_sppp.pp_if.if_xname);
|
sc->sc_sppp.pp_if.if_xname);
|
||||||
sc->sc_state = PPPOE_STATE_CLOSING;
|
pppoe_set_state(sc, PPPOE_STATE_CLOSING);
|
||||||
|
|
||||||
/* notify upper layer */
|
/* notify upper layer */
|
||||||
sc->sc_sppp.pp_down(&sc->sc_sppp);
|
sc->sc_sppp.pp_down(&sc->sc_sppp);
|
||||||
|
|
||||||
/* clear connection state */
|
/* clear connection state */
|
||||||
memcpy(&sc->sc_dest, etherbroadcastaddr, sizeof(sc->sc_dest));
|
memcpy(&sc->sc_dest, etherbroadcastaddr, sizeof(sc->sc_dest));
|
||||||
sc->sc_state = PPPOE_STATE_INITIAL;
|
pppoe_set_state(sc, PPPOE_STATE_INITIAL);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Send a PADR packet */
|
/* Send a PADR packet */
|
||||||
|
@ -1385,7 +1537,7 @@ pppoe_tlf(struct sppp *sp)
|
||||||
* machine gets confused by this. We must return from this
|
* machine gets confused by this. We must return from this
|
||||||
* function and defer disconnecting to the timeout handler.
|
* function and defer disconnecting to the timeout handler.
|
||||||
*/
|
*/
|
||||||
sc->sc_state = PPPOE_STATE_CLOSING;
|
pppoe_set_state(sc, PPPOE_STATE_CLOSING);
|
||||||
timeout_add_msec(&sc->sc_timeout, 20);
|
timeout_add_msec(&sc->sc_timeout, 20);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1417,9 +1569,8 @@ pppoe_start(struct ifnet *ifp)
|
||||||
PPPOE_ADD_HEADER(p, 0, sc->sc_session, len);
|
PPPOE_ADD_HEADER(p, 0, sc->sc_session, len);
|
||||||
|
|
||||||
#if NBPFILTER > 0
|
#if NBPFILTER > 0
|
||||||
if(sc->sc_sppp.pp_if.if_bpf)
|
if (sc->sc_bpf)
|
||||||
bpf_mtap(sc->sc_sppp.pp_if.if_bpf, m,
|
bpf_mtap(sc->sc_bpf, m, BPF_DIRECTION_OUT);
|
||||||
BPF_DIRECTION_OUT);
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
pppoe_output(sc, m);
|
pppoe_output(sc, m);
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
/* $OpenBSD: if_pppoe.h,v 1.8 2022/06/29 09:08:07 mvs Exp $ */
|
/* $OpenBSD: if_pppoe.h,v 1.9 2025/01/15 06:15:44 dlg Exp $ */
|
||||||
/* $NetBSD: if_pppoe.h,v 1.5 2003/11/28 08:56:48 keihan Exp $ */
|
/* $NetBSD: if_pppoe.h,v 1.5 2003/11/28 08:56:48 keihan Exp $ */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -69,5 +69,8 @@ struct pppoeconnectionstate {
|
||||||
extern struct mbuf_queue pppoediscinq;
|
extern struct mbuf_queue pppoediscinq;
|
||||||
extern struct mbuf_queue pppoeinq;
|
extern struct mbuf_queue pppoeinq;
|
||||||
|
|
||||||
|
int pppoe_if_exists(void);
|
||||||
|
struct mbuf *pppoe_vinput(struct ifnet *, struct mbuf *);
|
||||||
|
|
||||||
#endif /* _KERNEL */
|
#endif /* _KERNEL */
|
||||||
#endif /* _NET_IF_PPPOE_H_ */
|
#endif /* _NET_IF_PPPOE_H_ */
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
/* $OpenBSD: if_sppp.h,v 1.30 2021/11/17 18:00:24 bket Exp $ */
|
/* $OpenBSD: if_sppp.h,v 1.31 2025/01/15 06:15:44 dlg Exp $ */
|
||||||
/* $NetBSD: if_sppp.h,v 1.2.2.1 1999/04/04 06:57:39 explorer Exp $ */
|
/* $NetBSD: if_sppp.h,v 1.2.2.1 1999/04/04 06:57:39 explorer Exp $ */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -232,6 +232,7 @@ struct sppp {
|
||||||
void sppp_attach (struct ifnet *ifp);
|
void sppp_attach (struct ifnet *ifp);
|
||||||
void sppp_detach (struct ifnet *ifp);
|
void sppp_detach (struct ifnet *ifp);
|
||||||
void sppp_input (struct ifnet *ifp, struct mbuf *m);
|
void sppp_input (struct ifnet *ifp, struct mbuf *m);
|
||||||
|
int sppp_proto_up(struct ifnet *ifp, uint16_t);
|
||||||
|
|
||||||
/* Workaround */
|
/* Workaround */
|
||||||
void spppattach (struct ifnet *ifp);
|
void spppattach (struct ifnet *ifp);
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
/* $OpenBSD: if_spppsubr.c,v 1.194 2024/06/22 10:22:29 jsg Exp $ */
|
/* $OpenBSD: if_spppsubr.c,v 1.195 2025/01/15 06:15:44 dlg Exp $ */
|
||||||
/*
|
/*
|
||||||
* Synchronous PPP link level subroutines.
|
* Synchronous PPP link level subroutines.
|
||||||
*
|
*
|
||||||
|
@ -415,6 +415,30 @@ spppattach(struct ifnet *ifp)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int
|
||||||
|
sppp_proto_up(struct ifnet *ifp, uint16_t proto)
|
||||||
|
{
|
||||||
|
struct sppp *sp = (struct sppp *)ifp;
|
||||||
|
int af = AF_UNSPEC;
|
||||||
|
|
||||||
|
switch (ntohs(proto)) {
|
||||||
|
case PPP_IP:
|
||||||
|
if (sp->state[IDX_IPCP] == STATE_OPENED)
|
||||||
|
af = AF_INET;
|
||||||
|
break;
|
||||||
|
#ifdef INET6
|
||||||
|
case PPP_IPV6:
|
||||||
|
if (sp->state[IDX_IPV6CP] == STATE_OPENED)
|
||||||
|
af = AF_INET6;
|
||||||
|
break;
|
||||||
|
#endif
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
return (af);
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Process the received packet.
|
* Process the received packet.
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
# ex:ts=8 sw=4:
|
# ex:ts=8 sw=4:
|
||||||
# $OpenBSD: PkgConfig.pm,v 1.12 2024/02/11 03:57:10 gkoehler Exp $
|
# $OpenBSD: PkgConfig.pm,v 1.13 2025/01/15 11:54:36 jca Exp $
|
||||||
#
|
#
|
||||||
# Copyright (c) 2006 Marc Espie <espie@openbsd.org>
|
# Copyright (c) 2006 Marc Espie <espie@openbsd.org>
|
||||||
#
|
#
|
||||||
|
@ -19,6 +19,7 @@ use v5.36;
|
||||||
|
|
||||||
# interface to the *.pc file format of pkg-config.
|
# interface to the *.pc file format of pkg-config.
|
||||||
package OpenBSD::PkgConfig;
|
package OpenBSD::PkgConfig;
|
||||||
|
use File::Basename;
|
||||||
|
|
||||||
# specific properties may have specific needs.
|
# specific properties may have specific needs.
|
||||||
|
|
||||||
|
@ -106,6 +107,8 @@ sub read_fh($class, $fh, $name = '')
|
||||||
{
|
{
|
||||||
my $cfg = $class->new;
|
my $cfg = $class->new;
|
||||||
|
|
||||||
|
$cfg->add_variable('pcfiledir', dirname($name));
|
||||||
|
|
||||||
while (<$fh>) {
|
while (<$fh>) {
|
||||||
chomp;
|
chomp;
|
||||||
# continuation lines
|
# continuation lines
|
||||||
|
@ -145,6 +148,8 @@ sub read_file($class, $filename)
|
||||||
sub write_fh($self, $fh)
|
sub write_fh($self, $fh)
|
||||||
{
|
{
|
||||||
foreach my $variable (@{$self->{vlist}}) {
|
foreach my $variable (@{$self->{vlist}}) {
|
||||||
|
# writing out pcfiledir makes no sense
|
||||||
|
next if $variable eq 'pcfiledir';
|
||||||
say $fh "$variable=", $self->{variables}{$variable};
|
say $fh "$variable=", $self->{variables}{$variable};
|
||||||
}
|
}
|
||||||
print $fh "\n\n";
|
print $fh "\n\n";
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue