heimdal: removed, unmaintained and in MIT we trust.
This commit is contained in:
parent
d2bf20e6e2
commit
4a49a50e7a
18 changed files with 0 additions and 485 deletions
|
@ -1 +0,0 @@
|
|||
heimdal
|
|
@ -1 +0,0 @@
|
|||
heimdal
|
|
@ -1,25 +0,0 @@
|
|||
# *-* shell *-*
|
||||
#
|
||||
case ${ACTION} in
|
||||
post)
|
||||
cat << _EOF
|
||||
==========================================================================
|
||||
|
||||
Please do not forget to edit the '/etc/krb5.conf' configuration file, this
|
||||
sets all properties of your KDC (Kerberos Domain Controller) server.
|
||||
|
||||
To act as KDC you have to start the following services:
|
||||
|
||||
$ /etc/init.d/kadmind start
|
||||
$ /etc/init.d/kdc start
|
||||
|
||||
If you want to make them start automatically at boot, add the services to
|
||||
the 'default' runlevel:
|
||||
|
||||
$ rc-update add kadmind default
|
||||
$ rc-update add kdc default
|
||||
|
||||
==========================================================================
|
||||
_EOF
|
||||
;;
|
||||
esac
|
|
@ -1,24 +0,0 @@
|
|||
#!/sbin/runscript
|
||||
|
||||
: ${PIDFILE:=/var/run/kadmind.pid}
|
||||
|
||||
depend()
|
||||
{
|
||||
need net localmount
|
||||
provide kadmind
|
||||
}
|
||||
|
||||
start()
|
||||
{
|
||||
ebegin "Starting Heimdal Kerberos kadmind"
|
||||
start-stop-daemon --start --pidfile=${PIDFILE} --background \
|
||||
--make-pidfile --exec /usr/libexec/kadmind -- ${KADMIND_ARGS}
|
||||
eend $?
|
||||
}
|
||||
|
||||
stop()
|
||||
{
|
||||
ebegin "Stopping Heimdal Kerberos kadmind"
|
||||
start-stop-daemon --stop --pidfile ${PIDFILE}
|
||||
eend $?
|
||||
}
|
|
@ -1,24 +0,0 @@
|
|||
#!/sbin/runscript
|
||||
|
||||
: ${PIDFILE:=/var/run/kdc.pid}
|
||||
|
||||
depend()
|
||||
{
|
||||
need net localmount
|
||||
provide kdc
|
||||
}
|
||||
|
||||
start()
|
||||
{
|
||||
ebegin "Starting Heimdal Kerberos kdc"
|
||||
start-stop-daemon --start --pidfile=${PIDFILE} --background \
|
||||
--make-pidfile --exec /usr/libexec/kdc -- ${KDC_ARGS}
|
||||
eend $?
|
||||
}
|
||||
|
||||
stop()
|
||||
{
|
||||
ebegin "Stopping Heimdal Kerberos kdc"
|
||||
start-stop-daemon --stop --pidfile ${PIDFILE}
|
||||
eend $?
|
||||
}
|
|
@ -1,24 +0,0 @@
|
|||
#!/sbin/runscript
|
||||
|
||||
: ${PIDFILE:=/var/run/kpasswdd.pid}
|
||||
|
||||
depend()
|
||||
{
|
||||
need net localmount
|
||||
provide kpasswdd
|
||||
}
|
||||
|
||||
start()
|
||||
{
|
||||
ebegin "Starting Heimdal Kerberos kpasswdd"
|
||||
start-stop-daemon --start --pidfile=${PIDFILE} --background \
|
||||
--make-pidfile --exec /usr/libexec/kpasswdd -- ${KPASSWDD_ARGS}
|
||||
eend $?
|
||||
}
|
||||
|
||||
stop()
|
||||
{
|
||||
ebegin "Stopping Heimdal Kerberos kpasswdd"
|
||||
start-stop-daemon --stop --pidfile ${PIDFILE}
|
||||
eend $?
|
||||
}
|
|
@ -1,29 +0,0 @@
|
|||
# Template file for 'heimdal-devel'.
|
||||
#
|
||||
depends="db-devel openssl-devel e2fsprogs-devel>=1.4.10_1 readline-devel ncurses-devel"
|
||||
short_desc="Heimdal Kerberos - development files"
|
||||
long_desc="${long_desc}
|
||||
|
||||
This package contains files for development, headers, static libs, etc."
|
||||
|
||||
noverifyrdeps=yes
|
||||
|
||||
|
||||
do_install()
|
||||
{
|
||||
mkdir -p ${DESTDIR}/usr/{lib,libexec,bin} \
|
||||
${DESTDIR}/usr/share/man/man1
|
||||
|
||||
mv ${SRCPKGDESTDIR}/usr/include ${DESTDIR}/usr
|
||||
mv ${SRCPKGDESTDIR}/usr/lib/pkgconfig ${DESTDIR}/usr/lib
|
||||
mv ${SRCPKGDESTDIR}/usr/lib/*.*a ${DESTDIR}/usr/lib
|
||||
mv ${SRCPKGDESTDIR}/usr/lib/*.so ${DESTDIR}/usr/lib
|
||||
for f in krb5-config; do
|
||||
mv ${SRCPKGDESTDIR}/usr/bin/${f} ${DESTDIR}/usr/bin
|
||||
mv ${SRCPKGDESTDIR}/usr/share/man/man1/${f}* \
|
||||
${DESTDIR}/usr/share/man/man1
|
||||
done
|
||||
mv ${SRCPKGDESTDIR}/usr/share/man/man3 ${DESTDIR}/usr/share/man
|
||||
mv ${SRCPKGDESTDIR}/usr/share/info ${DESTDIR}/usr/share
|
||||
mv ${SRCPKGDESTDIR}/usr/libexec/heimdal ${DESTDIR}/usr/libexec
|
||||
}
|
|
@ -1,15 +0,0 @@
|
|||
# Template file for 'heimdal-libs'.
|
||||
#
|
||||
depends="glibc libdb libssl e2fsprogs-libs>=1.4.10_1 readline"
|
||||
short_desc="Heimdal Kerberos - shared libraries"
|
||||
long_desc="${long_desc}
|
||||
|
||||
This package contains the shared libraries."
|
||||
|
||||
|
||||
|
||||
do_install()
|
||||
{
|
||||
mkdir -p ${DESTDIR}/usr/lib
|
||||
mv ${SRCPKGDESTDIR}/usr/lib/*.so.* ${DESTDIR}/usr/lib
|
||||
}
|
|
@ -1,10 +0,0 @@
|
|||
--- cf/krb-readline.m4 2005-06-16 18:28:32.000000000 +0200
|
||||
+++ cf/krb-readline.m4 2005-06-27 23:17:06.000000000 +0200
|
||||
@@ -6,7 +6,6 @@
|
||||
dnl el_init
|
||||
|
||||
AC_DEFUN([KRB_READLINE],[
|
||||
-AC_FIND_FUNC_NO_LIBS(el_init, edit, [], [], [$LIB_tgetent])
|
||||
if test "$ac_cv_func_el_init" = yes ; then
|
||||
AC_CACHE_CHECK(for four argument el_init, ac_cv_func_el_init_four,[
|
||||
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <stdio.h>
|
|
@ -1,12 +0,0 @@
|
|||
--- lib/editline/Makefile.am 2005-06-16 18:28:44.000000000 +0200
|
||||
+++ lib/editline/Makefile.am 2005-06-27 23:21:02.000000000 +0200
|
||||
@@ -41,6 +41,9 @@
|
||||
|
||||
EXTRA_DIST = $(man_MANS)
|
||||
|
||||
+$(libeditline_la_OBJECTS): %.lo: %.c
|
||||
+ $(LTCOMPILE) -fPIC -c -o $@ `test -f '$<' || echo '$(srcdir)/'`$<
|
||||
+
|
||||
snprintf.c:
|
||||
$(LN_S) $(srcdir)/../roken/snprintf.c .
|
||||
strdup.c:
|
|
@ -1,22 +0,0 @@
|
|||
--- appl/kx/rxtelnet.in 2005-06-16 18:29:10.000000000 +0200
|
||||
+++ appl/kx/rxtelnet.in 2005-06-27 23:21:34.000000000 +0200
|
||||
@@ -2,7 +2,7 @@
|
||||
# $Id: rxtelnet.in,v 1.31 2004/03/07 17:22:06 lha Exp $
|
||||
#
|
||||
usage="Usage: $0 [-l username] [-k] [-fF] [-t args_to_telnet] [-x args_to_xterm] [-K args_to_kx] [-w term_emulator] [-b telnet_binary] [-n] [-v] [-h | --help] [--version] host [port]"
|
||||
-binary=telnet
|
||||
+binary=ktelnet
|
||||
term=
|
||||
kx_args=-P
|
||||
while true
|
||||
--- appl/kx/rxterm.in 2005-06-16 18:29:10.000000000 +0200
|
||||
+++ appl/kx/rxterm.in 2005-06-27 23:21:55.000000000 +0200
|
||||
@@ -2,7 +2,7 @@
|
||||
# $Id: rxterm.in,v 1.23 2002/03/18 17:37:34 joda Exp $
|
||||
#
|
||||
usage="Usage: $0 [-l username] [-k] [-f] [-r rsh_args] [-x xterm_args] [-K kx_args] [-w term_emulator] [-b rsh_binary][-v] [-h | --help] [--version] host"
|
||||
-binary=rsh
|
||||
+binary=krsh
|
||||
term=xterm
|
||||
while true
|
||||
do
|
|
@ -1,20 +0,0 @@
|
|||
--- appl/su/Makefile.am 2005-06-16 18:27:46.000000000 +0200
|
||||
+++ appl/su/Makefile.am 2005-06-27 23:25:21.000000000 +0200
|
||||
@@ -7,6 +7,7 @@
|
||||
bin_PROGRAMS = su
|
||||
bin_SUIDS = su
|
||||
su_SOURCES = su.c supaths.h
|
||||
+su_LDFLAGS = -Wl,-z,now
|
||||
man_MANS = su.1
|
||||
|
||||
LDADD = $(LIB_kafs) \
|
||||
--- appl/otp/Makefile.am 2005-06-16 18:28:46.000000000 +0200
|
||||
+++ appl/otp/Makefile.am 2005-06-27 23:25:40.000000000 +0200
|
||||
@@ -8,6 +8,7 @@
|
||||
bin_SUIDS = otp
|
||||
otp_SOURCES = otp.c otp_locl.h
|
||||
otpprint_SOURCES = otpprint.c otp_locl.h
|
||||
+otp_LDFLAGS = -Wl,-z,now
|
||||
|
||||
man_MANS = otp.1 otpprint.1
|
||||
|
|
@ -1,113 +0,0 @@
|
|||
--- cf/db.m4
|
||||
+++ cf/db.m4
|
||||
@@ -18,24 +18,13 @@ db_type=unknown
|
||||
|
||||
if test "$enable_berkeley_db" != no; then
|
||||
|
||||
- AC_CHECK_HEADERS([ \
|
||||
- db4/db.h \
|
||||
- db3/db.h \
|
||||
- db.h \
|
||||
- db_185.h \
|
||||
- ])
|
||||
+ AC_CHECK_HEADERS([db.h])
|
||||
|
||||
dnl db_create is used by db3 and db4
|
||||
|
||||
- AC_FIND_FUNC_NO_LIBS(db_create, db4 db3 db, [
|
||||
+ AC_FIND_FUNC_NO_LIBS(db_create, db, [
|
||||
#include <stdio.h>
|
||||
- #ifdef HAVE_DB4_DB_H
|
||||
- #include <db4/db.h>
|
||||
- #elif defined(HAVE_DB3_DB_H)
|
||||
- #include <db3/db.h>
|
||||
- #else
|
||||
#include <db.h>
|
||||
- #endif
|
||||
],[NULL, NULL, 0])
|
||||
|
||||
if test "$ac_cv_func_db_create" = "yes"; then
|
||||
@@ -50,17 +39,9 @@ dnl db_create is used by db3 and db4
|
||||
|
||||
dnl dbopen is used by db1/db2
|
||||
|
||||
- AC_FIND_FUNC_NO_LIBS(dbopen, db2 db, [
|
||||
+ AC_FIND_FUNC_NO_LIBS(dbopen, db, [
|
||||
#include <stdio.h>
|
||||
- #if defined(HAVE_DB2_DB_H)
|
||||
- #include <db2/db.h>
|
||||
- #elif defined(HAVE_DB_185_H)
|
||||
- #include <db_185.h>
|
||||
- #elif defined(HAVE_DB_H)
|
||||
#include <db.h>
|
||||
- #else
|
||||
- #error no db.h
|
||||
- #endif
|
||||
],[NULL, 0, 0, 0, NULL])
|
||||
|
||||
if test "$ac_cv_func_dbopen" = "yes"; then
|
||||
--- lib/hdb/db.c
|
||||
+++ lib/hdb/db.c
|
||||
@@ -37,11 +37,7 @@ RCSID("$Id: db.c 20215 2007-02-09 21:59:
|
||||
|
||||
#if HAVE_DB1
|
||||
|
||||
-#if defined(HAVE_DB_185_H)
|
||||
-#include <db_185.h>
|
||||
-#elif defined(HAVE_DB_H)
|
||||
#include <db.h>
|
||||
-#endif
|
||||
|
||||
static krb5_error_code
|
||||
DB_close(krb5_context context, HDB *db)
|
||||
--- lib/hdb/db3.c
|
||||
+++ lib/hdb/db3.c
|
||||
@@ -37,13 +37,7 @@ RCSID("$Id: db3.c 21610 2007-07-17 07:10
|
||||
|
||||
#if HAVE_DB3
|
||||
|
||||
-#ifdef HAVE_DB4_DB_H
|
||||
-#include <db4/db.h>
|
||||
-#elif defined(HAVE_DB3_DB_H)
|
||||
-#include <db3/db.h>
|
||||
-#else
|
||||
#include <db.h>
|
||||
-#endif
|
||||
|
||||
static krb5_error_code
|
||||
DB_close(krb5_context context, HDB *db)
|
||||
--- lib/roken/getcap.c
|
||||
+++ lib/roken/getcap.c
|
||||
@@ -38,11 +38,13 @@
|
||||
#include "roken.h"
|
||||
RCSID("$Id: getcap.c 16561 2006-01-13 14:25:32Z lha $");
|
||||
|
||||
+#if defined(HAVE_DBOPEN) && defined(HAVE_DB_H)
|
||||
+#define USE_DB
|
||||
+#endif
|
||||
+
|
||||
#include <sys/types.h>
|
||||
#include <ctype.h>
|
||||
-#if defined(HAVE_DB_185_H)
|
||||
-#include <db_185.h>
|
||||
-#elif defined(HAVE_DB_H)
|
||||
+#ifdef USE_DB
|
||||
#include <db.h>
|
||||
#endif
|
||||
#include <errno.h>
|
||||
--- lib/roken/ndbm_wrap.c
|
||||
+++ lib/roken/ndbm_wrap.c
|
||||
@@ -37,13 +37,7 @@ RCSID("$Id: ndbm_wrap.c 21634 2007-07-17
|
||||
#endif
|
||||
|
||||
#include "ndbm_wrap.h"
|
||||
-#if defined(HAVE_DB4_DB_H)
|
||||
-#include <db4/db.h>
|
||||
-#elif defined(HAVE_DB3_DB_H)
|
||||
-#include <db3/db.h>
|
||||
-#else
|
||||
#include <db.h>
|
||||
-#endif
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
|
@ -1,11 +0,0 @@
|
|||
--- cf/pthreads.m4.old 2005-09-09 12:12:28.000000000 +0000
|
||||
+++ cf/pthreads.m4 2005-09-17 22:23:23.000000000 +0000
|
||||
@@ -32,7 +32,7 @@
|
||||
2.*)
|
||||
native_pthread_support=yes
|
||||
PTHREADS_CFLAGS=-pthread
|
||||
- PTHREADS_LIBS=-pthread
|
||||
+ PTHREADS_LIBS=-lpthread
|
||||
;;
|
||||
esac
|
||||
;;
|
|
@ -1,50 +0,0 @@
|
|||
--- appl/rcp/rcp.c.old 2006-05-03 13:31:59.398493625 +0200
|
||||
+++ appl/rcp/rcp.c 2006-05-03 13:32:04.494485981 +0200
|
||||
@@ -34,7 +34,7 @@
|
||||
#include "rcp_locl.h"
|
||||
#include <getarg.h>
|
||||
|
||||
-#define RSH_PROGRAM "rsh"
|
||||
+#define RSH_PROGRAM "krsh"
|
||||
|
||||
struct passwd *pwd;
|
||||
uid_t userid;
|
||||
--- appl/rcp/rcp_locl.h.old 2006-05-03 02:30:31.602025409 +0200
|
||||
+++ appl/rcp/rcp_locl.h 2006-05-03 02:30:35.886018983 +0200
|
||||
@@ -64,4 +64,4 @@
|
||||
#define _PATH_CP "/bin/cp"
|
||||
#endif
|
||||
#undef _PATH_RSH
|
||||
-#define _PATH_RSH BINDIR "/rsh"
|
||||
+#define _PATH_RSH BINDIR "/krsh"
|
||||
--- appl/telnet/telnetd/telnetd.h.old 2006-05-03 02:23:14.582680939 +0200
|
||||
+++ appl/telnet/telnetd/telnetd.h 2006-05-03 02:23:23.746667193 +0200
|
||||
@@ -192,7 +192,7 @@
|
||||
#endif
|
||||
|
||||
#undef _PATH_LOGIN
|
||||
-#define _PATH_LOGIN BINDIR "/login"
|
||||
+#define _PATH_LOGIN BINDIR "/klogin"
|
||||
|
||||
/* fallbacks */
|
||||
|
||||
--- appl/login/shadow.c.old 2006-05-05 06:31:29.517138115 +0200
|
||||
+++ appl/login/shadow.c 2006-05-05 06:32:26.433052741 +0200
|
||||
@@ -38,7 +38,7 @@
|
||||
#ifdef HAVE_SHADOW_H
|
||||
|
||||
#ifndef _PATH_CHPASS
|
||||
-#define _PATH_CHPASS "/usr/bin/passwd"
|
||||
+#define _PATH_CHPASS "/usr/bin/kpasswd"
|
||||
#endif
|
||||
|
||||
static int
|
||||
@@ -52,7 +52,7 @@
|
||||
printf("fork /bin/passwd");
|
||||
exit(1);
|
||||
case 0:
|
||||
- execlp(_PATH_CHPASS, "passwd", who->pw_name, (char *) 0);
|
||||
+ execlp(_PATH_CHPASS, "kpasswd", who->pw_name, (char *) 0);
|
||||
exit(1);
|
||||
default:
|
||||
waitpid(pid, &status, 0);
|
|
@ -1,26 +0,0 @@
|
|||
--- lib/krb5/cache.c 2009-11-22 01:41:51.000000000 +1000
|
||||
+++ lib/krb5/cache.c 2009-11-23 22:27:15.000000000 +1000
|
||||
@@ -1347,10 +1347,11 @@
|
||||
*
|
||||
*/
|
||||
|
||||
-struct krb5_cccol_cursor {
|
||||
+struct krb5_cccol_cursor_data {
|
||||
int idx;
|
||||
krb5_cc_cache_cursor cursor;
|
||||
};
|
||||
+/* typedef of krb5_cccol_cursor is in krb5.h */
|
||||
|
||||
/**
|
||||
* Get a new cache interation cursor that will interate over all
|
||||
--- lib/krb5/krb5.h 2009-11-22 01:41:51.000000000 +1000
|
||||
+++ lib/krb5/krb5.h 2009-11-23 22:28:10.000000000 +1000
|
||||
@@ -311,7 +311,7 @@
|
||||
NULL)
|
||||
|
||||
typedef void *krb5_cc_cursor;
|
||||
-typedef struct krb5_cccol_cursor *krb5_cccol_cursor;
|
||||
+typedef struct krb5_cccol_cursor_data *krb5_cccol_cursor;
|
||||
|
||||
typedef struct krb5_ccache_data {
|
||||
const struct krb5_cc_ops *ops;
|
|
@ -1,11 +0,0 @@
|
|||
--- lib/krb5/locate_plugin.h 2009-11-22 01:41:51.000000000 +1000
|
||||
+++ lib/krb5/locate_plugin.h 2009-11-25 15:04:30.000000000 +1000
|
||||
@@ -36,6 +36,8 @@
|
||||
#ifndef HEIMDAL_KRB5_LOCATE_PLUGIN_H
|
||||
#define HEIMDAL_KRB5_LOCATE_PLUGIN_H 1
|
||||
|
||||
+#include <krb5.h>
|
||||
+
|
||||
#define KRB5_PLUGIN_LOCATE "service_locator"
|
||||
|
||||
enum locate_service_type {
|
|
@ -1,67 +0,0 @@
|
|||
# Template file for 'heimdal'
|
||||
pkgname=heimdal
|
||||
version=1.3.1
|
||||
revision=5
|
||||
distfiles="http://www.h5l.org/dist/src/$pkgname-$version.tar.gz"
|
||||
build_style=gnu-configure
|
||||
configure_args="--enable-shared=yes --without-x --datadir=/var/lib/heimdal
|
||||
--localstatedir=/var/lib/heimdal --enable-pthread-support --with-openssl=/usr
|
||||
--enable-kcm --with-hdbdir=/var/lib/heimdal --with-readline=/usr"
|
||||
depends="glibc libdb libssl readline e2fsprogs-libs ncurses-libs heimdal-libs"
|
||||
makedepends="automake flex db-devel openssl-devel e2fsprogs-devel>=1.4.10_1 readline-devel ncurses-devel"
|
||||
short_desc="Heimdal Kerberos implementation"
|
||||
maintainer="Juan RP <xtraeme@gmail.com>"
|
||||
checksum=64ebe73eea0bb4a9a80e038a953807416751451ade3e53f9103d3263b81ba925
|
||||
long_desc="
|
||||
Heimdal is an implementation of Kerberos 5 (and some more stuff) largely
|
||||
written in Sweden (which was important when we started writing it, less so
|
||||
now). It is freely available under a three clause BSD style license."
|
||||
|
||||
subpackages="heimdal-devel heimdal-libs"
|
||||
conf_files="/etc/krb5.conf"
|
||||
|
||||
|
||||
|
||||
pre_configure()
|
||||
{
|
||||
sed -i -e 's|var/heimdal|var/lib/heimdal|g' configure.in \
|
||||
doc/setup.texi doc/heimdal.info kadmin/kadmind.8 kdc/kdc.8 \
|
||||
lib/hdb/hdb.h lib/krb5/krb5.conf.5 lib/krb5/krb5.conf.cat5
|
||||
|
||||
libtoolize --force || return 1
|
||||
aclocal -I cf || return 1
|
||||
autoconf || return 1
|
||||
automake || return 1
|
||||
}
|
||||
|
||||
post_install()
|
||||
{
|
||||
# Rename daemons and their manpages
|
||||
for i in telnetd ftpd rshd; do
|
||||
mv ${DESTDIR}/usr/share/man/man8/{,k}${i}.8 || return 1
|
||||
mv ${DESTDIR}/usr/libexec/{,k}${i} || return 1
|
||||
done
|
||||
|
||||
# Rename clients and their manpages
|
||||
for i in rcp rsh telnet ftp su login; do
|
||||
if [ -f ${DESTDIR}/usr/share/man/man1/${i}.1 ]; then
|
||||
mv ${DESTDIR}/usr/share/man/man1/{,k}${i}.1 || return 1
|
||||
fi
|
||||
mv ${DESTDIR}/usr/bin/{,k}${i} || return 1
|
||||
done
|
||||
rm -rf ${DESTDIR}/usr/share/man/cat{1,3,5,8}
|
||||
|
||||
# Remove conflicts
|
||||
rm ${DESTDIR}/usr/share/man/man5/ftpusers.5*
|
||||
rm ${DESTDIR}/usr/share/man/man3/{DES,DH,EVP,OpenSSL,RAND,RSA}*
|
||||
rm ${DESTDIR}/usr/share/man/man3/os.3*
|
||||
|
||||
install -d ${DESTDIR}/var/lib/heimdal
|
||||
touch ${DESTDIR}/var/lib/heimdal/.empty_on_purpose
|
||||
|
||||
# Install rc services and config files.
|
||||
install -D -m644 ${wrksrc}/krb5.conf ${DESTDIR}/etc/krb5.conf
|
||||
install -D -m755 ${FILESDIR}/kdc.rc ${DESTDIR}/etc/init.d/kdc
|
||||
install -D -m755 ${FILESDIR}/kadmind.rc ${DESTDIR}/etc/init.d/kadmind
|
||||
install -D -m755 ${FILESDIR}/kpasswdd.rc ${DESTDIR}/etc/init.d/kpasswdd
|
||||
}
|
Loading…
Reference in a new issue