Codebase list cyrus-sasl2 / 99ae955
New upstream version 2.1.27+dfsg Ondřej Surý 5 years ago
142 changed file(s) with 3247 addition(s) and 1658 deletion(s). Raw diff Collapse all Expand all
148148 rm -rf $(top_distdir)/$(SPHINX_CACHE)
149149
150150 framedir = /Library/Frameworks/SASL2.framework
151 install-exec-local: $(INSTALLOSX)
152 @if test "$(plugindir)" != "$(prefix)/lib/sasl2"; then \
153 echo "********************************************************"; \
154 echo "* WARNING:"; \
155 echo "* Plugins are being installed into $(prefix)/lib/sasl2,"; \
156 echo "* but the library will look for them in $(plugindir)."; \
157 echo "* You need to make sure that the plugins will eventually"; \
158 echo "* be in $(plugindir) -- the easiest way is to make a"; \
159 echo "* symbolic link from $(plugindir) to $(prefix)/lib/sasl2,"; \
160 echo "* but this may not be appropriate for your site, so this"; \
161 echo "* installation procedure won't do it for you."; \
162 echo "*"; \
163 echo "* If you don't want to do this for some reason, you can"; \
164 echo "* set the location where the library will look for plugins"; \
165 echo "* by setting the environment variable SASL_PATH to the path"; \
166 echo "* the library should use."; \
167 echo "********************************************************"; \
168 fi
169151 install-exec-local-osx:
170152 $(mkinstalldirs) $(framedir)/Versions/A/Headers
171153 $(mkinstalldirs) $(framedir)/Versions/A/Resources
10361036
10371037 install-dvi-am:
10381038
1039 install-exec-am: install-exec-local
1039 install-exec-am:
10401040
10411041 install-html: install-html-recursive
10421042
10911091 distclean-tags distcleancheck distdir distuninstallcheck dvi \
10921092 dvi-am html html-am info info-am install install-am \
10931093 install-data install-data-am install-dvi install-dvi-am \
1094 install-exec install-exec-am install-exec-local install-html \
1095 install-html-am install-info install-info-am install-man \
1096 install-man3 install-pdf install-pdf-am install-pkgconfigDATA \
1097 install-ps install-ps-am install-strip installcheck \
1098 installcheck-am installdirs installdirs-am maintainer-clean \
1094 install-exec install-exec-am install-html install-html-am \
1095 install-info install-info-am install-man install-man3 \
1096 install-pdf install-pdf-am install-pkgconfigDATA install-ps \
1097 install-ps-am install-strip installcheck installcheck-am \
1098 installdirs installdirs-am maintainer-clean \
10991099 maintainer-clean-generic mostlyclean mostlyclean-generic \
11001100 mostlyclean-libtool pdf pdf-am ps ps-am tags tags-am uninstall \
11011101 uninstall-am uninstall-man uninstall-man3 \
11261126 (cd $(distdir)/plugins && sh makeinit.sh)
11271127 find $(top_distdir) -type f -name .sphinx-build.stamp -delete
11281128 rm -rf $(top_distdir)/$(SPHINX_CACHE)
1129 install-exec-local: $(INSTALLOSX)
1130 @if test "$(plugindir)" != "$(prefix)/lib/sasl2"; then \
1131 echo "********************************************************"; \
1132 echo "* WARNING:"; \
1133 echo "* Plugins are being installed into $(prefix)/lib/sasl2,"; \
1134 echo "* but the library will look for them in $(plugindir)."; \
1135 echo "* You need to make sure that the plugins will eventually"; \
1136 echo "* be in $(plugindir) -- the easiest way is to make a"; \
1137 echo "* symbolic link from $(plugindir) to $(prefix)/lib/sasl2,"; \
1138 echo "* but this may not be appropriate for your site, so this"; \
1139 echo "* installation procedure won't do it for you."; \
1140 echo "*"; \
1141 echo "* If you don't want to do this for some reason, you can"; \
1142 echo "* set the location where the library will look for plugins"; \
1143 echo "* by setting the environment variable SASL_PATH to the path"; \
1144 echo "* the library should use."; \
1145 echo "********************************************************"; \
1146 fi
11471129 install-exec-local-osx:
11481130 $(mkinstalldirs) $(framedir)/Versions/A/Headers
11491131 $(mkinstalldirs) $(framedir)/Versions/A/Resources
1111 #if defined(HAVE_OPENSSL) && (OPENSSL_VERSION_NUMBER < 0x10100000L)
1212
1313 #include <string.h>
14 #include <openssl/engine.h>
1514
1615 static void *OPENSSL_zalloc(size_t num)
1716 {
1414 #include <openssl/dh.h>
1515 #include <openssl/evp.h>
1616 #include <openssl/hmac.h>
17 #include <openssl/bn.h>
1718
1819 int RSA_set0_key(RSA *r, BIGNUM *n, BIGNUM *e, BIGNUM *d);
1920 int RSA_set0_factors(RSA *r, BIGNUM *p, BIGNUM *q);
4545 #ifndef macintosh
4646 #ifdef WIN32
4747 # include <winsock2.h>
48 # include <versionhelpers.h>
4849 #else
4950 # include <sys/socket.h>
5051 # include <netinet/in.h>
128129
129130 /* Parse the address */
130131 for (i = 0; addr[i] != '\0' && addr[i] != ';'; i++) {
131 if (i >= NI_MAXHOST) {
132 if (i + 1 >= NI_MAXHOST) {
132133 if(utils) PARAMERROR( utils );
133134 return SASL_BADPARAM;
134135 }
220221 unsigned *curlen, unsigned newlen)
221222 {
222223 if(!utils || !rwbuf || !curlen) {
223 PARAMERROR(utils);
224 if (utils) PARAMERROR(utils);
224225 return SASL_BADPARAM;
225226 }
226227
254255 int _plug_strdup(const sasl_utils_t * utils, const char *in,
255256 char **out, int *outlen)
256257 {
257 size_t len = strlen(in);
258 size_t len = 0;
258259
259260 if(!utils || !in || !out) {
260261 if(utils) PARAMERROR(utils);
261262 return SASL_BADPARAM;
262263 }
264
265 len = strlen(in);
263266
264267 *out = utils->malloc(len + 1);
265268 if (!*out) {
823826 void _plug_snprintf_os_info (char * osbuf, int osbuf_len)
824827 {
825828 #ifdef WIN32
826 OSVERSIONINFOEX versioninfo;
827829 char *sysname;
828
829 /* :
830 DWORD dwOSVersionInfoSize;
831 DWORD dwMajorVersion;
832 DWORD dwMinorVersion;
833 DWORD dwBuildNumber;
834 TCHAR szCSDVersion[ 128 ];
835 //Only NT SP 6 and later
836 WORD wServicePackMajor;
837 WORD wServicePackMinor;
838 WORD wSuiteMask;
839 BYTE wProductType;
840 */
841
842 versioninfo.dwOSVersionInfoSize = sizeof (versioninfo);
843830 sysname = "Unknown Windows";
844831
845 if (GetVersionEx ((OSVERSIONINFO *) &versioninfo) == FALSE) {
832 /* Let's suppose it's still compilable with win2k sdk. So define everythig missing */
833 #ifndef _WIN32_WINNT_WINXP
834 # define _WIN32_WINNT_WINXP 0x0501
835 #endif
836 #ifndef _WIN32_WINNT_WS03
837 # define _WIN32_WINNT_WS03 0x0502
838 #endif
839 #ifndef _WIN32_WINNT_WIN6
840 # define _WIN32_WINNT_WIN6 0x0600
841 #endif
842 #ifndef _WIN32_WINNT_VISTA
843 # define _WIN32_WINNT_VISTA 0x0600
844 #endif
845 #ifndef _WIN32_WINNT_WS08
846 # define _WIN32_WINNT_WS08 0x0600
847 #endif
848 #ifndef _WIN32_WINNT_LONGHORN
849 # define _WIN32_WINNT_LONGHORN 0x0600
850 #endif
851 #ifndef _WIN32_WINNT_WIN7
852 # define _WIN32_WINNT_WIN7 0x0601
853 #endif
854 #ifndef _WIN32_WINNT_WIN8
855 # define _WIN32_WINNT_WIN8 0x0602
856 #endif
857 #ifndef _WIN32_WINNT_WINBLUE
858 # define _WIN32_WINNT_WINBLUE 0x0603
859 #endif
860 #ifndef _WIN32_WINNT_WIN10
861 # define _WIN32_WINNT_WIN10 0x0A00
862 #endif
863
864 /* and use IsWindowsVersionOrGreater instead of convenient wrappers by the same reason */
865 if (IsWindowsVersionOrGreater(HIBYTE(_WIN32_WINNT_WIN10), LOBYTE(_WIN32_WINNT_WIN10), 0)) {
866 sysname = "Windows 10 or greater";
867 } else
868 if (IsWindowsVersionOrGreater(HIBYTE(_WIN32_WINNT_WINBLUE), LOBYTE(_WIN32_WINNT_WINBLUE), 0)) {
869 sysname = "Windows 8.1";
870 } else
871 if (IsWindowsVersionOrGreater(HIBYTE(_WIN32_WINNT_WIN8), LOBYTE(_WIN32_WINNT_WIN8), 0)) {
872 sysname = "Windows 8";
873 } else
874 if (IsWindowsVersionOrGreater(HIBYTE(_WIN32_WINNT_WIN7), LOBYTE(_WIN32_WINNT_WIN7), 1)) {
875 sysname = "Windows 7 SP1";
876 } else
877 if (IsWindowsVersionOrGreater(HIBYTE(_WIN32_WINNT_WIN7), LOBYTE(_WIN32_WINNT_WIN7), 0)) {
878 sysname = "Windows 7";
879 } else
880 if (IsWindowsVersionOrGreater(HIBYTE(_WIN32_WINNT_VISTA), LOBYTE(_WIN32_WINNT_VISTA), 2)) {
881 sysname = "Windows Vista SP2";
882 } else
883 if (IsWindowsVersionOrGreater(HIBYTE(_WIN32_WINNT_VISTA), LOBYTE(_WIN32_WINNT_VISTA), 1)) {
884 sysname = "Windows Vista SP1";
885 } else
886 if (IsWindowsVersionOrGreater(HIBYTE(_WIN32_WINNT_VISTA), LOBYTE(_WIN32_WINNT_VISTA), 0)) {
887 sysname = "Windows Vista";
888 } else
889 if (IsWindowsVersionOrGreater(HIBYTE(_WIN32_WINNT_WINXP), LOBYTE(_WIN32_WINNT_WINXP), 3)) {
890 sysname = "Windows XP SP3";
891 } else
892 if (IsWindowsVersionOrGreater(HIBYTE(_WIN32_WINNT_WINXP), LOBYTE(_WIN32_WINNT_WINXP), 2)) {
893 sysname = "Windows XP SP2";
894 } else
895 if (IsWindowsVersionOrGreater(HIBYTE(_WIN32_WINNT_WINXP), LOBYTE(_WIN32_WINNT_WINXP), 1)) {
896 sysname = "Windows XP SP1";
897 } else
898 if (IsWindowsVersionOrGreater(HIBYTE(_WIN32_WINNT_WINXP), LOBYTE(_WIN32_WINNT_WINXP), 0)) {
899 sysname = "Windows XP";
900 }
901
846902 snprintf(osbuf, osbuf_len, "%s", sysname);
847 goto SKIP_OS_INFO;
848 }
849
850 switch (versioninfo.dwPlatformId) {
851 case VER_PLATFORM_WIN32s: /* Win32s on Windows 3.1 */
852 sysname = "Win32s on Windows 3.1";
853 /* I can't test if dwBuildNumber has any meaning on Win32s */
854 break;
855
856 case VER_PLATFORM_WIN32_WINDOWS: /* 95/98/ME */
857 switch (versioninfo.dwMinorVersion) {
858 case 0:
859 sysname = "Windows 95";
860 break;
861 case 10:
862 sysname = "Windows 98";
863 break;
864 case 90:
865 sysname = "Windows Me";
866 break;
867 default:
868 sysname = "Unknown Windows 9X/ME series";
869 break;
870 }
871 /* Clear the high order word, as it contains major/minor version */
872 versioninfo.dwBuildNumber &= 0xFFFF;
873 break;
874
875 case VER_PLATFORM_WIN32_NT: /* NT/2000/XP/.NET */
876 if (versioninfo.dwMinorVersion > 99) {
877 } else {
878 switch (versioninfo.dwMajorVersion * 100 + versioninfo.dwMinorVersion) {
879 case 351:
880 sysname = "Windows NT 3.51";
881 break;
882 case 400:
883 sysname = "Windows NT 4.0";
884 break;
885 case 500:
886 sysname = "Windows 2000";
887 break;
888 case 501:
889 sysname = "Windows XP/.NET"; /* or Windows .NET Server */
890 break;
891 default:
892 sysname = "Unknown Windows NT series";
893 break;
894 }
895 }
896 break;
897
898 default:
899 break;
900 }
901
902 snprintf(osbuf, osbuf_len,
903 "%s %s (Build %u)",
904 sysname,
905 versioninfo.szCSDVersion,
906 versioninfo.dwBuildNumber
907 );
908
909 SKIP_OS_INFO:
910 ;
911903
912904 #else /* !WIN32 */
913905 struct utsname os;
4848 /* Include SASLdb Support */
4949 #undef AUTH_SASLDB
5050
51 /* Runtime config file location */
52 #undef CONFIGDIR
53
5451 /* Do we need a leading _ for dlsym? */
5552 #undef DLSYM_NEEDS_UNDERSCORE
5653
237234 /* Support for PAM? */
238235 #undef HAVE_PAM
239236
240 /* Define to 1 if you have the <pam/pam_appl.h> header file. */
241 #undef HAVE_PAM_PAM_APPL_H
242
243237 /* Define to 1 if you have the <paths.h> header file. */
244238 #undef HAVE_PATHS_H
245239
251245
252246 /* Include support for saslauthd? */
253247 #undef HAVE_SASLAUTHD
254
255 /* Define to 1 if you have the <security/pam_appl.h> header file. */
256 #undef HAVE_SECURITY_PAM_APPL_H
257248
258249 /* Define to 1 if you have the `select' function. */
259250 #undef HAVE_SELECT
418409
419410 /* Where do we look for saslauthd's socket? */
420411 #undef PATH_SASLAUTHD_RUNDIR
421
422 /* Runtime plugin location */
423 #undef PLUGINDIR
424412
425413 /* Force a preferred mechanism */
426414 #undef PREFER_MECH
868868 with_gdbm
869869 enable_keep_db_open
870870 with_devrandom
871 with_pam
872871 with_saslauthd
873872 with_authdaemond
874873 with_pwcheck
892891 enable_sia
893892 enable_auth_sasldb
894893 enable_httpform
894 with_pam
895895 enable_plain
896896 enable_anon
897897 enable_login
16091609 --with-bdb-incdir=DIR Berkeley DB include files are in DIR
16101610 --with-gdbm=PATH use gdbm from PATH
16111611 --with-devrandom=PATH set the path to pseudo random number generator [/dev/urandom]
1612 --with-pam=DIR use PAM (rooted in DIR) [yes]
16131612 --with-saslauthd=DIR enable use of the saslauth daemon using state dir DIR
16141613 --with-authdaemond=PATH enable use of authdaemon with default socket=PATH [yes]
16151614 --with-pwcheck=DIR enable deprecated pwcheck daemon using statedir DIR
16211620 PATH
16221621 --with-gss_impl={heimdal|mit|cybersafe|seam|auto}
16231622 choose specific GSSAPI implementation [[auto]]
1624 --with-pam=DIR use PAM (rooted in DIR) yes
1623 --with-pam=DIR use PAM (rooted in DIR) [yes]
16251624 --with-ldap=DIR use LDAP (in DIR) for saslauthd no
16261625 --with-mysql=PATH use MySQL from PATH
16271626 --with-pgsql=PATH use PostgreSQL from PATH
16281627 --with-sqlite=PATH use SQLite from PATH
16291628 --with-sqlite3=PATH use SQLite3 from PATH
16301629 --with-plugindir=DIR set the directory where plugins will
1631 be found [/usr/lib/sasl2]
1630 be found [LIBDIR/sasl2]
16321631 --with-configdir=DIR set the directory where config files will
1633 be found /usr/lib/sasl2
1632 be found PLUGINDIR:SYSCONFDIR/sasl2
16341633 --with-rc4 use internal rc4 routines [yes]
16351634 --with-dmalloc=DIR with DMALLOC support (for test applications) [no]
16361635 --with-sfio=DIR with SFIO support (for smtptest/libsfsasl) [no]
35903589
35913590 # Check whether --enable-sample was given.
35923591 if test "${enable_sample+set}" = set; then :
3593 enableval=$enable_sample; enable_sample=yes
3592 enableval=$enable_sample;
3593 else
3594 enable_sample=yes
35943595 fi
35953596
35963597
1538815389
1538915390
1539015391
15391 # Check whether --with-pam was given.
15392 if test "${with_pam+set}" = set; then :
15393 withval=$with_pam; with_pam=$withval
15394 else
15395 with_pam=yes
15396 fi
15397
15398 if test "$with_pam" != no; then
15399 if test -d $with_pam; then
15400 CPPFLAGS="$CPPFLAGS -I${with_pam}/include"
15401 LDFLAGS="$LDFLAGS -L${with_pam}/lib"
15402 fi
15403 for ac_header in security/pam_appl.h pam/pam_appl.h
15404 do :
15405 as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
15406 ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default"
15407 if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
15408 cat >>confdefs.h <<_ACEOF
15409 #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
15410 _ACEOF
15411
15412 fi
15413
15414 done
15415
15416 cmu_save_LIBS="$LIBS"
15417 ac_fn_c_check_func "$LINENO" "pam_start" "ac_cv_func_pam_start"
15418 if test "x$ac_cv_func_pam_start" = xyes; then :
15419 :
15420 else
15421 LIBS="-lpam $LIBS"
15422 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
15423 /* end confdefs.h. */
15424
15425 #include <sys/types.h>
15426 #ifdef HAVE_PAM_PAM_APPL_H
15427 #include <pam/pam_appl.h>
15428 #endif
15429 #ifdef HAVE_SECURITY_PAM_H
15430 #include <security/pam_appl.h>
15431 #endif
15432 int
15433 main ()
15434 {
15435
15436 const char *service="foo";
15437 const char *user="bar";
15438 pam_handle_t *pamh;
15439 struct pam_conv *conv;
15440 int baz;
15441 baz = pam_start(service, user, conv, &pamh);
15442 return 0;
15443
15444 ;
15445 return 0;
15446 }
15447 _ACEOF
15448 if ac_fn_c_try_link "$LINENO"; then :
15449 LIBPAM="-lpam"
15450 fi
15451 rm -f core conftest.err conftest.$ac_objext \
15452 conftest$ac_exeext conftest.$ac_ext
15453
15454 fi
15455
15456 LIBS="$cmu_save_LIBS $LIBPAM"
15457 fi
15458
15459
1546015392 # Check whether --with-saslauthd was given.
1546115393 if test "${with_saslauthd+set}" = set; then :
1546215394 withval=$with_saslauthd; with_saslauthd=$withval
1866818600
1866918601 # Check whether --with-pam was given.
1867018602 if test "${with_pam+set}" = set; then :
18671 withval=$with_pam; with_pam=$withval
18603 withval=$with_pam;
1867218604 else
1867318605 with_pam=yes
1867418606 fi
1982719759 if test "${with_plugindir+set}" = set; then :
1982819760 withval=$with_plugindir; plugindir=$withval
1982919761 else
19830 plugindir=/usr/lib/sasl2
19831 fi
19832
19833
19834 cat >>confdefs.h <<_ACEOF
19835 #define PLUGINDIR "$plugindir"
19836 _ACEOF
19762 plugindir='${libdir}/sasl2'
19763 fi
1983719764
1983819765
1983919766
1984219769 if test "${with_configdir+set}" = set; then :
1984319770 withval=$with_configdir; configdir=$withval
1984419771 else
19845 configdir=$plugindir:/etc/sasl2
19846 fi
19847
19848
19849 cat >>confdefs.h <<_ACEOF
19850 #define CONFIGDIR "$configdir"
19851 _ACEOF
19772 configdir='${plugindir}:${sysconfdir}/sasl2'
19773 fi
1985219774
1985319775
1985419776
2005919981 sasl_cv_snprintf=yes
2006019982 fi
2006119983
20062 if test $sasl_cv_snprintf = no; then
19984 if test $sasl_cv_snprintf = yes; then
2006319985 case " $LIBOBJS " in
2006419986 *" snprintf.$ac_objext "* ) ;;
2006519987 *) LIBOBJS="$LIBOBJS snprintf.$ac_objext"
7979 AC_ARG_ENABLE(sample,
8080 [AC_HELP_STRING([--enable-sample],
8181 [compile sample code [[yes]]])],
82 [],
8283 enable_sample=yes)
8384
8485 AC_ARG_ENABLE(obsolete_cram_attr,
277278 dnl See if we can provide a default logging function...
278279 AC_CHECK_FUNCS(syslog)
279280
280 AC_ARG_WITH(pam, [ --with-pam=DIR use PAM (rooted in DIR) [[yes]] ],
281 with_pam=$withval,
282 with_pam=yes)
283 if test "$with_pam" != no; then
284 if test -d $with_pam; then
285 CPPFLAGS="$CPPFLAGS -I${with_pam}/include"
286 LDFLAGS="$LDFLAGS -L${with_pam}/lib"
287 fi
288 AC_CHECK_HEADERS(security/pam_appl.h pam/pam_appl.h)
289 cmu_save_LIBS="$LIBS"
290 AC_CHECK_FUNC(pam_start, :,
291 LIBS="-lpam $LIBS"
292 AC_TRY_LINK([[
293 #include <sys/types.h>
294 #ifdef HAVE_PAM_PAM_APPL_H
295 #include <pam/pam_appl.h>
296 #endif
297 #ifdef HAVE_SECURITY_PAM_H
298 #include <security/pam_appl.h>
299 #endif]],[[
300 const char *service="foo";
301 const char *user="bar";
302 pam_handle_t *pamh;
303 struct pam_conv *conv;
304 int baz;
305 baz = pam_start(service, user, conv, &pamh);
306 return 0;
307 ]], LIBPAM="-lpam")
308 )
309 LIBS="$cmu_save_LIBS $LIBPAM"
310 fi
311
312281 AC_ARG_WITH(saslauthd, [ --with-saslauthd=DIR enable use of the saslauth daemon using state dir DIR ],
313282 with_saslauthd=$withval,
314283 with_saslauthd=yes)
629598 AC_DEFINE(HAVE_HTTPFORM,[],[Include HTTP form Support])
630599 fi
631600
632 AC_ARG_WITH(pam, [ --with-pam=DIR use PAM (rooted in DIR) [yes] ],
633 with_pam=$withval,
601 AC_ARG_WITH(pam, AC_HELP_STRING([--with-pam=DIR], [use PAM (rooted in DIR) [yes]]),,
634602 with_pam=yes)
635603 if test "$with_pam" != no; then
636604 if test -d $with_pam; then
11231091 AC_SUBST(SASL_STATIC_LIBS)
11241092
11251093 AC_ARG_WITH(plugindir, [ --with-plugindir=DIR set the directory where plugins will
1126 be found [[/usr/lib/sasl2]] ],
1094 be found [[LIBDIR/sasl2]] ],
11271095 plugindir=$withval,
1128 plugindir=/usr/lib/sasl2)
1129 AC_DEFINE_UNQUOTED(PLUGINDIR, "$plugindir", [Runtime plugin location])
1096 plugindir='${libdir}/sasl2')
11301097 AC_SUBST(plugindir)
11311098
11321099 AC_ARG_WITH(configdir, [ --with-configdir=DIR set the directory where config files will
1133 be found [/usr/lib/sasl2] ],
1100 be found [PLUGINDIR:SYSCONFDIR/sasl2] ],
11341101 configdir=$withval,
1135 configdir=$plugindir:/etc/sasl2)
1136 AC_DEFINE_UNQUOTED(CONFIGDIR, "$configdir", [Runtime config file location])
1102 configdir='${plugindir}:${sysconfdir}/sasl2')
11371103 AC_SUBST(configdir)
11381104
11391105 dnl look for rc4 libraries. we accept the CMU one or one from openSSL
12631229 LTSNPRINTFOBJS=""
12641230 AC_CHECK_FUNC(snprintf, [AC_DEFINE(HAVE_SNPRINTF,[],[Does the system have snprintf()?])], [sasl_cv_snprintf=yes])
12651231 AC_CHECK_FUNC(vsnprintf, [AC_DEFINE(HAVE_VSNPRINTF,[],[Does the system have vsnprintf()?])], [sasl_cv_snprintf=yes])
1266 if test $sasl_cv_snprintf = no; then
1232 if test $sasl_cv_snprintf = yes; then
12671233 AC_LIBOBJ(snprintf)
12681234 SNPRINTFOBJS="snprintf.o"
12691235 LTSNPRINTFOBJS="snprintf.lo"
+0
-372
dlcompat-20010505/APPLE_LICENSE less more
0 APPLE PUBLIC SOURCE LICENSE
1 Version 1.1 - April 19,1999
2
3 Please read this License carefully before downloading this software.
4 By downloading and using this software, you are agreeing to be bound
5 by the terms of this License. If you do not or cannot agree to the
6 terms of this License, please do not download or use the software.
7
8 1. General; Definitions. This License applies to any program or other
9 work which Apple Computer, Inc. ("Apple") publicly announces as
10 subject to this Apple Public Source License and which contains a
11 notice placed by Apple identifying such program or work as "Original
12 Code" and stating that it is subject to the terms of this Apple Public
13 Source License version 1.1 (or subsequent version thereof), as it may
14 be revised from time to time by Apple ("License"). As used in this
15 License:
16
17 1.1 "Affected Original Code" means only those specific portions of
18 Original Code that allegedly infringe upon any party's intellectual
19 property rights or are otherwise the subject of a claim of
20 infringement.
21
22 1.2 "Applicable Patent Rights" mean: (a) in the case where Apple is
23 the grantor of rights, (i) claims of patents that are now or hereafter
24 acquired, owned by or assigned to Apple and (ii) that cover subject
25 matter contained in the Original Code, but only to the extent
26 necessary to use, reproduce and/or distribute the Original Code
27 without infringement; and (b) in the case where You are the grantor of
28 rights, (i) claims of patents that are now or hereafter acquired,
29 owned by or assigned to You and (ii) that cover subject matter in Your
30 Modifications, taken alone or in combination with Original Code.
31
32 1.3 "Covered Code" means the Original Code, Modifications, the
33 combination of Original Code and any Modifications, and/or any
34 respective portions thereof.
35
36 1.4 "Deploy" means to use, sublicense or distribute Covered Code other
37 than for Your internal research and development (R&D), and includes
38 without limitation, any and all internal use or distribution of
39 Covered Code within Your business or organization except for R&D use,
40 as well as direct or indirect sublicensing or distribution of Covered
41 Code by You to any third party in any form or manner.
42
43 1.5 "Larger Work" means a work which combines Covered Code or portions
44 thereof with code not governed by the terms of this License.
45
46 1.6 "Modifications" mean any addition to, deletion from, and/or change
47 to, the substance and/or structure of Covered Code. When code is
48 released as a series of files, a Modification is: (a) any addition to
49 or deletion from the contents of a file containing Covered Code;
50 and/or (b) any new file or other representation of computer program
51 statements that contains any part of Covered Code.
52
53 1.7 "Original Code" means (a) the Source Code of a program or other
54 work as originally made available by Apple under this License,
55 including the Source Code of any updates or upgrades to such programs
56 or works made available by Apple under this License, and that has been
57 expressly identified by Apple as such in the header file(s) of such
58 work; and (b) the object code compiled from such Source Code and
59 originally made available by Apple under this License.
60
61 1.8 "Source Code" means the human readable form of a program or other
62 work that is suitable for making modifications to it, including all
63 modules it contains, plus any associated interface definition files,
64 scripts used to control compilation and installation of an executable
65 (object code).
66
67 1.9 "You" or "Your" means an individual or a legal entity exercising
68 rights under this License. For legal entities, "You" or "Your"
69 includes any entity which controls, is controlled by, or is under
70 common control with, You, where "control" means (a) the power, direct
71 or indirect, to cause the direction or management of such entity,
72 whether by contract or otherwise, or (b) ownership of fifty percent
73 (50%) or more of the outstanding shares or beneficial ownership of
74 such entity.
75
76 2. Permitted Uses; Conditions & Restrictions. Subject to the terms
77 and conditions of this License, Apple hereby grants You, effective on
78 the date You accept this License and download the Original Code, a
79 world-wide, royalty-free, non- exclusive license, to the extent of
80 Apple's Applicable Patent Rights and copyrights covering the Original
81 Code, to do the following:
82
83 2.1 You may use, copy, modify and distribute Original Code, with or
84 without Modifications, solely for Your internal research and
85 development, provided that You must in each instance:
86
87 (a) retain and reproduce in all copies of Original Code the copyright
88 and other proprietary notices and disclaimers of Apple as they appear
89 in the Original Code, and keep intact all notices in the Original Code
90 that refer to this License;
91
92 (b) include a copy of this License with every copy of Source Code of
93 Covered Code and documentation You distribute, and You may not offer
94 or impose any terms on such Source Code that alter or restrict this
95 License or the recipients' rights hereunder, except as permitted under
96 Section 6; and
97
98 (c) completely and accurately document all Modifications that you have
99 made and the date of each such Modification, designate the version of
100 the Original Code you used, prominently include a file carrying such
101 information with the Modifications, and duplicate the notice in
102 Exhibit A in each file of the Source Code of all such Modifications.
103
104 2.2 You may Deploy Covered Code, provided that You must in each
105 instance:
106
107 (a) satisfy all the conditions of Section 2.1 with respect to the
108 Source Code of the Covered Code;
109
110 (b) make all Your Deployed Modifications publicly available in Source
111 Code form via electronic distribution (e.g. download from a web site)
112 under the terms of this License and subject to the license grants set
113 forth in Section 3 below, and any additional terms You may choose to
114 offer under Section 6. You must continue to make the Source Code of
115 Your Deployed Modifications available for as long as you Deploy the
116 Covered Code or twelve (12) months from the date of initial
117 Deployment, whichever is longer;
118
119 (c) if You Deploy Covered Code containing Modifications made by You,
120 inform others of how to obtain those Modifications by filling out and
121 submitting the information found at
122 http://www.apple.com/publicsource/modifications.html, if available;
123 and
124
125 (d) if You Deploy Covered Code in object code, executable form only,
126 include a prominent notice, in the code itself as well as in related
127 documentation, stating that Source Code of the Covered Code is
128 available under the terms of this License with information on how and
129 where to obtain such Source Code.
130
131 3. Your Grants. In consideration of, and as a condition to, the
132 licenses granted to You under this License:
133
134 (a) You hereby grant to Apple and all third parties a non-exclusive,
135 royalty-free license, under Your Applicable Patent Rights and other
136 intellectual property rights owned or controlled by You, to use,
137 reproduce, modify, distribute and Deploy Your Modifications of the
138 same scope and extent as Apple's licenses under Sections 2.1 and 2.2;
139 and
140
141 (b) You hereby grant to Apple and its subsidiaries a non-exclusive,
142 worldwide, royalty-free, perpetual and irrevocable license, under Your
143 Applicable Patent Rights and other intellectual property rights owned
144 or controlled by You, to use, reproduce, execute, compile, display,
145 perform, modify or have modified (for Apple and/or its subsidiaries),
146 sublicense and distribute Your Modifications, in any form, through
147 multiple tiers of distribution.
148
149 4. Larger Works. You may create a Larger Work by combining Covered
150 Code with other code not governed by the terms of this License and
151 distribute the Larger Work as a single product. In each such
152 instance, You must make sure the requirements of this License are
153 fulfilled for the Covered Code or any portion thereof.
154
155 5. Limitations on Patent License. Except as expressly stated in
156 Section 2, no other patent rights, express or implied, are granted by
157 Apple herein. Modifications and/or Larger Works may require
158 additional patent licenses from Apple which Apple may grant in its
159 sole discretion.
160
161 6. Additional Terms. You may choose to offer, and to charge a fee
162 for, warranty, support, indemnity or liability obligations and/or
163 other rights consistent with the scope of the license granted herein
164 ("Additional Terms") to one or more recipients of Covered
165 Code. However, You may do so only on Your own behalf and as Your sole
166 responsibility, and not on behalf of Apple. You must obtain the
167 recipient's agreement that any such Additional Terms are offered by
168 You alone, and You hereby agree to indemnify, defend and hold Apple
169 harmless for any liability incurred by or claims asserted against
170 Apple by reason of any such Additional Terms.
171
172 7. Versions of the License. Apple may publish revised and/or new
173 versions of this License from time to time. Each version will be
174 given a distinguishing version number. Once Original Code has been
175 published under a particular version of this License, You may continue
176 to use it under the terms of that version. You may also choose to use
177 such Original Code under the terms of any subsequent version of this
178 License published by Apple. No one other than Apple has the right to
179 modify the terms applicable to Covered Code created under this
180 License.
181
182 8. NO WARRANTY OR SUPPORT. The Original Code may contain in whole or
183 in part pre-release, untested, or not fully tested works. The
184 Original Code may contain errors that could cause failures or loss of
185 data, and may be incomplete or contain inaccuracies. You expressly
186 acknowledge and agree that use of the Original Code, or any portion
187 thereof, is at Your sole and entire risk. THE ORIGINAL CODE IS
188 PROVIDED "AS IS" AND WITHOUT WARRANTY, UPGRADES OR SUPPORT OF ANY KIND
189 AND APPLE AND APPLE'S LICENSOR(S) (FOR THE PURPOSES OF SECTIONS 8 AND
190 9, APPLE AND APPLE'S LICENSOR(S) ARE COLLECTIVELY REFERRED TO AS
191 "APPLE") EXPRESSLY DISCLAIM ALL WARRANTIES AND/OR CONDITIONS, EXPRESS
192 OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
193 AND/OR CONDITIONS OF MERCHANTABILITY OR SATISFACTORY QUALITY AND
194 FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF THIRD PARTY
195 RIGHTS. APPLE DOES NOT WARRANT THAT THE FUNCTIONS CONTAINED IN THE
196 ORIGINAL CODE WILL MEET YOUR REQUIREMENTS, OR THAT THE OPERATION OF
197 THE ORIGINAL CODE WILL BE UNINTERRUPTED OR ERROR- FREE, OR THAT
198 DEFECTS IN THE ORIGINAL CODE WILL BE CORRECTED. NO ORAL OR WRITTEN
199 INFORMATION OR ADVICE GIVEN BY APPLE OR AN APPLE AUTHORIZED
200 REPRESENTATIVE SHALL CREATE A WARRANTY OR IN ANY WAY INCREASE THE
201 SCOPE OF THIS WARRANTY. You acknowledge that the Original Code is not
202 intended for use in the operation of nuclear facilities, aircraft
203 navigation, communication systems, or air traffic control machines in
204 which case the failure of the Original Code could lead to death,
205 personal injury, or severe physical or environmental damage.
206
207 9. Liability.
208
209 9.1 Infringement. If any portion of, or functionality implemented by,
210 the Original Code becomes the subject of a claim of infringement,
211 Apple may, at its option: (a) attempt to procure the rights necessary
212 for Apple and You to continue using the Affected Original Code; (b)
213 modify the Affected Original Code so that it is no longer infringing;
214 or (c) suspend Your rights to use, reproduce, modify, sublicense and
215 distribute the Affected Original Code until a final determination of
216 the claim is made by a court or governmental administrative agency of
217 competent jurisdiction and Apple lifts the suspension as set forth
218 below. Such suspension of rights will be effective immediately upon
219 Apple's posting of a notice to such effect on the Apple web site that
220 is used for implementation of this License. Upon such final
221 determination being made, if Apple is legally able, without the
222 payment of a fee or royalty, to resume use, reproduction,
223 modification, sublicensing and distribution of the Affected Original
224 Code, Apple will lift the suspension of rights to the Affected
225 Original Code by posting a notice to such effect on the Apple web site
226 that is used for implementation of this License. If Apple suspends
227 Your rights to Affected Original Code, nothing in this License shall
228 be construed to restrict You, at Your option and subject to applicable
229 law, from replacing the Affected Original Code with non-infringing
230 code or independently negotiating for necessary rights from such third
231 party.
232
233 9.2 LIMITATION OF LIABILITY. UNDER NO CIRCUMSTANCES SHALL APPLE BE
234 LIABLE FOR ANY INCIDENTAL, SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES
235 ARISING OUT OF OR RELATING TO THIS LICENSE OR YOUR USE OR INABILITY TO
236 USE THE ORIGINAL CODE, OR ANY PORTION THEREOF, WHETHER UNDER A THEORY
237 OF CONTRACT, WARRANTY, TORT (INCLUDING NEGLIGENCE), PRODUCTS LIABILITY
238 OR OTHERWISE, EVEN IF APPLE HAS BEEN ADVISED OF THE POSSIBILITY OF
239 SUCH DAMAGES AND NOTWITHSTANDING THE FAILURE OF ESSENTIAL PURPOSE OF
240 ANY REMEDY. In no event shall Apple's total liability to You for all
241 damages under this License exceed the amount of fifty dollars
242 ($50.00).
243
244 10. Trademarks. This License does not grant any rights to use the
245 trademarks or trade names "Apple", "Apple Computer", "Mac OS X", "Mac
246 OS X Server" or any other trademarks or trade names belonging to Apple
247 (collectively "Apple Marks") and no Apple Marks may be used to endorse
248 or promote products derived from the Original Code other than as
249 permitted by and in strict compliance at all times with Apple's third
250 party trademark usage guidelines which are posted at
251 http://www.apple.com/legal/guidelinesfor3rdparties.html.
252
253 11. Ownership. Apple retains all rights, title and interest in and to
254 the Original Code and any Modifications made by or on behalf of Apple
255 ("Apple Modifications"), and such Apple Modifications will not be
256 automatically subject to this License. Apple may, at its sole
257 discretion, choose to license such Apple Modifications under this
258 License, or on different terms from those contained in this License or
259 may choose not to license them at all. Apple's development, use,
260 reproduction, modification, sublicensing and distribution of Covered
261 Code will not be subject to this License.
262
263 12. Termination.
264
265 12.1 Termination. This License and the rights granted hereunder will
266 terminate:
267
268 (a) automatically without notice from Apple if You fail to comply with
269 any term(s) of this License and fail to cure such breach within 30
270 days of becoming aware of such breach; (b) immediately in the event of
271 the circumstances described in Section 13.5(b); or (c) automatically
272 without notice from Apple if You, at any time during the term of this
273 License, commence an action for patent infringement against Apple.
274
275 12.2 Effect of Termination. Upon termination, You agree to
276 immediately stop any further use, reproduction, modification,
277 sublicensing and distribution of the Covered Code and to destroy all
278 copies of the Covered Code that are in your possession or control.
279 All sublicenses to the Covered Code which have been properly granted
280 prior to termination shall survive any termination of this License.
281 Provisions which, by their nature, should remain in effect beyond the
282 termination of this License shall survive, including but not limited
283 to Sections 3, 5, 8, 9, 10, 11, 12.2 and 13. Neither party will be
284 liable to the other for compensation, indemnity or damages of any sort
285 solely as a result of terminating this License in accordance with its
286 terms, and termination of this License will be without prejudice to
287 any other right or remedy of either party.
288
289 13. Miscellaneous.
290
291 13.1 Government End Users. The Covered Code is a "commercial item" as
292 defined in FAR 2.101. Government software and technical data rights
293 in the Covered Code include only those rights customarily provided to
294 the public as defined in this License. This customary commercial
295 license in technical data and software is provided in accordance with
296 FAR 12.211 (Technical Data) and 12.212 (Computer Software) and, for
297 Department of Defense purchases, DFAR 252.227-7015 (Technical Data --
298 Commercial Items) and 227.7202-3 (Rights in Commercial Computer
299 Software or Computer Software Documentation). Accordingly, all U.S.
300 Government End Users acquire Covered Code with only those rights set
301 forth herein.
302
303 13.2 Relationship of Parties. This License will not be construed as
304 creating an agency, partnership, joint venture or any other form of
305 legal association between You and Apple, and You will not represent to
306 the contrary, whether expressly, by implication, appearance or
307 otherwise.
308
309 13.3 Independent Development. Nothing in this License will impair
310 Apple's right to acquire, license, develop, have others develop for
311 it, market and/or distribute technology or products that perform the
312 same or similar functions as, or otherwise compete with,
313 Modifications, Larger Works, technology or products that You may
314 develop, produce, market or distribute.
315
316 13.4 Waiver; Construction. Failure by Apple to enforce any provision
317 of this License will not be deemed a waiver of future enforcement of
318 that or any other provision. Any law or regulation which provides
319 that the language of a contract shall be construed against the drafter
320 will not apply to this License.
321
322 13.5 Severability. (a) If for any reason a court of competent
323 jurisdiction finds any provision of this License, or portion thereof,
324 to be unenforceable, that provision of the License will be enforced to
325 the maximum extent permissible so as to effect the economic benefits
326 and intent of the parties, and the remainder of this License will
327 continue in full force and effect. (b) Notwithstanding the foregoing,
328 if applicable law prohibits or restricts You from fully and/or
329 specifically complying with Sections 2 and/or 3 or prevents the
330 enforceability of either of those Sections, this License will
331 immediately terminate and You must immediately discontinue any use of
332 the Covered Code and destroy all copies of it that are in your
333 possession or control.
334
335 13.6 Dispute Resolution. Any litigation or other dispute resolution
336 between You and Apple relating to this License shall take place in the
337 Northern District of California, and You and Apple hereby consent to
338 the personal jurisdiction of, and venue in, the state and federal
339 courts within that District with respect to this License. The
340 application of the United Nations Convention on Contracts for the
341 International Sale of Goods is expressly excluded.
342
343 13.7 Entire Agreement; Governing Law. This License constitutes the
344 entire agreement between the parties with respect to the subject
345 matter hereof. This License shall be governed by the laws of the
346 United States and the State of California, except that body of
347 California law concerning conflicts of law.
348
349 Where You are located in the province of Quebec, Canada, the following
350 clause applies: The parties hereby confirm that they have requested
351 that this License and all related documents be drafted in English. Les
352 parties ont exige que le present contrat et tous les documents
353 connexes soient rediges en anglais.
354
355 EXHIBIT A.
356
357 "Portions Copyright (c) 1999 Apple Computer, Inc. All Rights
358 Reserved. This file contains Original Code and/or Modifications of
359 Original Code as defined in and that are subject to the Apple Public
360 Source License Version 1.1 (the "License"). You may not use this file
361 except in compliance with the License. Please obtain a copy of the
362 License at http://www.apple.com/publicsource and read it before using
363 this file.
364
365 The Original Code and all software distributed under the License are
366 distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, EITHER
367 EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
368 INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
369 FITNESS FOR A PARTICULAR PURPOSE OR NON- INFRINGEMENT. Please see the
370 License for the specific language governing rights and limitations
371 under the License."
+0
-20
dlcompat-20010505/ChangeLog less more
0 2001-05-05 Christoph Pfisterer <cp@chrisp.de>
1
2 * dlfcn.h: Added wrapper for C++.
3
4 2001-01-23 Christoph Pfisterer <cp@chrisp.de>
5
6 * dlopen.c: Added optional debugging output. Modules are now
7 searched for in various directories when no absolute path is
8 specified and the module is not found in the current directory. A
9 new function, _dl_search_paths, was added to accomplish the
10 search. Added an include for <limits.h>, because PATH_MAX is
11 defined there.
12 * Makefile: Some rearragements for the optional debugging
13 output. (Use "make DEBUG=1" to enable it.)
14
15 2001-01-16 Christoph Pfisterer <cp@chrisp.de>
16
17 * dlopen.c: Removed #include for ofi.h - it doesn't seem to be
18 needed.
19
+0
-63
dlcompat-20010505/Makefile less more
0 #
1 # Makefile for dlcompat
2 #
3 #
4 # Copyright (c) 2001 Christoph Pfisterer.
5 #
6 # Portions Copyright (c) 1999-2001 Apple Computer, Inc. All Rights
7 # Reserved.
8 #
9 # This file contains Original Code and/or Modifications of Original
10 # Code as defined in and that are subject to the Apple Public Source
11 # License Version 1.2 (the "License"). You may not use this file
12 # except in compliance with the License. Please obtain a copy of the
13 # License at http://www.apple.com/publicsource and read it before
14 # using this file.
15 #
16 # The Original Code and all software distributed under the License are
17 # distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, EITHER
18 # EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
19 # INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
20 # FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR
21 # NON-INFRINGEMENT. Please see the License for the specific language
22 # governing rights and limitations under the License.
23 #
24
25
26 prefix=/usr/local
27 DEBUG=0
28
29 CC=cc
30 CFLAGS=-Wall -O2 -DDEBUG=$(DEBUG)
31 AR=ar cru
32 RANLIB=ranlib
33 INSTALL=install
34
35 OBJS = dlopen.o
36
37
38 all: libdl.a libdl.dylib
39
40 install: all
41 if test ! -d $(prefix)/lib ; then mkdir $(prefix)/lib ; fi
42 $(INSTALL) -m 644 libdl.a $(prefix)/lib
43 $(RANLIB) $(prefix)/lib/libdl.a
44 chmod 644 $(prefix)/lib/libdl.a
45 $(INSTALL) -m 755 libdl.dylib $(prefix)/lib
46 if test ! -d $(prefix)/include ; then mkdir $(prefix)/include ; fi
47 $(INSTALL) -c -m 644 dlfcn.h $(prefix)/include
48
49 .c.o:
50 $(CC) $(CFLAGS) -fno-common -o $@ -c $<
51
52 libdl.a: $(OBJS)
53 $(AR) libdl.a $(OBJS)
54 $(RANLIB) libdl.a
55
56 libdl.dylib: $(OBJS)
57 $(CC) -dynamiclib -undefined error -o libdl.dylib $(OBJS) -install_name $(prefix)/lib/libdl.dylib
58
59 clean:
60 rm -f $(OBJS) libdl.*
61
62 # EOF
+0
-71
dlcompat-20010505/README less more
0 dlcompat for Darwin
1 =====================
2
3 This is release 20010505 of dlcompat. dlcompat is a small library that
4 emulates the dlopen() interface on top of Darwin's dyld API. It is
5 based on a CVS snapshot of Apple's Darwin CVS repository, taken on
6 Jan 16 2001 (and still current as of May 5 2001). Since it's based on
7 Apple code, it is released under the terms of the Apple Public Source
8 License; see the file APPLE_LICENSE for the text of the license.
9
10 Changes were made to automatically search for the module in several
11 directories (taken from the environment variables DYLD_LIBRARY_PATH
12 and LD_LIBRARY_PATH, plus /usr/lib and /lib) when no absolute path is
13 specified and the module is not found in the current directory. If you
14 prefer to run unmodified Apple code, download release 20010116.
15
16
17 Installation
18 --------------
19 As root, type:
20
21 make install
22
23 This will compile the source file, generate both a static and shared
24 library called libdl and install it into /usr/local/lib. The header
25 file dlfcn.h will be installed in /usr/local/include.
26
27 If you want to place the files somewhere else, run
28
29 make clean
30 make install prefix=<prefix>
31
32 where <prefix> is the hierarchy you want to install into, e.g. /usr
33 for /usr/lib and /usr/include (_NOT_ recommended!).
34
35 To enable debugging output, run
36
37 make clean
38 make DEBUG=1
39 make install
40
41 Combinations of those commands are left as an excercise to the
42 reader. :-)
43
44
45 Usage
46 -------
47 Software that uses GNU autoconf will likely check for a library called
48 libdl, that's why I named it that way. For software that doesn't find
49 the library on its own, you must add a '-ldl' to the appropriate
50 Makefile (or environment) variable, usually LIBS.
51
52 If you installed dlcompat into a directory other than /usr/local/lib,
53 you must tell the compiler where to find it. Add '-L<prefix>/lib' to
54 LDFLAGS (or CFLAGS) and '-I<prefix>/include' to CPPFLAGS (or CFLAGS).
55
56
57 Genesis
58 ---------
59 The files dlfcn.h and dlopen.c are taken from the Darwin CVS,
60 directory Commands/Apple/cctools/libdyld. For release 20010116, I
61 removed an unneccessary include statement from dlopen.c and added the
62 Makefile. For release 20010123, I added debugging output and library
63 searching. The changes are clearly documented, as required by the
64 Apple Public Source License. For release 20010505, I added wrappers to
65 disable C++ name mangling. That allows the library to be used by C++
66 code, but be aware that there are issues with C++ and bundles, like
67 static initializers not being called.
68
69
70 Christoph Pfisterer <cp@chrisp.de>
+0
-57
dlcompat-20010505/dlfcn.h less more
0 /*
1 * This file was modified by Christoph Pfisterer <cp@chrisp.de>
2 * on Sat, May 5 2001. See the file "ChangeLog" for details of what
3 * was changed.
4 *
5 *
6 * Copyright (c) 1999 Apple Computer, Inc. All rights reserved.
7 *
8 * @APPLE_LICENSE_HEADER_START@
9 *
10 * Portions Copyright (c) 1999 Apple Computer, Inc. All Rights
11 * Reserved. This file contains Original Code and/or Modifications of
12 * Original Code as defined in and that are subject to the Apple Public
13 * Source License Version 1.1 (the "License"). You may not use this file
14 * except in compliance with the License. Please obtain a copy of the
15 * License at http://www.apple.com/publicsource and read it before using
16 * this file.
17 *
18 * The Original Code and all software distributed under the License are
19 * distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, EITHER
20 * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
21 * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
22 * FITNESS FOR A PARTICULAR PURPOSE OR NON- INFRINGEMENT. Please see the
23 * License for the specific language governing rights and limitations
24 * under the License.
25 *
26 * @APPLE_LICENSE_HEADER_END@
27 */
28
29 #ifdef __cplusplus
30 extern "C" {
31 #endif
32
33 extern void * dlopen(
34 const char *path,
35 int mode);
36 extern void * dlsym(
37 void * handle,
38 const char *symbol);
39 extern const char * dlerror(
40 void);
41 extern int dlclose(
42 void * handle);
43
44 #define RTLD_LAZY 0x1
45 #define RTLD_NOW 0x2
46 #define RTLD_LOCAL 0x4
47 #define RTLD_GLOBAL 0x8
48 #define RTLD_NOLOAD 0x10
49 #define RTLD_SHARED 0x20 /* not used, the default */
50 #define RTLD_UNSHARED 0x40
51 #define RTLD_NODELETE 0x80
52 #define RTLD_LAZY_UNDEF 0x100
53
54 #ifdef __cplusplus
55 }
56 #endif
+0
-516
dlcompat-20010505/dlopen.c less more
0 /*
1 * This file was modified by Christoph Pfisterer <cp@chrisp.de>
2 * on Tue, Jan 23 2001. See the file "ChangeLog" for details of what
3 * was changed.
4 *
5 *
6 * Copyright (c) 1999 Apple Computer, Inc. All rights reserved.
7 *
8 * @APPLE_LICENSE_HEADER_START@
9 *
10 * Portions Copyright (c) 1999 Apple Computer, Inc. All Rights
11 * Reserved. This file contains Original Code and/or Modifications of
12 * Original Code as defined in and that are subject to the Apple Public
13 * Source License Version 1.1 (the "License"). You may not use this file
14 * except in compliance with the License. Please obtain a copy of the
15 * License at http://www.apple.com/publicsource and read it before using
16 * this file.
17 *
18 * The Original Code and all software distributed under the License are
19 * distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, EITHER
20 * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
21 * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
22 * FITNESS FOR A PARTICULAR PURPOSE OR NON- INFRINGEMENT. Please see the
23 * License for the specific language governing rights and limitations
24 * under the License.
25 *
26 * @APPLE_LICENSE_HEADER_END@
27 */
28 #include <stdio.h>
29 #include <stdlib.h>
30 #include <string.h>
31 #include <errno.h>
32 #include <sys/types.h>
33 #include <sys/stat.h>
34 #include <limits.h>
35 #include "mach-o/dyld.h"
36 #include "dlfcn.h"
37
38 /*
39 * debugging macros
40 */
41 #if DEBUG > 0
42 #define DEBUG_PRINT(format) fprintf(stderr,(format));fflush(stderr)
43 #define DEBUG_PRINT1(format,arg1) fprintf(stderr,(format),(arg1));\
44 fflush(stderr)
45 #define DEBUG_PRINT2(format,arg1,arg2) fprintf(stderr,(format),\
46 (arg1),(arg2));fflush(stderr)
47 #define DEBUG_PRINT3(format,arg1,arg2,arg3) fprintf(stderr,(format),\
48 (arg1),(arg2),(arg3));fflush(stderr)
49 #else
50 #define DEBUG_PRINT(format) /**/
51 #define DEBUG_PRINT1(format,arg1) /**/
52 #define DEBUG_PRINT2(format,arg1,arg2) /**/
53 #define DEBUG_PRINT3(format,arg1,arg2,arg3) /**/
54 #undef DEBUG
55 #endif
56
57 /*
58 * The structure of a dlopen() handle.
59 */
60 struct dlopen_handle {
61 dev_t dev; /* the path's device and inode number from stat(2) */
62 ino_t ino;
63 int dlopen_mode; /* current dlopen mode for this handle */
64 int dlopen_count; /* number of times dlopen() called on this handle */
65 NSModule module; /* the NSModule returned by NSLinkModule() */
66 struct dlopen_handle *prev;
67 struct dlopen_handle *next;
68 };
69 static struct dlopen_handle *dlopen_handles = NULL;
70 static const struct dlopen_handle main_program_handle = {NULL};
71 static char *dlerror_pointer = NULL;
72
73 /*
74 * NSMakePrivateModulePublic() is not part of the public dyld API so we define
75 * it here. The internal dyld function pointer for
76 * __dyld_NSMakePrivateModulePublic is returned so thats all that maters to get
77 * the functionality need to implement the dlopen() interfaces.
78 */
79 static
80 int
81 NSMakePrivateModulePublic(
82 NSModule module)
83 {
84 static int (*p)(NSModule module) = NULL;
85
86 if(p == NULL)
87 _dyld_func_lookup("__dyld_NSMakePrivateModulePublic",
88 (unsigned long *)&p);
89 if(p == NULL){
90 #ifdef DEBUG
91 printf("_dyld_func_lookup of __dyld_NSMakePrivateModulePublic "
92 "failed\n");
93 #endif
94 return(FALSE);
95 }
96 return(p(module));
97 }
98
99 /*
100 * helper routine: search for a named module in various locations
101 */
102 static
103 int
104 _dl_search_paths(
105 const char *filename,
106 char *pathbuf,
107 struct stat *stat_buf)
108 {
109 const char *pathspec;
110 const char *element;
111 const char *p;
112 char *q;
113 char *pathbuf_end;
114 const char *envvars[] = {
115 "$DYLD_LIBRARY_PATH",
116 "$LD_LIBRARY_PATH",
117 "/usr/lib:/lib",
118 NULL };
119 int envvar_index;
120
121 pathbuf_end = pathbuf + PATH_MAX - 8;
122
123 for(envvar_index = 0; envvars[envvar_index]; envvar_index++){
124 if(envvars[envvar_index][0] == '$'){
125 pathspec = getenv(envvars[envvar_index]+1);
126 }
127 else {
128 pathspec = envvars[envvar_index];
129 }
130
131 if(pathspec != NULL){
132 element = pathspec;
133 while(*element){
134 /* extract path list element */
135 p = element;
136 q = pathbuf;
137 while(*p && *p != ':' && q < pathbuf_end)
138 *q++ = *p++;
139 if(q == pathbuf){ /* empty element */
140 if(*p){
141 element = p+1;
142 continue;
143 }
144 break;
145 }
146 if (*p){
147 element = p+1;
148 }
149 else{
150 element = p; /* this terminates the loop */
151 }
152
153 /* add slash if neccessary */
154 if(*(q-1) != '/' && q < pathbuf_end){
155 *q++ = '/';
156 }
157
158 /* append module name */
159 p = filename;
160 while(*p && q < pathbuf_end) *q++ = *p++;
161 *q++ = 0;
162
163 if(q >= pathbuf_end){
164 /* maybe add an error message here */
165 break;
166 }
167
168 if(stat(pathbuf, stat_buf) == 0){
169 return 0;
170 }
171 }
172 }
173 }
174
175 /* we have searched everywhere, now we give up */
176 return -1;
177 }
178
179 /*
180 * dlopen() the MacOS X version of the FreeBSD dlopen() interface.
181 */
182 void *
183 dlopen(
184 const char *path,
185 int mode)
186 {
187 const char *module_path;
188 void *retval;
189 struct stat stat_buf;
190 NSObjectFileImage objectFileImage;
191 NSObjectFileImageReturnCode ofile_result_code;
192 NSModule module;
193 struct dlopen_handle *p;
194 unsigned long options;
195 NSSymbol NSSymbol;
196 void (*init)(void);
197 char pathbuf[PATH_MAX];
198
199 DEBUG_PRINT2("libdl: dlopen(%s,0x%x) -> ", path, (unsigned int)mode);
200
201 dlerror_pointer = NULL;
202 /*
203 * A NULL path is to indicate the caller wants a handle for the
204 * main program.
205 */
206 if(path == NULL){
207 retval = (void *)&main_program_handle;
208 DEBUG_PRINT1("main / %p\n", retval);
209 return(retval);
210 }
211
212 /* see if the path exists and if so get the device and inode number */
213 if(stat(path, &stat_buf) == -1){
214 dlerror_pointer = strerror(errno);
215
216 if(path[0] == '/'){
217 DEBUG_PRINT1("ERROR (stat): %s\n", dlerror_pointer);
218 return(NULL);
219 }
220
221 /* search for the module in various places */
222 if(_dl_search_paths(path, pathbuf, &stat_buf)){
223 /* dlerror_pointer is unmodified */
224 DEBUG_PRINT1("ERROR (stat): %s\n", dlerror_pointer);
225 return(NULL);
226 }
227 DEBUG_PRINT1("found %s -> ", pathbuf);
228 module_path = pathbuf;
229 dlerror_pointer = NULL;
230 }
231 else{
232 module_path = path;
233 }
234
235 /*
236 * If we don't want an unshared handle see if we already have a handle
237 * for this path.
238 */
239 if((mode & RTLD_UNSHARED) != RTLD_UNSHARED){
240 p = dlopen_handles;
241 while(p != NULL){
242 if(p->dev == stat_buf.st_dev && p->ino == stat_buf.st_ino){
243 /* skip unshared handles */
244 if((p->dlopen_mode & RTLD_UNSHARED) == RTLD_UNSHARED)
245 continue;
246 /*
247 * We have already created a handle for this path. The
248 * caller might be trying to promote an RTLD_LOCAL handle
249 * to a RTLD_GLOBAL. Or just looking it up with
250 * RTLD_NOLOAD.
251 */
252 if((p->dlopen_mode & RTLD_LOCAL) == RTLD_LOCAL &&
253 (mode & RTLD_GLOBAL) == RTLD_GLOBAL){
254 /* promote the handle */
255 if(NSMakePrivateModulePublic(p->module) == TRUE){
256 p->dlopen_mode &= ~RTLD_LOCAL;
257 p->dlopen_mode |= RTLD_GLOBAL;
258 p->dlopen_count++;
259 DEBUG_PRINT1("%p\n", p);
260 return(p);
261 }
262 else{
263 dlerror_pointer = "can't promote handle from "
264 "RTLD_LOCAL to RTLD_GLOBAL";
265 DEBUG_PRINT1("ERROR: %s\n", dlerror_pointer);
266 return(NULL);
267 }
268 }
269 p->dlopen_count++;
270 DEBUG_PRINT1("%p\n", p);
271 return(p);
272 }
273 p = p->next;
274 }
275 }
276
277 /*
278 * We do not have a handle for this path if we were just trying to
279 * look it up return NULL to indicate we don't have it.
280 */
281 if((mode & RTLD_NOLOAD) == RTLD_NOLOAD){
282 dlerror_pointer = "no existing handle for path RTLD_NOLOAD test";
283 DEBUG_PRINT1("ERROR: %s\n", dlerror_pointer);
284 return(NULL);
285 }
286
287 /* try to create an object file image from this path */
288 ofile_result_code = NSCreateObjectFileImageFromFile(module_path,
289 &objectFileImage);
290 if(ofile_result_code != NSObjectFileImageSuccess){
291 switch(ofile_result_code){
292 case NSObjectFileImageFailure:
293 dlerror_pointer = "object file setup failure";
294 DEBUG_PRINT1("ERROR: %s\n", dlerror_pointer);
295 return(NULL);
296 case NSObjectFileImageInappropriateFile:
297 dlerror_pointer = "not a Mach-O MH_BUNDLE file type";
298 DEBUG_PRINT1("ERROR: %s\n", dlerror_pointer);
299 return(NULL);
300 case NSObjectFileImageArch:
301 dlerror_pointer = "no object for this architecture";
302 DEBUG_PRINT1("ERROR: %s\n", dlerror_pointer);
303 return(NULL);
304 case NSObjectFileImageFormat:
305 dlerror_pointer = "bad object file format";
306 DEBUG_PRINT1("ERROR: %s\n", dlerror_pointer);
307 return(NULL);
308 case NSObjectFileImageAccess:
309 dlerror_pointer = "can't read object file";
310 DEBUG_PRINT1("ERROR: %s\n", dlerror_pointer);
311 return(NULL);
312 default:
313 dlerror_pointer = "unknown error from "
314 "NSCreateObjectFileImageFromFile()";
315 DEBUG_PRINT1("ERROR: %s\n", dlerror_pointer);
316 return(NULL);
317 }
318 }
319
320 /* try to link in this object file image */
321 options = NSLINKMODULE_OPTION_PRIVATE;
322 if((mode & RTLD_NOW) == RTLD_NOW)
323 options |= NSLINKMODULE_OPTION_BINDNOW;
324 module = NSLinkModule(objectFileImage, module_path, options);
325 NSDestroyObjectFileImage(objectFileImage) ;
326 if(module == NULL){
327 dlerror_pointer = "NSLinkModule() failed for dlopen()";
328 DEBUG_PRINT1("ERROR: %s\n", dlerror_pointer);
329 return(NULL);
330 }
331
332 /*
333 * If the handle is to be global promote the handle. It is done this
334 * way to avoid multiply defined symbols.
335 */
336 if((mode & RTLD_GLOBAL) == RTLD_GLOBAL){
337 if(NSMakePrivateModulePublic(module) == FALSE){
338 dlerror_pointer = "can't promote handle from RTLD_LOCAL to "
339 "RTLD_GLOBAL";
340 DEBUG_PRINT1("ERROR: %s\n", dlerror_pointer);
341 return(NULL);
342 }
343 }
344
345 p = malloc(sizeof(struct dlopen_handle));
346 if(p == NULL){
347 dlerror_pointer = "can't allocate memory for the dlopen handle";
348 DEBUG_PRINT1("ERROR: %s\n", dlerror_pointer);
349 return(NULL);
350 }
351
352 /* fill in the handle */
353 p->dev = stat_buf.st_dev;
354 p->ino = stat_buf.st_ino;
355 if(mode & RTLD_GLOBAL)
356 p->dlopen_mode = RTLD_GLOBAL;
357 else
358 p->dlopen_mode = RTLD_LOCAL;
359 p->dlopen_mode |= (mode & RTLD_UNSHARED) |
360 (mode & RTLD_NODELETE) |
361 (mode & RTLD_LAZY_UNDEF);
362 p->dlopen_count = 1;
363 p->module = module;
364 p->prev = NULL;
365 p->next = dlopen_handles;
366 if(dlopen_handles != NULL)
367 dlopen_handles->prev = p;
368 dlopen_handles = p;
369
370 /* call the init function if one exists */
371 NSSymbol = NSLookupSymbolInModule(p->module, "__init");
372 if(NSSymbol != NULL){
373 init = NSAddressOfSymbol(NSSymbol);
374 init();
375 }
376
377 DEBUG_PRINT1("%p\n", p);
378 return(p);
379 }
380
381 /*
382 * dlsym() the MacOS X version of the FreeBSD dlopen() interface.
383 */
384 void *
385 dlsym(
386 void * handle,
387 const char *symbol)
388 {
389 struct dlopen_handle *dlopen_handle, *p;
390 NSSymbol NSSymbol;
391 void *address;
392
393 DEBUG_PRINT2("libdl: dlsym(%p,%s) -> ", handle, symbol);
394
395 dlopen_handle = (struct dlopen_handle *)handle;
396
397 /*
398 * If this is the handle for the main program do a global lookup.
399 */
400 if(dlopen_handle == (struct dlopen_handle *)&main_program_handle){
401 if(NSIsSymbolNameDefined(symbol) == TRUE){
402 NSSymbol = NSLookupAndBindSymbol(symbol);
403 address = NSAddressOfSymbol(NSSymbol);
404 dlerror_pointer = NULL;
405 DEBUG_PRINT1("%p\n", address);
406 return(address);
407 }
408 else{
409 dlerror_pointer = "symbol not found";
410 DEBUG_PRINT1("ERROR: %s\n", dlerror_pointer);
411 return(NULL);
412 }
413 }
414
415 /*
416 * Find this handle and do a lookup in just this module.
417 */
418 p = dlopen_handles;
419 while(p != NULL){
420 if(dlopen_handle == p){
421 NSSymbol = NSLookupSymbolInModule(p->module, symbol);
422 if(NSSymbol != NULL){
423 address = NSAddressOfSymbol(NSSymbol);
424 dlerror_pointer = NULL;
425 DEBUG_PRINT1("%p\n", address);
426 return(address);
427 }
428 else{
429 dlerror_pointer = "symbol not found";
430 DEBUG_PRINT1("ERROR: %s\n", dlerror_pointer);
431 return(NULL);
432 }
433 }
434 p = p->next;
435 }
436
437 dlerror_pointer = "bad handle passed to dlsym()";
438 DEBUG_PRINT1("ERROR: %s\n", dlerror_pointer);
439 return(NULL);
440 }
441
442 /*
443 * dlerror() the MacOS X version of the FreeBSD dlopen() interface.
444 */
445 const char *
446 dlerror(
447 void)
448 {
449 const char *p;
450
451 p = (const char *)dlerror_pointer;
452 dlerror_pointer = NULL;
453 return(p);
454 }
455
456 /*
457 * dlclose() the MacOS X version of the FreeBSD dlopen() interface.
458 */
459 int
460 dlclose(
461 void * handle)
462 {
463 struct dlopen_handle *p, *q;
464 unsigned long options;
465 NSSymbol NSSymbol;
466 void (*fini)(void);
467
468 DEBUG_PRINT1("libdl: dlclose(%p) -> ", handle);
469
470 dlerror_pointer = NULL;
471 q = (struct dlopen_handle *)handle;
472 p = dlopen_handles;
473 while(p != NULL){
474 if(p == q){
475 /* if the dlopen() count is not zero we are done */
476 p->dlopen_count--;
477 if(p->dlopen_count != 0){
478 DEBUG_PRINT("OK");
479 return(0);
480 }
481
482 /* call the fini function if one exists */
483 NSSymbol = NSLookupSymbolInModule(p->module, "__fini");
484 if(NSSymbol != NULL){
485 fini = NSAddressOfSymbol(NSSymbol);
486 fini();
487 }
488
489 /* unlink the module for this handle */
490 options = 0;
491 if(p->dlopen_mode & RTLD_NODELETE)
492 options |= NSUNLINKMODULE_OPTION_KEEP_MEMORY_MAPPED;
493 if(p->dlopen_mode & RTLD_LAZY_UNDEF)
494 options |= NSUNLINKMODULE_OPTION_RESET_LAZY_REFERENCES;
495 if(NSUnLinkModule(p->module, options) == FALSE){
496 dlerror_pointer = "NSUnLinkModule() failed for dlclose()";
497 DEBUG_PRINT1("ERROR: %s\n", dlerror_pointer);
498 return(-1);
499 }
500 if(p->prev != NULL)
501 p->prev->next = p->next;
502 if(p->next != NULL)
503 p->next->prev = p->prev;
504 if(dlopen_handles == p)
505 dlopen_handles = p->next;
506 free(p);
507 DEBUG_PRINT("OK");
508 return(0);
509 }
510 p = p->next;
511 }
512 dlerror_pointer = "invalid handle passed to dlclose()";
513 DEBUG_PRINT1("ERROR: %s\n", dlerror_pointer);
514 return(-1);
515 }
492492 <h2>What is Cyrus SASL?<a class="headerlink" href="#what-is-cyrus-sasl" title="Permalink to this headline">¶</a></h2>
493493 <p>Simple Authentication and Security Layer (<a class="reference external" href="https://en.wikipedia.org/wiki/Simple_Authentication_and_Security_Layer">SASL</a>) is a specification that describes how authentication mechanisms can be plugged into an application protocol on the wire. Cyrus SASL is an implementation of SASL that makes it easy for application developers to integrate authentication mechanisms into their application in a generic way.</p>
494494 <p>The latest stable version of Cyrus SASL is 2.1.26.</p>
495 <p><a class="reference external" href="https://www.cyrusimap.org/index.html#imap-index" title="(in Cyrus IMAP v3.0.6)"><span class="xref std std-ref">Cyrus IMAP</span></a> uses Cyrus SASL to provide authentication support to the mail server, however it is just one project using Cyrus SASL.</p>
495 <p><a class="reference external" href="https://www.cyrusimap.org/index.html#imap-index" title="(in Cyrus IMAP v3.0.8)"><span class="xref std std-ref">Cyrus IMAP</span></a> uses Cyrus SASL to provide authentication support to the mail server, however it is just one project using Cyrus SASL.</p>
496496 <div class="section" id="features">
497497 <h3>Features<a class="headerlink" href="#features" title="Permalink to this headline">¶</a></h3>
498498 <p>Cyrus SASL provides a number of authentication plugins out of the box.</p>
501501 <h3>Fetch the source<a class="headerlink" href="#fetch-the-source" title="Permalink to this headline">¶</a></h3>
502502 <div class="section" id="fetch-from-git">
503503 <h4>Fetch from git<a class="headerlink" href="#fetch-from-git" title="Permalink to this headline">¶</a></h4>
504 <p>If you’re not familiar with Git, there are detailed instructions in the <a class="reference external" href="https://www.cyrusimap.org/imap/developer/github-guide.html#github-guide" title="(in Cyrus IMAP v3.0.6)"><span class="xref std std-ref">Cyrus IMAPd GitHub guide</span></a>.</p>
504 <p>If you’re not familiar with Git, there are detailed instructions in the <a class="reference external" href="https://www.cyrusimap.org/imap/developer/github-guide.html#github-guide" title="(in Cyrus IMAP v3.0.8)"><span class="xref std std-ref">Cyrus IMAPd GitHub guide</span></a>.</p>
505505 <p>Cyrus SASL is at <a class="reference external" href="https://github.com/cyrusimap/cyrus-sasl">https://github.com/cyrusimap/cyrus-sasl</a></p>
506506 <p>To contribute, we recommend <a class="reference external" href="https://help.github.com/articles/fork-a-repo/">forking the code</a> then issuing a pull request when you’re ready.</p>
507507 <p>Once forked on GitHub, you can obtain a copy by:</p>
526526 Cyrus SASLv2). Note that this page is a brief overview
527527 and that the authoritative documentation are the header files
528528 included in the SASL distribution. If you have any questions, please
529 feel free to contact the <a class="reference external" href="https://www.cyrusimap.org/contribute.html#contribute" title="(in Cyrus IMAP v3.0.6)"><span class="xref std std-ref">Cyrus development team</span></a>.</p>
529 feel free to contact the <a class="reference external" href="https://www.cyrusimap.org/contribute.html#contribute" title="(in Cyrus IMAP v3.0.8)"><span class="xref std std-ref">Cyrus development team</span></a>.</p>
530530 <p>Please note that this guide is only intended for developers looking
531531 to write mechanisms for the SASLv2 API, and that application programmers
532532 should be reading the <a class="reference internal" href="programming.html#programming"><span class="std std-ref">Application Programming Guide</span></a> instead.</p>
12171217 </div>
12181218 <div class="section" id="imtest-from-cyrus-2-1-0-or-later">
12191219 <h3><a class="toc-backref" href="#id32"><cite>imtest</cite>, from Cyrus 2.1.0 or later</a><a class="headerlink" href="#imtest-from-cyrus-2-1-0-or-later" title="Permalink to this headline">¶</a></h3>
1220 <p><a class="reference external" href="https://www.cyrusimap.org/imap/reference/manpages/usercommands/imtest.html#imap-reference-manpages-usercommands-imtest" title="(in Cyrus IMAP v3.0.6)"><span class="xref std std-ref">imtest(3)</span></a>
1220 <p><a class="reference external" href="https://www.cyrusimap.org/imap/reference/manpages/usercommands/imtest.html#imap-reference-manpages-usercommands-imtest" title="(in Cyrus IMAP v3.0.8)"><span class="xref std std-ref">imtest(3)</span></a>
12211221 is an application included with Cyrus IMAPd. It is
12221222 a very simple IMAP client, but should be of interest to those
12231223 writing applications. It also uses the prot layer, but it is easy
12241224 to incorporate similar support without using the prot layer.
12251225 Likewise, there are other sample client applications that you can
12261226 look at including
1227 <a class="reference external" href="https://www.cyrusimap.org/imap/reference/manpages/usercommands/smtptest.html#imap-reference-manpages-usercommands-smtptest" title="(in Cyrus IMAP v3.0.6)"><span class="xref std std-ref">smtptest(3)</span></a>
1228 and <a class="reference external" href="https://www.cyrusimap.org/imap/reference/manpages/usercommands/pop3test.html#imap-reference-manpages-usercommands-pop3test" title="(in Cyrus IMAP v3.0.6)"><span class="xref std std-ref">pop3test(3)</span></a>
1227 <a class="reference external" href="https://www.cyrusimap.org/imap/reference/manpages/usercommands/smtptest.html#imap-reference-manpages-usercommands-smtptest" title="(in Cyrus IMAP v3.0.8)"><span class="xref std std-ref">smtptest(3)</span></a>
1228 and <a class="reference external" href="https://www.cyrusimap.org/imap/reference/manpages/usercommands/pop3test.html#imap-reference-manpages-usercommands-pop3test" title="(in Cyrus IMAP v3.0.8)"><span class="xref std std-ref">pop3test(3)</span></a>
12291229 in the Cyrus IMAPd distribution, respectively.</p>
12301230 </div>
12311231 </div>
501501 <li class="toctree-l1"><a class="reference internal" href="faqs/upgrade-saslv2.html">Why am I having a problem running dbconverter-2 to upgrade from SASLv1 to SASLv2?</a></li>
502502 </ul>
503503 </div>
504 <p>Looking for the <a class="reference external" href="https://www.cyrusimap.org/imap/reference/faq.html#imap-faq" title="(in Cyrus IMAP v3.0.6)"><span class="xref std std-ref">Cyrus IMAP FAQ</span></a>?</p>
504 <p>Looking for the <a class="reference external" href="https://www.cyrusimap.org/imap/reference/faq.html#imap-faq" title="(in Cyrus IMAP v3.0.8)"><span class="xref std std-ref">Cyrus IMAP FAQ</span></a>?</p>
505505 </div>
506506
507507
878878 information.</p>
879879 </dd>
880880 <dt>Is there a mailing list to discuss the Cyrus SASL library?</dt>
881 <dd>Check out our <a class="reference external" href="https://www.cyrusimap.org/contribute.html#contribute" title="(in Cyrus IMAP v3.0.6)"><span class="xref std std-ref">contribution</span></a> page for ways to get in touch
881 <dd>Check out our <a class="reference external" href="https://www.cyrusimap.org/contribute.html#contribute" title="(in Cyrus IMAP v3.0.8)"><span class="xref std std-ref">contribution</span></a> page for ways to get in touch
882882 with us, including mailing lists and IRC.</dd>
883883 </dl>
884884 </div>
487487
488488 <div class="section" id="support-community">
489489 <h1>Support/Community<a class="headerlink" href="#support-community" title="Permalink to this headline">¶</a></h1>
490 <p>Please read our support and bug reporting guidelines in the <a class="reference external" href="https://www.cyrusimap.org/support.html#support" title="(in Cyrus IMAP v3.0.6)"><span class="xref std std-ref">Cyrus IMAP project</span></a>.</p>
490 <p>Please read our support and bug reporting guidelines in the <a class="reference external" href="https://www.cyrusimap.org/support.html#support" title="(in Cyrus IMAP v3.0.8)"><span class="xref std std-ref">Cyrus IMAP project</span></a>.</p>
491491 </div>
492492
493493
207207 *p = '_';
208208 }
209209 f = fopen(argv[1], "w");
210 if (f == NULL)
211 return 1;
210212 }
211213
212214 print_pre(f);
4545 sasl_version = 3:0:0
4646
4747 AM_CPPFLAGS=-DLIBSASL_EXPORTS=1 -I$(top_srcdir)/include -I$(top_srcdir)/plugins \
48 -I$(top_builddir)/include -I$(top_srcdir)/sasldb -I$(top_srcdir)/common
49
48 -I$(top_builddir)/include -I$(top_srcdir)/sasldb -I$(top_srcdir)/common -DCONFIGDIR='"${configdir}"' -DPLUGINDIR='"${plugindir}"'
5049 PLUGIN_COMMON_OBJS = $(top_builddir)/common/libplugin_common.la
5150
5251 EXTRA_DIST = windlopen.c dlopen.c staticopen.h NTMakefile
473473 # CURRENT:REVISION:AGE
474474 sasl_version = 3:0:0
475475 AM_CPPFLAGS = -DLIBSASL_EXPORTS=1 -I$(top_srcdir)/include -I$(top_srcdir)/plugins \
476 -I$(top_builddir)/include -I$(top_srcdir)/sasldb -I$(top_srcdir)/common
476 -I$(top_builddir)/include -I$(top_srcdir)/sasldb -I$(top_srcdir)/common -DCONFIGDIR='"${configdir}"' -DPLUGINDIR='"${plugindir}"'
477477
478478 PLUGIN_COMMON_OBJS = $(top_builddir)/common/libplugin_common.la
479479 EXTRA_DIST = windlopen.c dlopen.c staticopen.h NTMakefile
389389 /* We're going to need a new proppool once we reset things */
390390 new_pool = alloc_proppool(ctx->mem_base->size +
391391 (ctx->used_values+1) * sizeof(struct propval));
392 if (new_pool == NULL) {
393 _sasl_log(NULL, SASL_LOG_ERR, "failed to allocate memory\n");
394 exit(1);
395 }
392396
393397 if(requests) {
394398 /* We're wiping the whole shebang */
9393 return SASL_BADPARAM;
9494 }
9595
96 if(conn->type == SASL_CONN_SERVER) sconn = (sasl_server_conn_t *)conn;
97 else if(conn->type == SASL_CONN_CLIENT) cconn = (sasl_client_conn_t *)conn;
96 if (conn->type == SASL_CONN_SERVER)
97 sconn = (sasl_server_conn_t *)conn;
98 else if (conn->type == SASL_CONN_CLIENT)
99 cconn = (sasl_client_conn_t *)conn;
98100 else return SASL_FAIL;
99101
100102 if(!ulen) ulen = (unsigned int)strlen(user);
110112 user,
111113 ulen,
112114 flags,
113 (conn->type == SASL_CONN_SERVER ?
115 (sconn ?
114116 sconn->user_realm :
115117 NULL),
116118 user_buf,
332334 new_item = sasl_ALLOC(sizeof(canonuser_plug_list_t));
333335 if(!new_item) return SASL_NOMEM;
334336
335 strncpy(new_item->name, plugname, PATH_MAX);
337 strncpy(new_item->name, plugname, PATH_MAX - 1);
338 new_item->name[strlen(plugname)] = '\0';
336339
337340 new_item->plug = plug;
338341 new_item->next = canonuser_head;
666666 getopt(context, NULL, "saslauthd_path", &p, NULL);
667667 }
668668 if (p) {
669 strncpy(pwpath, p, sizeof(pwpath));
669 if (strlen(p) >= sizeof(pwpath))
670 return SASL_FAIL;
671
672 strncpy(pwpath, p, sizeof(pwpath) - 1);
673 pwpath[strlen(p)] = '\0';
670674 } else {
671675 if (strlen(PATH_SASLAUTHD_RUNDIR) + 4 + 1 > sizeof(pwpath))
672676 return SASL_FAIL;
785789
786790 memset((char *)&srvaddr, 0, sizeof(srvaddr));
787791 srvaddr.sun_family = AF_UNIX;
788 strncpy(srvaddr.sun_path, pwpath, sizeof(srvaddr.sun_path));
792 strncpy(srvaddr.sun_path, pwpath, sizeof(srvaddr.sun_path) - 1);
793 srvaddr.sun_path[strlen(pwpath)] = '\0';
789794
790795 {
791796 int r = connect(s, (struct sockaddr *) &srvaddr, sizeof(srvaddr));
478478 conn->mech_list = new;
479479 tail = conn->mech_list;
480480 } else {
481 tail->next = new;
481 if (tail)
482 tail->next = new;
482483 tail = new;
483484 }
484485 conn->mech_length++;
8181 #else
8282 /* NB: Always returned allocated value */
8383 static char * _sasl_get_default_win_path(void *context __attribute__((unused)),
84 char * reg_attr_name, char * default_value);
84 TCHAR * reg_attr_name, char * default_value);
8585 #endif
8686
8787
10271027 *((const char **)pvalue) = conn->oparams.gss_peer_name;
10281028 break;
10291029 case SASL_GSS_LOCAL_NAME:
1030 if(! conn->oparams.gss_peer_name)
1030 if(! conn->oparams.gss_local_name)
10311031 result = SASL_NOTDONE;
10321032 else
10331033 *((const char **)pvalue) = conn->oparams.gss_local_name;
15491549 DWORD i;
15501550 BOOL rval;
15511551 static char sender[128];
1552
1553 i = sizeof(sender);
1554 rval = GetUserName(sender, &i);
1552
1553 TCHAR tsender[128];
1554 i = sizeof(tsender) / sizeof(tsender[0]);
1555 rval = GetUserName(tsender, &i);
15551556 if ( rval) { /* got a userid */
1557 WideCharToMultiByte(CP_UTF8, 0, tsender, -1, sender, sizeof(sender), NULL, NULL); /* -1 ensures null-terminated utf8 */
15561558 *result = sender;
15571559 if (len) *len = strlen(sender);
15581560 return SASL_OK;
16741676
16751677 return SASL_OK;
16761678 }
1679
16771680
16781681 static int
16791682 _sasl_verifyfile(void *context __attribute__((unused)),
18241827 const char *fmt,
18251828 ...)
18261829 {
1827 char *out=(char *) sasl_ALLOC(250);
1830 char *out = NULL;
18281831 size_t alloclen=100; /* current allocated length */
18291832 size_t outlen=0; /* current length of output buffer */
18301833 size_t formatlen;
18381841 char *cval;
18391842 va_list ap; /* varargs thing */
18401843
1841 if(!fmt) goto done;
1844 if(!fmt) return;
1845
1846 out = (char *) sasl_ALLOC(250);
18421847 if(!out) return;
1843
1848
18441849 formatlen = strlen(fmt);
18451850
18461851 /* See if we have a logging callback... */
19771982 if (result != SASL_OK) goto done;
19781983 out[outlen]=0;
19791984
1980 va_end(ap);
1981
19821985 /* send log message */
19831986 result = log_cb(log_ctx, level, out);
19841987
19851988 done:
1989 va_end(ap);
19861990 if(out) sasl_FREE(out);
19871991 }
19881992
24532457 return path;
24542458 }
24552459
2456 #else
2460 #else /*WIN32*/
24572461 /* Return NULL on failure */
24582462 static char *
24592463 _sasl_get_default_win_path(void *context __attribute__((unused)),
2460 char * reg_attr_name,
2464 TCHAR * reg_attr_name,
24612465 char * default_value)
24622466 {
24632467 /* Open registry entry, and find all registered SASL libraries.
24772481 HKEY hKey;
24782482 DWORD ret;
24792483 DWORD ValueType; /* value type */
2480 DWORD cbData; /* value size */
2481 BYTE * ValueData; /* value */
2482 DWORD cbExpandedData; /* "expanded" value size */
2483 BYTE * ExpandedValueData; /* "expanded" value */
2484 char * return_value; /* function return value */
2485 char * tmp;
2484 DWORD cbData; /* value size in bytes and later number of wchars */
2485 TCHAR * ValueData; /* value */
2486 DWORD cbExpandedData; /* "expanded" value size in wchars */
2487 TCHAR * ExpandedValueData; /* "expanded" value */
2488 TCHAR * return_value; /* function return value */
2489 TCHAR * tmp;
24862490
24872491 /* Initialization */
24882492 ExpandedValueData = NULL;
24982502
24992503 if (ret != ERROR_SUCCESS) {
25002504 /* no registry entry */
2501 (void) _sasl_strdup (default_value, &return_value, NULL);
2502 return return_value;
2505 char *ret;
2506 (void) _sasl_strdup (default_value, &ret, NULL);
2507 return ret;
25032508 }
25042509
25052510 /* figure out value type and required buffer size */
25202525 }
25212526
25222527 /* Any high water mark? */
2523 ValueData = sasl_ALLOC(cbData);
2528 ValueData = sasl_ALLOC(cbData + 2 * sizeof(TCHAR)); /* extra bytes to insert null-terminator if it's missed */
25242529 if (ValueData == NULL) {
25252530 return_value = NULL;
25262531 goto CLEANUP;
25272532 };
25282533
2529 RegQueryValueEx (hKey,
2530 reg_attr_name,
2531 NULL, /* reserved */
2532 &ValueType,
2533 ValueData,
2534 &cbData);
2534 if (RegQueryValueEx(hKey,
2535 reg_attr_name,
2536 NULL, /* reserved */
2537 &ValueType,
2538 (LPBYTE)ValueData,
2539 &cbData) != ERROR_SUCCESS) {
2540 return_value = NULL;
2541 goto CLEANUP;
2542 }
2543 cbData /= sizeof(TCHAR); /* covert to number of symbols */
2544 ValueData[cbData] = '\0'; /* MS docs say we have to to that */
2545 ValueData[cbData + 1] = '\0'; /* for MULTI */
25352546
25362547 switch (ValueType) {
25372548 case REG_EXPAND_SZ:
25382549 /* : A random starting guess */
25392550 cbExpandedData = cbData + 1024;
2540 ExpandedValueData = sasl_ALLOC(cbExpandedData);
2551 ExpandedValueData = (TCHAR*)sasl_ALLOC(cbExpandedData * sizeof(TCHAR));
25412552 if (ExpandedValueData == NULL) {
25422553 return_value = NULL;
25432554 goto CLEANUP;
25442555 };
2556
25452557
25462558 cbExpandedData = ExpandEnvironmentStrings(
25472559 ValueData,
25572569 /* : Must retry expansion with the bigger buffer */
25582570 if (cbExpandedData > cbData + 1024) {
25592571 /* : Memory leak here if can't realloc */
2560 ExpandedValueData = sasl_REALLOC(ExpandedValueData, cbExpandedData);
2572 ExpandedValueData = sasl_REALLOC(ExpandedValueData, cbExpandedData * sizeof(TCHAR));
25612573 if (ExpandedValueData == NULL) {
25622574 return_value = NULL;
25632575 goto CLEANUP;
25982610 /* : Replace delimiting NUL with our delimiter characted */
25992611 tmp[0] = PATHS_DELIMITER;
26002612 }
2601 tmp += strlen(tmp);
2613 tmp += (_tcslen(tmp));
26022614 }
26032615 break;
26042616
26112623 goto CLEANUP;
26122624 }
26132625
2614 return_value = ValueData;
2626 return_value = ValueData; /* just to flag we have a result */
26152627
26162628 CLEANUP:
26172629 RegCloseKey(hKey);
26182630 if (ExpandedValueData != NULL) sasl_FREE(ExpandedValueData);
26192631 if (return_value == NULL) {
2620 if (ValueData != NULL) sasl_FREE(ValueData);
2621 }
2622
2623 return (return_value);
2624 }
2625 #endif
2632 if (ValueData != NULL) sasl_FREE(ValueData);
2633 return NULL;
2634 }
2635 if (sizeof(TCHAR) == sizeof(char)) {
2636 return (char*)return_value;
2637 }
2638
2639 /* convert to utf-8 for compatibility with other OS' */
2640 {
2641 char *tmp = _sasl_wchar_to_utf8(return_value);
2642 sasl_FREE(return_value);
2643 return tmp;
2644 }
2645 }
2646
2647 char* _sasl_wchar_to_utf8(WCHAR *str)
2648 {
2649 size_t bufLen = WideCharToMultiByte(CP_UTF8, 0, str, -1, NULL, 0, NULL, NULL);
2650 char *buf = sasl_ALLOC(bufLen);
2651 if (buf) {
2652 if (WideCharToMultiByte(CP_UTF8, 0, str, -1, buf, bufLen, NULL, NULL) == 0) { /* -1 ensures null-terminated utf8 */
2653 sasl_FREE(buf);
2654 buf = NULL;
2655 }
2656 }
2657 return buf;
2658 }
2659
2660 WCHAR* _sasl_utf8_to_wchar(const char *str)
2661 {
2662 size_t bufLen = MultiByteToWideChar(CP_UTF8, 0, str, -1, NULL, 0);
2663 WCHAR *buf = sasl_ALLOC(bufLen * sizeof(WCHAR));
2664 if (buf) {
2665 if (MultiByteToWideChar(CP_UTF8, 0, str, -1, buf, bufLen) == 0) { /* -1 ensures null-terminated utf8 */
2666 sasl_FREE(buf);
2667 buf = NULL;
2668 }
2669 }
2670 return buf;
2671 }
2672
2673 #endif /*WIN32*/
156156 #else
157157 #define SO_SUFFIX ".sl"
158158 #endif /* __ia64 */
159 #elif defined(__APPLE__)
160 #define SO_SUFFIX ".plugin"
161 #else /* __APPLE__ */
159
160 #else /* __hpux */
162161 #define SO_SUFFIX ".so"
163162 #endif
164163
270269 if (strcmp(in + (length - strlen(LA_SUFFIX)), LA_SUFFIX)) {
271270 if(!strcmp(in + (length - strlen(SO_SUFFIX)),SO_SUFFIX)) {
272271 /* check for a .la file */
272 if (strlen(prefix) + strlen(in) + strlen(LA_SUFFIX) + 1 >= MAX_LINE)
273 return SASL_BADPARAM;
273274 strcpy(line, prefix);
274275 strcat(line, in);
275276 length = strlen(line);
282283 return SASL_FAIL;
283284 }
284285 }
286 if (strlen(prefix) + strlen(in) + 1 >= PATH_MAX)
287 return SASL_BADPARAM;
285288 strcpy(out, prefix);
286289 strcat(out, in);
287290 return SASL_OK;
288291 }
289292
293 if (strlen(prefix) + strlen(in) + 1 >= MAX_LINE)
294 return SASL_BADPARAM;
290295 strcpy(line, prefix);
291296 strcat(line, in);
292297
293293 /* make the prompt list */
294294 int result =
295295 _plug_make_prompts(params->utils, prompt_need,
296 user_result == SASL_INTERACT ?
297 "Please enter your authorization name" : NULL,
296 "Please enter your authorization name",
298297 "",
299298 NULL, NULL,
300299 NULL, NULL,
531531 #endif
532532 #endif /* HAVE_GETHOSTNAME */
533533
534 #ifdef WIN32
535 char* _sasl_wchar_to_utf8(WCHAR *str);
536 WCHAR* _sasl_utf8_to_wchar(const char *str);
537 #endif
538
534539 #endif /* SASLINT_H */
4242 * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
4343 */
4444
45 #if defined(WIN32)
46 #define _CRT_RAND_S
47 #endif
48
4549 #include <config.h>
4650 #include <stdio.h>
47
48 #if defined(WIN32)
49 #define _CRT_RAND_S
50 #endif
51
5251 #include <stdlib.h>
5352 #include <string.h>
5453 #include <ctype.h>
280279 time(&now);
281280
282281 if (hostflag && conn->serverFQDN)
283 snprintf(buf,maxlen, "<%lu.%lu@%s>", randnum, now, conn->serverFQDN);
282 snprintf(buf,maxlen, "<%lu.%lu@%s>", randnum, (unsigned long)now, conn->serverFQDN); /* don't care much about time 32bit overlap */
284283 else
285 snprintf(buf,maxlen, "<%lu.%lu>", randnum, now);
284 snprintf(buf,maxlen, "<%lu.%lu>", randnum, (unsigned long)now);
286285
287286 return (int) strlen(buf);
288287 }
301300 if (seqlen == 1) return SASL_BADPROT; /* this shouldn't happen here */
302301 if (seqlen > 6) return SASL_BADPROT; /* illegal */
303302 while (--seqlen)
304 if ((str[++i] & 0xC0) != 0xF0) return SASL_BADPROT; /* needed a 10 octet */
303 if ((str[++i] & 0xC0) != 0x80) return SASL_BADPROT; /* needed a 10 octet */
305304 }
306305 return SASL_OK;
307306 }
572572
573573 static int server_idle(sasl_conn_t *conn)
574574 {
575 sasl_server_conn_t *s_conn = (sasl_server_conn_t *) conn;
575 sasl_server_conn_t *s_conn = NULL;
576576 mechanism_t *m;
577577
578578 if (! mechlist) {
579579 return 0;
580580 }
581
582 if (!conn)
583 return 1;
584 s_conn = (sasl_server_conn_t *) conn;
581585
582586 for (m = s_conn->mech_list;
583587 m != NULL;
585589 if (m->m.plug->idle
586590 && m->m.plug->idle(m->m.plug->glob_context,
587591 conn,
588 conn ? ((sasl_server_conn_t *)conn)->sparams : NULL)) {
592 s_conn->sparams)) {
589593 return 1;
590594 }
591595 }
11491153 tail = serverconn->mech_list;
11501154 }
11511155 else {
1152 tail->next = new;
1156 if (tail)
1157 tail->next = new;
11531158 tail = new;
11541159 }
11551160 serverconn->mech_length++;
146146 {
147147 result = _buf_alloc(error_buf, error_buf_len, outlen+1);
148148 if (result != SASL_OK)
149 return;
149 goto done;
150150 (*error_buf)[outlen]=fmt[pos];
151151 outlen++;
152152 pos++;
168168 &outlen, cval);
169169
170170 if (result != SASL_OK) /* add the string */
171 return;
171 goto done;
172172
173173 done=1;
174174 break;
176176 case '%': /* double % output the '%' character */
177177 result = _buf_alloc(error_buf, error_buf_len, outlen+1);
178178 if (result != SASL_OK)
179 return;
179 goto done;
180180 (*error_buf)[outlen]='%';
181181 outlen++;
182182 done=1;
187187 &outlen,
188188 strerror(va_arg(ap, int)));
189189 if (result != SASL_OK)
190 return;
190 goto done;
191191 done=1;
192192 break;
193193
196196 (char *)sasl_errstring(_sasl_seterror_usererr(
197197 va_arg(ap, int)),NULL,NULL));
198198 if (result != SASL_OK)
199 return;
199 goto done;
200200 done=1;
201201 break;
202202
210210 result = _sasl_add_string(error_buf, error_buf_len,
211211 &outlen, tempbuf);
212212 if (result != SASL_OK)
213 return;
213 goto done;
214214 done=1;
215215 break;
216216
225225 result = _sasl_add_string(error_buf, error_buf_len,
226226 &outlen, tempbuf);
227227 if (result != SASL_OK)
228 return;
228 goto done;
229229 done=1;
230230
231231 break;
245245
246246 (*error_buf)[outlen]='\0'; /* put 0 at end */
247247
248 va_end(ap);
249
250248 #ifndef SASL_OSX_CFMGLUE
251249 if(!(flags & SASL_NOLOG)) {
252250 /* See if we have a logging callback... */
254252 if (result == SASL_OK && ! log_cb)
255253 result = SASL_FAIL;
256254 if (result != SASL_OK)
257 return;
255 goto done;
258256
259257 result = log_cb(log_ctx, SASL_LOG_FAIL, conn->error_buf);
260258 }
261259 #endif /* SASL_OSX_CFMGLUE */
260 done:
261 va_end(ap);
262262 }
244244 case 'd':
245245 case 'i':
246246 if (cflags == DP_C_SHORT)
247 value = va_arg (args, short int);
247 value = (short int) va_arg (args, int);
248248 else if (cflags == DP_C_LONG)
249249 value = va_arg (args, long int);
250250 else
254254 case 'o':
255255 flags |= DP_F_UNSIGNED;
256256 if (cflags == DP_C_SHORT)
257 value = va_arg (args, unsigned short int);
257 value = (unsigned short int) va_arg (args, int);
258258 else if (cflags == DP_C_LONG)
259259 value = va_arg (args, unsigned long int);
260260 else
264264 case 'u':
265265 flags |= DP_F_UNSIGNED;
266266 if (cflags == DP_C_SHORT)
267 value = va_arg (args, unsigned short int);
267 value = (unsigned short int) va_arg (args, int);
268268 else if (cflags == DP_C_LONG)
269269 value = va_arg (args, unsigned long int);
270270 else
273273 break;
274274 case 'X':
275275 flags |= DP_F_UP;
276
277 GCC_FALLTHROUGH
278
276279 case 'x':
277280 flags |= DP_F_UNSIGNED;
278281 if (cflags == DP_C_SHORT)
279 value = va_arg (args, unsigned short int);
282 value = (unsigned short int) va_arg (args, int);
280283 else if (cflags == DP_C_LONG)
281284 value = va_arg (args, unsigned long int);
282285 else
293296 break;
294297 case 'E':
295298 flags |= DP_F_UP;
299
300 GCC_FALLTHROUGH
301
296302 case 'e':
297303 if (cflags == DP_C_LDOUBLE)
298304 fvalue = va_arg (args, long double);
301307 break;
302308 case 'G':
303309 flags |= DP_F_UP;
310
311 GCC_FALLTHROUGH
312
304313 case 'g':
305314 if (cflags == DP_C_LDOUBLE)
306315 fvalue = va_arg (args, long double);
508517 return result;
509518 }
510519
511 static long double pow10 (int exp)
520 static long double my_pow10 (int exp)
512521 {
513522 long double result = 1;
514523
521530 return result;
522531 }
523532
524 static long round (long double value)
533 static long my_round (long double value)
525534 {
526535 long intpart;
527536
582591 /* We "cheat" by converting the fractional part to integer by
583592 * multiplying by a factor of 10
584593 */
585 fracpart = round ((pow10 (max)) * (ufvalue - intpart));
586
587 if (fracpart >= pow10 (max))
594 fracpart = my_round ((my_pow10 (max)) * (ufvalue - intpart));
595
596 if (fracpart >= my_pow10 (max))
588597 {
589598 intpart++;
590 fracpart -= pow10 (max);
599 fracpart -= my_pow10 (max);
591600 }
592601
593602 #ifdef DEBUG_SNPRINTF
166166 SPECIFIC_SERVER_PLUG_INIT( plain, "PLAIN" ),
167167 SPECIFIC_CLIENT_PLUG_INIT( plain, "PLAIN" ),
168168 #endif
169 #ifdef STATIC_SCRAM
170 SPECIFIC_SERVER_PLUG_INIT( scram, "SCRAM" ),
171 SPECIFIC_CLIENT_PLUG_INIT( scram, "SCRAM" ),
172 #endif
169173 #ifdef STATIC_SRP
170174 SPECIFIC_SERVER_PLUG_INIT( srp, "SRP" ),
171175 SPECIFIC_CLIENT_PLUG_INIT( srp, "SRP" ),
4848 #include <config.h>
4949 #include <sasl.h>
5050 #include "saslint.h"
51
52 #define DLL_SUFFIX ".dll"
53 #define DLL_MASK "*" DLL_SUFFIX
54 #define DLL_MASK_LEN 5
51 #include "staticopen.h"
52
53 #define DLL_SUFFIX _T(".dll")
54 #define DLL_MASK _T("*") DLL_SUFFIX
55 #define DLL_MASK_LEN 5 /* in symbols */
5556
5657 const int _is_sasl_server_static = 0;
5758
100101 return SASL_OK;
101102 }
102103
103 static int _sasl_plugin_load(char *plugin, void *library,
104 static int _sasl_plugin_load(const char *plugin, void *library,
104105 const char *entryname,
105106 int (*add_plugin)(const char *, void *))
106107 {
120121 }
121122
122123 /* loads a plugin library */
123 int _sasl_get_plugin(const char *file,
124 const sasl_callback_t *verifyfile_cb,
125 void **libraryptr)
126 {
127 int r = 0;
128 HINSTANCE library;
124 static int _tsasl_get_plugin(TCHAR *tfile,
125 const sasl_callback_t *verifyfile_cb,
126 void **libraryptr)
127 {
128 HINSTANCE library = NULL;
129129 lib_list_t *newhead;
130
131 r = ((sasl_verifyfile_t *)(verifyfile_cb->proc))
130 char *file;
131 int retCode = SASL_OK;
132
133 if (sizeof(TCHAR) != sizeof(char)) {
134 file = _sasl_wchar_to_utf8(tfile);
135 if (!file) {
136 retCode = SASL_NOMEM;
137 goto cleanup;
138 }
139 }
140 else {
141 file = (char*)tfile;
142 }
143 retCode = ((sasl_verifyfile_t *)(verifyfile_cb->proc))
132144 (verifyfile_cb->context, file, SASL_VRFY_PLUGIN);
133 if (r != SASL_OK) return r;
145 if (retCode != SASL_OK)
146 goto cleanup;
134147
135148 newhead = sasl_ALLOC(sizeof(lib_list_t));
136 if (!newhead) return SASL_NOMEM;
137
138 if (!(library = LoadLibrary (file))) {
139 _sasl_log(NULL, SASL_LOG_ERR,
140 "unable to LoadLibrary %s: %s", file, GetLastError());
141 sasl_FREE(newhead);
142 return SASL_FAIL;
149 if (!newhead) {
150 retCode = SASL_NOMEM;
151 goto cleanup;
152 }
153
154 if (!(library = LoadLibrary(tfile))) {
155 _sasl_log(NULL, SASL_LOG_ERR,
156 "unable to LoadLibrary %s: %s", file, GetLastError());
157 sasl_FREE(newhead);
158 retCode = SASL_FAIL;
159 goto cleanup;
143160 }
144161
145162 newhead->library = library;
147164 lib_list_head = newhead;
148165
149166 *libraryptr = library;
150 return SASL_OK;
151 }
167 cleanup:
168 if (sizeof(TCHAR) != sizeof(char)) {
169 sasl_FREE(file);
170 }
171 return retCode;
172 }
173
174 int _sasl_get_plugin(const char *file,
175 const sasl_callback_t *verifyfile_cb,
176 void **libraryptr)
177 {
178 if (sizeof(TCHAR) == sizeof(char)) {
179 return _tsasl_get_plugin((TCHAR*)file, verifyfile_cb, libraryptr);
180 }
181 else {
182 WCHAR *tfile = _sasl_utf8_to_wchar(file);
183 int ret = SASL_NOMEM;
184
185 if (tfile) {
186 ret = _tsasl_get_plugin(tfile, verifyfile_cb, libraryptr);
187 sasl_FREE(tfile);
188 }
189
190 return ret;
191 }
192 }
193
152194
153195 /* undoes actions done by _sasl_get_plugin */
154196 void _sasl_remove_last_plugin()
167209 const sasl_callback_t *verifyfile_cb)
168210 {
169211 int result;
170 char cur_dir[PATH_MAX], full_name[PATH_MAX+2], prefix[PATH_MAX+2];
212 TCHAR cur_dir[PATH_MAX], full_name[PATH_MAX+2], prefix[PATH_MAX+2];
171213 /* 1 for '\\' 1 for trailing '\0' */
172 char * pattern;
173 char c;
214 TCHAR * pattern;
215 TCHAR c;
174216 int pos;
175 const char *path=NULL;
217 int retCode = SASL_OK;
218 char *utf8path = NULL;
219 TCHAR *path=NULL;
176220 int position;
177221 const add_plugin_list_t *cur_ep;
178 struct stat statbuf; /* filesystem entry information */
222 struct _stat statbuf; /* filesystem entry information */
179223 intptr_t fhandle; /* file handle for _findnext function */
180 struct _finddata_t finddata; /* data returned by _findnext() */
224 struct _tfinddata_t finddata; /* data returned by _findnext() */
181225 size_t prefix_len;
226
227 /* for static plugins */
228 add_plugin_t *add_plugin;
229 _sasl_plug_type type;
230 _sasl_plug_rec *p;
182231
183232 if (! entrypoints
184233 || ! getpath_cb
189238 || ! verifyfile_cb->proc)
190239 return SASL_BADPARAM;
191240
241 /* do all the static plugins first */
242
243 for (cur_ep = entrypoints; cur_ep->entryname; cur_ep++) {
244
245 /* What type of plugin are we looking for? */
246 if (!strcmp(cur_ep->entryname, "sasl_server_plug_init")) {
247 type = SERVER;
248 add_plugin = (add_plugin_t *)sasl_server_add_plugin;
249 }
250 else if (!strcmp(cur_ep->entryname, "sasl_client_plug_init")) {
251 type = CLIENT;
252 add_plugin = (add_plugin_t *)sasl_client_add_plugin;
253 }
254 else if (!strcmp(cur_ep->entryname, "sasl_auxprop_plug_init")) {
255 type = AUXPROP;
256 add_plugin = (add_plugin_t *)sasl_auxprop_add_plugin;
257 }
258 else if (!strcmp(cur_ep->entryname, "sasl_canonuser_init")) {
259 type = CANONUSER;
260 add_plugin = (add_plugin_t *)sasl_canonuser_add_plugin;
261 }
262 else {
263 /* What are we looking for then? */
264 return SASL_FAIL;
265 }
266 for (p = _sasl_static_plugins; p->type; p++) {
267 if (type == p->type)
268 result = add_plugin(p->name, p->plug);
269 }
270 }
271
192272 /* get the path to the plugins */
193273 result = ((sasl_getpath_t *)(getpath_cb->proc))(getpath_cb->context,
194 &path);
274 &utf8path);
195275 if (result != SASL_OK) return result;
196 if (! path) return SASL_FAIL;
197
198 if (strlen(path) >= PATH_MAX) { /* no you can't buffer overrun */
199 return SASL_FAIL;
276 if (!utf8path) return SASL_FAIL;
277
278 if (sizeof(TCHAR) == sizeof(char)) {
279 path = (TCHAR*)utf8path;
280 }
281 else {
282 path = _sasl_utf8_to_wchar(utf8path);
283 if (!path) return SASL_FAIL;
284 }
285
286 if (_tcslen(path) >= PATH_MAX) { /* no you can't buffer overrun */
287 retCode = SASL_FAIL;
288 goto cleanup;
200289 }
201290
202291 position=0;
212301
213302
214303 /* : check to make sure that a valid directory name was passed in */
215 if (stat (cur_dir, &statbuf) < 0) {
304 if (_tstat (cur_dir, &statbuf) < 0) {
216305 continue;
217306 }
218307 if ((statbuf.st_mode & S_IFDIR) == 0) {
219308 continue;
220309 }
221310
222 strcpy (prefix, cur_dir);
223 prefix_len = strlen (prefix);
311 _tcscpy(prefix, cur_dir);
312 prefix_len = _tcslen (prefix);
224313
225314 /* : Don't append trailing \ unless required */
226315 if (prefix[prefix_len-1] != '\\') {
227 strcat (prefix,"\\");
316 _tcscat(prefix,_T("\\"));
228317 prefix_len++;
229318 }
230319
231320 pattern = prefix;
232321
233322 /* : Check that we have enough space for "*.dll" */
234 if ((prefix_len + DLL_MASK_LEN) > (sizeof(prefix) - 1)) {
323 if ((prefix_len + DLL_MASK_LEN) > (sizeof(prefix) / sizeof(TCHAR) - 1)) {
235324 _sasl_log(NULL, SASL_LOG_WARN, "plugin search mask is too big");
236325 continue;
237326 }
238327
239 strcat (prefix + prefix_len, "*" DLL_SUFFIX);
240
241 fhandle = _findfirst (pattern, &finddata);
328 _tcscat (prefix + prefix_len, _T("*") DLL_SUFFIX);
329
330 fhandle = _tfindfirst (pattern, &finddata);
242331 if (fhandle == -1) { /* no matching files */
243332 continue;
244333 }
253342 char plugname[PATH_MAX];
254343 int entries;
255344
256 length = strlen(finddata.name);
345 length = _tcslen(finddata.name);
257346 if (length < 5) { /* At least <Ch>.dll */
258347 continue; /* can not possibly be what we're looking for */
259348 }
261350 /* : Check for overflow */
262351 if (length + prefix_len >= PATH_MAX) continue; /* too big */
263352
264 if (stricmp(finddata.name + (length - strlen(DLL_SUFFIX)), DLL_SUFFIX) != 0) {
353 if (_tcscmp(finddata.name + (length - _tcslen(DLL_SUFFIX)), DLL_SUFFIX) != 0) {
265354 continue;
266355 }
267356
272361
273362 /* : Construct full name from prefix and name */
274363
275 strcpy (full_name, prefix);
276 strcat (full_name, finddata.name);
364 _tcscpy (full_name, prefix);
365 _tcscat (full_name, finddata.name);
277366
278367 /* cut off .dll suffix -- this only need be approximate */
279 strcpy (plugname, finddata.name);
280 c = strrchr(plugname, '.');
368 if (sizeof(TCHAR) != sizeof(char)) {
369 if (WideCharToMultiByte(CP_UTF8, 0, finddata.name, -1, plugname, sizeof(plugname), NULL, NULL) == 0) { // in case of unicode use utf8
370 continue;
371 }
372 }
373 else {
374 _tcscpy((TCHAR*)plugname, finddata.name); // w/o unicode local enconding is fine
375 }
376 c = strchr(plugname, '.');
281377 if (c != NULL) *c = '\0';
282378
283 result = _sasl_get_plugin (full_name, verifyfile_cb, &library);
379 result = _tsasl_get_plugin (full_name, verifyfile_cb, &library);
284380
285381 if (result != SASL_OK) {
286382 continue;
301397 _sasl_remove_last_plugin();
302398 }
303399
304 } while (_findnext (fhandle, &finddata) == 0);
400 } while (_tfindnext (fhandle, &finddata) == 0);
305401
306402 _findclose (fhandle);
307403
308404 } while ((c!='=') && (c!=0));
309405
310 return SASL_OK;
406 cleanup:
407 if (sizeof(TCHAR) != sizeof(char)) {
408 sasl_FREE(path); /* It's always allocated in coversion to wchar */
409 }
410 return retCode;
311411 }
312412
313413 int
00 .\" Man page generated from reStructuredText.
11 .
2 .TH "SASL" "3" "May 10, 2018" "2.1.27" "Cyrus SASL"
2 .TH "SASL" "3" "November 08, 2018" "2.1.27" "Cyrus SASL"
33 .SH NAME
44 sasl \- Cyrus SASL documentation
55 .
00 .\" Man page generated from reStructuredText.
11 .
2 .TH "SASL_AUTHORIZE_T" "3" "May 10, 2018" "2.1.27" "Cyrus SASL"
2 .TH "SASL_AUTHORIZE_T" "3" "November 08, 2018" "2.1.27" "Cyrus SASL"
33 .SH NAME
44 sasl_authorize_t \- Cyrus SASL documentation
55 .
00 .\" Man page generated from reStructuredText.
11 .
2 .TH "SASL_AUXPROP" "3" "May 10, 2018" "2.1.27" "Cyrus SASL"
2 .TH "SASL_AUXPROP" "3" "November 08, 2018" "2.1.27" "Cyrus SASL"
33 .SH NAME
44 sasl_auxprop \- Cyrus SASL documentation
55 .
00 .\" Man page generated from reStructuredText.
11 .
2 .TH "SASL_AUXPROP_GETCTX" "3" "May 10, 2018" "2.1.27" "Cyrus SASL"
2 .TH "SASL_AUXPROP_GETCTX" "3" "November 08, 2018" "2.1.27" "Cyrus SASL"
33 .SH NAME
44 sasl_auxprop_getctx \- Cyrus SASL documentation
55 .
00 .\" Man page generated from reStructuredText.
11 .
2 .TH "SASL_AUXPROP_REQUEST" "3" "May 10, 2018" "2.1.27" "Cyrus SASL"
2 .TH "SASL_AUXPROP_REQUEST" "3" "November 08, 2018" "2.1.27" "Cyrus SASL"
33 .SH NAME
44 sasl_auxprop_request \- Cyrus SASL documentation
55 .
00 .\" Man page generated from reStructuredText.
11 .
2 .TH "SASL_CALLBACKS" "3" "May 10, 2018" "2.1.27" "Cyrus SASL"
2 .TH "SASL_CALLBACKS" "3" "November 08, 2018" "2.1.27" "Cyrus SASL"
33 .SH NAME
44 sasl_callbacks \- Cyrus SASL documentation
55 .
00 .\" Man page generated from reStructuredText.
11 .
2 .TH "SASL_CANON_USER_T" "3" "May 10, 2018" "2.1.27" "Cyrus SASL"
2 .TH "SASL_CANON_USER_T" "3" "November 08, 2018" "2.1.27" "Cyrus SASL"
33 .SH NAME
44 sasl_canon_user_t \- Cyrus SASL documentation
55 .
00 .\" Man page generated from reStructuredText.
11 .
2 .TH "SASL_CHALPROMPT_T" "3" "May 10, 2018" "2.1.27" "Cyrus SASL"
2 .TH "SASL_CHALPROMPT_T" "3" "November 08, 2018" "2.1.27" "Cyrus SASL"
33 .SH NAME
44 sasl_chalprompt_t \- Cyrus SASL documentation
55 .
00 .\" Man page generated from reStructuredText.
11 .
2 .TH "SASL_CHECKAPOP" "3" "May 10, 2018" "2.1.27" "Cyrus SASL"
2 .TH "SASL_CHECKAPOP" "3" "November 08, 2018" "2.1.27" "Cyrus SASL"
33 .SH NAME
44 sasl_checkapop \- Cyrus SASL documentation
55 .
00 .\" Man page generated from reStructuredText.
11 .
2 .TH "SASL_CHECKPASS" "3" "May 10, 2018" "2.1.27" "Cyrus SASL"
2 .TH "SASL_CHECKPASS" "3" "November 08, 2018" "2.1.27" "Cyrus SASL"
33 .SH NAME
44 sasl_checkpass \- Cyrus SASL documentation
55 .
00 .\" Man page generated from reStructuredText.
11 .
2 .TH "SASL_CLIENT_INIT" "3" "May 10, 2018" "2.1.27" "Cyrus SASL"
2 .TH "SASL_CLIENT_INIT" "3" "November 08, 2018" "2.1.27" "Cyrus SASL"
33 .SH NAME
44 sasl_client_init \- Cyrus SASL documentation
55 .
00 .\" Man page generated from reStructuredText.
11 .
2 .TH "SASL_CLIENT_NEW" "3" "May 10, 2018" "2.1.27" "Cyrus SASL"
2 .TH "SASL_CLIENT_NEW" "3" "November 08, 2018" "2.1.27" "Cyrus SASL"
33 .SH NAME
44 sasl_client_new \- Cyrus SASL documentation
55 .
00 .\" Man page generated from reStructuredText.
11 .
2 .TH "SASL_CLIENT_START" "3" "May 10, 2018" "2.1.27" "Cyrus SASL"
2 .TH "SASL_CLIENT_START" "3" "November 08, 2018" "2.1.27" "Cyrus SASL"
33 .SH NAME
44 sasl_client_start \- Cyrus SASL documentation
55 .
00 .\" Man page generated from reStructuredText.
11 .
2 .TH "SASL_CLIENT_STEP" "3" "May 10, 2018" "2.1.27" "Cyrus SASL"
2 .TH "SASL_CLIENT_STEP" "3" "November 08, 2018" "2.1.27" "Cyrus SASL"
33 .SH NAME
44 sasl_client_step \- Cyrus SASL documentation
55 .
00 .\" Man page generated from reStructuredText.
11 .
2 .TH "SASL_DECODE" "3" "May 10, 2018" "2.1.27" "Cyrus SASL"
2 .TH "SASL_DECODE" "3" "November 08, 2018" "2.1.27" "Cyrus SASL"
33 .SH NAME
44 sasl_decode \- Cyrus SASL documentation
55 .
00 .\" Man page generated from reStructuredText.
11 .
2 .TH "SASL_DISPOSE" "3" "May 10, 2018" "2.1.27" "Cyrus SASL"
2 .TH "SASL_DISPOSE" "3" "November 08, 2018" "2.1.27" "Cyrus SASL"
33 .SH NAME
44 sasl_dispose \- Cyrus SASL documentation
55 .
00 .\" Man page generated from reStructuredText.
11 .
2 .TH "SASL_DONE" "3" "May 10, 2018" "2.1.27" "Cyrus SASL"
2 .TH "SASL_DONE" "3" "November 08, 2018" "2.1.27" "Cyrus SASL"
33 .SH NAME
44 sasl_done \- Cyrus SASL documentation
55 .
00 .\" Man page generated from reStructuredText.
11 .
2 .TH "SASL_ENCODE" "3" "May 10, 2018" "2.1.27" "Cyrus SASL"
2 .TH "SASL_ENCODE" "3" "November 08, 2018" "2.1.27" "Cyrus SASL"
33 .SH NAME
44 sasl_encode \- Cyrus SASL documentation
55 .
00 .\" Man page generated from reStructuredText.
11 .
2 .TH "SASL_ENCODEV" "3" "May 10, 2018" "2.1.27" "Cyrus SASL"
2 .TH "SASL_ENCODEV" "3" "November 08, 2018" "2.1.27" "Cyrus SASL"
33 .SH NAME
44 sasl_encodev \- Cyrus SASL documentation
55 .
00 .\" Man page generated from reStructuredText.
11 .
2 .TH "SASL_ERRDETAIL" "3" "May 10, 2018" "2.1.27" "Cyrus SASL"
2 .TH "SASL_ERRDETAIL" "3" "November 08, 2018" "2.1.27" "Cyrus SASL"
33 .SH NAME
44 sasl_errdetail \- Cyrus SASL documentation
55 .
00 .\" Man page generated from reStructuredText.
11 .
2 .TH "SASL_ERRORS" "3" "May 10, 2018" "2.1.27" "Cyrus SASL"
2 .TH "SASL_ERRORS" "3" "November 08, 2018" "2.1.27" "Cyrus SASL"
33 .SH NAME
44 sasl_errors \- Cyrus SASL documentation
55 .
00 .\" Man page generated from reStructuredText.
11 .
2 .TH "SASL_ERRSTRING" "3" "May 10, 2018" "2.1.27" "Cyrus SASL"
2 .TH "SASL_ERRSTRING" "3" "November 08, 2018" "2.1.27" "Cyrus SASL"
33 .SH NAME
44 sasl_errstring \- Cyrus SASL documentation
55 .
00 .\" Man page generated from reStructuredText.
11 .
2 .TH "SASL_GETCONFPATH_T" "3" "May 10, 2018" "2.1.27" "Cyrus SASL"
2 .TH "SASL_GETCONFPATH_T" "3" "November 08, 2018" "2.1.27" "Cyrus SASL"
33 .SH NAME
44 sasl_getconfpath_t \- Cyrus SASL documentation
55 .
00 .\" Man page generated from reStructuredText.
11 .
2 .TH "SASL_GETOPT_T" "3" "May 10, 2018" "2.1.27" "Cyrus SASL"
2 .TH "SASL_GETOPT_T" "3" "November 08, 2018" "2.1.27" "Cyrus SASL"
33 .SH NAME
44 sasl_getopt_t \- Cyrus SASL documentation
55 .
00 .\" Man page generated from reStructuredText.
11 .
2 .TH "SASL_GETPATH_T" "3" "May 10, 2018" "2.1.27" "Cyrus SASL"
2 .TH "SASL_GETPATH_T" "3" "November 08, 2018" "2.1.27" "Cyrus SASL"
33 .SH NAME
44 sasl_getpath_t \- Cyrus SASL documentation
55 .
00 .\" Man page generated from reStructuredText.
11 .
2 .TH "SASL_GETPROP" "3" "May 10, 2018" "2.1.27" "Cyrus SASL"
2 .TH "SASL_GETPROP" "3" "November 08, 2018" "2.1.27" "Cyrus SASL"
33 .SH NAME
44 sasl_getprop \- Cyrus SASL documentation
55 .
00 .\" Man page generated from reStructuredText.
11 .
2 .TH "SASL_GETREALM_T" "3" "May 10, 2018" "2.1.27" "Cyrus SASL"
2 .TH "SASL_GETREALM_T" "3" "November 08, 2018" "2.1.27" "Cyrus SASL"
33 .SH NAME
44 sasl_getrealm_t \- Cyrus SASL documentation
55 .
00 .\" Man page generated from reStructuredText.
11 .
2 .TH "SASL_GETSECRET_T" "3" "May 10, 2018" "2.1.27" "Cyrus SASL"
2 .TH "SASL_GETSECRET_T" "3" "November 08, 2018" "2.1.27" "Cyrus SASL"
33 .SH NAME
44 sasl_getsecret_t \- Cyrus SASL documentation
55 .
00 .\" Man page generated from reStructuredText.
11 .
2 .TH "SASL_GETSIMPLE_T" "3" "May 10, 2018" "2.1.27" "Cyrus SASL"
2 .TH "SASL_GETSIMPLE_T" "3" "November 08, 2018" "2.1.27" "Cyrus SASL"
33 .SH NAME
44 sasl_getsimple_t \- Cyrus SASL documentation
55 .
00 .\" Man page generated from reStructuredText.
11 .
2 .TH "SASL_GLOBAL_LISTMECH" "3" "May 10, 2018" "2.1.27" "Cyrus SASL"
2 .TH "SASL_GLOBAL_LISTMECH" "3" "November 08, 2018" "2.1.27" "Cyrus SASL"
33 .SH NAME
44 sasl_global_listmech \- Cyrus SASL documentation
55 .
00 .\" Man page generated from reStructuredText.
11 .
2 .TH "SASL_IDLE" "3" "May 10, 2018" "2.1.27" "Cyrus SASL"
2 .TH "SASL_IDLE" "3" "November 08, 2018" "2.1.27" "Cyrus SASL"
33 .SH NAME
44 sasl_idle \- Cyrus SASL documentation
55 .
00 .\" Man page generated from reStructuredText.
11 .
2 .TH "SASL_LISTMECH" "3" "May 10, 2018" "2.1.27" "Cyrus SASL"
2 .TH "SASL_LISTMECH" "3" "November 08, 2018" "2.1.27" "Cyrus SASL"
33 .SH NAME
44 sasl_listmech \- Cyrus SASL documentation
55 .
00 .\" Man page generated from reStructuredText.
11 .
2 .TH "SASL_LOG_T" "3" "May 10, 2018" "2.1.27" "Cyrus SASL"
2 .TH "SASL_LOG_T" "3" "November 08, 2018" "2.1.27" "Cyrus SASL"
33 .SH NAME
44 sasl_log_t \- Cyrus SASL documentation
55 .
00 .\" Man page generated from reStructuredText.
11 .
2 .TH "SASL_SERVER_INIT" "3" "May 10, 2018" "2.1.27" "Cyrus SASL"
2 .TH "SASL_SERVER_INIT" "3" "November 08, 2018" "2.1.27" "Cyrus SASL"
33 .SH NAME
44 sasl_server_init \- Cyrus SASL documentation
55 .
00 .\" Man page generated from reStructuredText.
11 .
2 .TH "SASL_SERVER_NEW" "3" "May 10, 2018" "2.1.27" "Cyrus SASL"
2 .TH "SASL_SERVER_NEW" "3" "November 08, 2018" "2.1.27" "Cyrus SASL"
33 .SH NAME
44 sasl_server_new \- Cyrus SASL documentation
55 .
00 .\" Man page generated from reStructuredText.
11 .
2 .TH "SASL_SERVER_START" "3" "May 10, 2018" "2.1.27" "Cyrus SASL"
2 .TH "SASL_SERVER_START" "3" "November 08, 2018" "2.1.27" "Cyrus SASL"
33 .SH NAME
44 sasl_server_start \- Cyrus SASL documentation
55 .
00 .\" Man page generated from reStructuredText.
11 .
2 .TH "SASL_SERVER_STEP" "3" "May 10, 2018" "2.1.27" "Cyrus SASL"
2 .TH "SASL_SERVER_STEP" "3" "November 08, 2018" "2.1.27" "Cyrus SASL"
33 .SH NAME
44 sasl_server_step \- Cyrus SASL documentation
55 .
00 .\" Man page generated from reStructuredText.
11 .
2 .TH "SASL_SERVER_USERDB_CHECKPASS_T" "3" "May 10, 2018" "2.1.27" "Cyrus SASL"
2 .TH "SASL_SERVER_USERDB_CHECKPASS_T" "3" "November 08, 2018" "2.1.27" "Cyrus SASL"
33 .SH NAME
44 sasl_server_userdb_checkpass_t \- Cyrus SASL documentation
55 .
00 .\" Man page generated from reStructuredText.
11 .
2 .TH "SASL_SERVER_USERDB_SETPASS_T" "3" "May 10, 2018" "2.1.27" "Cyrus SASL"
2 .TH "SASL_SERVER_USERDB_SETPASS_T" "3" "November 08, 2018" "2.1.27" "Cyrus SASL"
33 .SH NAME
44 sasl_server_userdb_setpass_t \- Cyrus SASL documentation
55 .
00 .\" Man page generated from reStructuredText.
11 .
2 .TH "SASL_SETPASS" "3" "May 10, 2018" "2.1.27" "Cyrus SASL"
2 .TH "SASL_SETPASS" "3" "November 08, 2018" "2.1.27" "Cyrus SASL"
33 .SH NAME
44 sasl_setpass \- Cyrus SASL documentation
55 .
00 .\" Man page generated from reStructuredText.
11 .
2 .TH "SASL_SETPROP" "3" "May 10, 2018" "2.1.27" "Cyrus SASL"
2 .TH "SASL_SETPROP" "3" "November 08, 2018" "2.1.27" "Cyrus SASL"
33 .SH NAME
44 sasl_setprop \- Cyrus SASL documentation
55 .
00 .\" Man page generated from reStructuredText.
11 .
2 .TH "SASL_USER_EXISTS" "3" "May 10, 2018" "2.1.27" "Cyrus SASL"
2 .TH "SASL_USER_EXISTS" "3" "November 08, 2018" "2.1.27" "Cyrus SASL"
33 .SH NAME
44 sasl_user_exists \- Cyrus SASL documentation
55 .
00 .\" Man page generated from reStructuredText.
11 .
2 .TH "SASL_VERIFYFILE_T" "3" "May 10, 2018" "2.1.27" "Cyrus SASL"
2 .TH "SASL_VERIFYFILE_T" "3" "November 08, 2018" "2.1.27" "Cyrus SASL"
33 .SH NAME
44 sasl_verifyfile_t \- Cyrus SASL documentation
55 .
6363 LIB_MYSQL = @LIB_MYSQL@
6464
6565 plugindir = @plugindir@
66 plugin_LTLIBRARIES = @SASL_MECHS@
6667
67 sasldir = $(prefix)/lib/sasl2
68 sasl_LTLIBRARIES = @SASL_MECHS@
6968 EXTRA_LTLIBRARIES = libplain.la libanonymous.la libkerberos4.la libcrammd5.la \
7069 libgs2.la libgssapiv2.la libdigestmd5.la liblogin.la libsrp.la libotp.la \
7170 libscram.la libntlm.la libpassdss.la libsasldb.la libsql.la libldapdb.la
148147 CLEANFILES=$(init_src)
149148
150149 ${init_src}: $(srcdir)/makeinit.sh
151 $(SHELL) $(srcdir)/makeinit.sh
150 $(SHELL) $(srcdir)/makeinit.sh $@
182182 || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
183183 $(am__cd) "$$dir" && rm -f $$files; }; \
184184 }
185 am__installdirs = "$(DESTDIR)$(sasldir)"
186 LTLIBRARIES = $(sasl_LTLIBRARIES)
185 am__installdirs = "$(DESTDIR)$(plugindir)"
186 LTLIBRARIES = $(plugin_LTLIBRARIES)
187187 am__DEPENDENCIES_1 =
188188 am_libanonymous_la_OBJECTS = anonymous.lo anonymous_init.lo
189189 libanonymous_la_OBJECTS = $(am_libanonymous_la_OBJECTS)
499499 CRYPTO_COMPAT_OBJS = $(top_builddir)/common/libcrypto_compat.la
500500 EXTRA_DIST = makeinit.sh NTMakefile
501501 noinst_SCRIPTS = makeinit.sh
502 sasldir = $(prefix)/lib/sasl2
503 sasl_LTLIBRARIES = @SASL_MECHS@
502 plugin_LTLIBRARIES = @SASL_MECHS@
504503 EXTRA_LTLIBRARIES = libplain.la libanonymous.la libkerberos4.la libcrammd5.la \
505504 libgs2.la libgssapiv2.la libdigestmd5.la liblogin.la libsrp.la libotp.la \
506505 libscram.la libntlm.la libpassdss.la libsasldb.la libsql.la libldapdb.la
599598 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
600599 $(am__aclocal_m4_deps):
601600
602 install-saslLTLIBRARIES: $(sasl_LTLIBRARIES)
601 install-pluginLTLIBRARIES: $(plugin_LTLIBRARIES)
603602 @$(NORMAL_INSTALL)
604 @list='$(sasl_LTLIBRARIES)'; test -n "$(sasldir)" || list=; \
603 @list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \
605604 list2=; for p in $$list; do \
606605 if test -f $$p; then \
607606 list2="$$list2 $$p"; \
608607 else :; fi; \
609608 done; \
610609 test -z "$$list2" || { \
611 echo " $(MKDIR_P) '$(DESTDIR)$(sasldir)'"; \
612 $(MKDIR_P) "$(DESTDIR)$(sasldir)" || exit 1; \
613 echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(sasldir)'"; \
614 $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(sasldir)"; \
610 echo " $(MKDIR_P) '$(DESTDIR)$(plugindir)'"; \
611 $(MKDIR_P) "$(DESTDIR)$(plugindir)" || exit 1; \
612 echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(plugindir)'"; \
613 $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(plugindir)"; \
615614 }
616615
617 uninstall-saslLTLIBRARIES:
616 uninstall-pluginLTLIBRARIES:
618617 @$(NORMAL_UNINSTALL)
619 @list='$(sasl_LTLIBRARIES)'; test -n "$(sasldir)" || list=; \
618 @list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \
620619 for p in $$list; do \
621620 $(am__strip_dir) \
622 echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(sasldir)/$$f'"; \
623 $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(sasldir)/$$f"; \
621 echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(plugindir)/$$f'"; \
622 $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(plugindir)/$$f"; \
624623 done
625624
626 clean-saslLTLIBRARIES:
627 -test -z "$(sasl_LTLIBRARIES)" || rm -f $(sasl_LTLIBRARIES)
628 @list='$(sasl_LTLIBRARIES)'; \
625 clean-pluginLTLIBRARIES:
626 -test -z "$(plugin_LTLIBRARIES)" || rm -f $(plugin_LTLIBRARIES)
627 @list='$(plugin_LTLIBRARIES)'; \
629628 locs=`for p in $$list; do echo $$p; done | \
630629 sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \
631630 sort -u`; \
838837 check: check-am
839838 all-am: Makefile $(LTLIBRARIES) $(SCRIPTS)
840839 installdirs:
841 for dir in "$(DESTDIR)$(sasldir)"; do \
840 for dir in "$(DESTDIR)$(plugindir)"; do \
842841 test -z "$$dir" || $(MKDIR_P) "$$dir"; \
843842 done
844843 install: install-am
874873 @echo "it deletes files that may require special tools to rebuild."
875874 clean: clean-am
876875
877 clean-am: clean-generic clean-libtool clean-saslLTLIBRARIES \
876 clean-am: clean-generic clean-libtool clean-pluginLTLIBRARIES \
878877 mostlyclean-am
879878
880879 distclean: distclean-am
895894
896895 info-am:
897896
898 install-data-am: install-saslLTLIBRARIES
897 install-data-am: install-pluginLTLIBRARIES
899898
900899 install-dvi: install-dvi-am
901900
941940
942941 ps-am:
943942
944 uninstall-am: uninstall-saslLTLIBRARIES
943 uninstall-am: uninstall-pluginLTLIBRARIES
945944
946945 .MAKE: install-am install-strip
947946
948947 .PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \
949 clean-libtool clean-saslLTLIBRARIES cscopelist-am ctags \
948 clean-libtool clean-pluginLTLIBRARIES cscopelist-am ctags \
950949 ctags-am distclean distclean-compile distclean-generic \
951950 distclean-libtool distclean-tags distdir dvi dvi-am html \
952951 html-am info info-am install install-am install-data \
953952 install-data-am install-dvi install-dvi-am install-exec \
954953 install-exec-am install-html install-html-am install-info \
955954 install-info-am install-man install-pdf install-pdf-am \
956 install-ps install-ps-am install-saslLTLIBRARIES install-strip \
957 installcheck installcheck-am installdirs maintainer-clean \
958 maintainer-clean-generic mostlyclean mostlyclean-compile \
959 mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
960 tags tags-am uninstall uninstall-am uninstall-saslLTLIBRARIES
955 install-pluginLTLIBRARIES install-ps install-ps-am \
956 install-strip installcheck installcheck-am installdirs \
957 maintainer-clean maintainer-clean-generic mostlyclean \
958 mostlyclean-compile mostlyclean-generic mostlyclean-libtool \
959 pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
960 uninstall-pluginLTLIBRARIES
961961
962962 .PRECIOUS: Makefile
963963
964964
965965 ${init_src}: $(srcdir)/makeinit.sh
966 $(SHELL) $(srcdir)/makeinit.sh
966 $(SHELL) $(srcdir)/makeinit.sh $@
967967
968968 # Tell versions [3.59,3.63) of GNU make to not export all variables.
969969 # Otherwise a system limit (for SysV at least) may be exceeded.
118118 OPENSSL_FLAGS=
119119 !ENDIF
120120
121 !IF "$(GSSAPILIB)" == ""
122 GSSAPILIB=gssapi32.lib
123 !ENDIF
124
121125 !IF "$(GSSAPI)" == "CyberSafe"
122126 GSS_FLAGS= /I $(GSSAPI_INCLUDE) /D "HAVE_GSS_C_NT_HOSTBASED_SERVICE" /D "HAVE_GSS_C_NT_USER_NAME"
123 GSS_LIBS=/libpath:$(GSSAPI_LIBPATH) gssapi32.lib
127 GSS_LIBS=/libpath:$(GSSAPI_LIBPATH) $(GSSAPILIB)
128 !ELSE IF "$(GSSAPI)" == "MITKerberos"
129 GSS_FLAGS= /I $(GSSAPI_INCLUDE) /D "HAVE_GSS_C_NT_HOSTBASED_SERVICE" /D "HAVE_GSS_C_NT_USER_NAME"
130 GSS_LIBS=/libpath:$(GSSAPI_LIBPATH) $(GSSAPILIB)
124131 !ELSE
125132 GSS_FLAGS=
126133 GSS_LIBS=
9797 || !serverout
9898 || !serveroutlen
9999 || !oparams) {
100 PARAMERROR( sparams->utils );
100 if (sparams) PARAMERROR( sparams->utils );
101101 return SASL_BADPARAM;
102102 }
103103
241241 || !clientout
242242 || !clientoutlen
243243 || !oparams) {
244 PARAMERROR( cparams->utils );
244 if (cparams) PARAMERROR( cparams->utils );
245245 return SASL_BADPARAM;
246246 }
247247
280280 /* make the prompt list */
281281 result =
282282 _plug_make_prompts(cparams->utils, prompt_need,
283 user_result == SASL_INTERACT ?
284 "Please enter anonymous identification" : NULL,
283 "Please enter anonymous identification",
285284 "",
286285 NULL, NULL,
287286 NULL, NULL,
13911391 struct buffer_info *inblob, bufinfo;
13921392
13931393 if(!context || !invec || !numiov || !output || !outputlen) {
1394 PARAMERROR(text->utils);
1394 if (text) PARAMERROR(text->utils);
13951395 return SASL_BADPARAM;
13961396 }
13971397
19001900 text = sparams->utils->malloc(sizeof(server_context_t));
19011901 if (text == NULL)
19021902 return SASL_NOMEM;
1903 memset(text, 0, sizeof(server_context_t));
1903 memset((server_context_t *)text, 0, sizeof(server_context_t));
19041904
19051905 text->state = 1;
19061906 text->i_am = SERVER;
19601960 strcat(qop, "auth-conf");
19611961 added_conf = 1;
19621962 }
1963 if (strlen(cipheropts) + strlen(cipher->name) + 1 >= 1024)
1964 return SASL_FAIL;
19631965 if (*cipheropts) strcat(cipheropts, ",");
19641966 strcat(cipheropts, cipher->name);
19651967 }
42164218 text = params->utils->malloc(sizeof(client_context_t));
42174219 if (text == NULL)
42184220 return SASL_NOMEM;
4219 memset(text, 0, sizeof(client_context_t));
4221 memset((client_context_t *)text, 0, sizeof(client_context_t));
42204222
42214223 text->state = 1;
42224224 text->i_am = CLIENT;
715715 }
716716
717717 if (text->server_name == GSS_C_NO_NAME) { /* only once */
718 if (params->serverFQDN == NULL ||
719 strlen(params->serverFQDN) == 0) {
720 SETERROR(text->utils, "GS2 Failure: no serverFQDN");
721 ret = SASL_FAIL;
722 goto cleanup;
723 }
724
718725 name_buf.length = strlen(params->service) + 1 + strlen(params->serverFQDN);
719726 name_buf.value = params->utils->malloc(name_buf.length + 1);
720727 if (name_buf.value == NULL) {
721728 ret = SASL_NOMEM;
722729 goto cleanup;
723730 }
724 if (params->serverFQDN == NULL ||
725 strlen(params->serverFQDN) == 0) {
726 SETERROR(text->utils, "GS2 Failure: no serverFQDN");
727 ret = SASL_FAIL;
728 goto cleanup;
729 }
730
731731 snprintf(name_buf.value, name_buf.length + 1,
732732 "%s@%s", params->service, params->serverFQDN);
733733
496496 }
497497
498498 if (output_token->value) {
499 if (output) {
499 if (output && outputlen) {
500500 result = _plug_buf_alloc(text->utils, &text->decode_once_buf,
501501 &text->decode_once_buf_len,
502502 *outputlen);
933933 *serveroutlen = output_token->length;
934934 }
935935 if (output_token->value) {
936 if (serverout) {
936 if (serverout && serveroutlen) {
937937 ret = _plug_buf_alloc(text->utils, &(text->out_buf),
938938 &(text->out_buf_len), *serveroutlen);
939939 if(ret != SASL_OK) {
949949 GSS_LOCK_MUTEX_CTX(params->utils, text);
950950 gss_release_buffer(&min_stat, output_token);
951951 GSS_UNLOCK_MUTEX_CTX(params->utils, text);
952 } else {
952 } else if (serverout && serveroutlen) {
953953 /* No output token, send an empty string */
954954 *serverout = GSSAPI_BLANK_STRING;
955955 *serveroutlen = 0;
12551255 if (serveroutlen)
12561256 *serveroutlen = output_token->length;
12571257 if (output_token->value) {
1258 if (serverout) {
1258 if (serverout && serveroutlen) {
12591259 ret = _plug_buf_alloc(text->utils, &(text->out_buf),
12601260 &(text->out_buf_len), *serveroutlen);
12611261 if(ret != SASL_OK) {
16611661 input_token->value = NULL;
16621662 input_token->length = 0;
16631663 gss_cred_id_t client_creds = (gss_cred_id_t)params->gss_creds;
1664
1665 *clientout = NULL;
1666 *clientoutlen = 0;
1664
1665 if (clientout)
1666 *clientout = NULL;
1667 if (clientoutlen)
1668 *clientoutlen = 0;
16671669
16681670 params->utils->log(params->utils->conn, SASL_LOG_DEBUG,
16691671 "GSSAPI client step %d", text->state);
16941696 /* make the prompt list */
16951697 int result =
16961698 _plug_make_prompts(params->utils, prompt_need,
1697 user_result == SASL_INTERACT ?
1698 "Please enter your authorization name" : NULL, NULL,
1699 "Please enter your authorization name", NULL,
16991700 NULL, NULL,
17001701 NULL, NULL,
17011702 NULL, NULL, NULL,
18191820 text->utils->seterror(text->utils->conn, SASL_LOG_WARN, "GSSAPI warning: no credentials were passed");
18201821 /* not a fatal error */
18211822 }
1822
1823 *clientoutlen = output_token->length;
1823
1824 if (clientoutlen)
1825 *clientoutlen = output_token->length;
18241826
18251827 if (output_token->value) {
1826 if (clientout) {
1828 if (clientout && clientoutlen) {
18271829 ret = _plug_buf_alloc(text->utils, &(text->out_buf),
18281830 &(text->out_buf_len), *clientoutlen);
18291831 if(ret != SASL_OK) {
21292131 *clientoutlen = output_token->length;
21302132 }
21312133 if (output_token->value) {
2132 if (clientout) {
2134 if (clientout && clientoutlen) {
21332135 ret = _plug_buf_alloc(text->utils,
21342136 &(text->out_buf),
21352137 &(text->out_buf_len),
8484 char *authzid;
8585
8686 if((i=ldap_initialize(&cp->ld, ctx->uri))) {
87 cp->ld = NULL;
8788 return i;
8889 }
8990
171172 /* alloc an array of attr names for search, and index to the props */
172173 attrs = sparams->utils->malloc((n+1)*sizeof(char *)*2);
173174 if (!attrs) {
174 result = SASL_NOMEM;
175 goto done;
175 return SASL_NOMEM;
176176 }
177177
178178 aindx = (int *)(attrs + n + 1);
269269 break;
270270 }
271271
272 done:
273272 if(attrs) sparams->utils->free(attrs);
274273 if(cp.ld) ldap_unbind_ext(cp.ld, NULL, NULL);
275274
0 plugin_init="$1"
01 # mechanism plugins
12 for mech in anonymous crammd5 digestmd5 scram gssapiv2 kerberos4 login ntlm otp passdss plain srp gs2; do
3 if [ ${plugin_init} = "${mech}_init.c" ];then
24
3 echo "
5 echo "
46 #include <config.h>
57
68 #include <string.h>
4244
4345 SASL_CLIENT_PLUG_INIT( $mech )
4446 SASL_SERVER_PLUG_INIT( $mech )
45 " > ${mech}_init.c
47 " > ${mech}_init.c
48 echo "generating $1"
49 fi # End of `if [ ${plugin_init} = "${mech}_init.c" ];then'
4650 done
4751
4852 # auxprop plugins
4953 for auxprop in sasldb sql ldapdb; do
54 if [ ${plugin_init} = "${auxprop}_init.c" ];then
5055
51 echo "
56 echo "
5257 #include <config.h>
5358
5459 #include <string.h>
8590 #endif
8691
8792 SASL_AUXPROP_PLUG_INIT( $auxprop )
88 " > ${auxprop}_init.c
93 " > ${auxprop}_init.c
94 echo "generating $1"
95 fi # End of `if [ ${plugin_init} = "${auxprop}_init.c" ];then'
8996 done
9097
9198 # ldapdb is also a canon_user plugin
92 echo "SASL_CANONUSER_PLUG_INIT( ldapdb )" >> ldapdb_init.c
99 if [ ${plugin_init} = "ldapdb_init.c" ];then
100 echo "SASL_CANONUSER_PLUG_INIT( ldapdb )" >> ldapdb_init.c
101 fi
7272 typedef int SOCKET;
7373 #endif /* WIN32 */
7474
75 #ifndef sasl_getpid /* for some reason VS doesn't like #define getpid */
76 # define sasl_getpid getpid
77 #endif
78
7579 #include <openssl/md4.h>
7680 #include <openssl/md5.h>
7781 #include <openssl/hmac.h>
995999 hdr.flags2 = SMB_FLAGS2_ERR_STATUS;
9961000 if (text->flags & NTLM_USE_UNICODE) hdr.flags2 |= SMB_FLAGS2_UNICODE;
9971001 #endif
998 current_pid = getpid();
1002 current_pid = sasl_getpid();
9991003 if (sizeof(current_pid) <= 2) {
10001004 hdr.pid = (uint16) current_pid;
10011005 hdr.PidHigh = 0;
11401144 /* if client asked for target, send domain */
11411145 if (text->flags & NTLM_ASK_TARGET) {
11421146 *domain = utils->malloc(len);
1143 if (domain == NULL) {
1147 if (*domain == NULL) {
11441148 MEMERROR(utils);
11451149 return SASL_NOMEM;
11461150 }
11861190 hdr.flags2 = SMB_FLAGS2_ERR_STATUS;
11871191 if (text->flags & NTLM_USE_UNICODE) hdr.flags2 |= SMB_FLAGS2_UNICODE;
11881192 #endif
1189 current_pid = getpid();
1193 current_pid = sasl_getpid();
11901194 if (sizeof(current_pid) <= 2) {
11911195 hdr.pid = (uint16) current_pid;
11921196 hdr.PidHigh = 0;
15271527 sasl_out_params_t *oparams)
15281528 {
15291529 server_context_t *text = (server_context_t *) conn_context;
1530 const char *scram_sasl_mech =
1531 (EVP_MD_size(text->md) == 32) ? "SCRAM-SHA-256" : "SCRAM-SHA-1";
1530 const char *scram_sasl_mech = NULL;
15321531
15331532 *serverout = NULL;
15341533 *serveroutlen = 0;
15361535 if (text == NULL) {
15371536 return SASL_BADPROT;
15381537 }
1538
1539 scram_sasl_mech =
1540 (EVP_MD_size(text->md) == 32) ? "SCRAM-SHA-256" : "SCRAM-SHA-1";
15391541
15401542 /* this should be well more than is ever needed */
15411543 if (clientinlen > MAX_CLIENTIN_LEN) {
4141 */
4242
4343 #include <shadow.h>
44 #include <string.h>
4445
4546 extern char *crypt();
4647
4141 #
4242 ################################################################
4343
44 AM_CPPFLAGS=-I$(top_srcdir)/include
44 AM_CPPFLAGS=-I$(top_srcdir)/include -DPLUGINDIR='"${plugindir}"'
4545
4646 noinst_PROGRAMS = client server http_digest_client
4747 EXTRA_PROGRAMS = sample-client sample-server
433433 top_build_prefix = @top_build_prefix@
434434 top_builddir = @top_builddir@
435435 top_srcdir = @top_srcdir@
436 AM_CPPFLAGS = -I$(top_srcdir)/include
436 AM_CPPFLAGS = -I$(top_srcdir)/include -DPLUGINDIR='"${plugindir}"'
437437 EXTRA_DIST = NTMakefile
438438 CLEANFILES = sample-client sample-server ./.libs/*sample-client ./.libs/*sample-server
439439 sample_client_SOURCES = sample-client.c
8484
8585 #ifdef HAVE_GSS_GET_NAME_ATTRIBUTE
8686 #include <gssapi/gssapi.h>
87 #ifndef KRB5_HEIMDAL
88 #ifdef HAVE_GSSAPI_GSSAPI_EXT_H
8789 #include <gssapi/gssapi_ext.h>
90 #endif
91 #endif
8892 #endif
8993
9094 #include "common.h"
3333
3434 EXTRA_DIST = saslauthd.8 saslauthd.mdoc include \
3535 getnameinfo.c getaddrinfo.c LDAP_SASLAUTHD
36 AM_CPPFLAGS = -I$(top_srcdir)/include -I$(top_builddir)/include -I$(top_srcdir)/../include -I$(top_builddir)/common
36 AM_CPPFLAGS = -I$(top_srcdir)/include -I$(top_builddir)/include -I$(top_builddir)/common -I$(top_srcdir)/common
3737 DEFS = @DEFS@ -DSASLAUTHD_CONF_FILE_DEFAULT=\"@sysconfdir@/saslauthd.conf\" -I. -I$(srcdir) -I..
3838
3939
412412 EXTRA_DIST = saslauthd.8 saslauthd.mdoc include \
413413 getnameinfo.c getaddrinfo.c LDAP_SASLAUTHD
414414
415 AM_CPPFLAGS = -I$(top_srcdir)/include -I$(top_builddir)/include -I$(top_srcdir)/../include -I$(top_builddir)/common
415 AM_CPPFLAGS = -I$(top_srcdir)/include -I$(top_builddir)/include -I$(top_builddir)/common -I$(top_srcdir)/common
416416 all: all-am
417417
418418 .SUFFIXES:
536536 ai->ai_canonname ? ai->ai_canonname : r_host, hbuf, pbuf);
537537 }
538538 if (s < 0) {
539 if (!ai) {
540 syslog(LOG_WARNING, "auth_httpform: no address given");
541 return strdup("NO [ALERT] No address given");
542 }
543
539544 if (getnameinfo(ai->ai_addr, ai->ai_addrlen, NULL, 0,
540545 pbuf, sizeof(pbuf), NI_NUMERICSERV) != 0)
541546 strlcpy(pbuf, "unknown", sizeof(pbuf));
5353
5454 # include <string.h>
5555 # include <syslog.h>
56 #ifdef HAVE_SECURITY_PAM_APPL_H
5756 # include <security/pam_appl.h>
58 #elif defined(HAVE_PAM_PAM_APPL_H)
59 # include <pam/pam_appl.h>
60 #endif
61
6257 # include "auth_pam.h"
6358 /* END PUBLIC DEPENDENCIES */
6459
472472 ai->ai_canonname ? ai->ai_canonname : r_host, hbuf, pbuf);
473473 }
474474 if (s < 0) {
475 if (!ai) {
476 syslog(LOG_WARNING, "auth_httpform: no address given");
477 return strdup("NO [ALERT] No address given");
478 }
479
475480 if (getnameinfo(ai->ai_addr, ai->ai_addrlen, NULL, 0,
476481 pbuf, sizeof(pbuf), NI_NUMERICSERV) != 0)
477482 strlcpy(pbuf, "unknown", sizeof(pbuf));
146146 !(cf->kvlist[cf->n_kv].value = strdup(p))) {
147147 if (complaint)
148148 snprintf(complaint, complaint_len, "cfile_read: no memory");
149 cf->n_kv++; /* maybe one strdup() worked */
149 /* maybe one strdup() worked */
150 if (cf->kvlist[cf->n_kv].key)
151 free(cf->kvlist[cf->n_kv].key);
150152 cfile_free(cf);
151153 fclose(infile);
152154 return 0;
14611461 {
14621462 /* restore config bind */
14631463 lak_unbind(lak);
1464 lak_user_free(lu);
14641465 rc = lak_user(
14651466 lak->conf->bind_dn,
14661467 lak->conf->id,
14771478
14781479 rc = lak_group_member(lak, user, service, realm, dn->value);
14791480 }
1480 done:;
1481 done:
14811482 if (lu)
14821483 lak_user_free(lu);
14831484 if (dn)
115115 if(!userid || !passwd) return -1;
116116
117117 if (saslauthd_path) {
118 strncpy(pwpath, saslauthd_path, sizeof(pwpath));
118 strlcpy(pwpath, saslauthd_path, sizeof(pwpath));
119119 } else {
120120 if (strlen(PATH_SASLAUTHD_RUNDIR) + 4 + 1 > sizeof(pwpath))
121121 return -1;
186186
187187 memset((char *)&srvaddr, 0, sizeof(srvaddr));
188188 srvaddr.sun_family = AF_UNIX;
189 strncpy(srvaddr.sun_path, pwpath, sizeof(srvaddr.sun_path));
189 strlcpy(srvaddr.sun_path, pwpath, sizeof(srvaddr.sun_path));
190190
191191 r = connect(s, (struct sockaddr *) &srvaddr, sizeof(srvaddr));
192192 if (r == -1) {
8888 libsfsasl2_la_LIBADD = sfsasl.lo
8989 libsfsasl2_la_LDFLAGS = -version-info 1:0:0 -export-dynamic -rpath $(libdir)
9090
91 AM_CPPFLAGS=-I$(top_srcdir)/include -I$(top_builddir)/include @SASL_DB_INC@
91 AM_CPPFLAGS=-I$(top_srcdir)/include -I$(top_builddir)/include @SASL_DB_INC@ -DPLUGINDIR='"${plugindir}"'
92
9293 EXTRA_DIST = saslpasswd2.8 sasldblistusers2.8 pluginviewer.8 sfsasl.h sfsasl.c smtptest.c testsuite.c pluginviewer.c NTMakefile
9394
9495 sfsasl.lo: sfsasl.c
521521 libsfsasl2_la_SOURCES =
522522 libsfsasl2_la_LIBADD = sfsasl.lo
523523 libsfsasl2_la_LDFLAGS = -version-info 1:0:0 -export-dynamic -rpath $(libdir)
524 AM_CPPFLAGS = -I$(top_srcdir)/include -I$(top_builddir)/include @SASL_DB_INC@
524 AM_CPPFLAGS = -I$(top_srcdir)/include -I$(top_builddir)/include @SASL_DB_INC@ -DPLUGINDIR='"${plugindir}"'
525525 EXTRA_DIST = saslpasswd2.8 sasldblistusers2.8 pluginviewer.8 sfsasl.h sfsasl.c smtptest.c testsuite.c pluginviewer.c NTMakefile
526526 all: all-am
527527
333333 }
334334
335335 result = cursor->c_close(cursor);
336 if (result!=0) result = SASL_FAIL;
336 if (result != 0) {
337 result = SASL_FAIL;
338 goto cleanup;
339 }
337340
338341 result = SASL_OK;
339342
423423 (flag_create ? SASL_SET_CREATE : 0)
424424 | (flag_disable ? SASL_SET_DISABLE : 0)
425425 | (flag_nouserpass ? SASL_SET_NOPLAIN : 0));
426 free(password);
426427
427428 if (result != SASL_OK && !flag_disable)
428429 exit_sasl(result, NULL);
0 *.user
1 *.filters
2 *.VC.opendb
3 *.VC.db
4 .vs
5
6 # build directories
7 ./common/
8 ./plugin_*/
9 ./plugins/
10 ./sasl2/
11 ./sasldb/
12 ./x64
13 ./win32
0 # Microsoft Windows build scripts
1
2 **Currently supported build systems:**
3
4 * msbuild
5 * nmake
6
7 ## msbuild
8
9 msbuild or regular Microsoft Visual Studio solutions / projects are represented as
10 \*.sln and \*.vcxproj files. The solution file is capable to build release or debug
11 version of sasl2.dll. Sasl plugins are splitted into two sets. Some of them will be
12 statically linked into sasl2.dll and others have separate solution files. This is
13 done to simplify configuration and compilation with 3rdparty tools like Conan
14 package manager. And there are some plugins which won't be compiled at all at the
15 moment but may be support for them will be added later.
16
17 There are 3 solution files:
18
19 * **core** builds sasl2.dll with some static plugins included.
20 * **sasldb** builds sasldb library and corresponding dynamic plugin
21 * **gssapi** builds gssapi dynamic plugin
22
23 **IMPORTANT:** Only x64 configuration was tested with current Visual Studio projects.
24
25 #### Dependencies
26
27 Pay attention to cyrus-sasl.props file and its SaslDependencyRoot property.
28 It's where it's looking for dependencies. You can put your OpenSSL installation in there as well
29 as any other dependency. Just make sure it's exacty in "lib" and "include" directories to make
30 it compile
31
32 **core** solution depends only on OpenSSL. You can change openssl.props file if putting
33 OpenSSL into SaslDependencyRoot is not an option for you. In this case openssl.props may look
34 something like this
35
36 ```xml
37 <?xml version="1.0" encoding="utf-8"?>
38 <Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
39 <ImportGroup Label="PropertySheets" />
40 <PropertyGroup Label="UserMacros" />
41 <ItemDefinitionGroup>
42 <ClCompile>
43 <AdditionalIncludeDirectories>C:\path\to\openssl\install\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
44 </ClCompile>
45 <Link>
46 <AdditionalLibraryDirectories>C:\path\to\openssl\install\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
47 <AdditionalDependencies>libeay32.lib;%(AdditionalDependencies)</AdditionalDependencies>
48 </Link>
49 </ItemDefinitionGroup>
50 <ItemGroup />
51 </Project>
52 ```
53 In any case it's required to point to the correct name of the OpenSSL library (see libeay32.lib).
54 Also make sure previous values are preserved by including `%(something)` as in the example above.
55
56 ---
57
58 **sasldb** solution depends on [LMDB](https://github.com/LMDB/lmdb) library. Again you can
59 play with cyrus-sasl.props and its SaslDependencyRoot or just change paths and libs to
60 whatever you want in [sasldb.props](sasldb.props). If the version from upstream repository doesn't build
61 for you (even from stable branches), you can try next fork https://github.com/Ri0n/lmdb
62
63 ---
64
65 **gssapiv2** plugin depends on one of Kerberos realization. But only MIT Kerberos was tested with msbuild.
66 As always put dependencies to the location pointed by cyrus-sasl.props or change gssapiv2 project file.
67
68 #### Compilation
69
70 Basically there 3 ways to compile with msbuild.
71
72 1. Just open any of solution files in Visual Studio and build it (assuming the dependency are
73 already in correct locations)
74 2. Use msbuild command line util (pretty much the same as 1 but from command line)
75 3. Use [Conan package manager](https://conan.io) (will download dependencies from a cloud and build just cyrus-sasl.
76 Or after the sources will be built automatically on CI, so one can just download binaries)
77
78 Regarding solution files there are to options:
79
80 1. cyrus-sasl-all-in-one.sln builds everything and depends on everything
81 2. cyrus-sasl-*.sln (other sln files) build something specific.
82 * cyrus-sasl-core.sln builds sasl2 library with some static plugins included
83 * cyrus-sasl-common.sln builds just common library useful for plugins development
84 * cyrus-sasl-sasldb.sln builds sasldb library and corresponding plugin
85 * cyrus-sasl-gssapiv2.sln builds gssapiv2 plugin
86
87 Build with Conan is not that hard too. I need it installed and added to PATH,
88 then from console in one of win32\conan subdirectory try something like
89
90 ```cmd
91 > conan create . yourname/stable
92 ```
93 For more information about Conan please read their
94 [documentation](https://docs.conan.io/en/latest)
95
96 #### Questions
97
98 The Visual Studio solution, project files and property sheets were
99 written by [Sergey Ilinykh](mailto:rion4ik@gmail.com).
100 Feel free to mail and ask questions.
101
102 ## nmake
103
104 TBD
105
106 nmake makefiles weren't updated for awhile and most likely won't build.
0 <?xml version="1.0" encoding="utf-8"?>
1 <Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
2 <ItemGroup Label="ProjectConfigurations">
3 <ProjectConfiguration Include="Debug|Win32">
4 <Configuration>Debug</Configuration>
5 <Platform>Win32</Platform>
6 </ProjectConfiguration>
7 <ProjectConfiguration Include="Release|Win32">
8 <Configuration>Release</Configuration>
9 <Platform>Win32</Platform>
10 </ProjectConfiguration>
11 <ProjectConfiguration Include="Debug|x64">
12 <Configuration>Debug</Configuration>
13 <Platform>x64</Platform>
14 </ProjectConfiguration>
15 <ProjectConfiguration Include="Release|x64">
16 <Configuration>Release</Configuration>
17 <Platform>x64</Platform>
18 </ProjectConfiguration>
19 </ItemGroup>
20 <PropertyGroup Label="Globals">
21 <ProjectGuid>{528F3494-1C30-405F-9FDF-22FA4AFE54F4}</ProjectGuid>
22 <RootNamespace>common</RootNamespace>
23 <WindowsTargetPlatformVersion>8.1</WindowsTargetPlatformVersion>
24 </PropertyGroup>
25 <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
26 <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
27 <ConfigurationType>StaticLibrary</ConfigurationType>
28 <UseDebugLibraries>true</UseDebugLibraries>
29 <PlatformToolset>v140</PlatformToolset>
30 <CharacterSet>Unicode</CharacterSet>
31 </PropertyGroup>
32 <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
33 <ConfigurationType>StaticLibrary</ConfigurationType>
34 <UseDebugLibraries>false</UseDebugLibraries>
35 <PlatformToolset>v140</PlatformToolset>
36 <WholeProgramOptimization>true</WholeProgramOptimization>
37 <CharacterSet>Unicode</CharacterSet>
38 </PropertyGroup>
39 <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
40 <ConfigurationType>StaticLibrary</ConfigurationType>
41 <UseDebugLibraries>true</UseDebugLibraries>
42 <PlatformToolset>v140</PlatformToolset>
43 <CharacterSet>Unicode</CharacterSet>
44 </PropertyGroup>
45 <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
46 <ConfigurationType>StaticLibrary</ConfigurationType>
47 <UseDebugLibraries>false</UseDebugLibraries>
48 <PlatformToolset>v140</PlatformToolset>
49 <WholeProgramOptimization>true</WholeProgramOptimization>
50 <CharacterSet>Unicode</CharacterSet>
51 </PropertyGroup>
52 <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
53 <ImportGroup Label="ExtensionSettings">
54 </ImportGroup>
55 <ImportGroup Label="Shared">
56 </ImportGroup>
57 <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
58 <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
59 <Import Project="cyrus-sasl.props" />
60 <Import Project="openssl.props" />
61 </ImportGroup>
62 <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
63 <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
64 <Import Project="cyrus-sasl.props" />
65 <Import Project="openssl.props" />
66 </ImportGroup>
67 <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
68 <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
69 <Import Project="cyrus-sasl.props" />
70 <Import Project="openssl.props" />
71 </ImportGroup>
72 <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
73 <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
74 <Import Project="cyrus-sasl.props" />
75 <Import Project="openssl.props" />
76 </ImportGroup>
77 <PropertyGroup Label="UserMacros" />
78 <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
79 <TargetExt>.lib</TargetExt>
80 <TargetName>lib$(ProjectName)d</TargetName>
81 </PropertyGroup>
82 <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
83 <TargetExt>.lib</TargetExt>
84 <TargetName>lib$(ProjectName)</TargetName>
85 </PropertyGroup>
86 <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
87 <TargetName>lib$(ProjectName)d</TargetName>
88 </PropertyGroup>
89 <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
90 <TargetName>lib$(ProjectName)</TargetName>
91 </PropertyGroup>
92 <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
93 <ClCompile>
94 <WarningLevel>Level3</WarningLevel>
95 <Optimization>Disabled</Optimization>
96 <SDLCheck>true</SDLCheck>
97 </ClCompile>
98 <Lib />
99 </ItemDefinitionGroup>
100 <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
101 <ClCompile>
102 <WarningLevel>Level3</WarningLevel>
103 <Optimization>Disabled</Optimization>
104 <SDLCheck>true</SDLCheck>
105 </ClCompile>
106 <Lib />
107 </ItemDefinitionGroup>
108 <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
109 <ClCompile>
110 <WarningLevel>Level3</WarningLevel>
111 <Optimization>MaxSpeed</Optimization>
112 <FunctionLevelLinking>true</FunctionLevelLinking>
113 <IntrinsicFunctions>true</IntrinsicFunctions>
114 <SDLCheck>true</SDLCheck>
115 </ClCompile>
116 <Link>
117 <EnableCOMDATFolding>true</EnableCOMDATFolding>
118 <OptimizeReferences>true</OptimizeReferences>
119 </Link>
120 <Lib />
121 </ItemDefinitionGroup>
122 <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
123 <ClCompile>
124 <WarningLevel>Level3</WarningLevel>
125 <Optimization>MaxSpeed</Optimization>
126 <FunctionLevelLinking>true</FunctionLevelLinking>
127 <IntrinsicFunctions>true</IntrinsicFunctions>
128 <SDLCheck>true</SDLCheck>
129 </ClCompile>
130 <Link>
131 <EnableCOMDATFolding>true</EnableCOMDATFolding>
132 <OptimizeReferences>true</OptimizeReferences>
133 </Link>
134 <Lib />
135 </ItemDefinitionGroup>
136 <ItemGroup>
137 <ClCompile Include="..\common\crypto-compat.c" />
138 <ClCompile Include="..\common\plugin_common.c" />
139 </ItemGroup>
140 <ItemGroup>
141 <ClInclude Include="..\common\crypto-compat.h" />
142 <ClInclude Include="..\common\plugin_common.h" />
143 </ItemGroup>
144 <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
145 <ImportGroup Label="ExtensionTargets">
146 </ImportGroup>
147 </Project>
0 import os
1
2 from conan.packager import ConanMultiPackager
3 from conans import tools
4
5 if __name__ == "__main__":
6 runtimes = ["MD", "MDd"]
7 for subdir in ["sasl2", "sasldb", "gssapiv2"]:
8 ref = os.environ.get("CONAN_REFERENCE", "")
9 if ref:
10 name, ver = ref.split("/", 1)
11 os.environ["CONAN_REFERENCE"] = "cyrus-sasl-" + subdir + "/" + ver
12 with tools.chdir(os.path.join("win32", "conan", subdir)):
13 builder = ConanMultiPackager(visual_runtimes=runtimes)
14 builder.add_common_builds(shared_option_name=False, pure_c=True)
15 builder.run()
0 from conans import ConanFile, MSBuild
1
2 # This is a common library used in every other subproject of cyrus-sasl
3 # Even though cyrus-sasl-core.sln builds its own copy of this library
4 # making it possible to build static cyrus-sasl while this one is
5 # supposed to be used nly with dynamic runtimes (for dynamic plugins).
6 class CyrusSaslCommonConan(ConanFile):
7 version = "2.1.26"
8 license = "BSD-with-attribution"
9 url = "https://github.com/Ri0n/cyrus-sasl.git"
10 settings = "os", "compiler", "build_type", "arch"
11 exports_sources="../../../*"
12
13 name = "cyrus-sasl-common"
14 description = "Cyrus SASL internal common library"
15 options = {"shared": [False]}
16 default_options = "shared=False"
17 requires = "OpenSSL/1.0.2o@conan/stable"
18
19 def build(self):
20 #replace_in_file("win32\\openssl.props", "libeay32.lib;", "")
21 msbuild = MSBuild(self)
22 msbuild.build_env.runtime = ["MD","MDd"][self.settings.get_safe("build_type") == "Debug"]
23 msbuild.build("win32\\cyrus-sasl-common.sln")
24
25 def package(self):
26 self.copy("*common*.lib", dst="lib", keep_path=False)
27 self.copy("*common*.a", dst="lib", keep_path=False)
28
29 def package_info(self):
30 self.cpp_info.libs = ["libcommon.lib"]
31
0 from conans import ConanFile, MSBuild
1
2 class CyrusSaslGssapi2Conan(ConanFile):
3 version = "2.1.26"
4 license = "BSD-with-attribution"
5 url = "https://github.com/Ri0n/cyrus-sasl.git"
6 settings = "os", "compiler", "build_type", "arch"
7 exports_sources="../../../*"
8
9 name = "cyrus-sasl-gssapiv2"
10 description = "Cyrus SASL GSSAPIv2 plugin"
11 options = {"shared": [True]}
12 default_options = "shared=True"
13 build_requires = "OpenSSL/1.0.2o@conan/stable"
14 requires = "krb5-gssapi/1.16.1@rion/stable"
15
16 def build(self):
17 msbuild = MSBuild(self)
18 msbuild.build("win32\\cyrus-sasl-gssapiv2.sln")
19
20 def package(self):
21 self.copy("*.dll", dst="bin", keep_path=False)
22 self.copy("*.so", dst="lib", keep_path=False)
23 self.copy("*.dylib", dst="lib", keep_path=False)
0 from conans import ConanFile, MSBuild
1
2 class CyrusSaslConan(ConanFile):
3 version = "2.1.26"
4 license = "BSD-with-attribution"
5 url = "https://github.com/Ri0n/cyrus-sasl.git"
6 settings = "os", "compiler", "build_type", "arch"
7 exports_sources="../../../*"
8
9 name = "cyrus-sasl-sasl2"
10 description = "Simple Authentication and Security Layer (SASL)"
11 options = {"shared": [True, False]}
12 default_options = "shared=True"
13 requires = "OpenSSL/1.0.2o@conan/stable"
14
15 def build(self):
16 msbuild = MSBuild(self)
17 msbuild.build("win32\\cyrus-sasl-core.sln")
18
19 def package(self):
20 self.copy("*.h", dst="include\sasl", src="include")
21 self.copy("*sasl2*.lib", dst="lib", keep_path=False)
22 self.copy("*.dll", dst="bin", keep_path=False)
23 self.copy("*.so", dst="lib", keep_path=False)
24 self.copy("*.dylib", dst="lib", keep_path=False)
25 self.copy("*.a", dst="lib", keep_path=False)
26
27 def package_info(self):
28 self.cpp_info.libs = ["sasl2.lib"]
0 from conans import ConanFile, MSBuild
1
2 class CyrusSaslSasldbConan(ConanFile):
3 version = "2.1.26"
4 license = "BSD-with-attribution"
5 url = "https://github.com/Ri0n/cyrus-sasl.git"
6 settings = "os", "compiler", "build_type", "arch"
7 exports_sources="../../../*"
8
9 name = "cyrus-sasl-sasldb"
10 description = "Cyrus SASL SASLDB plugin"
11 options = {"shared": [True]}
12 default_options = "shared=True"
13 build_requires = "OpenSSL/1.0.2o@conan/stable"
14 requires = "lmdb/0.9.22@rion/stable"
15
16 def build(self):
17 msbuild = MSBuild(self)
18 msbuild.build("win32\\cyrus-sasl-sasldb.sln")
19
20 def package(self):
21 self.copy("*.dll", dst="bin", keep_path=False)
22 self.copy("*.so", dst="lib", keep_path=False)
23 self.copy("*.dylib", dst="lib", keep_path=False)
24
0 from conan.packager import ConanMultiPackager
1
2
3 if __name__ == "__main__":
4 builder = ConanMultiPackager()
5 builder.add_common_builds(shared_option_name="cyrus-sasl:shared")
6 builder.run()
0 
1 Microsoft Visual Studio Solution File, Format Version 12.00
2 # Visual Studio 14
3 VisualStudioVersion = 14.0.25420.1
4 MinimumVisualStudioVersion = 10.0.40219.1
5 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "sasl2", "sasl2.vcxproj", "{25B39566-623A-410B-B489-FEFE6B997A7E}"
6 ProjectSection(ProjectDependencies) = postProject
7 {7D694002-B275-4895-A76E-A6ED345FD3C3} = {7D694002-B275-4895-A76E-A6ED345FD3C3}
8 {6E87064B-9A5E-4F05-A8FB-09FC72E9E3CC} = {6E87064B-9A5E-4F05-A8FB-09FC72E9E3CC}
9 {639D1C4B-ACC5-40A4-A96B-731E7FC21EA7} = {639D1C4B-ACC5-40A4-A96B-731E7FC21EA7}
10 {666D9377-C82C-4391-96BB-B9A5794FB9DD} = {666D9377-C82C-4391-96BB-B9A5794FB9DD}
11 {528F3494-1C30-405F-9FDF-22FA4AFE54F4} = {528F3494-1C30-405F-9FDF-22FA4AFE54F4}
12 {B8C5499F-BCB8-409C-8446-0D92DE118020} = {B8C5499F-BCB8-409C-8446-0D92DE118020}
13 EndProjectSection
14 EndProject
15 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "common", "common.vcxproj", "{528F3494-1C30-405F-9FDF-22FA4AFE54F4}"
16 EndProject
17 Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{C123AE6A-9541-41ED-BB81-C0D46EA847A5}"
18 ProjectSection(SolutionItems) = preProject
19 conanfile.txt = conanfile.txt
20 include\config.h = include\config.h
21 ..\include\exits.h = ..\include\exits.h
22 ..\include\gai.h = ..\include\gai.h
23 generate_conan.cmd = generate_conan.cmd
24 ..\include\hmac-md5.h = ..\include\hmac-md5.h
25 makeinit.ps1 = makeinit.ps1
26 ..\include\md5.h = ..\include\md5.h
27 ..\include\prop.h = ..\include\prop.h
28 README.md = README.md
29 ..\include\sasl.h = ..\include\sasl.h
30 ..\include\saslplug.h = ..\include\saslplug.h
31 ..\include\saslutil.h = ..\include\saslutil.h
32 EndProjectSection
33 EndProject
34 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "sasldb", "sasldb.vcxproj", "{EF82DBE5-D25B-4AC8-989E-68350BD17185}"
35 ProjectSection(ProjectDependencies) = postProject
36 {528F3494-1C30-405F-9FDF-22FA4AFE54F4} = {528F3494-1C30-405F-9FDF-22FA4AFE54F4}
37 EndProjectSection
38 EndProject
39 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "plugin_digestmd5", "plugin_digestmd5.vcxproj", "{6E87064B-9A5E-4F05-A8FB-09FC72E9E3CC}"
40 ProjectSection(ProjectDependencies) = postProject
41 {528F3494-1C30-405F-9FDF-22FA4AFE54F4} = {528F3494-1C30-405F-9FDF-22FA4AFE54F4}
42 EndProjectSection
43 EndProject
44 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "plugin_scram", "plugin_scram.vcxproj", "{639D1C4B-ACC5-40A4-A96B-731E7FC21EA7}"
45 EndProject
46 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "plugin_anonymous", "plugin_anonymous.vcxproj", "{666D9377-C82C-4391-96BB-B9A5794FB9DD}"
47 EndProject
48 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "plugin_plain", "plugin_plain.vcxproj", "{B8C5499F-BCB8-409C-8446-0D92DE118020}"
49 EndProject
50 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "plugin_ntlm", "plugin_ntlm.vcxproj", "{7D694002-B275-4895-A76E-A6ED345FD3C3}"
51 EndProject
52 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "plugin_sasldb", "plugin_sasldb.vcxproj", "{BAA833AE-8C05-4C1F-AE5A-739241E3765B}"
53 ProjectSection(ProjectDependencies) = postProject
54 {EF82DBE5-D25B-4AC8-989E-68350BD17185} = {EF82DBE5-D25B-4AC8-989E-68350BD17185}
55 EndProjectSection
56 EndProject
57 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "plugin_gssapiv2", "plugin_gssapiv2.vcxproj", "{03AFF51B-3BBF-404C-ACE3-8ABCEE666A2E}"
58 EndProject
59 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "install", "install.vcxproj", "{D0E8D7B3-5466-4BE2-B54B-80A0E1A55101}"
60 ProjectSection(ProjectDependencies) = postProject
61 {03AFF51B-3BBF-404C-ACE3-8ABCEE666A2E} = {03AFF51B-3BBF-404C-ACE3-8ABCEE666A2E}
62 {25B39566-623A-410B-B489-FEFE6B997A7E} = {25B39566-623A-410B-B489-FEFE6B997A7E}
63 {BAA833AE-8C05-4C1F-AE5A-739241E3765B} = {BAA833AE-8C05-4C1F-AE5A-739241E3765B}
64 EndProjectSection
65 EndProject
66 Global
67 GlobalSection(SolutionConfigurationPlatforms) = preSolution
68 Debug|x64 = Debug|x64
69 Debug|x86 = Debug|x86
70 Release|x64 = Release|x64
71 Release|x86 = Release|x86
72 EndGlobalSection
73 GlobalSection(ProjectConfigurationPlatforms) = postSolution
74 {25B39566-623A-410B-B489-FEFE6B997A7E}.Debug|x64.ActiveCfg = Debug|x64
75 {25B39566-623A-410B-B489-FEFE6B997A7E}.Debug|x64.Build.0 = Debug|x64
76 {25B39566-623A-410B-B489-FEFE6B997A7E}.Debug|x64.Deploy.0 = Debug|x64
77 {25B39566-623A-410B-B489-FEFE6B997A7E}.Debug|x86.ActiveCfg = Debug|Win32
78 {25B39566-623A-410B-B489-FEFE6B997A7E}.Debug|x86.Build.0 = Debug|Win32
79 {25B39566-623A-410B-B489-FEFE6B997A7E}.Release|x64.ActiveCfg = Release|x64
80 {25B39566-623A-410B-B489-FEFE6B997A7E}.Release|x64.Build.0 = Release|x64
81 {25B39566-623A-410B-B489-FEFE6B997A7E}.Release|x86.ActiveCfg = Release|Win32
82 {25B39566-623A-410B-B489-FEFE6B997A7E}.Release|x86.Build.0 = Release|Win32
83 {528F3494-1C30-405F-9FDF-22FA4AFE54F4}.Debug|x64.ActiveCfg = Debug|x64
84 {528F3494-1C30-405F-9FDF-22FA4AFE54F4}.Debug|x64.Build.0 = Debug|x64
85 {528F3494-1C30-405F-9FDF-22FA4AFE54F4}.Debug|x86.ActiveCfg = Debug|Win32
86 {528F3494-1C30-405F-9FDF-22FA4AFE54F4}.Debug|x86.Build.0 = Debug|Win32
87 {528F3494-1C30-405F-9FDF-22FA4AFE54F4}.Release|x64.ActiveCfg = Release|x64
88 {528F3494-1C30-405F-9FDF-22FA4AFE54F4}.Release|x64.Build.0 = Release|x64
89 {528F3494-1C30-405F-9FDF-22FA4AFE54F4}.Release|x86.ActiveCfg = Release|Win32
90 {528F3494-1C30-405F-9FDF-22FA4AFE54F4}.Release|x86.Build.0 = Release|Win32
91 {EF82DBE5-D25B-4AC8-989E-68350BD17185}.Debug|x64.ActiveCfg = Debug|x64
92 {EF82DBE5-D25B-4AC8-989E-68350BD17185}.Debug|x64.Build.0 = Debug|x64
93 {EF82DBE5-D25B-4AC8-989E-68350BD17185}.Debug|x86.ActiveCfg = Debug|Win32
94 {EF82DBE5-D25B-4AC8-989E-68350BD17185}.Debug|x86.Build.0 = Debug|Win32
95 {EF82DBE5-D25B-4AC8-989E-68350BD17185}.Release|x64.ActiveCfg = Release|x64
96 {EF82DBE5-D25B-4AC8-989E-68350BD17185}.Release|x64.Build.0 = Release|x64
97 {EF82DBE5-D25B-4AC8-989E-68350BD17185}.Release|x86.ActiveCfg = Release|Win32
98 {EF82DBE5-D25B-4AC8-989E-68350BD17185}.Release|x86.Build.0 = Release|Win32
99 {6E87064B-9A5E-4F05-A8FB-09FC72E9E3CC}.Debug|x64.ActiveCfg = Debug|x64
100 {6E87064B-9A5E-4F05-A8FB-09FC72E9E3CC}.Debug|x64.Build.0 = Debug|x64
101 {6E87064B-9A5E-4F05-A8FB-09FC72E9E3CC}.Debug|x86.ActiveCfg = Debug|Win32
102 {6E87064B-9A5E-4F05-A8FB-09FC72E9E3CC}.Debug|x86.Build.0 = Debug|Win32
103 {6E87064B-9A5E-4F05-A8FB-09FC72E9E3CC}.Release|x64.ActiveCfg = Release|x64
104 {6E87064B-9A5E-4F05-A8FB-09FC72E9E3CC}.Release|x64.Build.0 = Release|x64
105 {6E87064B-9A5E-4F05-A8FB-09FC72E9E3CC}.Release|x86.ActiveCfg = Release|Win32
106 {6E87064B-9A5E-4F05-A8FB-09FC72E9E3CC}.Release|x86.Build.0 = Release|Win32
107 {639D1C4B-ACC5-40A4-A96B-731E7FC21EA7}.Debug|x64.ActiveCfg = Debug|x64
108 {639D1C4B-ACC5-40A4-A96B-731E7FC21EA7}.Debug|x64.Build.0 = Debug|x64
109 {639D1C4B-ACC5-40A4-A96B-731E7FC21EA7}.Debug|x86.ActiveCfg = Debug|Win32
110 {639D1C4B-ACC5-40A4-A96B-731E7FC21EA7}.Debug|x86.Build.0 = Debug|Win32
111 {639D1C4B-ACC5-40A4-A96B-731E7FC21EA7}.Release|x64.ActiveCfg = Release|x64
112 {639D1C4B-ACC5-40A4-A96B-731E7FC21EA7}.Release|x64.Build.0 = Release|x64
113 {639D1C4B-ACC5-40A4-A96B-731E7FC21EA7}.Release|x86.ActiveCfg = Release|Win32
114 {639D1C4B-ACC5-40A4-A96B-731E7FC21EA7}.Release|x86.Build.0 = Release|Win32
115 {666D9377-C82C-4391-96BB-B9A5794FB9DD}.Debug|x64.ActiveCfg = Debug|x64
116 {666D9377-C82C-4391-96BB-B9A5794FB9DD}.Debug|x64.Build.0 = Debug|x64
117 {666D9377-C82C-4391-96BB-B9A5794FB9DD}.Debug|x86.ActiveCfg = Debug|Win32
118 {666D9377-C82C-4391-96BB-B9A5794FB9DD}.Debug|x86.Build.0 = Debug|Win32
119 {666D9377-C82C-4391-96BB-B9A5794FB9DD}.Release|x64.ActiveCfg = Release|x64
120 {666D9377-C82C-4391-96BB-B9A5794FB9DD}.Release|x64.Build.0 = Release|x64
121 {666D9377-C82C-4391-96BB-B9A5794FB9DD}.Release|x86.ActiveCfg = Release|Win32
122 {666D9377-C82C-4391-96BB-B9A5794FB9DD}.Release|x86.Build.0 = Release|Win32
123 {B8C5499F-BCB8-409C-8446-0D92DE118020}.Debug|x64.ActiveCfg = Debug|x64
124 {B8C5499F-BCB8-409C-8446-0D92DE118020}.Debug|x64.Build.0 = Debug|x64
125 {B8C5499F-BCB8-409C-8446-0D92DE118020}.Debug|x86.ActiveCfg = Debug|Win32
126 {B8C5499F-BCB8-409C-8446-0D92DE118020}.Debug|x86.Build.0 = Debug|Win32
127 {B8C5499F-BCB8-409C-8446-0D92DE118020}.Release|x64.ActiveCfg = Release|x64
128 {B8C5499F-BCB8-409C-8446-0D92DE118020}.Release|x64.Build.0 = Release|x64
129 {B8C5499F-BCB8-409C-8446-0D92DE118020}.Release|x86.ActiveCfg = Release|Win32
130 {B8C5499F-BCB8-409C-8446-0D92DE118020}.Release|x86.Build.0 = Release|Win32
131 {7D694002-B275-4895-A76E-A6ED345FD3C3}.Debug|x64.ActiveCfg = Debug|x64
132 {7D694002-B275-4895-A76E-A6ED345FD3C3}.Debug|x64.Build.0 = Debug|x64
133 {7D694002-B275-4895-A76E-A6ED345FD3C3}.Debug|x86.ActiveCfg = Debug|Win32
134 {7D694002-B275-4895-A76E-A6ED345FD3C3}.Debug|x86.Build.0 = Debug|Win32
135 {7D694002-B275-4895-A76E-A6ED345FD3C3}.Release|x64.ActiveCfg = Release|x64
136 {7D694002-B275-4895-A76E-A6ED345FD3C3}.Release|x64.Build.0 = Release|x64
137 {7D694002-B275-4895-A76E-A6ED345FD3C3}.Release|x86.ActiveCfg = Release|Win32
138 {7D694002-B275-4895-A76E-A6ED345FD3C3}.Release|x86.Build.0 = Release|Win32
139 {BAA833AE-8C05-4C1F-AE5A-739241E3765B}.Debug|x64.ActiveCfg = Debug|x64
140 {BAA833AE-8C05-4C1F-AE5A-739241E3765B}.Debug|x64.Build.0 = Debug|x64
141 {BAA833AE-8C05-4C1F-AE5A-739241E3765B}.Debug|x86.ActiveCfg = Debug|Win32
142 {BAA833AE-8C05-4C1F-AE5A-739241E3765B}.Debug|x86.Build.0 = Debug|Win32
143 {BAA833AE-8C05-4C1F-AE5A-739241E3765B}.Release|x64.ActiveCfg = Release|x64
144 {BAA833AE-8C05-4C1F-AE5A-739241E3765B}.Release|x64.Build.0 = Release|x64
145 {BAA833AE-8C05-4C1F-AE5A-739241E3765B}.Release|x86.ActiveCfg = Release|Win32
146 {BAA833AE-8C05-4C1F-AE5A-739241E3765B}.Release|x86.Build.0 = Release|Win32
147 {03AFF51B-3BBF-404C-ACE3-8ABCEE666A2E}.Debug|x64.ActiveCfg = Debug|x64
148 {03AFF51B-3BBF-404C-ACE3-8ABCEE666A2E}.Debug|x64.Build.0 = Debug|x64
149 {03AFF51B-3BBF-404C-ACE3-8ABCEE666A2E}.Debug|x86.ActiveCfg = Debug|Win32
150 {03AFF51B-3BBF-404C-ACE3-8ABCEE666A2E}.Debug|x86.Build.0 = Debug|Win32
151 {03AFF51B-3BBF-404C-ACE3-8ABCEE666A2E}.Release|x64.ActiveCfg = Release|x64
152 {03AFF51B-3BBF-404C-ACE3-8ABCEE666A2E}.Release|x64.Build.0 = Release|x64
153 {03AFF51B-3BBF-404C-ACE3-8ABCEE666A2E}.Release|x86.ActiveCfg = Release|Win32
154 {03AFF51B-3BBF-404C-ACE3-8ABCEE666A2E}.Release|x86.Build.0 = Release|Win32
155 {D0E8D7B3-5466-4BE2-B54B-80A0E1A55101}.Debug|x64.ActiveCfg = Debug|x64
156 {D0E8D7B3-5466-4BE2-B54B-80A0E1A55101}.Debug|x64.Build.0 = Debug|x64
157 {D0E8D7B3-5466-4BE2-B54B-80A0E1A55101}.Debug|x86.ActiveCfg = Debug|Win32
158 {D0E8D7B3-5466-4BE2-B54B-80A0E1A55101}.Debug|x86.Build.0 = Debug|Win32
159 {D0E8D7B3-5466-4BE2-B54B-80A0E1A55101}.Release|x64.ActiveCfg = Release|x64
160 {D0E8D7B3-5466-4BE2-B54B-80A0E1A55101}.Release|x64.Build.0 = Release|x64
161 {D0E8D7B3-5466-4BE2-B54B-80A0E1A55101}.Release|x86.ActiveCfg = Release|Win32
162 {D0E8D7B3-5466-4BE2-B54B-80A0E1A55101}.Release|x86.Build.0 = Release|Win32
163 EndGlobalSection
164 GlobalSection(SolutionProperties) = preSolution
165 HideSolutionNode = FALSE
166 EndGlobalSection
167 EndGlobal
0 
1 Microsoft Visual Studio Solution File, Format Version 12.00
2 # Visual Studio 14
3 VisualStudioVersion = 14.0.25420.1
4 MinimumVisualStudioVersion = 10.0.40219.1
5 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "common", "common.vcxproj", "{528F3494-1C30-405F-9FDF-22FA4AFE54F4}"
6 EndProject
7 Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{C123AE6A-9541-41ED-BB81-C0D46EA847A5}"
8 ProjectSection(SolutionItems) = preProject
9 conanfile.txt = conanfile.txt
10 include\config.h = include\config.h
11 ..\include\exits.h = ..\include\exits.h
12 ..\include\gai.h = ..\include\gai.h
13 generate_conan.cmd = generate_conan.cmd
14 ..\include\hmac-md5.h = ..\include\hmac-md5.h
15 makeinit.ps1 = makeinit.ps1
16 ..\include\md5.h = ..\include\md5.h
17 ..\include\prop.h = ..\include\prop.h
18 README.md = README.md
19 ..\include\sasl.h = ..\include\sasl.h
20 ..\include\saslplug.h = ..\include\saslplug.h
21 ..\include\saslutil.h = ..\include\saslutil.h
22 EndProjectSection
23 EndProject
24 Global
25 GlobalSection(SolutionConfigurationPlatforms) = preSolution
26 Debug|x64 = Debug|x64
27 Debug|x86 = Debug|x86
28 Release|x64 = Release|x64
29 Release|x86 = Release|x86
30 EndGlobalSection
31 GlobalSection(ProjectConfigurationPlatforms) = postSolution
32 {528F3494-1C30-405F-9FDF-22FA4AFE54F4}.Debug|x64.ActiveCfg = Debug|x64
33 {528F3494-1C30-405F-9FDF-22FA4AFE54F4}.Debug|x64.Build.0 = Debug|x64
34 {528F3494-1C30-405F-9FDF-22FA4AFE54F4}.Debug|x86.ActiveCfg = Debug|Win32
35 {528F3494-1C30-405F-9FDF-22FA4AFE54F4}.Debug|x86.Build.0 = Debug|Win32
36 {528F3494-1C30-405F-9FDF-22FA4AFE54F4}.Release|x64.ActiveCfg = Release|x64
37 {528F3494-1C30-405F-9FDF-22FA4AFE54F4}.Release|x64.Build.0 = Release|x64
38 {528F3494-1C30-405F-9FDF-22FA4AFE54F4}.Release|x86.ActiveCfg = Release|Win32
39 {528F3494-1C30-405F-9FDF-22FA4AFE54F4}.Release|x86.Build.0 = Release|Win32
40 EndGlobalSection
41 GlobalSection(SolutionProperties) = preSolution
42 HideSolutionNode = FALSE
43 EndGlobalSection
44 EndGlobal
0 
1 Microsoft Visual Studio Solution File, Format Version 12.00
2 # Visual Studio 14
3 VisualStudioVersion = 14.0.25420.1
4 MinimumVisualStudioVersion = 10.0.40219.1
5 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "sasl2", "sasl2.vcxproj", "{25B39566-623A-410B-B489-FEFE6B997A7E}"
6 ProjectSection(ProjectDependencies) = postProject
7 {7D694002-B275-4895-A76E-A6ED345FD3C3} = {7D694002-B275-4895-A76E-A6ED345FD3C3}
8 {6E87064B-9A5E-4F05-A8FB-09FC72E9E3CC} = {6E87064B-9A5E-4F05-A8FB-09FC72E9E3CC}
9 {639D1C4B-ACC5-40A4-A96B-731E7FC21EA7} = {639D1C4B-ACC5-40A4-A96B-731E7FC21EA7}
10 {666D9377-C82C-4391-96BB-B9A5794FB9DD} = {666D9377-C82C-4391-96BB-B9A5794FB9DD}
11 {528F3494-1C30-405F-9FDF-22FA4AFE54F4} = {528F3494-1C30-405F-9FDF-22FA4AFE54F4}
12 {B8C5499F-BCB8-409C-8446-0D92DE118020} = {B8C5499F-BCB8-409C-8446-0D92DE118020}
13 EndProjectSection
14 EndProject
15 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "common", "common.vcxproj", "{528F3494-1C30-405F-9FDF-22FA4AFE54F4}"
16 EndProject
17 Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{C123AE6A-9541-41ED-BB81-C0D46EA847A5}"
18 ProjectSection(SolutionItems) = preProject
19 conanfile.txt = conanfile.txt
20 include\config.h = include\config.h
21 ..\include\exits.h = ..\include\exits.h
22 ..\include\gai.h = ..\include\gai.h
23 generate_conan.cmd = generate_conan.cmd
24 ..\include\hmac-md5.h = ..\include\hmac-md5.h
25 makeinit.ps1 = makeinit.ps1
26 ..\include\md5.h = ..\include\md5.h
27 ..\include\prop.h = ..\include\prop.h
28 README.md = README.md
29 ..\include\sasl.h = ..\include\sasl.h
30 ..\include\saslplug.h = ..\include\saslplug.h
31 ..\include\saslutil.h = ..\include\saslutil.h
32 EndProjectSection
33 EndProject
34 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "plugin_digestmd5", "plugin_digestmd5.vcxproj", "{6E87064B-9A5E-4F05-A8FB-09FC72E9E3CC}"
35 ProjectSection(ProjectDependencies) = postProject
36 {528F3494-1C30-405F-9FDF-22FA4AFE54F4} = {528F3494-1C30-405F-9FDF-22FA4AFE54F4}
37 EndProjectSection
38 EndProject
39 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "plugin_scram", "plugin_scram.vcxproj", "{639D1C4B-ACC5-40A4-A96B-731E7FC21EA7}"
40 EndProject
41 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "plugin_anonymous", "plugin_anonymous.vcxproj", "{666D9377-C82C-4391-96BB-B9A5794FB9DD}"
42 EndProject
43 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "plugin_plain", "plugin_plain.vcxproj", "{B8C5499F-BCB8-409C-8446-0D92DE118020}"
44 EndProject
45 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "plugin_ntlm", "plugin_ntlm.vcxproj", "{7D694002-B275-4895-A76E-A6ED345FD3C3}"
46 EndProject
47 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "install", "install.vcxproj", "{D0E8D7B3-5466-4BE2-B54B-80A0E1A55101}"
48 ProjectSection(ProjectDependencies) = postProject
49 {25B39566-623A-410B-B489-FEFE6B997A7E} = {25B39566-623A-410B-B489-FEFE6B997A7E}
50 EndProjectSection
51 EndProject
52 Global
53 GlobalSection(SolutionConfigurationPlatforms) = preSolution
54 Debug|x64 = Debug|x64
55 Debug|x86 = Debug|x86
56 Release|x64 = Release|x64
57 Release|x86 = Release|x86
58 EndGlobalSection
59 GlobalSection(ProjectConfigurationPlatforms) = postSolution
60 {25B39566-623A-410B-B489-FEFE6B997A7E}.Debug|x64.ActiveCfg = Debug|x64
61 {25B39566-623A-410B-B489-FEFE6B997A7E}.Debug|x64.Build.0 = Debug|x64
62 {25B39566-623A-410B-B489-FEFE6B997A7E}.Debug|x64.Deploy.0 = Debug|x64
63 {25B39566-623A-410B-B489-FEFE6B997A7E}.Debug|x86.ActiveCfg = Debug|Win32
64 {25B39566-623A-410B-B489-FEFE6B997A7E}.Debug|x86.Build.0 = Debug|Win32
65 {25B39566-623A-410B-B489-FEFE6B997A7E}.Release|x64.ActiveCfg = Release|x64
66 {25B39566-623A-410B-B489-FEFE6B997A7E}.Release|x64.Build.0 = Release|x64
67 {25B39566-623A-410B-B489-FEFE6B997A7E}.Release|x86.ActiveCfg = Release|Win32
68 {25B39566-623A-410B-B489-FEFE6B997A7E}.Release|x86.Build.0 = Release|Win32
69 {528F3494-1C30-405F-9FDF-22FA4AFE54F4}.Debug|x64.ActiveCfg = Debug|x64
70 {528F3494-1C30-405F-9FDF-22FA4AFE54F4}.Debug|x64.Build.0 = Debug|x64
71 {528F3494-1C30-405F-9FDF-22FA4AFE54F4}.Debug|x86.ActiveCfg = Debug|Win32
72 {528F3494-1C30-405F-9FDF-22FA4AFE54F4}.Debug|x86.Build.0 = Debug|Win32
73 {528F3494-1C30-405F-9FDF-22FA4AFE54F4}.Release|x64.ActiveCfg = Release|x64
74 {528F3494-1C30-405F-9FDF-22FA4AFE54F4}.Release|x64.Build.0 = Release|x64
75 {528F3494-1C30-405F-9FDF-22FA4AFE54F4}.Release|x86.ActiveCfg = Release|Win32
76 {528F3494-1C30-405F-9FDF-22FA4AFE54F4}.Release|x86.Build.0 = Release|Win32
77 {6E87064B-9A5E-4F05-A8FB-09FC72E9E3CC}.Debug|x64.ActiveCfg = Debug|x64
78 {6E87064B-9A5E-4F05-A8FB-09FC72E9E3CC}.Debug|x64.Build.0 = Debug|x64
79 {6E87064B-9A5E-4F05-A8FB-09FC72E9E3CC}.Debug|x86.ActiveCfg = Debug|Win32
80 {6E87064B-9A5E-4F05-A8FB-09FC72E9E3CC}.Debug|x86.Build.0 = Debug|Win32
81 {6E87064B-9A5E-4F05-A8FB-09FC72E9E3CC}.Release|x64.ActiveCfg = Release|x64
82 {6E87064B-9A5E-4F05-A8FB-09FC72E9E3CC}.Release|x64.Build.0 = Release|x64
83 {6E87064B-9A5E-4F05-A8FB-09FC72E9E3CC}.Release|x86.ActiveCfg = Release|Win32
84 {6E87064B-9A5E-4F05-A8FB-09FC72E9E3CC}.Release|x86.Build.0 = Release|Win32
85 {639D1C4B-ACC5-40A4-A96B-731E7FC21EA7}.Debug|x64.ActiveCfg = Debug|x64
86 {639D1C4B-ACC5-40A4-A96B-731E7FC21EA7}.Debug|x64.Build.0 = Debug|x64
87 {639D1C4B-ACC5-40A4-A96B-731E7FC21EA7}.Debug|x86.ActiveCfg = Debug|Win32
88 {639D1C4B-ACC5-40A4-A96B-731E7FC21EA7}.Debug|x86.Build.0 = Debug|Win32
89 {639D1C4B-ACC5-40A4-A96B-731E7FC21EA7}.Release|x64.ActiveCfg = Release|x64
90 {639D1C4B-ACC5-40A4-A96B-731E7FC21EA7}.Release|x64.Build.0 = Release|x64
91 {639D1C4B-ACC5-40A4-A96B-731E7FC21EA7}.Release|x86.ActiveCfg = Release|Win32
92 {639D1C4B-ACC5-40A4-A96B-731E7FC21EA7}.Release|x86.Build.0 = Release|Win32
93 {666D9377-C82C-4391-96BB-B9A5794FB9DD}.Debug|x64.ActiveCfg = Debug|x64
94 {666D9377-C82C-4391-96BB-B9A5794FB9DD}.Debug|x64.Build.0 = Debug|x64
95 {666D9377-C82C-4391-96BB-B9A5794FB9DD}.Debug|x86.ActiveCfg = Debug|Win32
96 {666D9377-C82C-4391-96BB-B9A5794FB9DD}.Debug|x86.Build.0 = Debug|Win32
97 {666D9377-C82C-4391-96BB-B9A5794FB9DD}.Release|x64.ActiveCfg = Release|x64
98 {666D9377-C82C-4391-96BB-B9A5794FB9DD}.Release|x64.Build.0 = Release|x64
99 {666D9377-C82C-4391-96BB-B9A5794FB9DD}.Release|x86.ActiveCfg = Release|Win32
100 {666D9377-C82C-4391-96BB-B9A5794FB9DD}.Release|x86.Build.0 = Release|Win32
101 {B8C5499F-BCB8-409C-8446-0D92DE118020}.Debug|x64.ActiveCfg = Debug|x64
102 {B8C5499F-BCB8-409C-8446-0D92DE118020}.Debug|x64.Build.0 = Debug|x64
103 {B8C5499F-BCB8-409C-8446-0D92DE118020}.Debug|x86.ActiveCfg = Debug|Win32
104 {B8C5499F-BCB8-409C-8446-0D92DE118020}.Debug|x86.Build.0 = Debug|Win32
105 {B8C5499F-BCB8-409C-8446-0D92DE118020}.Release|x64.ActiveCfg = Release|x64
106 {B8C5499F-BCB8-409C-8446-0D92DE118020}.Release|x64.Build.0 = Release|x64
107 {B8C5499F-BCB8-409C-8446-0D92DE118020}.Release|x86.ActiveCfg = Release|Win32
108 {B8C5499F-BCB8-409C-8446-0D92DE118020}.Release|x86.Build.0 = Release|Win32
109 {7D694002-B275-4895-A76E-A6ED345FD3C3}.Debug|x64.ActiveCfg = Debug|x64
110 {7D694002-B275-4895-A76E-A6ED345FD3C3}.Debug|x64.Build.0 = Debug|x64
111 {7D694002-B275-4895-A76E-A6ED345FD3C3}.Debug|x86.ActiveCfg = Debug|Win32
112 {7D694002-B275-4895-A76E-A6ED345FD3C3}.Debug|x86.Build.0 = Debug|Win32
113 {7D694002-B275-4895-A76E-A6ED345FD3C3}.Release|x64.ActiveCfg = Release|x64
114 {7D694002-B275-4895-A76E-A6ED345FD3C3}.Release|x64.Build.0 = Release|x64
115 {7D694002-B275-4895-A76E-A6ED345FD3C3}.Release|x86.ActiveCfg = Release|Win32
116 {7D694002-B275-4895-A76E-A6ED345FD3C3}.Release|x86.Build.0 = Release|Win32
117 {D0E8D7B3-5466-4BE2-B54B-80A0E1A55101}.Debug|x64.ActiveCfg = Debug|x64
118 {D0E8D7B3-5466-4BE2-B54B-80A0E1A55101}.Debug|x64.Build.0 = Debug|x64
119 {D0E8D7B3-5466-4BE2-B54B-80A0E1A55101}.Debug|x86.ActiveCfg = Debug|Win32
120 {D0E8D7B3-5466-4BE2-B54B-80A0E1A55101}.Debug|x86.Build.0 = Debug|Win32
121 {D0E8D7B3-5466-4BE2-B54B-80A0E1A55101}.Release|x64.ActiveCfg = Release|x64
122 {D0E8D7B3-5466-4BE2-B54B-80A0E1A55101}.Release|x64.Build.0 = Release|x64
123 {D0E8D7B3-5466-4BE2-B54B-80A0E1A55101}.Release|x86.ActiveCfg = Release|Win32
124 {D0E8D7B3-5466-4BE2-B54B-80A0E1A55101}.Release|x86.Build.0 = Release|Win32
125 EndGlobalSection
126 GlobalSection(SolutionProperties) = preSolution
127 HideSolutionNode = FALSE
128 EndGlobalSection
129 EndGlobal
0 
1 Microsoft Visual Studio Solution File, Format Version 12.00
2 # Visual Studio 14
3 VisualStudioVersion = 14.0.25420.1
4 MinimumVisualStudioVersion = 10.0.40219.1
5 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "common", "common.vcxproj", "{528F3494-1C30-405F-9FDF-22FA4AFE54F4}"
6 EndProject
7 Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{C123AE6A-9541-41ED-BB81-C0D46EA847A5}"
8 ProjectSection(SolutionItems) = preProject
9 conanfile.txt = conanfile.txt
10 include\config.h = include\config.h
11 ..\include\exits.h = ..\include\exits.h
12 ..\include\gai.h = ..\include\gai.h
13 generate_conan.cmd = generate_conan.cmd
14 ..\include\hmac-md5.h = ..\include\hmac-md5.h
15 makeinit.ps1 = makeinit.ps1
16 ..\include\md5.h = ..\include\md5.h
17 ..\include\prop.h = ..\include\prop.h
18 README.md = README.md
19 ..\include\sasl.h = ..\include\sasl.h
20 ..\include\saslplug.h = ..\include\saslplug.h
21 ..\include\saslutil.h = ..\include\saslutil.h
22 EndProjectSection
23 EndProject
24 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "plugin_gssapiv2", "plugin_gssapiv2.vcxproj", "{03AFF51B-3BBF-404C-ACE3-8ABCEE666A2E}"
25 EndProject
26 Global
27 GlobalSection(SolutionConfigurationPlatforms) = preSolution
28 Debug|x64 = Debug|x64
29 Debug|x86 = Debug|x86
30 Release|x64 = Release|x64
31 Release|x86 = Release|x86
32 EndGlobalSection
33 GlobalSection(ProjectConfigurationPlatforms) = postSolution
34 {528F3494-1C30-405F-9FDF-22FA4AFE54F4}.Debug|x64.ActiveCfg = Debug|x64
35 {528F3494-1C30-405F-9FDF-22FA4AFE54F4}.Debug|x64.Build.0 = Debug|x64
36 {528F3494-1C30-405F-9FDF-22FA4AFE54F4}.Debug|x86.ActiveCfg = Debug|Win32
37 {528F3494-1C30-405F-9FDF-22FA4AFE54F4}.Debug|x86.Build.0 = Debug|Win32
38 {528F3494-1C30-405F-9FDF-22FA4AFE54F4}.Release|x64.ActiveCfg = Release|x64
39 {528F3494-1C30-405F-9FDF-22FA4AFE54F4}.Release|x64.Build.0 = Release|x64
40 {528F3494-1C30-405F-9FDF-22FA4AFE54F4}.Release|x86.ActiveCfg = Release|Win32
41 {528F3494-1C30-405F-9FDF-22FA4AFE54F4}.Release|x86.Build.0 = Release|Win32
42 {03AFF51B-3BBF-404C-ACE3-8ABCEE666A2E}.Debug|x64.ActiveCfg = Debug|x64
43 {03AFF51B-3BBF-404C-ACE3-8ABCEE666A2E}.Debug|x64.Build.0 = Debug|x64
44 {03AFF51B-3BBF-404C-ACE3-8ABCEE666A2E}.Debug|x86.ActiveCfg = Debug|Win32
45 {03AFF51B-3BBF-404C-ACE3-8ABCEE666A2E}.Debug|x86.Build.0 = Debug|Win32
46 {03AFF51B-3BBF-404C-ACE3-8ABCEE666A2E}.Release|x64.ActiveCfg = Release|x64
47 {03AFF51B-3BBF-404C-ACE3-8ABCEE666A2E}.Release|x64.Build.0 = Release|x64
48 {03AFF51B-3BBF-404C-ACE3-8ABCEE666A2E}.Release|x86.ActiveCfg = Release|Win32
49 {03AFF51B-3BBF-404C-ACE3-8ABCEE666A2E}.Release|x86.Build.0 = Release|Win32
50 EndGlobalSection
51 GlobalSection(SolutionProperties) = preSolution
52 HideSolutionNode = FALSE
53 EndGlobalSection
54 EndGlobal
0 
1 Microsoft Visual Studio Solution File, Format Version 12.00
2 # Visual Studio 14
3 VisualStudioVersion = 14.0.25420.1
4 MinimumVisualStudioVersion = 10.0.40219.1
5 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "common", "common.vcxproj", "{528F3494-1C30-405F-9FDF-22FA4AFE54F4}"
6 EndProject
7 Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{C123AE6A-9541-41ED-BB81-C0D46EA847A5}"
8 ProjectSection(SolutionItems) = preProject
9 conanfile.txt = conanfile.txt
10 include\config.h = include\config.h
11 ..\include\exits.h = ..\include\exits.h
12 ..\include\gai.h = ..\include\gai.h
13 generate_conan.cmd = generate_conan.cmd
14 ..\include\hmac-md5.h = ..\include\hmac-md5.h
15 makeinit.ps1 = makeinit.ps1
16 ..\include\md5.h = ..\include\md5.h
17 ..\include\prop.h = ..\include\prop.h
18 README.md = README.md
19 ..\include\sasl.h = ..\include\sasl.h
20 ..\include\saslplug.h = ..\include\saslplug.h
21 ..\include\saslutil.h = ..\include\saslutil.h
22 EndProjectSection
23 EndProject
24 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "sasldb", "sasldb.vcxproj", "{EF82DBE5-D25B-4AC8-989E-68350BD17185}"
25 ProjectSection(ProjectDependencies) = postProject
26 {528F3494-1C30-405F-9FDF-22FA4AFE54F4} = {528F3494-1C30-405F-9FDF-22FA4AFE54F4}
27 EndProjectSection
28 EndProject
29 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "plugin_sasldb", "plugin_sasldb.vcxproj", "{BAA833AE-8C05-4C1F-AE5A-739241E3765B}"
30 ProjectSection(ProjectDependencies) = postProject
31 {EF82DBE5-D25B-4AC8-989E-68350BD17185} = {EF82DBE5-D25B-4AC8-989E-68350BD17185}
32 EndProjectSection
33 EndProject
34 Global
35 GlobalSection(SolutionConfigurationPlatforms) = preSolution
36 Debug|x64 = Debug|x64
37 Debug|x86 = Debug|x86
38 Release|x64 = Release|x64
39 Release|x86 = Release|x86
40 EndGlobalSection
41 GlobalSection(ProjectConfigurationPlatforms) = postSolution
42 {528F3494-1C30-405F-9FDF-22FA4AFE54F4}.Debug|x64.ActiveCfg = Debug|x64
43 {528F3494-1C30-405F-9FDF-22FA4AFE54F4}.Debug|x64.Build.0 = Debug|x64
44 {528F3494-1C30-405F-9FDF-22FA4AFE54F4}.Debug|x86.ActiveCfg = Debug|Win32
45 {528F3494-1C30-405F-9FDF-22FA4AFE54F4}.Debug|x86.Build.0 = Debug|Win32
46 {528F3494-1C30-405F-9FDF-22FA4AFE54F4}.Release|x64.ActiveCfg = Release|x64
47 {528F3494-1C30-405F-9FDF-22FA4AFE54F4}.Release|x64.Build.0 = Release|x64
48 {528F3494-1C30-405F-9FDF-22FA4AFE54F4}.Release|x86.ActiveCfg = Release|Win32
49 {528F3494-1C30-405F-9FDF-22FA4AFE54F4}.Release|x86.Build.0 = Release|Win32
50 {EF82DBE5-D25B-4AC8-989E-68350BD17185}.Debug|x64.ActiveCfg = Debug|x64
51 {EF82DBE5-D25B-4AC8-989E-68350BD17185}.Debug|x64.Build.0 = Debug|x64
52 {EF82DBE5-D25B-4AC8-989E-68350BD17185}.Debug|x86.ActiveCfg = Debug|Win32
53 {EF82DBE5-D25B-4AC8-989E-68350BD17185}.Debug|x86.Build.0 = Debug|Win32
54 {EF82DBE5-D25B-4AC8-989E-68350BD17185}.Release|x64.ActiveCfg = Release|x64
55 {EF82DBE5-D25B-4AC8-989E-68350BD17185}.Release|x64.Build.0 = Release|x64
56 {EF82DBE5-D25B-4AC8-989E-68350BD17185}.Release|x86.ActiveCfg = Release|Win32
57 {EF82DBE5-D25B-4AC8-989E-68350BD17185}.Release|x86.Build.0 = Release|Win32
58 {BAA833AE-8C05-4C1F-AE5A-739241E3765B}.Debug|x64.ActiveCfg = Debug|x64
59 {BAA833AE-8C05-4C1F-AE5A-739241E3765B}.Debug|x64.Build.0 = Debug|x64
60 {BAA833AE-8C05-4C1F-AE5A-739241E3765B}.Debug|x86.ActiveCfg = Debug|Win32
61 {BAA833AE-8C05-4C1F-AE5A-739241E3765B}.Debug|x86.Build.0 = Debug|Win32
62 {BAA833AE-8C05-4C1F-AE5A-739241E3765B}.Release|x64.ActiveCfg = Release|x64
63 {BAA833AE-8C05-4C1F-AE5A-739241E3765B}.Release|x64.Build.0 = Release|x64
64 {BAA833AE-8C05-4C1F-AE5A-739241E3765B}.Release|x86.ActiveCfg = Release|Win32
65 {BAA833AE-8C05-4C1F-AE5A-739241E3765B}.Release|x86.Build.0 = Release|Win32
66 EndGlobalSection
67 GlobalSection(SolutionProperties) = preSolution
68 HideSolutionNode = FALSE
69 EndGlobalSection
70 EndGlobal
0 <?xml version="1.0" encoding="utf-8"?>
1 <Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
2 <ImportGroup Label="PropertySheets" />
3 <PropertyGroup Label="UserMacros">
4 <InstallRoot>..\..\..\msvc\$(Platform)\</InstallRoot>
5 <InstallLibDir>$(InstallRoot)\lib\</InstallLibDir>
6 <InstallBinDir>$(InstallRoot)\bin\</InstallBinDir>
7 <SaslDependencyRoot>$(InstallRoot)</SaslDependencyRoot>
8 <SaslDependencyLibDir>$(InstallLibDir)</SaslDependencyLibDir>
9 <SaslIntermediateLibDir>$(SolutionDir)$(Platform)\$(Configuration)</SaslIntermediateLibDir>
10 <Krb5Dir>C:\msvc\krb</Krb5Dir>
11 </PropertyGroup>
12 <PropertyGroup>
13 <IntDir>$(ProjectName)\$(Platform)\$(Configuration)\</IntDir>
14 <OutDir>$(SaslIntermediateLibDir)\</OutDir>
15 </PropertyGroup>
16 <ItemDefinitionGroup>
17 <ClCompile>
18 <PreprocessorDefinitions>GCC_FALLTHROUGH=;LIBSASL_EXPORTS;WIN32;_CRT_SECURE_NO_WARNINGS;_UNICODE;UNICODE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
19 <AdditionalIncludeDirectories>include;..\include;..\lib;..\plugins;..\sasldb;..\common;$(SaslDependencyRoot)\include</AdditionalIncludeDirectories>
20 </ClCompile>
21 <Link>
22 <AdditionalLibraryDirectories>$(SaslIntermediateLibDir)</AdditionalLibraryDirectories>
23 <AdditionalDependencies>Ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
24 </Link>
25 <Lib>
26 <AdditionalLibraryDirectories>$(SaslDependencyLibDir)</AdditionalLibraryDirectories>
27 </Lib>
28 </ItemDefinitionGroup>
29 <ItemGroup>
30 <BuildMacro Include="InstallRoot">
31 <Value>$(InstallRoot)</Value>
32 <EnvironmentVariable>true</EnvironmentVariable>
33 </BuildMacro>
34 <BuildMacro Include="InstallLibDir">
35 <Value>$(InstallLibDir)</Value>
36 <EnvironmentVariable>true</EnvironmentVariable>
37 </BuildMacro>
38 <BuildMacro Include="InstallBinDir">
39 <Value>$(InstallBinDir)</Value>
40 <EnvironmentVariable>true</EnvironmentVariable>
41 </BuildMacro>
42 <BuildMacro Include="SaslDependencyRoot">
43 <Value>$(SaslDependencyRoot)</Value>
44 </BuildMacro>
45 <BuildMacro Include="SaslDependencyLibDir">
46 <Value>$(SaslDependencyLibDir)</Value>
47 <EnvironmentVariable>true</EnvironmentVariable>
48 </BuildMacro>
49 <BuildMacro Include="SaslIntermediateLibDir">
50 <Value>$(SaslIntermediateLibDir)</Value>
51 <EnvironmentVariable>true</EnvironmentVariable>
52 </BuildMacro>
53 <BuildMacro Include="Krb5Dir">
54 <Value>$(Krb5Dir)</Value>
55 </BuildMacro>
56 </ItemGroup>
57 <PropertyGroup Condition="'$(ConfigurationType)'=='StaticLibrary'">
58 <TargetExt>.lib</TargetExt>
59 <TargetName>$(ProjectName)</TargetName>
60 </PropertyGroup>
61 <PropertyGroup Condition="'$(ConfigurationType)'=='DynamicLibrary'">
62 <TargetExt>.dll</TargetExt>
63 <TargetName>$(ProjectName)</TargetName>
64 </PropertyGroup>
65 <ItemDefinitionGroup Condition="'$(Configuration)'=='Debug'">
66 <ClCompile>
67 <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
68 </ClCompile>
69 </ItemDefinitionGroup>
70 <ItemDefinitionGroup Condition="'$(Configuration)'=='Release'">
71 <ClCompile>
72 <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
73 </ClCompile>
74 </ItemDefinitionGroup>
75 </Project>
0 set vsversion=%1
1 set arch=%2
2 set usedebug=%3
3 set platform=%4
4 set configuration=%5
5
6 set build_type=Release
7 if %usedebug%==true (
8 set build_type=Debug
9 )
10
11 set conan_arch=%arch%
12 if not %arch%==x86 (
13 set conan_arch=x86_64
14 )
15
16 set vsversion=%vsversion:~0,2%
17
18 mkdir conan\%platform%\%configuration%
19 cd conan\%platform%\%configuration%
20 conan install ..\..\.. -s compiler="Visual Studio" -s compiler.version=%vsversion% -s arch=%conan_arch% -s build_type=%build_type%
4949 Note that we can't include both winsock.h and winsock2.h as
5050 they conflict */
5151 #include <winsock2.h>
52 #include <tchar.h>
5253
5354 /* Our package */
5455 #define PACKAGE "cyrus-sasl"
7778 #endif
7879
7980 /* Registry key that contains the locations of the plugins */
80 #define SASL_ROOT_KEY "SOFTWARE\\Carnegie Mellon\\Project Cyrus\\SASL Library"
81 #define SASL_PLUGIN_PATH_ATTR "SearchPath"
82 #define SASL_CONF_PATH_ATTR "ConfFile"
81 #define SASL_ROOT_KEY _T("SOFTWARE\\Carnegie Mellon\\Project Cyrus\\SASL Library")
82 #define SASL_PLUGIN_PATH_ATTR _T("SearchPath")
83 #define SASL_CONF_PATH_ATTR _T("ConfFile")
8384
8485 /* : This should probably be replaced with a call to a function
8586 : that gets the proper value from Registry */
9293
9394 /* which mechs can we link statically? */
9495 #define STATIC_ANONYMOUS 1
95 #define STATIC_CRAMMD5 1
96 /* #define STATIC_CRAMMD5 1 */
9697 #define STATIC_DIGESTMD5 1
98 /* #define STATIC_GSSAPIV2 1 */
99 /* #undef STATIC_KERBEROS4 */
100 /* #define STATIC_LOGIN 1 */
101 /* #undef STATIC_MYSQL */
102 #define STATIC_NTLM 1
103 /* #define STATIC_OTP 1 */
104 #define STATIC_PLAIN 1
105 /* #define STATIC_SASLDB 1 */
97106 #define STATIC_SCRAM 1
98 #define STATIC_GSSAPIV2 1
99 /* #undef STATIC_KERBEROS4 */
100 #define STATIC_LOGIN 1
101 /* #undef STATIC_MYSQL */
102 #define STATIC_OTP 1
103 #define STATIC_PLAIN 1
104 #define STATIC_SASLDB 1
105 #define STATIC_SRP 1
107 /* #define STATIC_SRP 1 */
106108
107109 /* ------------------------------------------------------------ */
108110
109111 /* Things that are fetched via autoconf under Unix
110112 */
111113 #define HAVE_MEMCPY 1
114 #define HAVE_OPENSSL 1
112115
113116 #define PLUGINDIR "C:\\CMU\\bin\\sasl2"
114117 #define CONFIGDIR "C:\\CMU\\bin\\sasl2"
115118
116119 /* Windows calls these functions something else
117120 */
118 #define strcasecmp stricmp
121 #define strcasecmp _stricmp
119122 #if defined (_MSC_VER) && (_MSC_VER < 1900)
120123 #define snprintf _snprintf
121124 #endif
122 #define strncasecmp strnicmp
125 #define strncasecmp _strnicmp
126 #define strdup _strdup
127 #define sasl_getpid GetCurrentThreadId
123128
124129 #define MAXHOSTNAMELEN 1024
125130
0 #include <config.h>
1
2 #include <string.h>
3 #include <stdlib.h>
4 #include <stdio.h>
5 #ifndef macintosh
6 #include <sys/stat.h>
7 #endif
8 #include <fcntl.h>
9 #include <assert.h>
10
11 #include <sasl.h>
12 #include <saslplug.h>
13 #include <saslutil.h>
14
15 #include "plugin_common.h"
16
17 #ifdef WIN32
18 BOOL APIENTRY DllMain( HANDLE hModule,
19 DWORD ul_reason_for_call,
20 LPVOID lpReserved
21 )
22 {
23 switch (ul_reason_for_call)
24 {
25 case DLL_PROCESS_ATTACH:
26 case DLL_THREAD_ATTACH:
27 case DLL_THREAD_DETACH:
28 case DLL_PROCESS_DETACH:
29 break;
30 }
31 return TRUE;
32 }
33 #endif
34
35 SASL_AUXPROP_PLUG_INIT( AUXPROP_REPLACE )
0 #include <config.h>
1
2 #include <string.h>
3 #include <stdlib.h>
4 #include <stdio.h>
5 #ifndef macintosh
6 #include <sys/stat.h>
7 #endif
8 #include <fcntl.h>
9 #include <assert.h>
10
11 #include <sasl.h>
12 #include <saslplug.h>
13 #include <saslutil.h>
14
15 #include "plugin_common.h"
16
17 #ifdef macintosh
18 #include <sasl_MECHANISM_plugin_decl.h>
19 #endif
20
21 #ifdef WIN32
22 BOOL APIENTRY DllMain( HANDLE hModule,
23 DWORD ul_reason_for_call,
24 LPVOID lpReserved
25 )
26 {
27 switch (ul_reason_for_call)
28 {
29 case DLL_PROCESS_ATTACH:
30 case DLL_THREAD_ATTACH:
31 case DLL_THREAD_DETACH:
32 case DLL_PROCESS_DETACH:
33 break;
34 }
35 return TRUE;
36 }
37 #endif
38
39 SASL_CLIENT_PLUG_INIT( MECHANISM )
40 SASL_SERVER_PLUG_INIT( MECHANISM )
0 <?xml version="1.0" encoding="utf-8"?>
1 <Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
2 <ItemGroup Label="ProjectConfigurations">
3 <ProjectConfiguration Include="Debug|Win32">
4 <Configuration>Debug</Configuration>
5 <Platform>Win32</Platform>
6 </ProjectConfiguration>
7 <ProjectConfiguration Include="Release|Win32">
8 <Configuration>Release</Configuration>
9 <Platform>Win32</Platform>
10 </ProjectConfiguration>
11 <ProjectConfiguration Include="Debug|x64">
12 <Configuration>Debug</Configuration>
13 <Platform>x64</Platform>
14 </ProjectConfiguration>
15 <ProjectConfiguration Include="Release|x64">
16 <Configuration>Release</Configuration>
17 <Platform>x64</Platform>
18 </ProjectConfiguration>
19 </ItemGroup>
20 <PropertyGroup Label="Globals">
21 <ProjectGuid>{D0E8D7B3-5466-4BE2-B54B-80A0E1A55101}</ProjectGuid>
22 <RootNamespace>install</RootNamespace>
23 <WindowsTargetPlatformVersion>8.1</WindowsTargetPlatformVersion>
24 </PropertyGroup>
25 <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
26 <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
27 <UseDebugLibraries>true</UseDebugLibraries>
28 <ConfigurationType>Utility</ConfigurationType>
29 <PlatformToolset>v140</PlatformToolset>
30 </PropertyGroup>
31 <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
32 <ConfigurationType>Utility</ConfigurationType>
33 <UseDebugLibraries>false</UseDebugLibraries>
34 <PlatformToolset>v140</PlatformToolset>
35 </PropertyGroup>
36 <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
37 <UseDebugLibraries>true</UseDebugLibraries>
38 <ConfigurationType>Utility</ConfigurationType>
39 <PlatformToolset>v140</PlatformToolset>
40 </PropertyGroup>
41 <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
42 <ConfigurationType>Utility</ConfigurationType>
43 <UseDebugLibraries>false</UseDebugLibraries>
44 <PlatformToolset>v140</PlatformToolset>
45 </PropertyGroup>
46 <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
47 <ImportGroup Label="ExtensionSettings">
48 </ImportGroup>
49 <ImportGroup Label="Shared">
50 </ImportGroup>
51 <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
52 <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
53 <Import Project="cyrus-sasl.props" />
54 </ImportGroup>
55 <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
56 <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
57 <Import Project="cyrus-sasl.props" />
58 </ImportGroup>
59 <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
60 <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
61 <Import Project="cyrus-sasl.props" />
62 </ImportGroup>
63 <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
64 <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
65 <Import Project="cyrus-sasl.props" />
66 </ImportGroup>
67 <PropertyGroup Label="UserMacros" />
68 <PropertyGroup />
69 <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
70 <ClCompile>
71 <WarningLevel>Level3</WarningLevel>
72 <Optimization>Disabled</Optimization>
73 <SDLCheck>true</SDLCheck>
74 </ClCompile>
75 <PostBuildEvent>
76 <Command>call vsinstall.cmd $(SaslIntermediateLibDir) $(InstallRoot) $(InstallLibDir) $(InstallBinDir)</Command>
77 <Message>Install dll/headers/pdb files to InstallRoot</Message>
78 </PostBuildEvent>
79 </ItemDefinitionGroup>
80 <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
81 <ClCompile>
82 <WarningLevel>Level3</WarningLevel>
83 <Optimization>Disabled</Optimization>
84 <SDLCheck>true</SDLCheck>
85 </ClCompile>
86 <PostBuildEvent>
87 <Command>call vsinstall.cmd $(SaslIntermediateLibDir) $(InstallRoot) $(InstallLibDir) $(InstallBinDir)</Command>
88 <Message>Install dll/headers/pdb files to InstallRoot</Message>
89 </PostBuildEvent>
90 </ItemDefinitionGroup>
91 <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
92 <ClCompile>
93 <WarningLevel>Level3</WarningLevel>
94 <Optimization>MaxSpeed</Optimization>
95 <FunctionLevelLinking>true</FunctionLevelLinking>
96 <IntrinsicFunctions>true</IntrinsicFunctions>
97 <SDLCheck>true</SDLCheck>
98 </ClCompile>
99 <Link>
100 <EnableCOMDATFolding>true</EnableCOMDATFolding>
101 <OptimizeReferences>true</OptimizeReferences>
102 </Link>
103 <PostBuildEvent>
104 <Command>call vsinstall.cmd $(SaslIntermediateLibDir) $(InstallRoot) $(InstallLibDir) $(InstallBinDir)</Command>
105 <Message>Install dll/headers/pdb files to InstallRoot</Message>
106 </PostBuildEvent>
107 </ItemDefinitionGroup>
108 <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
109 <ClCompile>
110 <WarningLevel>Level3</WarningLevel>
111 <Optimization>MaxSpeed</Optimization>
112 <FunctionLevelLinking>true</FunctionLevelLinking>
113 <IntrinsicFunctions>true</IntrinsicFunctions>
114 <SDLCheck>true</SDLCheck>
115 </ClCompile>
116 <Link>
117 <EnableCOMDATFolding>true</EnableCOMDATFolding>
118 <OptimizeReferences>true</OptimizeReferences>
119 </Link>
120 <PostBuildEvent>
121 <Command>call vsinstall.cmd $(SaslIntermediateLibDir) $(InstallRoot) $(InstallLibDir) $(InstallBinDir)</Command>
122 </PostBuildEvent>
123 <PostBuildEvent>
124 <Message>Install dll/headers/pdb files to InstallRoot</Message>
125 </PostBuildEvent>
126 </ItemDefinitionGroup>
127 <ItemGroup>
128 </ItemGroup>
129 <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
130 <ImportGroup Label="ExtensionTargets">
131 </ImportGroup>
132 </Project>
0 $mechanism = @("anonymous", "crammd5", "digestmd5", "scram", "gssapiv2", "kerberos4", "login", "ntlm", "otp", "passdss", "plain", "srp", "gs2")
1 $pluginsDir = "..\plugins\"
2
3 for ($i = 0; $i -le $mechanism.Count - 1; $i++)
4 {
5 $targetFilename = "$pluginsDir$($mechanism[$i])_init.c"
6 if (-Not (Test-Path -Path $targetFilename) -Or (Get-ChildItem $targetFilename).CreationTime -lt (Get-ChildItem "init_mechanism.c").CreationTime) {
7 (gc init_mechanism.c) -replace 'MECHANISM', $mechanism[$i] | Set-Content $targetFilename
8 Write-Host " * Make init for '" $mechanism[$i] "'"
9 }
10 }
11
12 $auxprop = @("sasldb", "sql", "ldapdb")
13 for ($i = 0; $i -le $auxprop.Count - 1; $i++)
14 {
15 $targetFilename = "$pluginsDir$($auxprop[$i])_init.c"
16 if (-Not (Test-Path -Path $targetFilename) -Or (Get-ChildItem $targetFilename).CreationTime -lt (Get-ChildItem "init_auxprop.c").CreationTime) {
17 (gc init_auxprop.c) -replace 'AUXPROP_REPLACE', $auxprop[$i] | Set-Content $targetFilename
18 Write-Host " * Make init for '" $auxprop[$i] "'"
19 }
20 }
21
22 "SASL_CANONUSER_PLUG_INIT( ldapdb )" | Add-Content "$($pluginsDir)ldapdb_init.c"
0 <?xml version="1.0" encoding="utf-8"?>
1 <Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
2 <ItemDefinitionGroup>
3 <ClCompile>
4 <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
5 </ClCompile>
6 <Link>
7 <AdditionalLibraryDirectories>%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
8 <AdditionalDependencies>libeay32.lib;%(AdditionalDependencies)</AdditionalDependencies>
9 </Link>
10 </ItemDefinitionGroup>
11 </Project>
0 <?xml version="1.0" encoding="utf-8"?>
1 <Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
2 <ItemGroup Label="ProjectConfigurations">
3 <ProjectConfiguration Include="Debug|Win32">
4 <Configuration>Debug</Configuration>
5 <Platform>Win32</Platform>
6 </ProjectConfiguration>
7 <ProjectConfiguration Include="Release|Win32">
8 <Configuration>Release</Configuration>
9 <Platform>Win32</Platform>
10 </ProjectConfiguration>
11 <ProjectConfiguration Include="Debug|x64">
12 <Configuration>Debug</Configuration>
13 <Platform>x64</Platform>
14 </ProjectConfiguration>
15 <ProjectConfiguration Include="Release|x64">
16 <Configuration>Release</Configuration>
17 <Platform>x64</Platform>
18 </ProjectConfiguration>
19 </ItemGroup>
20 <ItemGroup>
21 <ClCompile Include="..\plugins\anonymous.c" />
22 </ItemGroup>
23 <ItemGroup>
24 <ProjectReference Include="common.vcxproj">
25 <Project>{528f3494-1c30-405f-9fdf-22fa4afe54f4}</Project>
26 </ProjectReference>
27 </ItemGroup>
28 <PropertyGroup Label="Globals">
29 <ProjectGuid>{666D9377-C82C-4391-96BB-B9A5794FB9DD}</ProjectGuid>
30 <RootNamespace>plugin_anonymous</RootNamespace>
31 <WindowsTargetPlatformVersion>8.1</WindowsTargetPlatformVersion>
32 </PropertyGroup>
33 <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
34 <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
35 <ConfigurationType>StaticLibrary</ConfigurationType>
36 <UseDebugLibraries>true</UseDebugLibraries>
37 <PlatformToolset>v140</PlatformToolset>
38 <CharacterSet>Unicode</CharacterSet>
39 </PropertyGroup>
40 <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
41 <ConfigurationType>StaticLibrary</ConfigurationType>
42 <UseDebugLibraries>false</UseDebugLibraries>
43 <PlatformToolset>v140</PlatformToolset>
44 <WholeProgramOptimization>true</WholeProgramOptimization>
45 <CharacterSet>Unicode</CharacterSet>
46 </PropertyGroup>
47 <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
48 <ConfigurationType>StaticLibrary</ConfigurationType>
49 <UseDebugLibraries>true</UseDebugLibraries>
50 <PlatformToolset>v140</PlatformToolset>
51 <CharacterSet>Unicode</CharacterSet>
52 </PropertyGroup>
53 <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
54 <ConfigurationType>StaticLibrary</ConfigurationType>
55 <UseDebugLibraries>false</UseDebugLibraries>
56 <PlatformToolset>v140</PlatformToolset>
57 <WholeProgramOptimization>true</WholeProgramOptimization>
58 <CharacterSet>Unicode</CharacterSet>
59 </PropertyGroup>
60 <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
61 <ImportGroup Label="ExtensionSettings">
62 </ImportGroup>
63 <ImportGroup Label="Shared">
64 </ImportGroup>
65 <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
66 <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
67 <Import Project="cyrus-sasl.props" />
68 <Import Project="plugins.props" />
69 </ImportGroup>
70 <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
71 <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
72 <Import Project="cyrus-sasl.props" />
73 <Import Project="plugins.props" />
74 </ImportGroup>
75 <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
76 <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
77 <Import Project="cyrus-sasl.props" />
78 <Import Project="plugins.props" />
79 </ImportGroup>
80 <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
81 <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
82 <Import Project="cyrus-sasl.props" />
83 <Import Project="plugins.props" />
84 </ImportGroup>
85 <PropertyGroup Label="UserMacros" />
86 <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" />
87 <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" />
88 <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" />
89 <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" />
90 <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
91 <ClCompile>
92 <WarningLevel>Level3</WarningLevel>
93 <Optimization>Disabled</Optimization>
94 <SDLCheck>true</SDLCheck>
95 </ClCompile>
96 </ItemDefinitionGroup>
97 <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
98 <ClCompile>
99 <WarningLevel>Level3</WarningLevel>
100 <Optimization>Disabled</Optimization>
101 <SDLCheck>true</SDLCheck>
102 </ClCompile>
103 </ItemDefinitionGroup>
104 <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
105 <ClCompile>
106 <WarningLevel>Level3</WarningLevel>
107 <Optimization>MaxSpeed</Optimization>
108 <FunctionLevelLinking>true</FunctionLevelLinking>
109 <IntrinsicFunctions>true</IntrinsicFunctions>
110 <SDLCheck>true</SDLCheck>
111 </ClCompile>
112 <Link>
113 <EnableCOMDATFolding>true</EnableCOMDATFolding>
114 <OptimizeReferences>true</OptimizeReferences>
115 </Link>
116 </ItemDefinitionGroup>
117 <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
118 <ClCompile>
119 <WarningLevel>Level3</WarningLevel>
120 <Optimization>MaxSpeed</Optimization>
121 <FunctionLevelLinking>true</FunctionLevelLinking>
122 <IntrinsicFunctions>true</IntrinsicFunctions>
123 <SDLCheck>true</SDLCheck>
124 </ClCompile>
125 <Link>
126 <EnableCOMDATFolding>true</EnableCOMDATFolding>
127 <OptimizeReferences>true</OptimizeReferences>
128 </Link>
129 </ItemDefinitionGroup>
130 <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
131 <ImportGroup Label="ExtensionTargets">
132 </ImportGroup>
133 </Project>
0 <?xml version="1.0" encoding="utf-8"?>
1 <Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
2 <ItemGroup Label="ProjectConfigurations">
3 <ProjectConfiguration Include="Debug|Win32">
4 <Configuration>Debug</Configuration>
5 <Platform>Win32</Platform>
6 </ProjectConfiguration>
7 <ProjectConfiguration Include="Release|Win32">
8 <Configuration>Release</Configuration>
9 <Platform>Win32</Platform>
10 </ProjectConfiguration>
11 <ProjectConfiguration Include="Debug|x64">
12 <Configuration>Debug</Configuration>
13 <Platform>x64</Platform>
14 </ProjectConfiguration>
15 <ProjectConfiguration Include="Release|x64">
16 <Configuration>Release</Configuration>
17 <Platform>x64</Platform>
18 </ProjectConfiguration>
19 </ItemGroup>
20 <ItemGroup>
21 <ClCompile Include="..\plugins\digestmd5.c" />
22 </ItemGroup>
23 <ItemGroup>
24 <ProjectReference Include="common.vcxproj">
25 <Project>{528f3494-1c30-405f-9fdf-22fa4afe54f4}</Project>
26 </ProjectReference>
27 </ItemGroup>
28 <PropertyGroup Label="Globals">
29 <ProjectGuid>{6E87064B-9A5E-4F05-A8FB-09FC72E9E3CC}</ProjectGuid>
30 <RootNamespace>plugin_digestmd5</RootNamespace>
31 <WindowsTargetPlatformVersion>8.1</WindowsTargetPlatformVersion>
32 </PropertyGroup>
33 <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
34 <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
35 <ConfigurationType>StaticLibrary</ConfigurationType>
36 <UseDebugLibraries>true</UseDebugLibraries>
37 <PlatformToolset>v140</PlatformToolset>
38 <CharacterSet>Unicode</CharacterSet>
39 </PropertyGroup>
40 <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
41 <ConfigurationType>StaticLibrary</ConfigurationType>
42 <UseDebugLibraries>false</UseDebugLibraries>
43 <PlatformToolset>v140</PlatformToolset>
44 <WholeProgramOptimization>true</WholeProgramOptimization>
45 <CharacterSet>Unicode</CharacterSet>
46 </PropertyGroup>
47 <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
48 <ConfigurationType>StaticLibrary</ConfigurationType>
49 <UseDebugLibraries>true</UseDebugLibraries>
50 <PlatformToolset>v140</PlatformToolset>
51 <CharacterSet>Unicode</CharacterSet>
52 </PropertyGroup>
53 <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
54 <ConfigurationType>StaticLibrary</ConfigurationType>
55 <UseDebugLibraries>false</UseDebugLibraries>
56 <PlatformToolset>v140</PlatformToolset>
57 <WholeProgramOptimization>true</WholeProgramOptimization>
58 <CharacterSet>Unicode</CharacterSet>
59 </PropertyGroup>
60 <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
61 <ImportGroup Label="ExtensionSettings">
62 </ImportGroup>
63 <ImportGroup Label="Shared">
64 </ImportGroup>
65 <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
66 <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
67 <Import Project="cyrus-sasl.props" />
68 <Import Project="plugins.props" />
69 <Import Project="openssl.props" />
70 </ImportGroup>
71 <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
72 <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
73 <Import Project="cyrus-sasl.props" />
74 <Import Project="plugins.props" />
75 <Import Project="openssl.props" />
76 </ImportGroup>
77 <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
78 <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
79 <Import Project="cyrus-sasl.props" />
80 <Import Project="plugins.props" />
81 <Import Project="openssl.props" />
82 </ImportGroup>
83 <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
84 <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
85 <Import Project="cyrus-sasl.props" />
86 <Import Project="plugins.props" />
87 <Import Project="openssl.props" />
88 </ImportGroup>
89 <PropertyGroup Label="UserMacros" />
90 <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" />
91 <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" />
92 <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" />
93 <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" />
94 <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
95 <ClCompile>
96 <WarningLevel>Level3</WarningLevel>
97 <Optimization>Disabled</Optimization>
98 <SDLCheck>true</SDLCheck>
99 </ClCompile>
100 <Lib />
101 </ItemDefinitionGroup>
102 <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
103 <ClCompile>
104 <WarningLevel>Level3</WarningLevel>
105 <Optimization>Disabled</Optimization>
106 <SDLCheck>true</SDLCheck>
107 </ClCompile>
108 <Lib />
109 </ItemDefinitionGroup>
110 <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
111 <ClCompile>
112 <WarningLevel>Level3</WarningLevel>
113 <Optimization>MaxSpeed</Optimization>
114 <FunctionLevelLinking>true</FunctionLevelLinking>
115 <IntrinsicFunctions>true</IntrinsicFunctions>
116 <SDLCheck>true</SDLCheck>
117 </ClCompile>
118 <Link>
119 <EnableCOMDATFolding>true</EnableCOMDATFolding>
120 <OptimizeReferences>true</OptimizeReferences>
121 </Link>
122 <Lib />
123 </ItemDefinitionGroup>
124 <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
125 <ClCompile>
126 <WarningLevel>Level3</WarningLevel>
127 <Optimization>MaxSpeed</Optimization>
128 <FunctionLevelLinking>true</FunctionLevelLinking>
129 <IntrinsicFunctions>true</IntrinsicFunctions>
130 <SDLCheck>true</SDLCheck>
131 </ClCompile>
132 <Link>
133 <EnableCOMDATFolding>true</EnableCOMDATFolding>
134 <OptimizeReferences>true</OptimizeReferences>
135 </Link>
136 <Lib />
137 </ItemDefinitionGroup>
138 <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
139 <ImportGroup Label="ExtensionTargets">
140 </ImportGroup>
141 </Project>
0 <?xml version="1.0" encoding="utf-8"?>
1 <Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
2 <ItemGroup Label="ProjectConfigurations">
3 <ProjectConfiguration Include="Debug|Win32">
4 <Configuration>Debug</Configuration>
5 <Platform>Win32</Platform>
6 </ProjectConfiguration>
7 <ProjectConfiguration Include="Release|Win32">
8 <Configuration>Release</Configuration>
9 <Platform>Win32</Platform>
10 </ProjectConfiguration>
11 <ProjectConfiguration Include="Debug|x64">
12 <Configuration>Debug</Configuration>
13 <Platform>x64</Platform>
14 </ProjectConfiguration>
15 <ProjectConfiguration Include="Release|x64">
16 <Configuration>Release</Configuration>
17 <Platform>x64</Platform>
18 </ProjectConfiguration>
19 </ItemGroup>
20 <ItemGroup>
21 <ClCompile Include="..\plugins\gssapi.c" />
22 <ClCompile Include="..\plugins\gssapiv2_init.c" />
23 </ItemGroup>
24 <ItemGroup>
25 <ProjectReference Include="common.vcxproj">
26 <Project>{528f3494-1c30-405f-9fdf-22fa4afe54f4}</Project>
27 </ProjectReference>
28 </ItemGroup>
29 <PropertyGroup Label="Globals">
30 <ProjectGuid>{03AFF51B-3BBF-404C-ACE3-8ABCEE666A2E}</ProjectGuid>
31 <RootNamespace>plugin_gssapiv2</RootNamespace>
32 <WindowsTargetPlatformVersion>8.1</WindowsTargetPlatformVersion>
33 </PropertyGroup>
34 <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
35 <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
36 <ConfigurationType>DynamicLibrary</ConfigurationType>
37 <UseDebugLibraries>true</UseDebugLibraries>
38 <PlatformToolset>v140</PlatformToolset>
39 <CharacterSet>Unicode</CharacterSet>
40 </PropertyGroup>
41 <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
42 <ConfigurationType>DynamicLibrary</ConfigurationType>
43 <UseDebugLibraries>false</UseDebugLibraries>
44 <PlatformToolset>v140</PlatformToolset>
45 <WholeProgramOptimization>true</WholeProgramOptimization>
46 <CharacterSet>Unicode</CharacterSet>
47 </PropertyGroup>
48 <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
49 <ConfigurationType>DynamicLibrary</ConfigurationType>
50 <UseDebugLibraries>true</UseDebugLibraries>
51 <PlatformToolset>v140</PlatformToolset>
52 <CharacterSet>Unicode</CharacterSet>
53 </PropertyGroup>
54 <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
55 <ConfigurationType>DynamicLibrary</ConfigurationType>
56 <UseDebugLibraries>false</UseDebugLibraries>
57 <PlatformToolset>v140</PlatformToolset>
58 <WholeProgramOptimization>true</WholeProgramOptimization>
59 <CharacterSet>Unicode</CharacterSet>
60 </PropertyGroup>
61 <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
62 <ImportGroup Label="ExtensionSettings">
63 </ImportGroup>
64 <ImportGroup Label="Shared">
65 </ImportGroup>
66 <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
67 <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
68 <Import Project="cyrus-sasl.props" />
69 <Import Project="plugins.props" />
70 </ImportGroup>
71 <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
72 <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
73 <Import Project="cyrus-sasl.props" />
74 <Import Project="plugins.props" />
75 </ImportGroup>
76 <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
77 <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
78 <Import Project="cyrus-sasl.props" />
79 <Import Project="plugins.props" />
80 </ImportGroup>
81 <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
82 <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
83 <Import Project="cyrus-sasl.props" />
84 <Import Project="plugins.props" />
85 </ImportGroup>
86 <PropertyGroup Label="UserMacros" />
87 <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" />
88 <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" />
89 <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" />
90 <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" />
91 <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
92 <ClCompile>
93 <WarningLevel>Level3</WarningLevel>
94 <Optimization>Disabled</Optimization>
95 <SDLCheck>true</SDLCheck>
96 <AdditionalIncludeDirectories>$(Krb5Dir)\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
97 <PreprocessorDefinitions>%(PreprocessorDefinitions);HAVE_GSSAPI_GSSAPI_H;HAVE_GSSAPI_GSSAPI_KRB5_H;HAVE_GSS_C_NT_HOSTBASED_SERVICE</PreprocessorDefinitions>
98 </ClCompile>
99 <Link>
100 <AdditionalLibraryDirectories>$(Krb5Dir)\lib\$(ProcessorArchitecture);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
101 <AdditionalDependencies>gssapi32.lib;%(AdditionalDependencies)</AdditionalDependencies>
102 </Link>
103 </ItemDefinitionGroup>
104 <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
105 <ClCompile>
106 <WarningLevel>Level3</WarningLevel>
107 <Optimization>Disabled</Optimization>
108 <SDLCheck>true</SDLCheck>
109 <PreprocessorDefinitions>%(PreprocessorDefinitions);HAVE_GSSAPI_GSSAPI_H;HAVE_GSSAPI_GSSAPI_KRB5_H;HAVE_GSS_C_NT_HOSTBASED_SERVICE</PreprocessorDefinitions>
110 <AdditionalIncludeDirectories>$(Krb5Dir)\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
111 </ClCompile>
112 <Link>
113 <AdditionalLibraryDirectories>$(Krb5Dir)\lib\$(ProcessorArchitecture);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
114 <AdditionalDependencies>gssapi64.lib;%(AdditionalDependencies)</AdditionalDependencies>
115 </Link>
116 </ItemDefinitionGroup>
117 <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
118 <ClCompile>
119 <WarningLevel>Level3</WarningLevel>
120 <Optimization>MaxSpeed</Optimization>
121 <FunctionLevelLinking>true</FunctionLevelLinking>
122 <IntrinsicFunctions>true</IntrinsicFunctions>
123 <SDLCheck>true</SDLCheck>
124 <AdditionalIncludeDirectories>$(Krb5Dir)\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
125 <PreprocessorDefinitions>%(PreprocessorDefinitions);HAVE_GSSAPI_GSSAPI_H;HAVE_GSSAPI_GSSAPI_KRB5_H;HAVE_GSS_C_NT_HOSTBASED_SERVICE</PreprocessorDefinitions>
126 </ClCompile>
127 <Link>
128 <EnableCOMDATFolding>true</EnableCOMDATFolding>
129 <OptimizeReferences>true</OptimizeReferences>
130 <AdditionalLibraryDirectories>$(Krb5Dir)\lib\$(ProcessorArchitecture);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
131 <AdditionalDependencies>gssapi32.lib;%(AdditionalDependencies)</AdditionalDependencies>
132 </Link>
133 </ItemDefinitionGroup>
134 <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
135 <ClCompile>
136 <WarningLevel>Level3</WarningLevel>
137 <Optimization>MaxSpeed</Optimization>
138 <FunctionLevelLinking>true</FunctionLevelLinking>
139 <IntrinsicFunctions>true</IntrinsicFunctions>
140 <SDLCheck>true</SDLCheck>
141 <AdditionalIncludeDirectories>$(Krb5Dir)\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
142 <PreprocessorDefinitions>%(PreprocessorDefinitions);HAVE_GSSAPI_GSSAPI_H;HAVE_GSSAPI_GSSAPI_KRB5_H;HAVE_GSS_C_NT_HOSTBASED_SERVICE</PreprocessorDefinitions>
143 </ClCompile>
144 <Link>
145 <EnableCOMDATFolding>true</EnableCOMDATFolding>
146 <OptimizeReferences>true</OptimizeReferences>
147 <AdditionalDependencies>gssapi64.lib;%(AdditionalDependencies)</AdditionalDependencies>
148 <AdditionalLibraryDirectories>$(Krb5Dir)\lib\$(ProcessorArchitecture);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
149 </Link>
150 </ItemDefinitionGroup>
151 <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
152 <ImportGroup Label="ExtensionTargets">
153 </ImportGroup>
154 </Project>
0 <?xml version="1.0" encoding="utf-8"?>
1 <Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
2 <ItemGroup Label="ProjectConfigurations">
3 <ProjectConfiguration Include="Debug|Win32">
4 <Configuration>Debug</Configuration>
5 <Platform>Win32</Platform>
6 </ProjectConfiguration>
7 <ProjectConfiguration Include="Release|Win32">
8 <Configuration>Release</Configuration>
9 <Platform>Win32</Platform>
10 </ProjectConfiguration>
11 <ProjectConfiguration Include="Debug|x64">
12 <Configuration>Debug</Configuration>
13 <Platform>x64</Platform>
14 </ProjectConfiguration>
15 <ProjectConfiguration Include="Release|x64">
16 <Configuration>Release</Configuration>
17 <Platform>x64</Platform>
18 </ProjectConfiguration>
19 </ItemGroup>
20 <ItemGroup>
21 <ClCompile Include="..\plugins\ntlm.c" />
22 </ItemGroup>
23 <ItemGroup>
24 <ProjectReference Include="common.vcxproj">
25 <Project>{528f3494-1c30-405f-9fdf-22fa4afe54f4}</Project>
26 </ProjectReference>
27 </ItemGroup>
28 <PropertyGroup Label="Globals">
29 <ProjectGuid>{7D694002-B275-4895-A76E-A6ED345FD3C3}</ProjectGuid>
30 <RootNamespace>plugin_ntlm</RootNamespace>
31 <WindowsTargetPlatformVersion>8.1</WindowsTargetPlatformVersion>
32 </PropertyGroup>
33 <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
34 <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
35 <ConfigurationType>StaticLibrary</ConfigurationType>
36 <UseDebugLibraries>true</UseDebugLibraries>
37 <PlatformToolset>v140</PlatformToolset>
38 <CharacterSet>Unicode</CharacterSet>
39 </PropertyGroup>
40 <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
41 <ConfigurationType>StaticLibrary</ConfigurationType>
42 <UseDebugLibraries>false</UseDebugLibraries>
43 <PlatformToolset>v140</PlatformToolset>
44 <WholeProgramOptimization>true</WholeProgramOptimization>
45 <CharacterSet>Unicode</CharacterSet>
46 </PropertyGroup>
47 <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
48 <ConfigurationType>StaticLibrary</ConfigurationType>
49 <UseDebugLibraries>true</UseDebugLibraries>
50 <PlatformToolset>v140</PlatformToolset>
51 <CharacterSet>Unicode</CharacterSet>
52 </PropertyGroup>
53 <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
54 <ConfigurationType>StaticLibrary</ConfigurationType>
55 <UseDebugLibraries>false</UseDebugLibraries>
56 <PlatformToolset>v140</PlatformToolset>
57 <WholeProgramOptimization>true</WholeProgramOptimization>
58 <CharacterSet>Unicode</CharacterSet>
59 </PropertyGroup>
60 <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
61 <ImportGroup Label="ExtensionSettings">
62 </ImportGroup>
63 <ImportGroup Label="Shared">
64 </ImportGroup>
65 <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
66 <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
67 <Import Project="cyrus-sasl.props" />
68 <Import Project="plugins.props" />
69 <Import Project="openssl.props" />
70 </ImportGroup>
71 <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
72 <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
73 <Import Project="cyrus-sasl.props" />
74 <Import Project="plugins.props" />
75 <Import Project="openssl.props" />
76 </ImportGroup>
77 <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
78 <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
79 <Import Project="cyrus-sasl.props" />
80 <Import Project="plugins.props" />
81 <Import Project="openssl.props" />
82 </ImportGroup>
83 <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
84 <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
85 <Import Project="cyrus-sasl.props" />
86 <Import Project="plugins.props" />
87 <Import Project="openssl.props" />
88 </ImportGroup>
89 <PropertyGroup Label="UserMacros" />
90 <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" />
91 <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" />
92 <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" />
93 <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" />
94 <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
95 <ClCompile>
96 <WarningLevel>Level3</WarningLevel>
97 <Optimization>Disabled</Optimization>
98 <SDLCheck>true</SDLCheck>
99 </ClCompile>
100 <Lib />
101 </ItemDefinitionGroup>
102 <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
103 <ClCompile>
104 <WarningLevel>Level3</WarningLevel>
105 <Optimization>Disabled</Optimization>
106 <SDLCheck>true</SDLCheck>
107 </ClCompile>
108 <Lib />
109 </ItemDefinitionGroup>
110 <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
111 <ClCompile>
112 <WarningLevel>Level3</WarningLevel>
113 <Optimization>MaxSpeed</Optimization>
114 <FunctionLevelLinking>true</FunctionLevelLinking>
115 <IntrinsicFunctions>true</IntrinsicFunctions>
116 <SDLCheck>true</SDLCheck>
117 </ClCompile>
118 <Link>
119 <EnableCOMDATFolding>true</EnableCOMDATFolding>
120 <OptimizeReferences>true</OptimizeReferences>
121 </Link>
122 <Lib />
123 </ItemDefinitionGroup>
124 <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
125 <ClCompile>
126 <WarningLevel>Level3</WarningLevel>
127 <Optimization>MaxSpeed</Optimization>
128 <FunctionLevelLinking>true</FunctionLevelLinking>
129 <IntrinsicFunctions>true</IntrinsicFunctions>
130 <SDLCheck>true</SDLCheck>
131 </ClCompile>
132 <Link>
133 <EnableCOMDATFolding>true</EnableCOMDATFolding>
134 <OptimizeReferences>true</OptimizeReferences>
135 </Link>
136 <Lib />
137 </ItemDefinitionGroup>
138 <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
139 <ImportGroup Label="ExtensionTargets">
140 </ImportGroup>
141 </Project>
0 <?xml version="1.0" encoding="utf-8"?>
1 <Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
2 <ItemGroup Label="ProjectConfigurations">
3 <ProjectConfiguration Include="Debug|Win32">
4 <Configuration>Debug</Configuration>
5 <Platform>Win32</Platform>
6 </ProjectConfiguration>
7 <ProjectConfiguration Include="Release|Win32">
8 <Configuration>Release</Configuration>
9 <Platform>Win32</Platform>
10 </ProjectConfiguration>
11 <ProjectConfiguration Include="Debug|x64">
12 <Configuration>Debug</Configuration>
13 <Platform>x64</Platform>
14 </ProjectConfiguration>
15 <ProjectConfiguration Include="Release|x64">
16 <Configuration>Release</Configuration>
17 <Platform>x64</Platform>
18 </ProjectConfiguration>
19 </ItemGroup>
20 <ItemGroup>
21 <ClCompile Include="..\plugins\plain.c" />
22 </ItemGroup>
23 <ItemGroup>
24 <ProjectReference Include="common.vcxproj">
25 <Project>{528f3494-1c30-405f-9fdf-22fa4afe54f4}</Project>
26 </ProjectReference>
27 </ItemGroup>
28 <PropertyGroup Label="Globals">
29 <ProjectGuid>{B8C5499F-BCB8-409C-8446-0D92DE118020}</ProjectGuid>
30 <RootNamespace>plugin_plain</RootNamespace>
31 <WindowsTargetPlatformVersion>8.1</WindowsTargetPlatformVersion>
32 </PropertyGroup>
33 <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
34 <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
35 <ConfigurationType>StaticLibrary</ConfigurationType>
36 <UseDebugLibraries>true</UseDebugLibraries>
37 <PlatformToolset>v140</PlatformToolset>
38 <CharacterSet>Unicode</CharacterSet>
39 </PropertyGroup>
40 <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
41 <ConfigurationType>StaticLibrary</ConfigurationType>
42 <UseDebugLibraries>false</UseDebugLibraries>
43 <PlatformToolset>v140</PlatformToolset>
44 <WholeProgramOptimization>true</WholeProgramOptimization>
45 <CharacterSet>Unicode</CharacterSet>
46 </PropertyGroup>
47 <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
48 <ConfigurationType>StaticLibrary</ConfigurationType>
49 <UseDebugLibraries>true</UseDebugLibraries>
50 <PlatformToolset>v140</PlatformToolset>
51 <CharacterSet>Unicode</CharacterSet>
52 </PropertyGroup>
53 <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
54 <ConfigurationType>StaticLibrary</ConfigurationType>
55 <UseDebugLibraries>false</UseDebugLibraries>
56 <PlatformToolset>v140</PlatformToolset>
57 <WholeProgramOptimization>true</WholeProgramOptimization>
58 <CharacterSet>Unicode</CharacterSet>
59 </PropertyGroup>
60 <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
61 <ImportGroup Label="ExtensionSettings">
62 </ImportGroup>
63 <ImportGroup Label="Shared">
64 </ImportGroup>
65 <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
66 <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
67 <Import Project="cyrus-sasl.props" />
68 <Import Project="plugins.props" />
69 </ImportGroup>
70 <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
71 <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
72 <Import Project="cyrus-sasl.props" />
73 <Import Project="plugins.props" />
74 </ImportGroup>
75 <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
76 <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
77 <Import Project="cyrus-sasl.props" />
78 <Import Project="plugins.props" />
79 </ImportGroup>
80 <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
81 <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
82 <Import Project="cyrus-sasl.props" />
83 <Import Project="plugins.props" />
84 </ImportGroup>
85 <PropertyGroup Label="UserMacros" />
86 <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" />
87 <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" />
88 <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" />
89 <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" />
90 <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
91 <ClCompile>
92 <WarningLevel>Level3</WarningLevel>
93 <Optimization>Disabled</Optimization>
94 <SDLCheck>true</SDLCheck>
95 </ClCompile>
96 </ItemDefinitionGroup>
97 <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
98 <ClCompile>
99 <WarningLevel>Level3</WarningLevel>
100 <Optimization>Disabled</Optimization>
101 <SDLCheck>true</SDLCheck>
102 </ClCompile>
103 </ItemDefinitionGroup>
104 <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
105 <ClCompile>
106 <WarningLevel>Level3</WarningLevel>
107 <Optimization>MaxSpeed</Optimization>
108 <FunctionLevelLinking>true</FunctionLevelLinking>
109 <IntrinsicFunctions>true</IntrinsicFunctions>
110 <SDLCheck>true</SDLCheck>
111 </ClCompile>
112 <Link>
113 <EnableCOMDATFolding>true</EnableCOMDATFolding>
114 <OptimizeReferences>true</OptimizeReferences>
115 </Link>
116 </ItemDefinitionGroup>
117 <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
118 <ClCompile>
119 <WarningLevel>Level3</WarningLevel>
120 <Optimization>MaxSpeed</Optimization>
121 <FunctionLevelLinking>true</FunctionLevelLinking>
122 <IntrinsicFunctions>true</IntrinsicFunctions>
123 <SDLCheck>true</SDLCheck>
124 </ClCompile>
125 <Link>
126 <EnableCOMDATFolding>true</EnableCOMDATFolding>
127 <OptimizeReferences>true</OptimizeReferences>
128 </Link>
129 </ItemDefinitionGroup>
130 <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
131 <ImportGroup Label="ExtensionTargets">
132 </ImportGroup>
133 </Project>
0 <?xml version="1.0" encoding="utf-8"?>
1 <Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
2 <ItemGroup Label="ProjectConfigurations">
3 <ProjectConfiguration Include="Debug|Win32">
4 <Configuration>Debug</Configuration>
5 <Platform>Win32</Platform>
6 </ProjectConfiguration>
7 <ProjectConfiguration Include="Release|Win32">
8 <Configuration>Release</Configuration>
9 <Platform>Win32</Platform>
10 </ProjectConfiguration>
11 <ProjectConfiguration Include="Debug|x64">
12 <Configuration>Debug</Configuration>
13 <Platform>x64</Platform>
14 </ProjectConfiguration>
15 <ProjectConfiguration Include="Release|x64">
16 <Configuration>Release</Configuration>
17 <Platform>x64</Platform>
18 </ProjectConfiguration>
19 </ItemGroup>
20 <ItemGroup>
21 <ClCompile Include="..\plugins\sasldb.c" />
22 <ClCompile Include="..\plugins\sasldb_init.c" />
23 </ItemGroup>
24 <ItemGroup>
25 <ProjectReference Include="common.vcxproj">
26 <Project>{528f3494-1c30-405f-9fdf-22fa4afe54f4}</Project>
27 </ProjectReference>
28 <ProjectReference Include="sasldb.vcxproj">
29 <Project>{ef82dbe5-d25b-4ac8-989e-68350bd17185}</Project>
30 </ProjectReference>
31 </ItemGroup>
32 <PropertyGroup Label="Globals">
33 <ProjectGuid>{BAA833AE-8C05-4C1F-AE5A-739241E3765B}</ProjectGuid>
34 <RootNamespace>plugin_sasldb</RootNamespace>
35 <WindowsTargetPlatformVersion>8.1</WindowsTargetPlatformVersion>
36 </PropertyGroup>
37 <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
38 <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
39 <ConfigurationType>DynamicLibrary</ConfigurationType>
40 <UseDebugLibraries>true</UseDebugLibraries>
41 <PlatformToolset>v140</PlatformToolset>
42 <CharacterSet>Unicode</CharacterSet>
43 </PropertyGroup>
44 <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
45 <ConfigurationType>DynamicLibrary</ConfigurationType>
46 <UseDebugLibraries>false</UseDebugLibraries>
47 <PlatformToolset>v140</PlatformToolset>
48 <WholeProgramOptimization>true</WholeProgramOptimization>
49 <CharacterSet>Unicode</CharacterSet>
50 </PropertyGroup>
51 <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
52 <ConfigurationType>DynamicLibrary</ConfigurationType>
53 <UseDebugLibraries>true</UseDebugLibraries>
54 <PlatformToolset>v140</PlatformToolset>
55 <CharacterSet>Unicode</CharacterSet>
56 </PropertyGroup>
57 <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
58 <ConfigurationType>DynamicLibrary</ConfigurationType>
59 <UseDebugLibraries>false</UseDebugLibraries>
60 <PlatformToolset>v140</PlatformToolset>
61 <WholeProgramOptimization>true</WholeProgramOptimization>
62 <CharacterSet>Unicode</CharacterSet>
63 </PropertyGroup>
64 <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
65 <ImportGroup Label="ExtensionSettings">
66 </ImportGroup>
67 <ImportGroup Label="Shared">
68 </ImportGroup>
69 <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
70 <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
71 <Import Project="cyrus-sasl.props" />
72 <Import Project="plugins.props" />
73 </ImportGroup>
74 <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
75 <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
76 <Import Project="cyrus-sasl.props" />
77 <Import Project="plugins.props" />
78 </ImportGroup>
79 <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
80 <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
81 <Import Project="cyrus-sasl.props" />
82 <Import Project="plugins.props" />
83 </ImportGroup>
84 <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
85 <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
86 <Import Project="cyrus-sasl.props" />
87 <Import Project="plugins.props" />
88 </ImportGroup>
89 <PropertyGroup Label="UserMacros" />
90 <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" />
91 <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" />
92 <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" />
93 <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" />
94 <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
95 <ClCompile>
96 <WarningLevel>Level3</WarningLevel>
97 <Optimization>Disabled</Optimization>
98 <SDLCheck>true</SDLCheck>
99 <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);..\sasldb</AdditionalIncludeDirectories>
100 </ClCompile>
101 </ItemDefinitionGroup>
102 <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
103 <ClCompile>
104 <WarningLevel>Level3</WarningLevel>
105 <Optimization>Disabled</Optimization>
106 <SDLCheck>true</SDLCheck>
107 <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);..\sasldb</AdditionalIncludeDirectories>
108 </ClCompile>
109 <Link />
110 </ItemDefinitionGroup>
111 <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
112 <ClCompile>
113 <WarningLevel>Level3</WarningLevel>
114 <Optimization>MaxSpeed</Optimization>
115 <FunctionLevelLinking>true</FunctionLevelLinking>
116 <IntrinsicFunctions>true</IntrinsicFunctions>
117 <SDLCheck>true</SDLCheck>
118 <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);..\sasldb</AdditionalIncludeDirectories>
119 </ClCompile>
120 <Link>
121 <EnableCOMDATFolding>true</EnableCOMDATFolding>
122 <OptimizeReferences>true</OptimizeReferences>
123 </Link>
124 </ItemDefinitionGroup>
125 <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
126 <ClCompile>
127 <WarningLevel>Level3</WarningLevel>
128 <Optimization>MaxSpeed</Optimization>
129 <FunctionLevelLinking>true</FunctionLevelLinking>
130 <IntrinsicFunctions>true</IntrinsicFunctions>
131 <SDLCheck>true</SDLCheck>
132 <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);..\sasldb</AdditionalIncludeDirectories>
133 </ClCompile>
134 <Link>
135 <EnableCOMDATFolding>true</EnableCOMDATFolding>
136 <OptimizeReferences>true</OptimizeReferences>
137 </Link>
138 </ItemDefinitionGroup>
139 <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
140 <ImportGroup Label="ExtensionTargets">
141 </ImportGroup>
142 </Project>
0 <?xml version="1.0" encoding="utf-8"?>
1 <Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
2 <ItemGroup Label="ProjectConfigurations">
3 <ProjectConfiguration Include="Debug|Win32">
4 <Configuration>Debug</Configuration>
5 <Platform>Win32</Platform>
6 </ProjectConfiguration>
7 <ProjectConfiguration Include="Release|Win32">
8 <Configuration>Release</Configuration>
9 <Platform>Win32</Platform>
10 </ProjectConfiguration>
11 <ProjectConfiguration Include="Debug|x64">
12 <Configuration>Debug</Configuration>
13 <Platform>x64</Platform>
14 </ProjectConfiguration>
15 <ProjectConfiguration Include="Release|x64">
16 <Configuration>Release</Configuration>
17 <Platform>x64</Platform>
18 </ProjectConfiguration>
19 </ItemGroup>
20 <ItemGroup>
21 <ClCompile Include="..\plugins\scram.c" />
22 </ItemGroup>
23 <ItemGroup>
24 <ProjectReference Include="common.vcxproj">
25 <Project>{528f3494-1c30-405f-9fdf-22fa4afe54f4}</Project>
26 </ProjectReference>
27 </ItemGroup>
28 <PropertyGroup Label="Globals">
29 <ProjectGuid>{639D1C4B-ACC5-40A4-A96B-731E7FC21EA7}</ProjectGuid>
30 <RootNamespace>plugin_scram</RootNamespace>
31 <WindowsTargetPlatformVersion>8.1</WindowsTargetPlatformVersion>
32 </PropertyGroup>
33 <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
34 <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
35 <ConfigurationType>StaticLibrary</ConfigurationType>
36 <UseDebugLibraries>true</UseDebugLibraries>
37 <PlatformToolset>v140</PlatformToolset>
38 <CharacterSet>Unicode</CharacterSet>
39 </PropertyGroup>
40 <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
41 <ConfigurationType>StaticLibrary</ConfigurationType>
42 <UseDebugLibraries>false</UseDebugLibraries>
43 <PlatformToolset>v140</PlatformToolset>
44 <WholeProgramOptimization>true</WholeProgramOptimization>
45 <CharacterSet>Unicode</CharacterSet>
46 </PropertyGroup>
47 <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
48 <ConfigurationType>StaticLibrary</ConfigurationType>
49 <UseDebugLibraries>true</UseDebugLibraries>
50 <PlatformToolset>v140</PlatformToolset>
51 <CharacterSet>Unicode</CharacterSet>
52 </PropertyGroup>
53 <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
54 <ConfigurationType>StaticLibrary</ConfigurationType>
55 <UseDebugLibraries>false</UseDebugLibraries>
56 <PlatformToolset>v140</PlatformToolset>
57 <WholeProgramOptimization>true</WholeProgramOptimization>
58 <CharacterSet>Unicode</CharacterSet>
59 </PropertyGroup>
60 <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
61 <ImportGroup Label="ExtensionSettings">
62 </ImportGroup>
63 <ImportGroup Label="Shared">
64 </ImportGroup>
65 <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
66 <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
67 <Import Project="cyrus-sasl.props" />
68 <Import Project="plugins.props" />
69 <Import Project="openssl.props" />
70 </ImportGroup>
71 <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
72 <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
73 <Import Project="cyrus-sasl.props" />
74 <Import Project="plugins.props" />
75 <Import Project="openssl.props" />
76 </ImportGroup>
77 <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
78 <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
79 <Import Project="cyrus-sasl.props" />
80 <Import Project="plugins.props" />
81 <Import Project="openssl.props" />
82 </ImportGroup>
83 <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
84 <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
85 <Import Project="cyrus-sasl.props" />
86 <Import Project="plugins.props" />
87 <Import Project="openssl.props" />
88 </ImportGroup>
89 <PropertyGroup Label="UserMacros" />
90 <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" />
91 <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" />
92 <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" />
93 <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" />
94 <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
95 <ClCompile>
96 <WarningLevel>Level3</WarningLevel>
97 <Optimization>Disabled</Optimization>
98 <SDLCheck>true</SDLCheck>
99 </ClCompile>
100 <Lib />
101 </ItemDefinitionGroup>
102 <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
103 <ClCompile>
104 <WarningLevel>Level3</WarningLevel>
105 <Optimization>Disabled</Optimization>
106 <SDLCheck>true</SDLCheck>
107 </ClCompile>
108 <Lib />
109 </ItemDefinitionGroup>
110 <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
111 <ClCompile>
112 <WarningLevel>Level3</WarningLevel>
113 <Optimization>MaxSpeed</Optimization>
114 <FunctionLevelLinking>true</FunctionLevelLinking>
115 <IntrinsicFunctions>true</IntrinsicFunctions>
116 <SDLCheck>true</SDLCheck>
117 </ClCompile>
118 <Link>
119 <EnableCOMDATFolding>true</EnableCOMDATFolding>
120 <OptimizeReferences>true</OptimizeReferences>
121 </Link>
122 <Lib />
123 </ItemDefinitionGroup>
124 <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
125 <ClCompile>
126 <WarningLevel>Level3</WarningLevel>
127 <Optimization>MaxSpeed</Optimization>
128 <FunctionLevelLinking>true</FunctionLevelLinking>
129 <IntrinsicFunctions>true</IntrinsicFunctions>
130 <SDLCheck>true</SDLCheck>
131 </ClCompile>
132 <Link>
133 <EnableCOMDATFolding>true</EnableCOMDATFolding>
134 <OptimizeReferences>true</OptimizeReferences>
135 </Link>
136 <Lib />
137 </ItemDefinitionGroup>
138 <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
139 <ImportGroup Label="ExtensionTargets">
140 </ImportGroup>
141 </Project>
0 <?xml version="1.0" encoding="utf-8"?>
1 <Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
2 <ImportGroup Label="PropertySheets" />
3 <PropertyGroup Label="UserMacros" />
4 <PropertyGroup />
5 <ItemDefinitionGroup>
6 <PostBuildEvent>
7 <Command>if $(TargetExt)==.dll (
8 mkdir "$(SolutionDir)plugins\$(Platform)"
9 copy $(OutDir)$(TargetName)$(TargetExt) "$(SolutionDir)plugins\$(Platform)"
10 if exist $(OutDir)$(TargetName).pdb (
11 copy $(OutDir)$(TargetName).pdb "$(SolutionDir)plugins\$(Platform)"
12 )
13 )</Command>
14 </PostBuildEvent>
15 <ClCompile>
16 <AdditionalIncludeDirectories>..\win32\include;..\include;..\lib;..\common;$(SaslDependencyRoot)\include</AdditionalIncludeDirectories>
17 </ClCompile>
18 <PreBuildEvent>
19 <Command>powershell -executionpolicy bypass -nologo -File makeinit.ps1</Command>
20 </PreBuildEvent>
21 </ItemDefinitionGroup>
22 <ItemGroup />
23 </Project>
0 <?xml version="1.0" encoding="utf-8"?>
1 <Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
2 <ItemGroup Label="ProjectConfigurations">
3 <ProjectConfiguration Include="Debug|Win32">
4 <Configuration>Debug</Configuration>
5 <Platform>Win32</Platform>
6 </ProjectConfiguration>
7 <ProjectConfiguration Include="Release|Win32">
8 <Configuration>Release</Configuration>
9 <Platform>Win32</Platform>
10 </ProjectConfiguration>
11 <ProjectConfiguration Include="Debug|x64">
12 <Configuration>Debug</Configuration>
13 <Platform>x64</Platform>
14 </ProjectConfiguration>
15 <ProjectConfiguration Include="Release|x64">
16 <Configuration>Release</Configuration>
17 <Platform>x64</Platform>
18 </ProjectConfiguration>
19 </ItemGroup>
20 <PropertyGroup Label="Globals">
21 <ProjectGuid>{25B39566-623A-410B-B489-FEFE6B997A7E}</ProjectGuid>
22 <Keyword>Win32Proj</Keyword>
23 <WindowsTargetPlatformVersion>8.1</WindowsTargetPlatformVersion>
24 <ProjectName>sasl2</ProjectName>
25 </PropertyGroup>
26 <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
27 <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
28 <ConfigurationType>DynamicLibrary</ConfigurationType>
29 <UseDebugLibraries>true</UseDebugLibraries>
30 <PlatformToolset>v140</PlatformToolset>
31 <CharacterSet>Unicode</CharacterSet>
32 </PropertyGroup>
33 <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
34 <ConfigurationType>DynamicLibrary</ConfigurationType>
35 <UseDebugLibraries>false</UseDebugLibraries>
36 <PlatformToolset>v140</PlatformToolset>
37 <CharacterSet>Unicode</CharacterSet>
38 </PropertyGroup>
39 <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
40 <ConfigurationType>DynamicLibrary</ConfigurationType>
41 <UseDebugLibraries>true</UseDebugLibraries>
42 <PlatformToolset>v140</PlatformToolset>
43 <CharacterSet>Unicode</CharacterSet>
44 </PropertyGroup>
45 <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
46 <ConfigurationType>DynamicLibrary</ConfigurationType>
47 <UseDebugLibraries>false</UseDebugLibraries>
48 <PlatformToolset>v140</PlatformToolset>
49 <CharacterSet>Unicode</CharacterSet>
50 </PropertyGroup>
51 <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
52 <ImportGroup Label="ExtensionSettings">
53 </ImportGroup>
54 <ImportGroup Label="Shared">
55 </ImportGroup>
56 <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
57 <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
58 <Import Project="cyrus-sasl.props" />
59 <Import Project="openssl.props" />
60 </ImportGroup>
61 <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
62 <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
63 <Import Project="cyrus-sasl.props" />
64 <Import Project="openssl.props" />
65 </ImportGroup>
66 <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
67 <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
68 <Import Project="cyrus-sasl.props" />
69 <Import Project="openssl.props" />
70 </ImportGroup>
71 <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
72 <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
73 <Import Project="cyrus-sasl.props" />
74 <Import Project="openssl.props" />
75 </ImportGroup>
76 <PropertyGroup Label="UserMacros" />
77 <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" />
78 <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" />
79 <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" />
80 <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" />
81 <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
82 <ClCompile>
83 <WarningLevel>Level3</WarningLevel>
84 <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
85 <Optimization>Disabled</Optimization>
86 <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
87 </ClCompile>
88 <Link>
89 <TargetMachine>MachineX86</TargetMachine>
90 <GenerateDebugInformation>true</GenerateDebugInformation>
91 <SubSystem>NotSet</SubSystem>
92 <FullProgramDatabaseFile>true</FullProgramDatabaseFile>
93 </Link>
94 </ItemDefinitionGroup>
95 <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
96 <ClCompile>
97 <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
98 <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
99 <WarningLevel>Level3</WarningLevel>
100 <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
101 </ClCompile>
102 <Link>
103 <TargetMachine>MachineX86</TargetMachine>
104 <GenerateDebugInformation>true</GenerateDebugInformation>
105 <SubSystem>Windows</SubSystem>
106 <EnableCOMDATFolding>true</EnableCOMDATFolding>
107 <OptimizeReferences>true</OptimizeReferences>
108 <LinkTimeCodeGeneration>UseLinkTimeCodeGeneration</LinkTimeCodeGeneration>
109 </Link>
110 </ItemDefinitionGroup>
111 <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
112 <ClCompile>
113 <ForcedIncludeFiles>%(ForcedIncludeFiles)</ForcedIncludeFiles>
114 </ClCompile>
115 <Link>
116 <GenerateDebugInformation>true</GenerateDebugInformation>
117 <FullProgramDatabaseFile>true</FullProgramDatabaseFile>
118 <SubSystem>NotSet</SubSystem>
119 </Link>
120 </ItemDefinitionGroup>
121 <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
122 <ClCompile>
123 <ForcedIncludeFiles>%(ForcedIncludeFiles)</ForcedIncludeFiles>
124 </ClCompile>
125 <Link>
126 <EnableCOMDATFolding>true</EnableCOMDATFolding>
127 <LinkTimeCodeGeneration>UseLinkTimeCodeGeneration</LinkTimeCodeGeneration>
128 </Link>
129 </ItemDefinitionGroup>
130 <ItemGroup>
131 <ClCompile Include="..\lib\auxprop.c" />
132 <ClCompile Include="..\lib\canonusr.c" />
133 <ClCompile Include="..\lib\checkpw.c" />
134 <ClCompile Include="..\lib\client.c" />
135 <ClCompile Include="..\lib\common.c" />
136 <ClCompile Include="..\lib\config.c" />
137 <ClCompile Include="..\lib\external.c" />
138 <ClCompile Include="..\lib\getsubopt.c" />
139 <ClCompile Include="..\lib\md5.c" />
140 <ClCompile Include="..\lib\saslutil.c" />
141 <ClCompile Include="..\lib\server.c" />
142 <ClCompile Include="..\lib\seterror.c" />
143 <ClCompile Include="..\lib\windlopen.c" />
144 </ItemGroup>
145 <ItemGroup>
146 <ClInclude Include="..\lib\saslint.h" />
147 <ClInclude Include="..\lib\staticopen.h" />
148 </ItemGroup>
149 <ItemGroup>
150 <ProjectReference Include="common.vcxproj">
151 <Project>{528f3494-1c30-405f-9fdf-22fa4afe54f4}</Project>
152 </ProjectReference>
153 <ProjectReference Include="plugin_anonymous.vcxproj">
154 <Project>{666d9377-c82c-4391-96bb-b9a5794fb9dd}</Project>
155 </ProjectReference>
156 <ProjectReference Include="plugin_digestmd5.vcxproj">
157 <Project>{6e87064b-9a5e-4f05-a8fb-09fc72e9e3cc}</Project>
158 </ProjectReference>
159 <ProjectReference Include="plugin_ntlm.vcxproj">
160 <Project>{7d694002-b275-4895-a76e-a6ed345fd3c3}</Project>
161 </ProjectReference>
162 <ProjectReference Include="plugin_plain.vcxproj">
163 <Project>{b8c5499f-bcb8-409c-8446-0d92de118020}</Project>
164 </ProjectReference>
165 <ProjectReference Include="plugin_scram.vcxproj">
166 <Project>{639d1c4b-acc5-40a4-a96b-731e7fc21ea7}</Project>
167 </ProjectReference>
168 </ItemGroup>
169 <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
170 <ImportGroup Label="ExtensionTargets">
171 </ImportGroup>
172 </Project>
0 <?xml version="1.0" encoding="utf-8"?>
1 <Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
2 <ItemDefinitionGroup>
3 <ClCompile>
4 <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
5 </ClCompile>
6 <Link>
7 <AdditionalLibraryDirectories>%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
8 <AdditionalDependencies>lmdb.lib;%(AdditionalDependencies)</AdditionalDependencies>
9 </Link>
10 </ItemDefinitionGroup>
11 </Project>
0 <?xml version="1.0" encoding="utf-8"?>
1 <Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
2 <ItemGroup Label="ProjectConfigurations">
3 <ProjectConfiguration Include="Debug|Win32">
4 <Configuration>Debug</Configuration>
5 <Platform>Win32</Platform>
6 </ProjectConfiguration>
7 <ProjectConfiguration Include="Release|Win32">
8 <Configuration>Release</Configuration>
9 <Platform>Win32</Platform>
10 </ProjectConfiguration>
11 <ProjectConfiguration Include="Debug|x64">
12 <Configuration>Debug</Configuration>
13 <Platform>x64</Platform>
14 </ProjectConfiguration>
15 <ProjectConfiguration Include="Release|x64">
16 <Configuration>Release</Configuration>
17 <Platform>x64</Platform>
18 </ProjectConfiguration>
19 </ItemGroup>
20 <ItemGroup>
21 <ClCompile Include="..\sasldb\allockey.c" />
22 <ClCompile Include="..\sasldb\db_berkeley.c">
23 <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
24 <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
25 <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
26 <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
27 </ClCompile>
28 <ClCompile Include="..\sasldb\db_gdbm.c">
29 <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
30 <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
31 <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
32 <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
33 </ClCompile>
34 <ClCompile Include="..\sasldb\db_ndbm.c">
35 <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
36 <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
37 <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
38 <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
39 </ClCompile>
40 <ClCompile Include="..\sasldb\db_none.c">
41 <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
42 <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
43 <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
44 <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
45 </ClCompile>
46 <ClCompile Include="..\sasldb\db_lmdb.c">
47 <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">false</ExcludedFromBuild>
48 <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</ExcludedFromBuild>
49 </ClCompile>
50 </ItemGroup>
51 <ItemGroup>
52 <ClInclude Include="..\sasldb\sasldb.h" />
53 </ItemGroup>
54 <ItemGroup>
55 <ProjectReference Include="common.vcxproj">
56 <Project>{528f3494-1c30-405f-9fdf-22fa4afe54f4}</Project>
57 </ProjectReference>
58 </ItemGroup>
59 <PropertyGroup Label="Globals">
60 <ProjectGuid>{EF82DBE5-D25B-4AC8-989E-68350BD17185}</ProjectGuid>
61 <RootNamespace>sasldb</RootNamespace>
62 <WindowsTargetPlatformVersion>8.1</WindowsTargetPlatformVersion>
63 </PropertyGroup>
64 <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
65 <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
66 <ConfigurationType>StaticLibrary</ConfigurationType>
67 <UseDebugLibraries>true</UseDebugLibraries>
68 <PlatformToolset>v140</PlatformToolset>
69 <CharacterSet>Unicode</CharacterSet>
70 </PropertyGroup>
71 <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
72 <ConfigurationType>StaticLibrary</ConfigurationType>
73 <UseDebugLibraries>false</UseDebugLibraries>
74 <PlatformToolset>v140</PlatformToolset>
75 <WholeProgramOptimization>true</WholeProgramOptimization>
76 <CharacterSet>Unicode</CharacterSet>
77 </PropertyGroup>
78 <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
79 <ConfigurationType>StaticLibrary</ConfigurationType>
80 <UseDebugLibraries>true</UseDebugLibraries>
81 <PlatformToolset>v140</PlatformToolset>
82 <CharacterSet>Unicode</CharacterSet>
83 </PropertyGroup>
84 <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
85 <ConfigurationType>StaticLibrary</ConfigurationType>
86 <UseDebugLibraries>false</UseDebugLibraries>
87 <PlatformToolset>v140</PlatformToolset>
88 <WholeProgramOptimization>true</WholeProgramOptimization>
89 <CharacterSet>Unicode</CharacterSet>
90 </PropertyGroup>
91 <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
92 <ImportGroup Label="ExtensionSettings">
93 </ImportGroup>
94 <ImportGroup Label="Shared">
95 </ImportGroup>
96 <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
97 <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
98 <Import Project="cyrus-sasl.props" />
99 </ImportGroup>
100 <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
101 <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
102 <Import Project="sasldb.props" />
103 <Import Project="cyrus-sasl.props" />
104 </ImportGroup>
105 <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
106 <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
107 <Import Project="sasldb.props" />
108 <Import Project="cyrus-sasl.props" />
109 </ImportGroup>
110 <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
111 <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
112 <Import Project="sasldb.props" />
113 <Import Project="cyrus-sasl.props" />
114 </ImportGroup>
115 <PropertyGroup Label="UserMacros" />
116 <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" />
117 <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" />
118 <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" />
119 <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" />
120 <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
121 <ClCompile>
122 <WarningLevel>Level3</WarningLevel>
123 <Optimization>Disabled</Optimization>
124 <SDLCheck>true</SDLCheck>
125 </ClCompile>
126 <Lib>
127 <AdditionalDependencies>lmdb.lib</AdditionalDependencies>
128 </Lib>
129 </ItemDefinitionGroup>
130 <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
131 <ClCompile>
132 <WarningLevel>Level3</WarningLevel>
133 <Optimization>Disabled</Optimization>
134 <SDLCheck>true</SDLCheck>
135 </ClCompile>
136 <Lib>
137 <AdditionalDependencies>lmdb.lib</AdditionalDependencies>
138 </Lib>
139 </ItemDefinitionGroup>
140 <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
141 <ClCompile>
142 <WarningLevel>Level3</WarningLevel>
143 <Optimization>MaxSpeed</Optimization>
144 <FunctionLevelLinking>true</FunctionLevelLinking>
145 <IntrinsicFunctions>true</IntrinsicFunctions>
146 <SDLCheck>true</SDLCheck>
147 </ClCompile>
148 <Link>
149 <EnableCOMDATFolding>true</EnableCOMDATFolding>
150 <OptimizeReferences>true</OptimizeReferences>
151 </Link>
152 <Lib>
153 <AdditionalDependencies>lmdb.lib</AdditionalDependencies>
154 </Lib>
155 </ItemDefinitionGroup>
156 <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
157 <ClCompile>
158 <WarningLevel>Level3</WarningLevel>
159 <Optimization>MaxSpeed</Optimization>
160 <FunctionLevelLinking>true</FunctionLevelLinking>
161 <IntrinsicFunctions>true</IntrinsicFunctions>
162 <SDLCheck>true</SDLCheck>
163 </ClCompile>
164 <Link>
165 <EnableCOMDATFolding>true</EnableCOMDATFolding>
166 <OptimizeReferences>true</OptimizeReferences>
167 </Link>
168 <Lib>
169 <AdditionalDependencies>lmdb.lib</AdditionalDependencies>
170 </Lib>
171 </ItemDefinitionGroup>
172 <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
173 <ImportGroup Label="ExtensionTargets">
174 </ImportGroup>
175 </Project>
0 @echo off
1 setlocal EnableDelayedExpansion
2
3 set SaslIntermediateLibDir=%1
4 set InstallRoot=%2
5 set InstallLibDir=%3
6 set InstallBinDir=%4
7
8 echo Installing Cyrus SASL to %InstallRoot%
9 echo BinDir: %InstallBinDir%
10 echo LibDir: %InstallLibDir%
11 echo IncludeDir: %InstallRoot%\include\sasl
12 echo PluginsDir: %InstallRoot%\plugins\sasl
13 echo ---
14
15 if not exist %InstallLibDir% mkdir %InstallLibDir%
16 if not exist %InstallBinDir% mkdir %InstallBinDir%
17 if not exist %InstallRoot%\plugins\sasl mkdir %InstallRoot%\plugins\sasl
18 if not exist %InstallRoot%\include\sasl mkdir %InstallRoot%\include\sasl
19
20 for /f "usebackq delims=|" %%f in (`dir /b "%SaslIntermediateLibDir%\*.dll"`) do (
21 set libname=%%~nf
22 set prefix=!libname:~0,6!
23 if !prefix!==plugin set outdir=%InstallRoot%\plugins\sasl
24 if not !prefix!==plugin set outdir=%InstallBinDir%
25
26 xcopy /d /y %SaslIntermediateLibDir%\%%~nf.dll !outdir!
27 xcopy /d /y /c %SaslIntermediateLibDir%\%%~nf.pdb !outdir!
28 if not !prefix!==plugin xcopy /d /y %SaslIntermediateLibDir%\%%~nf.lib %InstallLibDir%
29 )
30
31 xcopy /d /y ..\include\*.h %InstallRoot%\include\sasl\