auto-import changelog data from cyrus-sasl-2.1.17-1.src.rpm
Wed Jan 07 2004 Nalin Dahyabhai <nalin@redhat.com> 2.1.17-1 - forcibly disable otp and sql plugins at compile-time Fri Dec 19 2003 Nalin Dahyabhai <nalin@redhat.com> - update to 2.1.17, forcing the gssapi plugin to be shared now, as before - use a bundled libdb (#112215) - build static-with-all-plugins and normal-shared libsasl versions - add sasl2-{shared,static}-mechlist for very basic sanity checking - make inclusion of sasl1 stuffs conditional, because it's so going away Sat Dec 13 2003 Jeff Johnson <jbj@jbj.org> 2.1.15-7 - rebuild against db-4.2.52.
This commit is contained in:
parent
070f98423b
commit
eb2d1017f4
@ -1,2 +1,3 @@
|
||||
cyrus-sasl-1.5.28.tar.gz
|
||||
cyrus-sasl-2.1.15.tar.gz
|
||||
cyrus-sasl-2.1.17.tar.gz
|
||||
db-4.2.52.tar.gz
|
||||
|
199
cyrus-sasl.spec
199
cyrus-sasl.spec
@ -1,34 +1,45 @@
|
||||
%define cs1_version 1.5.28
|
||||
%define _plugindir %{_libdir}/sasl
|
||||
%define _plugindir2 %{_libdir}/sasl2
|
||||
%define db_version 4.2.52
|
||||
|
||||
# Version 1 support. We provide the library and plugins for the vanishingly
|
||||
# small number of applications which still need them. Mutt, this means you.
|
||||
%define includev1 1
|
||||
|
||||
Summary: The Cyrus SASL library.
|
||||
Name: cyrus-sasl
|
||||
Version: 2.1.15
|
||||
Release: 6
|
||||
Version: 2.1.17
|
||||
Release: 1
|
||||
License: Freely Distributable
|
||||
Group: System Environment/Libraries
|
||||
Source0: ftp://ftp.andrew.cmu.edu/pub/cyrus-mail/cyrus-sasl-%{version}.tar.gz
|
||||
Source1: ftp://ftp.andrew.cmu.edu/pub/cyrus-mail/cyrus-sasl-%{version}.tar.gz.sig
|
||||
%if %{includev1}
|
||||
Source2: ftp://ftp.andrew.cmu.edu/pub/cyrus-mail/cyrus-sasl-%{cs1_version}.tar.gz
|
||||
Source3: ftp://ftp.andrew.cmu.edu/pub/cyrus-mail/cyrus-sasl-%{cs1_version}.tar.gz.sig
|
||||
%endif
|
||||
Source4: saslauthd.init
|
||||
Source5: README.RPM
|
||||
Source6: http://www.sleepycat.com/download/snapshot/db-%{db_version}.tar.gz
|
||||
Source7: sasl-mechlist.c
|
||||
URL: http://asg.web.cmu.edu/sasl/sasl-library.html
|
||||
%if %{includev1}
|
||||
Patch0: cyrus-sasl-1.5.24-rpath.patch
|
||||
Patch1: cyrus-sasl-1.5.28-autoconf25.patch
|
||||
Patch2: cyrus-sasl-1.5.28-automake17.patch
|
||||
Patch3: cyrus-sasl-2.1.7-gdbm.patch
|
||||
Patch4: cyrus-sasl-2.1.10-des.patch
|
||||
Patch5: cyrus-sasl-2.1.14-automake17.patch
|
||||
Patch6: cyrus-sasl-2.1.13-rpath.patch
|
||||
Patch7: cyrus-sasl-2.1.15-libtool15.patch
|
||||
Patch8: cyrus-sasl-2.1.14-plugin.patch
|
||||
Patch3: cyrus-sasl-1.5.28-automake18.patch
|
||||
%endif
|
||||
Patch4: cyrus-sasl-2.1.7-gdbm.patch
|
||||
Patch5: cyrus-sasl-2.1.10-des.patch
|
||||
Patch6: cyrus-sasl-2.1.17-gssapi-dynamic.patch
|
||||
Patch7: cyrus-sasl-2.1.17-db42.patch
|
||||
Buildroot: %{_tmppath}/%{name}-root
|
||||
BuildPrereq: autoconf213, automake15, libtool
|
||||
# Note: berkeley db for sasl2, gdbm for sasl1.
|
||||
BuildPrereq: db4-devel, gdbm-devel, krb5-devel >= 1.2, openssl-devel, pam-devel
|
||||
BuildPrereq: pkgconfig
|
||||
%if %{includev1}
|
||||
BuildPrereq: gdbm-devel
|
||||
%endif
|
||||
BuildPrereq: autoconf, automake, libtool
|
||||
BuildPrereq: krb5-devel >= 1.2, openssl-devel, pam-devel, pkgconfig
|
||||
Prereq: /sbin/ldconfig, chkconfig, /sbin/service
|
||||
|
||||
%description
|
||||
@ -74,29 +85,38 @@ The %{name}-md5 package contains the Cyrus SASL plugins which support
|
||||
CRAM-MD5 and DIGEST-MD5 authentication schemes.
|
||||
|
||||
%prep
|
||||
%setup -q -c -a 2
|
||||
%if %{includev1}
|
||||
%setup -q -c -a 2 -a 6
|
||||
%else
|
||||
%setup -q -c -a 6
|
||||
%endif
|
||||
|
||||
%if %{includev1}
|
||||
pushd cyrus-sasl-%{cs1_version}
|
||||
%patch0 -p1 -b .rpath
|
||||
%patch1 -p1 -b .autoconf25
|
||||
%patch2 -p1 -b .automake17
|
||||
%patch3 -p1 -b .automake18
|
||||
rm config/ltconfig
|
||||
libtoolize -f -c
|
||||
aclocal -I config -I cmulocal
|
||||
automake -a -c -f
|
||||
autoheader
|
||||
autoconf -f
|
||||
popd
|
||||
%endif
|
||||
|
||||
pushd cyrus-sasl-%{version}
|
||||
%patch3 -p1 -b .gdbm
|
||||
%patch4 -p1 -b .des
|
||||
%patch5 -p1 -b .automake17
|
||||
%patch6 -p1 -b .rpath
|
||||
%patch7 -p1 -b .libtool15
|
||||
%patch8 -p1 -b .plugin
|
||||
ln -s ../plugins/plugin_common.c lib/
|
||||
# Remove the mismatching AC_PROG_LIBTOOL definition and its ltconfig.
|
||||
> acinclude.m4
|
||||
rm config/ltconfig
|
||||
for buildtype in static shared ; do
|
||||
mkdir build-${buildtype}
|
||||
ln -s ../configure build-${buildtype}
|
||||
done
|
||||
%patch4 -p1 -b .gdbm
|
||||
%patch5 -p1 -b .des
|
||||
%patch6 -p1 -b .gssapi-dynamic
|
||||
%patch7 -p1 -b .db42
|
||||
# FIXME - this is just weird
|
||||
rm config/ltconfig acinclude.m4
|
||||
libtoolize -f -c
|
||||
aclocal -I config -I cmulocal
|
||||
automake -a -c -f
|
||||
@ -104,6 +124,7 @@ autoheader
|
||||
autoconf -f
|
||||
|
||||
pushd saslauthd
|
||||
# FIXME - this is just weird
|
||||
rm config/ltconfig
|
||||
libtoolize -f -c
|
||||
aclocal -I config -I ../cmulocal -I ../config
|
||||
@ -113,11 +134,13 @@ autoconf -f
|
||||
popd
|
||||
popd
|
||||
|
||||
%if %{includev1}
|
||||
# Sort of merge the docs.
|
||||
mkdir cyrus-sasl-%{version}/%{cs1_version}
|
||||
mkdir cyrus-sasl-%{version}/%{cs1_version}-devel
|
||||
cp %{name}-%{cs1_version}/{AUTHORS,COPYING,NEWS,README,doc/*.html} cyrus-sasl-%{version}/%{cs1_version}
|
||||
cp %{name}-%{cs1_version}/doc/*.txt cyrus-sasl-%{version}/%{cs1_version}-devel
|
||||
|
||||
# Remove duplicate RFCs.
|
||||
pushd cyrus-sasl-%{version}/%{cs1_version}-devel
|
||||
for file in * ; do
|
||||
@ -126,17 +149,35 @@ for file in * ; do
|
||||
fi
|
||||
done
|
||||
popd
|
||||
%endif
|
||||
|
||||
%build
|
||||
krb5_prefix=`krb5-config --prefix`
|
||||
CFLAGS="$RPM_OPT_FLAGS -fPIC"; export CFLAGS
|
||||
|
||||
# Bundling copy of Berkeley DB, for sasldb.
|
||||
topdir=`pwd`
|
||||
pushd db-%{db_version}/build_unix
|
||||
../dist/configure \
|
||||
--with-mutex=UNIX/fcntl --disable-shared --enable-static --with-pic \
|
||||
--with-uniquename=_cyrus_sasl_sasldb_rhl \
|
||||
--prefix=${topdir}/db-instroot \
|
||||
--includedir=${topdir}/db-instroot/include \
|
||||
--libdir=${topdir}/db-instroot/lib
|
||||
make
|
||||
make install
|
||||
popd
|
||||
|
||||
# Find Kerberos.
|
||||
if test x$krb5_prefix = x%{_prefix} ; then
|
||||
krb5_prefix=
|
||||
else
|
||||
CPPFLAGS="-I${krb5_prefix}/include"; export CPPFLAGS
|
||||
CFLAGS="-I${krb5_prefix}/include $RPM_OPT_FLAGS"; export CFLAGS
|
||||
CFLAGS="-I${krb5_prefix}/include $CFLAGS"
|
||||
LDFLAGS="-L${krb5_prefix}/%{_lib}"; export LDFLAGS
|
||||
fi
|
||||
LIBS="-lcrypt"; export LIBS
|
||||
|
||||
%if %{includev1}
|
||||
pushd cyrus-sasl-%{cs1_version}
|
||||
%configure \
|
||||
--enable-static --enable-staticdlopen --with-pic --enable-shared \
|
||||
@ -152,41 +193,78 @@ pushd cyrus-sasl-%{cs1_version}
|
||||
--enable-login
|
||||
make sasldir=%{_plugindir}
|
||||
popd
|
||||
%endif
|
||||
|
||||
pushd cyrus-sasl-%{version}
|
||||
LIBS="-lcrypt"; export LIBS
|
||||
# Version 2. If built statically, the plugins are part of the library itself,
|
||||
# and if built shared in the same instance, in the shared library, too, so we
|
||||
# build twice. Yay.
|
||||
for buildtype in static shared ; do
|
||||
pushd cyrus-sasl-%{version}/build-${buildtype}
|
||||
build_static=
|
||||
build_shared=
|
||||
eval build_${buildtype}=yes
|
||||
# We patch configure.in, so we regenerate configure, but the generated version
|
||||
# doesn't cache whether or not it can build shared libraries, so configure gets
|
||||
# confused. Aaargh.
|
||||
ac_cv_can_build_shared=yes
|
||||
export ac_cv_can_build_shared
|
||||
%configure \
|
||||
--enable-static --with-pic --enable-shared --disable-java \
|
||||
--disable-shared --disable-static --enable-${buildtype} \
|
||||
--disable-java \
|
||||
--with-plugindir=%{_plugindir2} \
|
||||
--disable-krb4 \
|
||||
--enable-gssapi${krb5_prefix:+=${krb5_prefix}} \
|
||||
--with-rc4 \
|
||||
--with-dblib=berkeley \
|
||||
--with-bdb-incdir=${topdir}/db-instroot/include \
|
||||
--with-bdb-libdir=${topdir}/db-instroot/lib \
|
||||
--with-saslauthd=/var/run/saslauthd --without-pwcheck \
|
||||
--with-devrandom=/dev/urandom \
|
||||
--enable-anon \
|
||||
--enable-cram \
|
||||
--enable-digest \
|
||||
--enable-plain \
|
||||
--enable-login
|
||||
--enable-login \
|
||||
--disable-otp \
|
||||
--disable-sql
|
||||
# --enable-auth-sasldb -- EXPERIMENTAL
|
||||
make sasldir=%{_plugindir2}
|
||||
make -C saslauthd testsaslauthd
|
||||
popd
|
||||
done
|
||||
|
||||
# Merge our static libdb in with libsasl, because we won't be installing it.
|
||||
pushd cyrus-sasl-%{version}/build-static/lib
|
||||
ar x ${topdir}/db-instroot/lib/libdb.a
|
||||
ar cru libsasl2.a `ar t ${topdir}/db-instroot/lib/libdb.a`
|
||||
|
||||
# Build small programs to list the available mechanisms, because I need them.
|
||||
%{__cc} -o sasl2-static-mechlist -I../../include $CFLAGS $RPM_SOURCE_DIR/sasl-mechlist.c $LDFLAGS ./libsasl2.a -lssl -lgssapi_krb5
|
||||
popd
|
||||
pushd cyrus-sasl-%{version}/build-shared/lib
|
||||
tagname=CC ../libtool --mode=link %{__cc} -o sasl2-shared-mechlist -I../../include $CFLAGS $RPM_SOURCE_DIR/sasl-mechlist.c $LDFLAGS ./libsasl2.la
|
||||
popd
|
||||
|
||||
%install
|
||||
test "$RPM_BUILD_ROOT" != "/" && rm -rf $RPM_BUILD_ROOT
|
||||
|
||||
%if %{includev1}
|
||||
pushd cyrus-sasl-%{cs1_version}
|
||||
%makeinstall sasldir=$RPM_BUILD_ROOT/%{_plugindir}
|
||||
make install DESTDIR=$RPM_BUILD_ROOT sasldir=%{_plugindir}
|
||||
install -m755 -d $RPM_BUILD_ROOT%{_bindir}
|
||||
libtool --mode=install \
|
||||
install -m755 sample/client $RPM_BUILD_ROOT%{_bindir}/sasl-sample-client
|
||||
libtool --mode=install \
|
||||
install -m755 sample/server $RPM_BUILD_ROOT%{_bindir}/sasl-sample-server
|
||||
popd
|
||||
%endif
|
||||
|
||||
pushd cyrus-sasl-%{version}
|
||||
%makeinstall sasldir=$RPM_BUILD_ROOT/%{_plugindir2}
|
||||
pushd cyrus-sasl-%{version}/build-static
|
||||
make install DESTDIR=$RPM_BUILD_ROOT sasldir=%{_plugindir2} -C lib
|
||||
popd
|
||||
|
||||
pushd cyrus-sasl-%{version}/build-shared
|
||||
make install DESTDIR=$RPM_BUILD_ROOT sasldir=%{_plugindir2}
|
||||
install -m755 -d $RPM_BUILD_ROOT%{_bindir}
|
||||
|
||||
libtool --mode=install \
|
||||
@ -201,14 +279,25 @@ install -m755 utils/dbconverter-2 $RPM_BUILD_ROOT%{_sbindir}/dbconverter-2
|
||||
# Install the saslauthd mdoc page in the expected location. Sure, it's not
|
||||
# really a man page, but groff seems to be able to cope with it.
|
||||
install -m755 -d $RPM_BUILD_ROOT%{_mandir}/man8/
|
||||
install -m644 saslauthd/saslauthd.mdoc $RPM_BUILD_ROOT%{_mandir}/man8/saslauthd.8
|
||||
install -m644 ../saslauthd/saslauthd.mdoc $RPM_BUILD_ROOT%{_mandir}/man8/saslauthd.8
|
||||
|
||||
# Create the saslauthd listening directory.
|
||||
install -m755 -d $RPM_BUILD_ROOT/var/run/saslauthd
|
||||
|
||||
# Install the init script.
|
||||
install -m755 -d $RPM_BUILD_ROOT/etc/rc.d/init.d
|
||||
install -m755 $RPM_SOURCE_DIR/saslauthd.init $RPM_BUILD_ROOT/etc/rc.d/init.d/saslauthd
|
||||
|
||||
popd
|
||||
|
||||
# Figure out an easy way to query the list of available mechanisms.
|
||||
libtool --mode=install \
|
||||
install -m755 cyrus-sasl-%{version}/build-shared/lib/sasl2-shared-mechlist \
|
||||
$RPM_BUILD_ROOT%{_sbindir}/
|
||||
libtool --mode=install \
|
||||
install -m755 cyrus-sasl-%{version}/build-static/lib/sasl2-static-mechlist \
|
||||
$RPM_BUILD_ROOT%{_sbindir}/
|
||||
|
||||
# Remove unpackaged files from the buildroot.
|
||||
rm -f $RPM_BUILD_ROOT%{_libdir}/sasl2/libotp.*
|
||||
rm -f $RPM_BUILD_ROOT%{_mandir}/cat8/saslauthd.8
|
||||
@ -233,22 +322,30 @@ fi
|
||||
|
||||
%files
|
||||
%defattr(-,root,root)
|
||||
%if %{includev1}
|
||||
%doc %{name}-%{version}/%{cs1_version}
|
||||
%endif
|
||||
%doc %{name}-%{version}/{AUTHORS,COPYING,NEWS,README,doc/*.html}
|
||||
%doc $RPM_SOURCE_DIR/README.RPM
|
||||
%{_libdir}/libsasl*.so.*
|
||||
%if %{includev1}
|
||||
%dir %{_plugindir}/
|
||||
%endif
|
||||
%dir %{_plugindir2}/
|
||||
%if %{includev1}
|
||||
%{_plugindir}/*anonymous*.so*
|
||||
%{_plugindir}/*anonymous*.la
|
||||
%endif
|
||||
%{_plugindir2}/*anonymous*.so*
|
||||
%{_plugindir2}/*anonymous*.la
|
||||
%{_plugindir2}/*sasldb*.so*
|
||||
%{_plugindir2}/*sasldb*.la
|
||||
%{_mandir}/man8/*
|
||||
%{_sbindir}/dbconverter-2
|
||||
%if %{includev1}
|
||||
%{_sbindir}/saslpasswd
|
||||
%{_sbindir}/sasldblistusers
|
||||
%endif
|
||||
%{_sbindir}/saslpasswd2
|
||||
%{_sbindir}/sasldblistusers2
|
||||
%{_sbindir}/saslauthd
|
||||
@ -258,10 +355,12 @@ fi
|
||||
|
||||
%files plain
|
||||
%defattr(-,root,root)
|
||||
%if %{includev1}
|
||||
%{_plugindir}/*plain*.so*
|
||||
%{_plugindir}/*plain*.la
|
||||
%{_plugindir}/*login*.so*
|
||||
%{_plugindir}/*login*.la
|
||||
%endif
|
||||
%{_plugindir2}/*plain*.so*
|
||||
%{_plugindir2}/*plain*.la
|
||||
%{_plugindir2}/*login*.so*
|
||||
@ -269,10 +368,12 @@ fi
|
||||
|
||||
%files md5
|
||||
%defattr(-,root,root)
|
||||
%if %{includev1}
|
||||
%{_plugindir}/*crammd5*.so*
|
||||
%{_plugindir}/*crammd5*.la
|
||||
%{_plugindir}/*digestmd5*.so*
|
||||
%{_plugindir}/*digestmd5*.la
|
||||
%endif
|
||||
%{_plugindir2}/*crammd5*.so*
|
||||
%{_plugindir2}/*crammd5*.la
|
||||
%{_plugindir2}/*digestmd5*.so*
|
||||
@ -280,28 +381,37 @@ fi
|
||||
|
||||
%files gssapi
|
||||
%defattr(-,root,root)
|
||||
%if %{includev1}
|
||||
%{_plugindir}/*gssapi*.so*
|
||||
%{_plugindir}/*gssapi*.la
|
||||
%endif
|
||||
%{_plugindir2}/*gssapi*.so*
|
||||
%{_plugindir2}/*gssapi*.la
|
||||
|
||||
%files devel
|
||||
%defattr(-,root,root)
|
||||
%if %{includev1}
|
||||
%doc %{name}-%{version}/%{cs1_version}-devel
|
||||
%endif
|
||||
%doc %{name}-%{version}/doc/*.txt
|
||||
%if %{includev1}
|
||||
%{_bindir}/sasl-sample-client
|
||||
%{_bindir}/sasl-sample-server
|
||||
%endif
|
||||
%{_bindir}/sasl2-sample-client
|
||||
%{_bindir}/sasl2-sample-server
|
||||
%{_includedir}/*
|
||||
%{_libdir}/libsasl*.*a
|
||||
%{_libdir}/libsasl*.*so
|
||||
%if %{includev1}
|
||||
%{_plugindir}/*anonymous*.a
|
||||
%{_plugindir}/*crammd5*.a
|
||||
%{_plugindir}/*digestmd5*.a
|
||||
%{_plugindir}/*gssapi*.a
|
||||
%{_plugindir}/*login*.a
|
||||
%{_plugindir}/*plain*.a
|
||||
%endif
|
||||
%if 0
|
||||
%{_plugindir2}/*anonymous*.a
|
||||
%{_plugindir2}/*crammd5*.a
|
||||
%{_plugindir2}/*digestmd5*.a
|
||||
@ -309,12 +419,30 @@ fi
|
||||
%{_plugindir2}/*login*.a
|
||||
%{_plugindir2}/*plain*.a
|
||||
%{_plugindir2}/*sasldb*.a
|
||||
%endif
|
||||
%{_mandir}/man3/*
|
||||
%{_sbindir}/sasl2-static-mechlist
|
||||
%{_sbindir}/sasl2-shared-mechlist
|
||||
|
||||
#
|
||||
# TODO: enable ntlm
|
||||
# TODO: enable ldap for saslauthd once it moves out of experimental status
|
||||
# TODO: enable ntlm if it ever moves out of unsupported status, maybe sooner
|
||||
# TODO: enable sql if the time comes when the soname doesn't change too often
|
||||
#
|
||||
%changelog
|
||||
* Wed Jan 7 2004 Nalin Dahyabhai <nalin@redhat.com> 2.1.17-1
|
||||
- forcibly disable otp and sql plugins at compile-time
|
||||
|
||||
* Fri Dec 19 2003 Nalin Dahyabhai <nalin@redhat.com>
|
||||
- update to 2.1.17, forcing the gssapi plugin to be shared now, as before
|
||||
- use a bundled libdb (#112215)
|
||||
- build static-with-all-plugins and normal-shared libsasl versions
|
||||
- add sasl2-{shared,static}-mechlist for very basic sanity checking
|
||||
- make inclusion of sasl1 stuffs conditional, because it's so going away
|
||||
|
||||
* Sat Dec 13 2003 Jeff Johnson <jbj@jbj.org> 2.1.15-7
|
||||
- rebuild against db-4.2.52.
|
||||
|
||||
* Thu Oct 23 2003 Nalin Dahyabhai <nalin@redhat.com> 2.1.15-6
|
||||
- use /dev/urandom instead of /dev/random for SASL2 (docs indicate that this is
|
||||
safe if you aren't using OTP or SRP, and we build neither); SASL1 appears to
|
||||
@ -327,6 +455,9 @@ fi
|
||||
- install saslauthd's mdoc page instead of the pre-formatted man page, which
|
||||
would get formatted again
|
||||
|
||||
* Thu Sep 25 2003 Jeff Johnson <jbj@jbj.org> 2.1.15-5
|
||||
- rebuild against db-4.2.42.
|
||||
|
||||
* Mon Sep 15 2003 Nalin Dahyabhai <nalin@redhat.com>
|
||||
- include testsaslauthd
|
||||
- note in the README that the saslauthd protocol is different for v1 and v2,
|
||||
|
97
sasl-mechlist.c
Normal file
97
sasl-mechlist.c
Normal file
@ -0,0 +1,97 @@
|
||||
#include "sasl.h"
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
|
||||
static int
|
||||
my_getopt(void *context, const char *plugin_name,
|
||||
const char *option, const char **result, unsigned *len)
|
||||
{
|
||||
if (result) {
|
||||
*result = NULL;
|
||||
#if 0
|
||||
fprintf(stderr, "Getopt plugin=%s%s%s/option=%s%s%s -> ",
|
||||
plugin_name ? "\"" : "",
|
||||
plugin_name ? plugin_name : "(null)",
|
||||
plugin_name ? "\"" : "",
|
||||
option ? "\"" : "",
|
||||
option ? option : "(null)",
|
||||
option ? "\"" : "");
|
||||
fprintf(stderr, "'%s'.\n", *result ? *result : "");
|
||||
#endif
|
||||
}
|
||||
if (len) {
|
||||
*len = 0;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
int
|
||||
main(int argc, char **argv)
|
||||
{
|
||||
int ret, i;
|
||||
const char *mechs, **globals;
|
||||
sasl_callback_t callbacks[] = {
|
||||
{SASL_CB_GETOPT, my_getopt, NULL},
|
||||
{SASL_CB_LIST_END},
|
||||
};
|
||||
sasl_conn_t *connection;
|
||||
char hostname[512];
|
||||
|
||||
if ((argc > 1) && (argv[1][0] == '-')) {
|
||||
fprintf(stderr, "Usage: %s [appname [hostname] ]\n", argv[0]);
|
||||
return 0;
|
||||
}
|
||||
|
||||
ret = sasl_server_init(callbacks, argc > 1 ? argv[1] : "sasl-mechlist");
|
||||
if (ret != SASL_OK) {
|
||||
fprintf(stderr, "Error in sasl_server_init(): %s\n",
|
||||
sasl_errstring(ret, NULL, NULL));
|
||||
}
|
||||
|
||||
connection = NULL;
|
||||
strcpy(hostname, "localhost");
|
||||
gethostname(hostname, sizeof(hostname));
|
||||
ret = sasl_server_new(argc > 2 ? argv[2] : "host",
|
||||
hostname,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
callbacks,
|
||||
0,
|
||||
&connection);
|
||||
if (ret != SASL_OK) {
|
||||
fprintf(stderr, "Error in sasl_server_new(): %s\n",
|
||||
sasl_errstring(ret, NULL, NULL));
|
||||
}
|
||||
|
||||
ret = sasl_listmech(connection,
|
||||
getenv("USER") ? getenv("USER") : "root",
|
||||
"Available mechanisms: ",
|
||||
",",
|
||||
"\n",
|
||||
&mechs,
|
||||
NULL,
|
||||
NULL);
|
||||
if (ret != SASL_OK) {
|
||||
fprintf(stderr, "Error in sasl_listmechs(): %s\n",
|
||||
sasl_errstring(ret, NULL, NULL));
|
||||
} else {
|
||||
fprintf(stdout, "%s", mechs);
|
||||
}
|
||||
|
||||
globals = sasl_global_listmech();
|
||||
for (i = 0; (globals != NULL) && (globals[i] != NULL); i++) {
|
||||
if (i == 0) {
|
||||
fprintf(stdout, "Library supports: ");
|
||||
}
|
||||
fprintf(stdout, "%s", globals[i]);
|
||||
if (globals[i + 1] != NULL) {
|
||||
fprintf(stdout, ",");
|
||||
} else {
|
||||
fprintf(stdout, "\n");
|
||||
}
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
Loading…
Reference in New Issue
Block a user