New upstream version 2.1.27+dfsg
Ondřej Surý
5 years ago
148 | 148 | rm -rf $(top_distdir)/$(SPHINX_CACHE) |
149 | 149 | |
150 | 150 | 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 | |
169 | 151 | install-exec-local-osx: |
170 | 152 | $(mkinstalldirs) $(framedir)/Versions/A/Headers |
171 | 153 | $(mkinstalldirs) $(framedir)/Versions/A/Resources |
1036 | 1036 | |
1037 | 1037 | install-dvi-am: |
1038 | 1038 | |
1039 | install-exec-am: install-exec-local | |
1039 | install-exec-am: | |
1040 | 1040 | |
1041 | 1041 | install-html: install-html-recursive |
1042 | 1042 | |
1091 | 1091 | distclean-tags distcleancheck distdir distuninstallcheck dvi \ |
1092 | 1092 | dvi-am html html-am info info-am install install-am \ |
1093 | 1093 | 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 \ | |
1099 | 1099 | maintainer-clean-generic mostlyclean mostlyclean-generic \ |
1100 | 1100 | mostlyclean-libtool pdf pdf-am ps ps-am tags tags-am uninstall \ |
1101 | 1101 | uninstall-am uninstall-man uninstall-man3 \ |
1126 | 1126 | (cd $(distdir)/plugins && sh makeinit.sh) |
1127 | 1127 | find $(top_distdir) -type f -name .sphinx-build.stamp -delete |
1128 | 1128 | 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 | |
1147 | 1129 | install-exec-local-osx: |
1148 | 1130 | $(mkinstalldirs) $(framedir)/Versions/A/Headers |
1149 | 1131 | $(mkinstalldirs) $(framedir)/Versions/A/Resources |
11 | 11 | #if defined(HAVE_OPENSSL) && (OPENSSL_VERSION_NUMBER < 0x10100000L) |
12 | 12 | |
13 | 13 | #include <string.h> |
14 | #include <openssl/engine.h> | |
15 | 14 | |
16 | 15 | static void *OPENSSL_zalloc(size_t num) |
17 | 16 | { |
14 | 14 | #include <openssl/dh.h> |
15 | 15 | #include <openssl/evp.h> |
16 | 16 | #include <openssl/hmac.h> |
17 | #include <openssl/bn.h> | |
17 | 18 | |
18 | 19 | int RSA_set0_key(RSA *r, BIGNUM *n, BIGNUM *e, BIGNUM *d); |
19 | 20 | int RSA_set0_factors(RSA *r, BIGNUM *p, BIGNUM *q); |
45 | 45 | #ifndef macintosh |
46 | 46 | #ifdef WIN32 |
47 | 47 | # include <winsock2.h> |
48 | # include <versionhelpers.h> | |
48 | 49 | #else |
49 | 50 | # include <sys/socket.h> |
50 | 51 | # include <netinet/in.h> |
128 | 129 | |
129 | 130 | /* Parse the address */ |
130 | 131 | for (i = 0; addr[i] != '\0' && addr[i] != ';'; i++) { |
131 | if (i >= NI_MAXHOST) { | |
132 | if (i + 1 >= NI_MAXHOST) { | |
132 | 133 | if(utils) PARAMERROR( utils ); |
133 | 134 | return SASL_BADPARAM; |
134 | 135 | } |
220 | 221 | unsigned *curlen, unsigned newlen) |
221 | 222 | { |
222 | 223 | if(!utils || !rwbuf || !curlen) { |
223 | PARAMERROR(utils); | |
224 | if (utils) PARAMERROR(utils); | |
224 | 225 | return SASL_BADPARAM; |
225 | 226 | } |
226 | 227 | |
254 | 255 | int _plug_strdup(const sasl_utils_t * utils, const char *in, |
255 | 256 | char **out, int *outlen) |
256 | 257 | { |
257 | size_t len = strlen(in); | |
258 | size_t len = 0; | |
258 | 259 | |
259 | 260 | if(!utils || !in || !out) { |
260 | 261 | if(utils) PARAMERROR(utils); |
261 | 262 | return SASL_BADPARAM; |
262 | 263 | } |
264 | ||
265 | len = strlen(in); | |
263 | 266 | |
264 | 267 | *out = utils->malloc(len + 1); |
265 | 268 | if (!*out) { |
823 | 826 | void _plug_snprintf_os_info (char * osbuf, int osbuf_len) |
824 | 827 | { |
825 | 828 | #ifdef WIN32 |
826 | OSVERSIONINFOEX versioninfo; | |
827 | 829 | 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); | |
843 | 830 | sysname = "Unknown Windows"; |
844 | 831 | |
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 | ||
846 | 902 | 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 | ; | |
911 | 903 | |
912 | 904 | #else /* !WIN32 */ |
913 | 905 | struct utsname os; |
48 | 48 | /* Include SASLdb Support */ |
49 | 49 | #undef AUTH_SASLDB |
50 | 50 | |
51 | /* Runtime config file location */ | |
52 | #undef CONFIGDIR | |
53 | ||
54 | 51 | /* Do we need a leading _ for dlsym? */ |
55 | 52 | #undef DLSYM_NEEDS_UNDERSCORE |
56 | 53 | |
237 | 234 | /* Support for PAM? */ |
238 | 235 | #undef HAVE_PAM |
239 | 236 | |
240 | /* Define to 1 if you have the <pam/pam_appl.h> header file. */ | |
241 | #undef HAVE_PAM_PAM_APPL_H | |
242 | ||
243 | 237 | /* Define to 1 if you have the <paths.h> header file. */ |
244 | 238 | #undef HAVE_PATHS_H |
245 | 239 | |
251 | 245 | |
252 | 246 | /* Include support for saslauthd? */ |
253 | 247 | #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 | |
257 | 248 | |
258 | 249 | /* Define to 1 if you have the `select' function. */ |
259 | 250 | #undef HAVE_SELECT |
418 | 409 | |
419 | 410 | /* Where do we look for saslauthd's socket? */ |
420 | 411 | #undef PATH_SASLAUTHD_RUNDIR |
421 | ||
422 | /* Runtime plugin location */ | |
423 | #undef PLUGINDIR | |
424 | 412 | |
425 | 413 | /* Force a preferred mechanism */ |
426 | 414 | #undef PREFER_MECH |
868 | 868 | with_gdbm |
869 | 869 | enable_keep_db_open |
870 | 870 | with_devrandom |
871 | with_pam | |
872 | 871 | with_saslauthd |
873 | 872 | with_authdaemond |
874 | 873 | with_pwcheck |
892 | 891 | enable_sia |
893 | 892 | enable_auth_sasldb |
894 | 893 | enable_httpform |
894 | with_pam | |
895 | 895 | enable_plain |
896 | 896 | enable_anon |
897 | 897 | enable_login |
1609 | 1609 | --with-bdb-incdir=DIR Berkeley DB include files are in DIR |
1610 | 1610 | --with-gdbm=PATH use gdbm from PATH |
1611 | 1611 | --with-devrandom=PATH set the path to pseudo random number generator [/dev/urandom] |
1612 | --with-pam=DIR use PAM (rooted in DIR) [yes] | |
1613 | 1612 | --with-saslauthd=DIR enable use of the saslauth daemon using state dir DIR |
1614 | 1613 | --with-authdaemond=PATH enable use of authdaemon with default socket=PATH [yes] |
1615 | 1614 | --with-pwcheck=DIR enable deprecated pwcheck daemon using statedir DIR |
1621 | 1620 | PATH |
1622 | 1621 | --with-gss_impl={heimdal|mit|cybersafe|seam|auto} |
1623 | 1622 | 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] | |
1625 | 1624 | --with-ldap=DIR use LDAP (in DIR) for saslauthd no |
1626 | 1625 | --with-mysql=PATH use MySQL from PATH |
1627 | 1626 | --with-pgsql=PATH use PostgreSQL from PATH |
1628 | 1627 | --with-sqlite=PATH use SQLite from PATH |
1629 | 1628 | --with-sqlite3=PATH use SQLite3 from PATH |
1630 | 1629 | --with-plugindir=DIR set the directory where plugins will |
1631 | be found [/usr/lib/sasl2] | |
1630 | be found [LIBDIR/sasl2] | |
1632 | 1631 | --with-configdir=DIR set the directory where config files will |
1633 | be found /usr/lib/sasl2 | |
1632 | be found PLUGINDIR:SYSCONFDIR/sasl2 | |
1634 | 1633 | --with-rc4 use internal rc4 routines [yes] |
1635 | 1634 | --with-dmalloc=DIR with DMALLOC support (for test applications) [no] |
1636 | 1635 | --with-sfio=DIR with SFIO support (for smtptest/libsfsasl) [no] |
3590 | 3589 | |
3591 | 3590 | # Check whether --enable-sample was given. |
3592 | 3591 | if test "${enable_sample+set}" = set; then : |
3593 | enableval=$enable_sample; enable_sample=yes | |
3592 | enableval=$enable_sample; | |
3593 | else | |
3594 | enable_sample=yes | |
3594 | 3595 | fi |
3595 | 3596 | |
3596 | 3597 | |
15388 | 15389 | |
15389 | 15390 | |
15390 | 15391 | |
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 | ||
15460 | 15392 | # Check whether --with-saslauthd was given. |
15461 | 15393 | if test "${with_saslauthd+set}" = set; then : |
15462 | 15394 | withval=$with_saslauthd; with_saslauthd=$withval |
18668 | 18600 | |
18669 | 18601 | # Check whether --with-pam was given. |
18670 | 18602 | if test "${with_pam+set}" = set; then : |
18671 | withval=$with_pam; with_pam=$withval | |
18603 | withval=$with_pam; | |
18672 | 18604 | else |
18673 | 18605 | with_pam=yes |
18674 | 18606 | fi |
19827 | 19759 | if test "${with_plugindir+set}" = set; then : |
19828 | 19760 | withval=$with_plugindir; plugindir=$withval |
19829 | 19761 | 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 | |
19837 | 19764 | |
19838 | 19765 | |
19839 | 19766 | |
19842 | 19769 | if test "${with_configdir+set}" = set; then : |
19843 | 19770 | withval=$with_configdir; configdir=$withval |
19844 | 19771 | 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 | |
19852 | 19774 | |
19853 | 19775 | |
19854 | 19776 | |
20059 | 19981 | sasl_cv_snprintf=yes |
20060 | 19982 | fi |
20061 | 19983 | |
20062 | if test $sasl_cv_snprintf = no; then | |
19984 | if test $sasl_cv_snprintf = yes; then | |
20063 | 19985 | case " $LIBOBJS " in |
20064 | 19986 | *" snprintf.$ac_objext "* ) ;; |
20065 | 19987 | *) LIBOBJS="$LIBOBJS snprintf.$ac_objext" |
79 | 79 | AC_ARG_ENABLE(sample, |
80 | 80 | [AC_HELP_STRING([--enable-sample], |
81 | 81 | [compile sample code [[yes]]])], |
82 | [], | |
82 | 83 | enable_sample=yes) |
83 | 84 | |
84 | 85 | AC_ARG_ENABLE(obsolete_cram_attr, |
277 | 278 | dnl See if we can provide a default logging function... |
278 | 279 | AC_CHECK_FUNCS(syslog) |
279 | 280 | |
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 | ||
312 | 281 | AC_ARG_WITH(saslauthd, [ --with-saslauthd=DIR enable use of the saslauth daemon using state dir DIR ], |
313 | 282 | with_saslauthd=$withval, |
314 | 283 | with_saslauthd=yes) |
629 | 598 | AC_DEFINE(HAVE_HTTPFORM,[],[Include HTTP form Support]) |
630 | 599 | fi |
631 | 600 | |
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]]),, | |
634 | 602 | with_pam=yes) |
635 | 603 | if test "$with_pam" != no; then |
636 | 604 | if test -d $with_pam; then |
1123 | 1091 | AC_SUBST(SASL_STATIC_LIBS) |
1124 | 1092 | |
1125 | 1093 | AC_ARG_WITH(plugindir, [ --with-plugindir=DIR set the directory where plugins will |
1126 | be found [[/usr/lib/sasl2]] ], | |
1094 | be found [[LIBDIR/sasl2]] ], | |
1127 | 1095 | plugindir=$withval, |
1128 | plugindir=/usr/lib/sasl2) | |
1129 | AC_DEFINE_UNQUOTED(PLUGINDIR, "$plugindir", [Runtime plugin location]) | |
1096 | plugindir='${libdir}/sasl2') | |
1130 | 1097 | AC_SUBST(plugindir) |
1131 | 1098 | |
1132 | 1099 | 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] ], | |
1134 | 1101 | configdir=$withval, |
1135 | configdir=$plugindir:/etc/sasl2) | |
1136 | AC_DEFINE_UNQUOTED(CONFIGDIR, "$configdir", [Runtime config file location]) | |
1102 | configdir='${plugindir}:${sysconfdir}/sasl2') | |
1137 | 1103 | AC_SUBST(configdir) |
1138 | 1104 | |
1139 | 1105 | dnl look for rc4 libraries. we accept the CMU one or one from openSSL |
1263 | 1229 | LTSNPRINTFOBJS="" |
1264 | 1230 | AC_CHECK_FUNC(snprintf, [AC_DEFINE(HAVE_SNPRINTF,[],[Does the system have snprintf()?])], [sasl_cv_snprintf=yes]) |
1265 | 1231 | 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 | |
1267 | 1233 | AC_LIBOBJ(snprintf) |
1268 | 1234 | SNPRINTFOBJS="snprintf.o" |
1269 | 1235 | LTSNPRINTFOBJS="snprintf.lo" |
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 | 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 | # | |
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 | 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 | /* | |
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 | /* | |
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 | } |
492 | 492 | <h2>What is Cyrus SASL?<a class="headerlink" href="#what-is-cyrus-sasl" title="Permalink to this headline">¶</a></h2> |
493 | 493 | <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> |
494 | 494 | <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> | |
496 | 496 | <div class="section" id="features"> |
497 | 497 | <h3>Features<a class="headerlink" href="#features" title="Permalink to this headline">¶</a></h3> |
498 | 498 | <p>Cyrus SASL provides a number of authentication plugins out of the box.</p> |
501 | 501 | <h3>Fetch the source<a class="headerlink" href="#fetch-the-source" title="Permalink to this headline">¶</a></h3> |
502 | 502 | <div class="section" id="fetch-from-git"> |
503 | 503 | <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> | |
505 | 505 | <p>Cyrus SASL is at <a class="reference external" href="https://github.com/cyrusimap/cyrus-sasl">https://github.com/cyrusimap/cyrus-sasl</a></p> |
506 | 506 | <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> |
507 | 507 | <p>Once forked on GitHub, you can obtain a copy by:</p> |
526 | 526 | Cyrus SASLv2). Note that this page is a brief overview |
527 | 527 | and that the authoritative documentation are the header files |
528 | 528 | 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> | |
530 | 530 | <p>Please note that this guide is only intended for developers looking |
531 | 531 | to write mechanisms for the SASLv2 API, and that application programmers |
532 | 532 | should be reading the <a class="reference internal" href="programming.html#programming"><span class="std std-ref">Application Programming Guide</span></a> instead.</p> |
1217 | 1217 | </div> |
1218 | 1218 | <div class="section" id="imtest-from-cyrus-2-1-0-or-later"> |
1219 | 1219 | <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> | |
1221 | 1221 | is an application included with Cyrus IMAPd. It is |
1222 | 1222 | a very simple IMAP client, but should be of interest to those |
1223 | 1223 | writing applications. It also uses the prot layer, but it is easy |
1224 | 1224 | to incorporate similar support without using the prot layer. |
1225 | 1225 | Likewise, there are other sample client applications that you can |
1226 | 1226 | 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> | |
1229 | 1229 | in the Cyrus IMAPd distribution, respectively.</p> |
1230 | 1230 | </div> |
1231 | 1231 | </div> |
501 | 501 | <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> |
502 | 502 | </ul> |
503 | 503 | </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> | |
505 | 505 | </div> |
506 | 506 | |
507 | 507 |
878 | 878 | information.</p> |
879 | 879 | </dd> |
880 | 880 | <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 | |
882 | 882 | with us, including mailing lists and IRC.</dd> |
883 | 883 | </dl> |
884 | 884 | </div> |
487 | 487 | |
488 | 488 | <div class="section" id="support-community"> |
489 | 489 | <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> | |
491 | 491 | </div> |
492 | 492 | |
493 | 493 |
207 | 207 | *p = '_'; |
208 | 208 | } |
209 | 209 | f = fopen(argv[1], "w"); |
210 | if (f == NULL) | |
211 | return 1; | |
210 | 212 | } |
211 | 213 | |
212 | 214 | print_pre(f); |
45 | 45 | sasl_version = 3:0:0 |
46 | 46 | |
47 | 47 | 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}"' | |
50 | 49 | PLUGIN_COMMON_OBJS = $(top_builddir)/common/libplugin_common.la |
51 | 50 | |
52 | 51 | EXTRA_DIST = windlopen.c dlopen.c staticopen.h NTMakefile |
473 | 473 | # CURRENT:REVISION:AGE |
474 | 474 | sasl_version = 3:0:0 |
475 | 475 | 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}"' | |
477 | 477 | |
478 | 478 | PLUGIN_COMMON_OBJS = $(top_builddir)/common/libplugin_common.la |
479 | 479 | EXTRA_DIST = windlopen.c dlopen.c staticopen.h NTMakefile |
389 | 389 | /* We're going to need a new proppool once we reset things */ |
390 | 390 | new_pool = alloc_proppool(ctx->mem_base->size + |
391 | 391 | (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 | } | |
392 | 396 | |
393 | 397 | if(requests) { |
394 | 398 | /* We're wiping the whole shebang */ |
93 | 93 | return SASL_BADPARAM; |
94 | 94 | } |
95 | 95 | |
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; | |
98 | 100 | else return SASL_FAIL; |
99 | 101 | |
100 | 102 | if(!ulen) ulen = (unsigned int)strlen(user); |
110 | 112 | user, |
111 | 113 | ulen, |
112 | 114 | flags, |
113 | (conn->type == SASL_CONN_SERVER ? | |
115 | (sconn ? | |
114 | 116 | sconn->user_realm : |
115 | 117 | NULL), |
116 | 118 | user_buf, |
332 | 334 | new_item = sasl_ALLOC(sizeof(canonuser_plug_list_t)); |
333 | 335 | if(!new_item) return SASL_NOMEM; |
334 | 336 | |
335 | strncpy(new_item->name, plugname, PATH_MAX); | |
337 | strncpy(new_item->name, plugname, PATH_MAX - 1); | |
338 | new_item->name[strlen(plugname)] = '\0'; | |
336 | 339 | |
337 | 340 | new_item->plug = plug; |
338 | 341 | new_item->next = canonuser_head; |
666 | 666 | getopt(context, NULL, "saslauthd_path", &p, NULL); |
667 | 667 | } |
668 | 668 | 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'; | |
670 | 674 | } else { |
671 | 675 | if (strlen(PATH_SASLAUTHD_RUNDIR) + 4 + 1 > sizeof(pwpath)) |
672 | 676 | return SASL_FAIL; |
785 | 789 | |
786 | 790 | memset((char *)&srvaddr, 0, sizeof(srvaddr)); |
787 | 791 | 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'; | |
789 | 794 | |
790 | 795 | { |
791 | 796 | int r = connect(s, (struct sockaddr *) &srvaddr, sizeof(srvaddr)); |
478 | 478 | conn->mech_list = new; |
479 | 479 | tail = conn->mech_list; |
480 | 480 | } else { |
481 | tail->next = new; | |
481 | if (tail) | |
482 | tail->next = new; | |
482 | 483 | tail = new; |
483 | 484 | } |
484 | 485 | conn->mech_length++; |
81 | 81 | #else |
82 | 82 | /* NB: Always returned allocated value */ |
83 | 83 | 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); | |
85 | 85 | #endif |
86 | 86 | |
87 | 87 | |
1027 | 1027 | *((const char **)pvalue) = conn->oparams.gss_peer_name; |
1028 | 1028 | break; |
1029 | 1029 | case SASL_GSS_LOCAL_NAME: |
1030 | if(! conn->oparams.gss_peer_name) | |
1030 | if(! conn->oparams.gss_local_name) | |
1031 | 1031 | result = SASL_NOTDONE; |
1032 | 1032 | else |
1033 | 1033 | *((const char **)pvalue) = conn->oparams.gss_local_name; |
1549 | 1549 | DWORD i; |
1550 | 1550 | BOOL rval; |
1551 | 1551 | 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); | |
1555 | 1556 | if ( rval) { /* got a userid */ |
1557 | WideCharToMultiByte(CP_UTF8, 0, tsender, -1, sender, sizeof(sender), NULL, NULL); /* -1 ensures null-terminated utf8 */ | |
1556 | 1558 | *result = sender; |
1557 | 1559 | if (len) *len = strlen(sender); |
1558 | 1560 | return SASL_OK; |
1674 | 1676 | |
1675 | 1677 | return SASL_OK; |
1676 | 1678 | } |
1679 | ||
1677 | 1680 | |
1678 | 1681 | static int |
1679 | 1682 | _sasl_verifyfile(void *context __attribute__((unused)), |
1824 | 1827 | const char *fmt, |
1825 | 1828 | ...) |
1826 | 1829 | { |
1827 | char *out=(char *) sasl_ALLOC(250); | |
1830 | char *out = NULL; | |
1828 | 1831 | size_t alloclen=100; /* current allocated length */ |
1829 | 1832 | size_t outlen=0; /* current length of output buffer */ |
1830 | 1833 | size_t formatlen; |
1838 | 1841 | char *cval; |
1839 | 1842 | va_list ap; /* varargs thing */ |
1840 | 1843 | |
1841 | if(!fmt) goto done; | |
1844 | if(!fmt) return; | |
1845 | ||
1846 | out = (char *) sasl_ALLOC(250); | |
1842 | 1847 | if(!out) return; |
1843 | ||
1848 | ||
1844 | 1849 | formatlen = strlen(fmt); |
1845 | 1850 | |
1846 | 1851 | /* See if we have a logging callback... */ |
1977 | 1982 | if (result != SASL_OK) goto done; |
1978 | 1983 | out[outlen]=0; |
1979 | 1984 | |
1980 | va_end(ap); | |
1981 | ||
1982 | 1985 | /* send log message */ |
1983 | 1986 | result = log_cb(log_ctx, level, out); |
1984 | 1987 | |
1985 | 1988 | done: |
1989 | va_end(ap); | |
1986 | 1990 | if(out) sasl_FREE(out); |
1987 | 1991 | } |
1988 | 1992 | |
2453 | 2457 | return path; |
2454 | 2458 | } |
2455 | 2459 | |
2456 | #else | |
2460 | #else /*WIN32*/ | |
2457 | 2461 | /* Return NULL on failure */ |
2458 | 2462 | static char * |
2459 | 2463 | _sasl_get_default_win_path(void *context __attribute__((unused)), |
2460 | char * reg_attr_name, | |
2464 | TCHAR * reg_attr_name, | |
2461 | 2465 | char * default_value) |
2462 | 2466 | { |
2463 | 2467 | /* Open registry entry, and find all registered SASL libraries. |
2477 | 2481 | HKEY hKey; |
2478 | 2482 | DWORD ret; |
2479 | 2483 | 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; | |
2486 | 2490 | |
2487 | 2491 | /* Initialization */ |
2488 | 2492 | ExpandedValueData = NULL; |
2498 | 2502 | |
2499 | 2503 | if (ret != ERROR_SUCCESS) { |
2500 | 2504 | /* 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; | |
2503 | 2508 | } |
2504 | 2509 | |
2505 | 2510 | /* figure out value type and required buffer size */ |
2520 | 2525 | } |
2521 | 2526 | |
2522 | 2527 | /* 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 */ | |
2524 | 2529 | if (ValueData == NULL) { |
2525 | 2530 | return_value = NULL; |
2526 | 2531 | goto CLEANUP; |
2527 | 2532 | }; |
2528 | 2533 | |
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 */ | |
2535 | 2546 | |
2536 | 2547 | switch (ValueType) { |
2537 | 2548 | case REG_EXPAND_SZ: |
2538 | 2549 | /* : A random starting guess */ |
2539 | 2550 | cbExpandedData = cbData + 1024; |
2540 | ExpandedValueData = sasl_ALLOC(cbExpandedData); | |
2551 | ExpandedValueData = (TCHAR*)sasl_ALLOC(cbExpandedData * sizeof(TCHAR)); | |
2541 | 2552 | if (ExpandedValueData == NULL) { |
2542 | 2553 | return_value = NULL; |
2543 | 2554 | goto CLEANUP; |
2544 | 2555 | }; |
2556 | ||
2545 | 2557 | |
2546 | 2558 | cbExpandedData = ExpandEnvironmentStrings( |
2547 | 2559 | ValueData, |
2557 | 2569 | /* : Must retry expansion with the bigger buffer */ |
2558 | 2570 | if (cbExpandedData > cbData + 1024) { |
2559 | 2571 | /* : Memory leak here if can't realloc */ |
2560 | ExpandedValueData = sasl_REALLOC(ExpandedValueData, cbExpandedData); | |
2572 | ExpandedValueData = sasl_REALLOC(ExpandedValueData, cbExpandedData * sizeof(TCHAR)); | |
2561 | 2573 | if (ExpandedValueData == NULL) { |
2562 | 2574 | return_value = NULL; |
2563 | 2575 | goto CLEANUP; |
2598 | 2610 | /* : Replace delimiting NUL with our delimiter characted */ |
2599 | 2611 | tmp[0] = PATHS_DELIMITER; |
2600 | 2612 | } |
2601 | tmp += strlen(tmp); | |
2613 | tmp += (_tcslen(tmp)); | |
2602 | 2614 | } |
2603 | 2615 | break; |
2604 | 2616 | |
2611 | 2623 | goto CLEANUP; |
2612 | 2624 | } |
2613 | 2625 | |
2614 | return_value = ValueData; | |
2626 | return_value = ValueData; /* just to flag we have a result */ | |
2615 | 2627 | |
2616 | 2628 | CLEANUP: |
2617 | 2629 | RegCloseKey(hKey); |
2618 | 2630 | if (ExpandedValueData != NULL) sasl_FREE(ExpandedValueData); |
2619 | 2631 | 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*/ |
156 | 156 | #else |
157 | 157 | #define SO_SUFFIX ".sl" |
158 | 158 | #endif /* __ia64 */ |
159 | #elif defined(__APPLE__) | |
160 | #define SO_SUFFIX ".plugin" | |
161 | #else /* __APPLE__ */ | |
159 | ||
160 | #else /* __hpux */ | |
162 | 161 | #define SO_SUFFIX ".so" |
163 | 162 | #endif |
164 | 163 | |
270 | 269 | if (strcmp(in + (length - strlen(LA_SUFFIX)), LA_SUFFIX)) { |
271 | 270 | if(!strcmp(in + (length - strlen(SO_SUFFIX)),SO_SUFFIX)) { |
272 | 271 | /* check for a .la file */ |
272 | if (strlen(prefix) + strlen(in) + strlen(LA_SUFFIX) + 1 >= MAX_LINE) | |
273 | return SASL_BADPARAM; | |
273 | 274 | strcpy(line, prefix); |
274 | 275 | strcat(line, in); |
275 | 276 | length = strlen(line); |
282 | 283 | return SASL_FAIL; |
283 | 284 | } |
284 | 285 | } |
286 | if (strlen(prefix) + strlen(in) + 1 >= PATH_MAX) | |
287 | return SASL_BADPARAM; | |
285 | 288 | strcpy(out, prefix); |
286 | 289 | strcat(out, in); |
287 | 290 | return SASL_OK; |
288 | 291 | } |
289 | 292 | |
293 | if (strlen(prefix) + strlen(in) + 1 >= MAX_LINE) | |
294 | return SASL_BADPARAM; | |
290 | 295 | strcpy(line, prefix); |
291 | 296 | strcat(line, in); |
292 | 297 |
293 | 293 | /* make the prompt list */ |
294 | 294 | int result = |
295 | 295 | _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", | |
298 | 297 | "", |
299 | 298 | NULL, NULL, |
300 | 299 | NULL, NULL, |
531 | 531 | #endif |
532 | 532 | #endif /* HAVE_GETHOSTNAME */ |
533 | 533 | |
534 | #ifdef WIN32 | |
535 | char* _sasl_wchar_to_utf8(WCHAR *str); | |
536 | WCHAR* _sasl_utf8_to_wchar(const char *str); | |
537 | #endif | |
538 | ||
534 | 539 | #endif /* SASLINT_H */ |
42 | 42 | * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. |
43 | 43 | */ |
44 | 44 | |
45 | #if defined(WIN32) | |
46 | #define _CRT_RAND_S | |
47 | #endif | |
48 | ||
45 | 49 | #include <config.h> |
46 | 50 | #include <stdio.h> |
47 | ||
48 | #if defined(WIN32) | |
49 | #define _CRT_RAND_S | |
50 | #endif | |
51 | ||
52 | 51 | #include <stdlib.h> |
53 | 52 | #include <string.h> |
54 | 53 | #include <ctype.h> |
280 | 279 | time(&now); |
281 | 280 | |
282 | 281 | 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 */ | |
284 | 283 | else |
285 | snprintf(buf,maxlen, "<%lu.%lu>", randnum, now); | |
284 | snprintf(buf,maxlen, "<%lu.%lu>", randnum, (unsigned long)now); | |
286 | 285 | |
287 | 286 | return (int) strlen(buf); |
288 | 287 | } |
301 | 300 | if (seqlen == 1) return SASL_BADPROT; /* this shouldn't happen here */ |
302 | 301 | if (seqlen > 6) return SASL_BADPROT; /* illegal */ |
303 | 302 | 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 */ | |
305 | 304 | } |
306 | 305 | return SASL_OK; |
307 | 306 | } |
572 | 572 | |
573 | 573 | static int server_idle(sasl_conn_t *conn) |
574 | 574 | { |
575 | sasl_server_conn_t *s_conn = (sasl_server_conn_t *) conn; | |
575 | sasl_server_conn_t *s_conn = NULL; | |
576 | 576 | mechanism_t *m; |
577 | 577 | |
578 | 578 | if (! mechlist) { |
579 | 579 | return 0; |
580 | 580 | } |
581 | ||
582 | if (!conn) | |
583 | return 1; | |
584 | s_conn = (sasl_server_conn_t *) conn; | |
581 | 585 | |
582 | 586 | for (m = s_conn->mech_list; |
583 | 587 | m != NULL; |
585 | 589 | if (m->m.plug->idle |
586 | 590 | && m->m.plug->idle(m->m.plug->glob_context, |
587 | 591 | conn, |
588 | conn ? ((sasl_server_conn_t *)conn)->sparams : NULL)) { | |
592 | s_conn->sparams)) { | |
589 | 593 | return 1; |
590 | 594 | } |
591 | 595 | } |
1149 | 1153 | tail = serverconn->mech_list; |
1150 | 1154 | } |
1151 | 1155 | else { |
1152 | tail->next = new; | |
1156 | if (tail) | |
1157 | tail->next = new; | |
1153 | 1158 | tail = new; |
1154 | 1159 | } |
1155 | 1160 | serverconn->mech_length++; |
146 | 146 | { |
147 | 147 | result = _buf_alloc(error_buf, error_buf_len, outlen+1); |
148 | 148 | if (result != SASL_OK) |
149 | return; | |
149 | goto done; | |
150 | 150 | (*error_buf)[outlen]=fmt[pos]; |
151 | 151 | outlen++; |
152 | 152 | pos++; |
168 | 168 | &outlen, cval); |
169 | 169 | |
170 | 170 | if (result != SASL_OK) /* add the string */ |
171 | return; | |
171 | goto done; | |
172 | 172 | |
173 | 173 | done=1; |
174 | 174 | break; |
176 | 176 | case '%': /* double % output the '%' character */ |
177 | 177 | result = _buf_alloc(error_buf, error_buf_len, outlen+1); |
178 | 178 | if (result != SASL_OK) |
179 | return; | |
179 | goto done; | |
180 | 180 | (*error_buf)[outlen]='%'; |
181 | 181 | outlen++; |
182 | 182 | done=1; |
187 | 187 | &outlen, |
188 | 188 | strerror(va_arg(ap, int))); |
189 | 189 | if (result != SASL_OK) |
190 | return; | |
190 | goto done; | |
191 | 191 | done=1; |
192 | 192 | break; |
193 | 193 | |
196 | 196 | (char *)sasl_errstring(_sasl_seterror_usererr( |
197 | 197 | va_arg(ap, int)),NULL,NULL)); |
198 | 198 | if (result != SASL_OK) |
199 | return; | |
199 | goto done; | |
200 | 200 | done=1; |
201 | 201 | break; |
202 | 202 | |
210 | 210 | result = _sasl_add_string(error_buf, error_buf_len, |
211 | 211 | &outlen, tempbuf); |
212 | 212 | if (result != SASL_OK) |
213 | return; | |
213 | goto done; | |
214 | 214 | done=1; |
215 | 215 | break; |
216 | 216 | |
225 | 225 | result = _sasl_add_string(error_buf, error_buf_len, |
226 | 226 | &outlen, tempbuf); |
227 | 227 | if (result != SASL_OK) |
228 | return; | |
228 | goto done; | |
229 | 229 | done=1; |
230 | 230 | |
231 | 231 | break; |
245 | 245 | |
246 | 246 | (*error_buf)[outlen]='\0'; /* put 0 at end */ |
247 | 247 | |
248 | va_end(ap); | |
249 | ||
250 | 248 | #ifndef SASL_OSX_CFMGLUE |
251 | 249 | if(!(flags & SASL_NOLOG)) { |
252 | 250 | /* See if we have a logging callback... */ |
254 | 252 | if (result == SASL_OK && ! log_cb) |
255 | 253 | result = SASL_FAIL; |
256 | 254 | if (result != SASL_OK) |
257 | return; | |
255 | goto done; | |
258 | 256 | |
259 | 257 | result = log_cb(log_ctx, SASL_LOG_FAIL, conn->error_buf); |
260 | 258 | } |
261 | 259 | #endif /* SASL_OSX_CFMGLUE */ |
260 | done: | |
261 | va_end(ap); | |
262 | 262 | } |
244 | 244 | case 'd': |
245 | 245 | case 'i': |
246 | 246 | if (cflags == DP_C_SHORT) |
247 | value = va_arg (args, short int); | |
247 | value = (short int) va_arg (args, int); | |
248 | 248 | else if (cflags == DP_C_LONG) |
249 | 249 | value = va_arg (args, long int); |
250 | 250 | else |
254 | 254 | case 'o': |
255 | 255 | flags |= DP_F_UNSIGNED; |
256 | 256 | if (cflags == DP_C_SHORT) |
257 | value = va_arg (args, unsigned short int); | |
257 | value = (unsigned short int) va_arg (args, int); | |
258 | 258 | else if (cflags == DP_C_LONG) |
259 | 259 | value = va_arg (args, unsigned long int); |
260 | 260 | else |
264 | 264 | case 'u': |
265 | 265 | flags |= DP_F_UNSIGNED; |
266 | 266 | if (cflags == DP_C_SHORT) |
267 | value = va_arg (args, unsigned short int); | |
267 | value = (unsigned short int) va_arg (args, int); | |
268 | 268 | else if (cflags == DP_C_LONG) |
269 | 269 | value = va_arg (args, unsigned long int); |
270 | 270 | else |
273 | 273 | break; |
274 | 274 | case 'X': |
275 | 275 | flags |= DP_F_UP; |
276 | ||
277 | GCC_FALLTHROUGH | |
278 | ||
276 | 279 | case 'x': |
277 | 280 | flags |= DP_F_UNSIGNED; |
278 | 281 | if (cflags == DP_C_SHORT) |
279 | value = va_arg (args, unsigned short int); | |
282 | value = (unsigned short int) va_arg (args, int); | |
280 | 283 | else if (cflags == DP_C_LONG) |
281 | 284 | value = va_arg (args, unsigned long int); |
282 | 285 | else |
293 | 296 | break; |
294 | 297 | case 'E': |
295 | 298 | flags |= DP_F_UP; |
299 | ||
300 | GCC_FALLTHROUGH | |
301 | ||
296 | 302 | case 'e': |
297 | 303 | if (cflags == DP_C_LDOUBLE) |
298 | 304 | fvalue = va_arg (args, long double); |
301 | 307 | break; |
302 | 308 | case 'G': |
303 | 309 | flags |= DP_F_UP; |
310 | ||
311 | GCC_FALLTHROUGH | |
312 | ||
304 | 313 | case 'g': |
305 | 314 | if (cflags == DP_C_LDOUBLE) |
306 | 315 | fvalue = va_arg (args, long double); |
508 | 517 | return result; |
509 | 518 | } |
510 | 519 | |
511 | static long double pow10 (int exp) | |
520 | static long double my_pow10 (int exp) | |
512 | 521 | { |
513 | 522 | long double result = 1; |
514 | 523 | |
521 | 530 | return result; |
522 | 531 | } |
523 | 532 | |
524 | static long round (long double value) | |
533 | static long my_round (long double value) | |
525 | 534 | { |
526 | 535 | long intpart; |
527 | 536 | |
582 | 591 | /* We "cheat" by converting the fractional part to integer by |
583 | 592 | * multiplying by a factor of 10 |
584 | 593 | */ |
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)) | |
588 | 597 | { |
589 | 598 | intpart++; |
590 | fracpart -= pow10 (max); | |
599 | fracpart -= my_pow10 (max); | |
591 | 600 | } |
592 | 601 | |
593 | 602 | #ifdef DEBUG_SNPRINTF |
166 | 166 | SPECIFIC_SERVER_PLUG_INIT( plain, "PLAIN" ), |
167 | 167 | SPECIFIC_CLIENT_PLUG_INIT( plain, "PLAIN" ), |
168 | 168 | #endif |
169 | #ifdef STATIC_SCRAM | |
170 | SPECIFIC_SERVER_PLUG_INIT( scram, "SCRAM" ), | |
171 | SPECIFIC_CLIENT_PLUG_INIT( scram, "SCRAM" ), | |
172 | #endif | |
169 | 173 | #ifdef STATIC_SRP |
170 | 174 | SPECIFIC_SERVER_PLUG_INIT( srp, "SRP" ), |
171 | 175 | SPECIFIC_CLIENT_PLUG_INIT( srp, "SRP" ), |
48 | 48 | #include <config.h> |
49 | 49 | #include <sasl.h> |
50 | 50 | #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 */ | |
55 | 56 | |
56 | 57 | const int _is_sasl_server_static = 0; |
57 | 58 | |
100 | 101 | return SASL_OK; |
101 | 102 | } |
102 | 103 | |
103 | static int _sasl_plugin_load(char *plugin, void *library, | |
104 | static int _sasl_plugin_load(const char *plugin, void *library, | |
104 | 105 | const char *entryname, |
105 | 106 | int (*add_plugin)(const char *, void *)) |
106 | 107 | { |
120 | 121 | } |
121 | 122 | |
122 | 123 | /* 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; | |
129 | 129 | 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)) | |
132 | 144 | (verifyfile_cb->context, file, SASL_VRFY_PLUGIN); |
133 | if (r != SASL_OK) return r; | |
145 | if (retCode != SASL_OK) | |
146 | goto cleanup; | |
134 | 147 | |
135 | 148 | 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; | |
143 | 160 | } |
144 | 161 | |
145 | 162 | newhead->library = library; |
147 | 164 | lib_list_head = newhead; |
148 | 165 | |
149 | 166 | *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 | ||
152 | 194 | |
153 | 195 | /* undoes actions done by _sasl_get_plugin */ |
154 | 196 | void _sasl_remove_last_plugin() |
167 | 209 | const sasl_callback_t *verifyfile_cb) |
168 | 210 | { |
169 | 211 | 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]; | |
171 | 213 | /* 1 for '\\' 1 for trailing '\0' */ |
172 | char * pattern; | |
173 | char c; | |
214 | TCHAR * pattern; | |
215 | TCHAR c; | |
174 | 216 | int pos; |
175 | const char *path=NULL; | |
217 | int retCode = SASL_OK; | |
218 | char *utf8path = NULL; | |
219 | TCHAR *path=NULL; | |
176 | 220 | int position; |
177 | 221 | const add_plugin_list_t *cur_ep; |
178 | struct stat statbuf; /* filesystem entry information */ | |
222 | struct _stat statbuf; /* filesystem entry information */ | |
179 | 223 | 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() */ | |
181 | 225 | 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; | |
182 | 231 | |
183 | 232 | if (! entrypoints |
184 | 233 | || ! getpath_cb |
189 | 238 | || ! verifyfile_cb->proc) |
190 | 239 | return SASL_BADPARAM; |
191 | 240 | |
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 | ||
192 | 272 | /* get the path to the plugins */ |
193 | 273 | result = ((sasl_getpath_t *)(getpath_cb->proc))(getpath_cb->context, |
194 | &path); | |
274 | &utf8path); | |
195 | 275 | 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; | |
200 | 289 | } |
201 | 290 | |
202 | 291 | position=0; |
212 | 301 | |
213 | 302 | |
214 | 303 | /* : 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) { | |
216 | 305 | continue; |
217 | 306 | } |
218 | 307 | if ((statbuf.st_mode & S_IFDIR) == 0) { |
219 | 308 | continue; |
220 | 309 | } |
221 | 310 | |
222 | strcpy (prefix, cur_dir); | |
223 | prefix_len = strlen (prefix); | |
311 | _tcscpy(prefix, cur_dir); | |
312 | prefix_len = _tcslen (prefix); | |
224 | 313 | |
225 | 314 | /* : Don't append trailing \ unless required */ |
226 | 315 | if (prefix[prefix_len-1] != '\\') { |
227 | strcat (prefix,"\\"); | |
316 | _tcscat(prefix,_T("\\")); | |
228 | 317 | prefix_len++; |
229 | 318 | } |
230 | 319 | |
231 | 320 | pattern = prefix; |
232 | 321 | |
233 | 322 | /* : 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)) { | |
235 | 324 | _sasl_log(NULL, SASL_LOG_WARN, "plugin search mask is too big"); |
236 | 325 | continue; |
237 | 326 | } |
238 | 327 | |
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); | |
242 | 331 | if (fhandle == -1) { /* no matching files */ |
243 | 332 | continue; |
244 | 333 | } |
253 | 342 | char plugname[PATH_MAX]; |
254 | 343 | int entries; |
255 | 344 | |
256 | length = strlen(finddata.name); | |
345 | length = _tcslen(finddata.name); | |
257 | 346 | if (length < 5) { /* At least <Ch>.dll */ |
258 | 347 | continue; /* can not possibly be what we're looking for */ |
259 | 348 | } |
261 | 350 | /* : Check for overflow */ |
262 | 351 | if (length + prefix_len >= PATH_MAX) continue; /* too big */ |
263 | 352 | |
264 | if (stricmp(finddata.name + (length - strlen(DLL_SUFFIX)), DLL_SUFFIX) != 0) { | |
353 | if (_tcscmp(finddata.name + (length - _tcslen(DLL_SUFFIX)), DLL_SUFFIX) != 0) { | |
265 | 354 | continue; |
266 | 355 | } |
267 | 356 | |
272 | 361 | |
273 | 362 | /* : Construct full name from prefix and name */ |
274 | 363 | |
275 | strcpy (full_name, prefix); | |
276 | strcat (full_name, finddata.name); | |
364 | _tcscpy (full_name, prefix); | |
365 | _tcscat (full_name, finddata.name); | |
277 | 366 | |
278 | 367 | /* 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, '.'); | |
281 | 377 | if (c != NULL) *c = '\0'; |
282 | 378 | |
283 | result = _sasl_get_plugin (full_name, verifyfile_cb, &library); | |
379 | result = _tsasl_get_plugin (full_name, verifyfile_cb, &library); | |
284 | 380 | |
285 | 381 | if (result != SASL_OK) { |
286 | 382 | continue; |
301 | 397 | _sasl_remove_last_plugin(); |
302 | 398 | } |
303 | 399 | |
304 | } while (_findnext (fhandle, &finddata) == 0); | |
400 | } while (_tfindnext (fhandle, &finddata) == 0); | |
305 | 401 | |
306 | 402 | _findclose (fhandle); |
307 | 403 | |
308 | 404 | } while ((c!='=') && (c!=0)); |
309 | 405 | |
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; | |
311 | 411 | } |
312 | 412 | |
313 | 413 | int |
0 | 0 | .\" Man page generated from reStructuredText. |
1 | 1 | . |
2 | .TH "SASL" "3" "May 10, 2018" "2.1.27" "Cyrus SASL" | |
2 | .TH "SASL" "3" "November 08, 2018" "2.1.27" "Cyrus SASL" | |
3 | 3 | .SH NAME |
4 | 4 | sasl \- Cyrus SASL documentation |
5 | 5 | . |
0 | 0 | .\" Man page generated from reStructuredText. |
1 | 1 | . |
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" | |
3 | 3 | .SH NAME |
4 | 4 | sasl_authorize_t \- Cyrus SASL documentation |
5 | 5 | . |
0 | 0 | .\" Man page generated from reStructuredText. |
1 | 1 | . |
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" | |
3 | 3 | .SH NAME |
4 | 4 | sasl_auxprop \- Cyrus SASL documentation |
5 | 5 | . |
0 | 0 | .\" Man page generated from reStructuredText. |
1 | 1 | . |
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" | |
3 | 3 | .SH NAME |
4 | 4 | sasl_auxprop_getctx \- Cyrus SASL documentation |
5 | 5 | . |
0 | 0 | .\" Man page generated from reStructuredText. |
1 | 1 | . |
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" | |
3 | 3 | .SH NAME |
4 | 4 | sasl_auxprop_request \- Cyrus SASL documentation |
5 | 5 | . |
0 | 0 | .\" Man page generated from reStructuredText. |
1 | 1 | . |
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" | |
3 | 3 | .SH NAME |
4 | 4 | sasl_callbacks \- Cyrus SASL documentation |
5 | 5 | . |
0 | 0 | .\" Man page generated from reStructuredText. |
1 | 1 | . |
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" | |
3 | 3 | .SH NAME |
4 | 4 | sasl_canon_user_t \- Cyrus SASL documentation |
5 | 5 | . |
0 | 0 | .\" Man page generated from reStructuredText. |
1 | 1 | . |
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" | |
3 | 3 | .SH NAME |
4 | 4 | sasl_chalprompt_t \- Cyrus SASL documentation |
5 | 5 | . |
0 | 0 | .\" Man page generated from reStructuredText. |
1 | 1 | . |
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" | |
3 | 3 | .SH NAME |
4 | 4 | sasl_checkapop \- Cyrus SASL documentation |
5 | 5 | . |
0 | 0 | .\" Man page generated from reStructuredText. |
1 | 1 | . |
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" | |
3 | 3 | .SH NAME |
4 | 4 | sasl_checkpass \- Cyrus SASL documentation |
5 | 5 | . |
0 | 0 | .\" Man page generated from reStructuredText. |
1 | 1 | . |
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" | |
3 | 3 | .SH NAME |
4 | 4 | sasl_client_init \- Cyrus SASL documentation |
5 | 5 | . |
0 | 0 | .\" Man page generated from reStructuredText. |
1 | 1 | . |
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" | |
3 | 3 | .SH NAME |
4 | 4 | sasl_client_new \- Cyrus SASL documentation |
5 | 5 | . |
0 | 0 | .\" Man page generated from reStructuredText. |
1 | 1 | . |
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" | |
3 | 3 | .SH NAME |
4 | 4 | sasl_client_start \- Cyrus SASL documentation |
5 | 5 | . |
0 | 0 | .\" Man page generated from reStructuredText. |
1 | 1 | . |
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" | |
3 | 3 | .SH NAME |
4 | 4 | sasl_client_step \- Cyrus SASL documentation |
5 | 5 | . |
0 | 0 | .\" Man page generated from reStructuredText. |
1 | 1 | . |
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" | |
3 | 3 | .SH NAME |
4 | 4 | sasl_decode \- Cyrus SASL documentation |
5 | 5 | . |
0 | 0 | .\" Man page generated from reStructuredText. |
1 | 1 | . |
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" | |
3 | 3 | .SH NAME |
4 | 4 | sasl_dispose \- Cyrus SASL documentation |
5 | 5 | . |
0 | 0 | .\" Man page generated from reStructuredText. |
1 | 1 | . |
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" | |
3 | 3 | .SH NAME |
4 | 4 | sasl_done \- Cyrus SASL documentation |
5 | 5 | . |
0 | 0 | .\" Man page generated from reStructuredText. |
1 | 1 | . |
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" | |
3 | 3 | .SH NAME |
4 | 4 | sasl_encode \- Cyrus SASL documentation |
5 | 5 | . |
0 | 0 | .\" Man page generated from reStructuredText. |
1 | 1 | . |
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" | |
3 | 3 | .SH NAME |
4 | 4 | sasl_encodev \- Cyrus SASL documentation |
5 | 5 | . |
0 | 0 | .\" Man page generated from reStructuredText. |
1 | 1 | . |
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" | |
3 | 3 | .SH NAME |
4 | 4 | sasl_errdetail \- Cyrus SASL documentation |
5 | 5 | . |
0 | 0 | .\" Man page generated from reStructuredText. |
1 | 1 | . |
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" | |
3 | 3 | .SH NAME |
4 | 4 | sasl_errors \- Cyrus SASL documentation |
5 | 5 | . |
0 | 0 | .\" Man page generated from reStructuredText. |
1 | 1 | . |
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" | |
3 | 3 | .SH NAME |
4 | 4 | sasl_errstring \- Cyrus SASL documentation |
5 | 5 | . |
0 | 0 | .\" Man page generated from reStructuredText. |
1 | 1 | . |
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" | |
3 | 3 | .SH NAME |
4 | 4 | sasl_getconfpath_t \- Cyrus SASL documentation |
5 | 5 | . |
0 | 0 | .\" Man page generated from reStructuredText. |
1 | 1 | . |
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" | |
3 | 3 | .SH NAME |
4 | 4 | sasl_getopt_t \- Cyrus SASL documentation |
5 | 5 | . |
0 | 0 | .\" Man page generated from reStructuredText. |
1 | 1 | . |
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" | |
3 | 3 | .SH NAME |
4 | 4 | sasl_getpath_t \- Cyrus SASL documentation |
5 | 5 | . |
0 | 0 | .\" Man page generated from reStructuredText. |
1 | 1 | . |
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" | |
3 | 3 | .SH NAME |
4 | 4 | sasl_getprop \- Cyrus SASL documentation |
5 | 5 | . |
0 | 0 | .\" Man page generated from reStructuredText. |
1 | 1 | . |
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" | |
3 | 3 | .SH NAME |
4 | 4 | sasl_getrealm_t \- Cyrus SASL documentation |
5 | 5 | . |
0 | 0 | .\" Man page generated from reStructuredText. |
1 | 1 | . |
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" | |
3 | 3 | .SH NAME |
4 | 4 | sasl_getsecret_t \- Cyrus SASL documentation |
5 | 5 | . |
0 | 0 | .\" Man page generated from reStructuredText. |
1 | 1 | . |
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" | |
3 | 3 | .SH NAME |
4 | 4 | sasl_getsimple_t \- Cyrus SASL documentation |
5 | 5 | . |
0 | 0 | .\" Man page generated from reStructuredText. |
1 | 1 | . |
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" | |
3 | 3 | .SH NAME |
4 | 4 | sasl_global_listmech \- Cyrus SASL documentation |
5 | 5 | . |
0 | 0 | .\" Man page generated from reStructuredText. |
1 | 1 | . |
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" | |
3 | 3 | .SH NAME |
4 | 4 | sasl_idle \- Cyrus SASL documentation |
5 | 5 | . |
0 | 0 | .\" Man page generated from reStructuredText. |
1 | 1 | . |
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" | |
3 | 3 | .SH NAME |
4 | 4 | sasl_listmech \- Cyrus SASL documentation |
5 | 5 | . |
0 | 0 | .\" Man page generated from reStructuredText. |
1 | 1 | . |
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" | |
3 | 3 | .SH NAME |
4 | 4 | sasl_log_t \- Cyrus SASL documentation |
5 | 5 | . |
0 | 0 | .\" Man page generated from reStructuredText. |
1 | 1 | . |
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" | |
3 | 3 | .SH NAME |
4 | 4 | sasl_server_init \- Cyrus SASL documentation |
5 | 5 | . |
0 | 0 | .\" Man page generated from reStructuredText. |
1 | 1 | . |
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" | |
3 | 3 | .SH NAME |
4 | 4 | sasl_server_new \- Cyrus SASL documentation |
5 | 5 | . |
0 | 0 | .\" Man page generated from reStructuredText. |
1 | 1 | . |
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" | |
3 | 3 | .SH NAME |
4 | 4 | sasl_server_start \- Cyrus SASL documentation |
5 | 5 | . |
0 | 0 | .\" Man page generated from reStructuredText. |
1 | 1 | . |
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" | |
3 | 3 | .SH NAME |
4 | 4 | sasl_server_step \- Cyrus SASL documentation |
5 | 5 | . |
0 | 0 | .\" Man page generated from reStructuredText. |
1 | 1 | . |
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" | |
3 | 3 | .SH NAME |
4 | 4 | sasl_server_userdb_checkpass_t \- Cyrus SASL documentation |
5 | 5 | . |
0 | 0 | .\" Man page generated from reStructuredText. |
1 | 1 | . |
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" | |
3 | 3 | .SH NAME |
4 | 4 | sasl_server_userdb_setpass_t \- Cyrus SASL documentation |
5 | 5 | . |
0 | 0 | .\" Man page generated from reStructuredText. |
1 | 1 | . |
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" | |
3 | 3 | .SH NAME |
4 | 4 | sasl_setpass \- Cyrus SASL documentation |
5 | 5 | . |
0 | 0 | .\" Man page generated from reStructuredText. |
1 | 1 | . |
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" | |
3 | 3 | .SH NAME |
4 | 4 | sasl_setprop \- Cyrus SASL documentation |
5 | 5 | . |
0 | 0 | .\" Man page generated from reStructuredText. |
1 | 1 | . |
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" | |
3 | 3 | .SH NAME |
4 | 4 | sasl_user_exists \- Cyrus SASL documentation |
5 | 5 | . |
0 | 0 | .\" Man page generated from reStructuredText. |
1 | 1 | . |
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" | |
3 | 3 | .SH NAME |
4 | 4 | sasl_verifyfile_t \- Cyrus SASL documentation |
5 | 5 | . |
63 | 63 | LIB_MYSQL = @LIB_MYSQL@ |
64 | 64 | |
65 | 65 | plugindir = @plugindir@ |
66 | plugin_LTLIBRARIES = @SASL_MECHS@ | |
66 | 67 | |
67 | sasldir = $(prefix)/lib/sasl2 | |
68 | sasl_LTLIBRARIES = @SASL_MECHS@ | |
69 | 68 | EXTRA_LTLIBRARIES = libplain.la libanonymous.la libkerberos4.la libcrammd5.la \ |
70 | 69 | libgs2.la libgssapiv2.la libdigestmd5.la liblogin.la libsrp.la libotp.la \ |
71 | 70 | libscram.la libntlm.la libpassdss.la libsasldb.la libsql.la libldapdb.la |
148 | 147 | CLEANFILES=$(init_src) |
149 | 148 | |
150 | 149 | ${init_src}: $(srcdir)/makeinit.sh |
151 | $(SHELL) $(srcdir)/makeinit.sh | |
150 | $(SHELL) $(srcdir)/makeinit.sh $@ |
182 | 182 | || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ |
183 | 183 | $(am__cd) "$$dir" && rm -f $$files; }; \ |
184 | 184 | } |
185 | am__installdirs = "$(DESTDIR)$(sasldir)" | |
186 | LTLIBRARIES = $(sasl_LTLIBRARIES) | |
185 | am__installdirs = "$(DESTDIR)$(plugindir)" | |
186 | LTLIBRARIES = $(plugin_LTLIBRARIES) | |
187 | 187 | am__DEPENDENCIES_1 = |
188 | 188 | am_libanonymous_la_OBJECTS = anonymous.lo anonymous_init.lo |
189 | 189 | libanonymous_la_OBJECTS = $(am_libanonymous_la_OBJECTS) |
499 | 499 | CRYPTO_COMPAT_OBJS = $(top_builddir)/common/libcrypto_compat.la |
500 | 500 | EXTRA_DIST = makeinit.sh NTMakefile |
501 | 501 | noinst_SCRIPTS = makeinit.sh |
502 | sasldir = $(prefix)/lib/sasl2 | |
503 | sasl_LTLIBRARIES = @SASL_MECHS@ | |
502 | plugin_LTLIBRARIES = @SASL_MECHS@ | |
504 | 503 | EXTRA_LTLIBRARIES = libplain.la libanonymous.la libkerberos4.la libcrammd5.la \ |
505 | 504 | libgs2.la libgssapiv2.la libdigestmd5.la liblogin.la libsrp.la libotp.la \ |
506 | 505 | libscram.la libntlm.la libpassdss.la libsasldb.la libsql.la libldapdb.la |
599 | 598 | cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh |
600 | 599 | $(am__aclocal_m4_deps): |
601 | 600 | |
602 | install-saslLTLIBRARIES: $(sasl_LTLIBRARIES) | |
601 | install-pluginLTLIBRARIES: $(plugin_LTLIBRARIES) | |
603 | 602 | @$(NORMAL_INSTALL) |
604 | @list='$(sasl_LTLIBRARIES)'; test -n "$(sasldir)" || list=; \ | |
603 | @list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \ | |
605 | 604 | list2=; for p in $$list; do \ |
606 | 605 | if test -f $$p; then \ |
607 | 606 | list2="$$list2 $$p"; \ |
608 | 607 | else :; fi; \ |
609 | 608 | done; \ |
610 | 609 | 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)"; \ | |
615 | 614 | } |
616 | 615 | |
617 | uninstall-saslLTLIBRARIES: | |
616 | uninstall-pluginLTLIBRARIES: | |
618 | 617 | @$(NORMAL_UNINSTALL) |
619 | @list='$(sasl_LTLIBRARIES)'; test -n "$(sasldir)" || list=; \ | |
618 | @list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \ | |
620 | 619 | for p in $$list; do \ |
621 | 620 | $(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"; \ | |
624 | 623 | done |
625 | 624 | |
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)'; \ | |
629 | 628 | locs=`for p in $$list; do echo $$p; done | \ |
630 | 629 | sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ |
631 | 630 | sort -u`; \ |
838 | 837 | check: check-am |
839 | 838 | all-am: Makefile $(LTLIBRARIES) $(SCRIPTS) |
840 | 839 | installdirs: |
841 | for dir in "$(DESTDIR)$(sasldir)"; do \ | |
840 | for dir in "$(DESTDIR)$(plugindir)"; do \ | |
842 | 841 | test -z "$$dir" || $(MKDIR_P) "$$dir"; \ |
843 | 842 | done |
844 | 843 | install: install-am |
874 | 873 | @echo "it deletes files that may require special tools to rebuild." |
875 | 874 | clean: clean-am |
876 | 875 | |
877 | clean-am: clean-generic clean-libtool clean-saslLTLIBRARIES \ | |
876 | clean-am: clean-generic clean-libtool clean-pluginLTLIBRARIES \ | |
878 | 877 | mostlyclean-am |
879 | 878 | |
880 | 879 | distclean: distclean-am |
895 | 894 | |
896 | 895 | info-am: |
897 | 896 | |
898 | install-data-am: install-saslLTLIBRARIES | |
897 | install-data-am: install-pluginLTLIBRARIES | |
899 | 898 | |
900 | 899 | install-dvi: install-dvi-am |
901 | 900 | |
941 | 940 | |
942 | 941 | ps-am: |
943 | 942 | |
944 | uninstall-am: uninstall-saslLTLIBRARIES | |
943 | uninstall-am: uninstall-pluginLTLIBRARIES | |
945 | 944 | |
946 | 945 | .MAKE: install-am install-strip |
947 | 946 | |
948 | 947 | .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 \ | |
950 | 949 | ctags-am distclean distclean-compile distclean-generic \ |
951 | 950 | distclean-libtool distclean-tags distdir dvi dvi-am html \ |
952 | 951 | html-am info info-am install install-am install-data \ |
953 | 952 | install-data-am install-dvi install-dvi-am install-exec \ |
954 | 953 | install-exec-am install-html install-html-am install-info \ |
955 | 954 | 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 | |
961 | 961 | |
962 | 962 | .PRECIOUS: Makefile |
963 | 963 | |
964 | 964 | |
965 | 965 | ${init_src}: $(srcdir)/makeinit.sh |
966 | $(SHELL) $(srcdir)/makeinit.sh | |
966 | $(SHELL) $(srcdir)/makeinit.sh $@ | |
967 | 967 | |
968 | 968 | # Tell versions [3.59,3.63) of GNU make to not export all variables. |
969 | 969 | # Otherwise a system limit (for SysV at least) may be exceeded. |
118 | 118 | OPENSSL_FLAGS= |
119 | 119 | !ENDIF |
120 | 120 | |
121 | !IF "$(GSSAPILIB)" == "" | |
122 | GSSAPILIB=gssapi32.lib | |
123 | !ENDIF | |
124 | ||
121 | 125 | !IF "$(GSSAPI)" == "CyberSafe" |
122 | 126 | 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) | |
124 | 131 | !ELSE |
125 | 132 | GSS_FLAGS= |
126 | 133 | GSS_LIBS= |
97 | 97 | || !serverout |
98 | 98 | || !serveroutlen |
99 | 99 | || !oparams) { |
100 | PARAMERROR( sparams->utils ); | |
100 | if (sparams) PARAMERROR( sparams->utils ); | |
101 | 101 | return SASL_BADPARAM; |
102 | 102 | } |
103 | 103 | |
241 | 241 | || !clientout |
242 | 242 | || !clientoutlen |
243 | 243 | || !oparams) { |
244 | PARAMERROR( cparams->utils ); | |
244 | if (cparams) PARAMERROR( cparams->utils ); | |
245 | 245 | return SASL_BADPARAM; |
246 | 246 | } |
247 | 247 | |
280 | 280 | /* make the prompt list */ |
281 | 281 | result = |
282 | 282 | _plug_make_prompts(cparams->utils, prompt_need, |
283 | user_result == SASL_INTERACT ? | |
284 | "Please enter anonymous identification" : NULL, | |
283 | "Please enter anonymous identification", | |
285 | 284 | "", |
286 | 285 | NULL, NULL, |
287 | 286 | NULL, NULL, |
1391 | 1391 | struct buffer_info *inblob, bufinfo; |
1392 | 1392 | |
1393 | 1393 | if(!context || !invec || !numiov || !output || !outputlen) { |
1394 | PARAMERROR(text->utils); | |
1394 | if (text) PARAMERROR(text->utils); | |
1395 | 1395 | return SASL_BADPARAM; |
1396 | 1396 | } |
1397 | 1397 | |
1900 | 1900 | text = sparams->utils->malloc(sizeof(server_context_t)); |
1901 | 1901 | if (text == NULL) |
1902 | 1902 | return SASL_NOMEM; |
1903 | memset(text, 0, sizeof(server_context_t)); | |
1903 | memset((server_context_t *)text, 0, sizeof(server_context_t)); | |
1904 | 1904 | |
1905 | 1905 | text->state = 1; |
1906 | 1906 | text->i_am = SERVER; |
1960 | 1960 | strcat(qop, "auth-conf"); |
1961 | 1961 | added_conf = 1; |
1962 | 1962 | } |
1963 | if (strlen(cipheropts) + strlen(cipher->name) + 1 >= 1024) | |
1964 | return SASL_FAIL; | |
1963 | 1965 | if (*cipheropts) strcat(cipheropts, ","); |
1964 | 1966 | strcat(cipheropts, cipher->name); |
1965 | 1967 | } |
4216 | 4218 | text = params->utils->malloc(sizeof(client_context_t)); |
4217 | 4219 | if (text == NULL) |
4218 | 4220 | return SASL_NOMEM; |
4219 | memset(text, 0, sizeof(client_context_t)); | |
4221 | memset((client_context_t *)text, 0, sizeof(client_context_t)); | |
4220 | 4222 | |
4221 | 4223 | text->state = 1; |
4222 | 4224 | text->i_am = CLIENT; |
715 | 715 | } |
716 | 716 | |
717 | 717 | 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 | ||
718 | 725 | name_buf.length = strlen(params->service) + 1 + strlen(params->serverFQDN); |
719 | 726 | name_buf.value = params->utils->malloc(name_buf.length + 1); |
720 | 727 | if (name_buf.value == NULL) { |
721 | 728 | ret = SASL_NOMEM; |
722 | 729 | goto cleanup; |
723 | 730 | } |
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 | ||
731 | 731 | snprintf(name_buf.value, name_buf.length + 1, |
732 | 732 | "%s@%s", params->service, params->serverFQDN); |
733 | 733 |
496 | 496 | } |
497 | 497 | |
498 | 498 | if (output_token->value) { |
499 | if (output) { | |
499 | if (output && outputlen) { | |
500 | 500 | result = _plug_buf_alloc(text->utils, &text->decode_once_buf, |
501 | 501 | &text->decode_once_buf_len, |
502 | 502 | *outputlen); |
933 | 933 | *serveroutlen = output_token->length; |
934 | 934 | } |
935 | 935 | if (output_token->value) { |
936 | if (serverout) { | |
936 | if (serverout && serveroutlen) { | |
937 | 937 | ret = _plug_buf_alloc(text->utils, &(text->out_buf), |
938 | 938 | &(text->out_buf_len), *serveroutlen); |
939 | 939 | if(ret != SASL_OK) { |
949 | 949 | GSS_LOCK_MUTEX_CTX(params->utils, text); |
950 | 950 | gss_release_buffer(&min_stat, output_token); |
951 | 951 | GSS_UNLOCK_MUTEX_CTX(params->utils, text); |
952 | } else { | |
952 | } else if (serverout && serveroutlen) { | |
953 | 953 | /* No output token, send an empty string */ |
954 | 954 | *serverout = GSSAPI_BLANK_STRING; |
955 | 955 | *serveroutlen = 0; |
1255 | 1255 | if (serveroutlen) |
1256 | 1256 | *serveroutlen = output_token->length; |
1257 | 1257 | if (output_token->value) { |
1258 | if (serverout) { | |
1258 | if (serverout && serveroutlen) { | |
1259 | 1259 | ret = _plug_buf_alloc(text->utils, &(text->out_buf), |
1260 | 1260 | &(text->out_buf_len), *serveroutlen); |
1261 | 1261 | if(ret != SASL_OK) { |
1661 | 1661 | input_token->value = NULL; |
1662 | 1662 | input_token->length = 0; |
1663 | 1663 | 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; | |
1667 | 1669 | |
1668 | 1670 | params->utils->log(params->utils->conn, SASL_LOG_DEBUG, |
1669 | 1671 | "GSSAPI client step %d", text->state); |
1694 | 1696 | /* make the prompt list */ |
1695 | 1697 | int result = |
1696 | 1698 | _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, | |
1699 | 1700 | NULL, NULL, |
1700 | 1701 | NULL, NULL, |
1701 | 1702 | NULL, NULL, NULL, |
1819 | 1820 | text->utils->seterror(text->utils->conn, SASL_LOG_WARN, "GSSAPI warning: no credentials were passed"); |
1820 | 1821 | /* not a fatal error */ |
1821 | 1822 | } |
1822 | ||
1823 | *clientoutlen = output_token->length; | |
1823 | ||
1824 | if (clientoutlen) | |
1825 | *clientoutlen = output_token->length; | |
1824 | 1826 | |
1825 | 1827 | if (output_token->value) { |
1826 | if (clientout) { | |
1828 | if (clientout && clientoutlen) { | |
1827 | 1829 | ret = _plug_buf_alloc(text->utils, &(text->out_buf), |
1828 | 1830 | &(text->out_buf_len), *clientoutlen); |
1829 | 1831 | if(ret != SASL_OK) { |
2129 | 2131 | *clientoutlen = output_token->length; |
2130 | 2132 | } |
2131 | 2133 | if (output_token->value) { |
2132 | if (clientout) { | |
2134 | if (clientout && clientoutlen) { | |
2133 | 2135 | ret = _plug_buf_alloc(text->utils, |
2134 | 2136 | &(text->out_buf), |
2135 | 2137 | &(text->out_buf_len), |
84 | 84 | char *authzid; |
85 | 85 | |
86 | 86 | if((i=ldap_initialize(&cp->ld, ctx->uri))) { |
87 | cp->ld = NULL; | |
87 | 88 | return i; |
88 | 89 | } |
89 | 90 | |
171 | 172 | /* alloc an array of attr names for search, and index to the props */ |
172 | 173 | attrs = sparams->utils->malloc((n+1)*sizeof(char *)*2); |
173 | 174 | if (!attrs) { |
174 | result = SASL_NOMEM; | |
175 | goto done; | |
175 | return SASL_NOMEM; | |
176 | 176 | } |
177 | 177 | |
178 | 178 | aindx = (int *)(attrs + n + 1); |
269 | 269 | break; |
270 | 270 | } |
271 | 271 | |
272 | done: | |
273 | 272 | if(attrs) sparams->utils->free(attrs); |
274 | 273 | if(cp.ld) ldap_unbind_ext(cp.ld, NULL, NULL); |
275 | 274 |
0 | plugin_init="$1" | |
0 | 1 | # mechanism plugins |
1 | 2 | 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 | |
2 | 4 | |
3 | echo " | |
5 | echo " | |
4 | 6 | #include <config.h> |
5 | 7 | |
6 | 8 | #include <string.h> |
42 | 44 | |
43 | 45 | SASL_CLIENT_PLUG_INIT( $mech ) |
44 | 46 | 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' | |
46 | 50 | done |
47 | 51 | |
48 | 52 | # auxprop plugins |
49 | 53 | for auxprop in sasldb sql ldapdb; do |
54 | if [ ${plugin_init} = "${auxprop}_init.c" ];then | |
50 | 55 | |
51 | echo " | |
56 | echo " | |
52 | 57 | #include <config.h> |
53 | 58 | |
54 | 59 | #include <string.h> |
85 | 90 | #endif |
86 | 91 | |
87 | 92 | 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' | |
89 | 96 | done |
90 | 97 | |
91 | 98 | # 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 |
72 | 72 | typedef int SOCKET; |
73 | 73 | #endif /* WIN32 */ |
74 | 74 | |
75 | #ifndef sasl_getpid /* for some reason VS doesn't like #define getpid */ | |
76 | # define sasl_getpid getpid | |
77 | #endif | |
78 | ||
75 | 79 | #include <openssl/md4.h> |
76 | 80 | #include <openssl/md5.h> |
77 | 81 | #include <openssl/hmac.h> |
995 | 999 | hdr.flags2 = SMB_FLAGS2_ERR_STATUS; |
996 | 1000 | if (text->flags & NTLM_USE_UNICODE) hdr.flags2 |= SMB_FLAGS2_UNICODE; |
997 | 1001 | #endif |
998 | current_pid = getpid(); | |
1002 | current_pid = sasl_getpid(); | |
999 | 1003 | if (sizeof(current_pid) <= 2) { |
1000 | 1004 | hdr.pid = (uint16) current_pid; |
1001 | 1005 | hdr.PidHigh = 0; |
1140 | 1144 | /* if client asked for target, send domain */ |
1141 | 1145 | if (text->flags & NTLM_ASK_TARGET) { |
1142 | 1146 | *domain = utils->malloc(len); |
1143 | if (domain == NULL) { | |
1147 | if (*domain == NULL) { | |
1144 | 1148 | MEMERROR(utils); |
1145 | 1149 | return SASL_NOMEM; |
1146 | 1150 | } |
1186 | 1190 | hdr.flags2 = SMB_FLAGS2_ERR_STATUS; |
1187 | 1191 | if (text->flags & NTLM_USE_UNICODE) hdr.flags2 |= SMB_FLAGS2_UNICODE; |
1188 | 1192 | #endif |
1189 | current_pid = getpid(); | |
1193 | current_pid = sasl_getpid(); | |
1190 | 1194 | if (sizeof(current_pid) <= 2) { |
1191 | 1195 | hdr.pid = (uint16) current_pid; |
1192 | 1196 | hdr.PidHigh = 0; |
1527 | 1527 | sasl_out_params_t *oparams) |
1528 | 1528 | { |
1529 | 1529 | 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; | |
1532 | 1531 | |
1533 | 1532 | *serverout = NULL; |
1534 | 1533 | *serveroutlen = 0; |
1536 | 1535 | if (text == NULL) { |
1537 | 1536 | return SASL_BADPROT; |
1538 | 1537 | } |
1538 | ||
1539 | scram_sasl_mech = | |
1540 | (EVP_MD_size(text->md) == 32) ? "SCRAM-SHA-256" : "SCRAM-SHA-1"; | |
1539 | 1541 | |
1540 | 1542 | /* this should be well more than is ever needed */ |
1541 | 1543 | if (clientinlen > MAX_CLIENTIN_LEN) { |
41 | 41 | # |
42 | 42 | ################################################################ |
43 | 43 | |
44 | AM_CPPFLAGS=-I$(top_srcdir)/include | |
44 | AM_CPPFLAGS=-I$(top_srcdir)/include -DPLUGINDIR='"${plugindir}"' | |
45 | 45 | |
46 | 46 | noinst_PROGRAMS = client server http_digest_client |
47 | 47 | EXTRA_PROGRAMS = sample-client sample-server |
433 | 433 | top_build_prefix = @top_build_prefix@ |
434 | 434 | top_builddir = @top_builddir@ |
435 | 435 | top_srcdir = @top_srcdir@ |
436 | AM_CPPFLAGS = -I$(top_srcdir)/include | |
436 | AM_CPPFLAGS = -I$(top_srcdir)/include -DPLUGINDIR='"${plugindir}"' | |
437 | 437 | EXTRA_DIST = NTMakefile |
438 | 438 | CLEANFILES = sample-client sample-server ./.libs/*sample-client ./.libs/*sample-server |
439 | 439 | sample_client_SOURCES = sample-client.c |
84 | 84 | |
85 | 85 | #ifdef HAVE_GSS_GET_NAME_ATTRIBUTE |
86 | 86 | #include <gssapi/gssapi.h> |
87 | #ifndef KRB5_HEIMDAL | |
88 | #ifdef HAVE_GSSAPI_GSSAPI_EXT_H | |
87 | 89 | #include <gssapi/gssapi_ext.h> |
90 | #endif | |
91 | #endif | |
88 | 92 | #endif |
89 | 93 | |
90 | 94 | #include "common.h" |
33 | 33 | |
34 | 34 | EXTRA_DIST = saslauthd.8 saslauthd.mdoc include \ |
35 | 35 | 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 | |
37 | 37 | DEFS = @DEFS@ -DSASLAUTHD_CONF_FILE_DEFAULT=\"@sysconfdir@/saslauthd.conf\" -I. -I$(srcdir) -I.. |
38 | 38 | |
39 | 39 |
412 | 412 | EXTRA_DIST = saslauthd.8 saslauthd.mdoc include \ |
413 | 413 | getnameinfo.c getaddrinfo.c LDAP_SASLAUTHD |
414 | 414 | |
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 | |
416 | 416 | all: all-am |
417 | 417 | |
418 | 418 | .SUFFIXES: |
536 | 536 | ai->ai_canonname ? ai->ai_canonname : r_host, hbuf, pbuf); |
537 | 537 | } |
538 | 538 | 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 | ||
539 | 544 | if (getnameinfo(ai->ai_addr, ai->ai_addrlen, NULL, 0, |
540 | 545 | pbuf, sizeof(pbuf), NI_NUMERICSERV) != 0) |
541 | 546 | strlcpy(pbuf, "unknown", sizeof(pbuf)); |
53 | 53 | |
54 | 54 | # include <string.h> |
55 | 55 | # include <syslog.h> |
56 | #ifdef HAVE_SECURITY_PAM_APPL_H | |
57 | 56 | # include <security/pam_appl.h> |
58 | #elif defined(HAVE_PAM_PAM_APPL_H) | |
59 | # include <pam/pam_appl.h> | |
60 | #endif | |
61 | ||
62 | 57 | # include "auth_pam.h" |
63 | 58 | /* END PUBLIC DEPENDENCIES */ |
64 | 59 |
472 | 472 | ai->ai_canonname ? ai->ai_canonname : r_host, hbuf, pbuf); |
473 | 473 | } |
474 | 474 | 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 | ||
475 | 480 | if (getnameinfo(ai->ai_addr, ai->ai_addrlen, NULL, 0, |
476 | 481 | pbuf, sizeof(pbuf), NI_NUMERICSERV) != 0) |
477 | 482 | strlcpy(pbuf, "unknown", sizeof(pbuf)); |
146 | 146 | !(cf->kvlist[cf->n_kv].value = strdup(p))) { |
147 | 147 | if (complaint) |
148 | 148 | 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); | |
150 | 152 | cfile_free(cf); |
151 | 153 | fclose(infile); |
152 | 154 | return 0; |
1461 | 1461 | { |
1462 | 1462 | /* restore config bind */ |
1463 | 1463 | lak_unbind(lak); |
1464 | lak_user_free(lu); | |
1464 | 1465 | rc = lak_user( |
1465 | 1466 | lak->conf->bind_dn, |
1466 | 1467 | lak->conf->id, |
1477 | 1478 | |
1478 | 1479 | rc = lak_group_member(lak, user, service, realm, dn->value); |
1479 | 1480 | } |
1480 | done:; | |
1481 | done: | |
1481 | 1482 | if (lu) |
1482 | 1483 | lak_user_free(lu); |
1483 | 1484 | if (dn) |
115 | 115 | if(!userid || !passwd) return -1; |
116 | 116 | |
117 | 117 | if (saslauthd_path) { |
118 | strncpy(pwpath, saslauthd_path, sizeof(pwpath)); | |
118 | strlcpy(pwpath, saslauthd_path, sizeof(pwpath)); | |
119 | 119 | } else { |
120 | 120 | if (strlen(PATH_SASLAUTHD_RUNDIR) + 4 + 1 > sizeof(pwpath)) |
121 | 121 | return -1; |
186 | 186 | |
187 | 187 | memset((char *)&srvaddr, 0, sizeof(srvaddr)); |
188 | 188 | 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)); | |
190 | 190 | |
191 | 191 | r = connect(s, (struct sockaddr *) &srvaddr, sizeof(srvaddr)); |
192 | 192 | if (r == -1) { |
88 | 88 | libsfsasl2_la_LIBADD = sfsasl.lo |
89 | 89 | libsfsasl2_la_LDFLAGS = -version-info 1:0:0 -export-dynamic -rpath $(libdir) |
90 | 90 | |
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 | ||
92 | 93 | EXTRA_DIST = saslpasswd2.8 sasldblistusers2.8 pluginviewer.8 sfsasl.h sfsasl.c smtptest.c testsuite.c pluginviewer.c NTMakefile |
93 | 94 | |
94 | 95 | sfsasl.lo: sfsasl.c |
521 | 521 | libsfsasl2_la_SOURCES = |
522 | 522 | libsfsasl2_la_LIBADD = sfsasl.lo |
523 | 523 | 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}"' | |
525 | 525 | EXTRA_DIST = saslpasswd2.8 sasldblistusers2.8 pluginviewer.8 sfsasl.h sfsasl.c smtptest.c testsuite.c pluginviewer.c NTMakefile |
526 | 526 | all: all-am |
527 | 527 |
333 | 333 | } |
334 | 334 | |
335 | 335 | result = cursor->c_close(cursor); |
336 | if (result!=0) result = SASL_FAIL; | |
336 | if (result != 0) { | |
337 | result = SASL_FAIL; | |
338 | goto cleanup; | |
339 | } | |
337 | 340 | |
338 | 341 | result = SASL_OK; |
339 | 342 |
423 | 423 | (flag_create ? SASL_SET_CREATE : 0) |
424 | 424 | | (flag_disable ? SASL_SET_DISABLE : 0) |
425 | 425 | | (flag_nouserpass ? SASL_SET_NOPLAIN : 0)); |
426 | free(password); | |
426 | 427 | |
427 | 428 | if (result != SASL_OK && !flag_disable) |
428 | 429 | 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%⏎ |
49 | 49 | Note that we can't include both winsock.h and winsock2.h as |
50 | 50 | they conflict */ |
51 | 51 | #include <winsock2.h> |
52 | #include <tchar.h> | |
52 | 53 | |
53 | 54 | /* Our package */ |
54 | 55 | #define PACKAGE "cyrus-sasl" |
77 | 78 | #endif |
78 | 79 | |
79 | 80 | /* 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") | |
83 | 84 | |
84 | 85 | /* : This should probably be replaced with a call to a function |
85 | 86 | : that gets the proper value from Registry */ |
92 | 93 | |
93 | 94 | /* which mechs can we link statically? */ |
94 | 95 | #define STATIC_ANONYMOUS 1 |
95 | #define STATIC_CRAMMD5 1 | |
96 | /* #define STATIC_CRAMMD5 1 */ | |
96 | 97 | #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 */ | |
97 | 106 | #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 */ | |
106 | 108 | |
107 | 109 | /* ------------------------------------------------------------ */ |
108 | 110 | |
109 | 111 | /* Things that are fetched via autoconf under Unix |
110 | 112 | */ |
111 | 113 | #define HAVE_MEMCPY 1 |
114 | #define HAVE_OPENSSL 1 | |
112 | 115 | |
113 | 116 | #define PLUGINDIR "C:\\CMU\\bin\\sasl2" |
114 | 117 | #define CONFIGDIR "C:\\CMU\\bin\\sasl2" |
115 | 118 | |
116 | 119 | /* Windows calls these functions something else |
117 | 120 | */ |
118 | #define strcasecmp stricmp | |
121 | #define strcasecmp _stricmp | |
119 | 122 | #if defined (_MSC_VER) && (_MSC_VER < 1900) |
120 | 123 | #define snprintf _snprintf |
121 | 124 | #endif |
122 | #define strncasecmp strnicmp | |
125 | #define strncasecmp _strnicmp | |
126 | #define strdup _strdup | |
127 | #define sasl_getpid GetCurrentThreadId | |
123 | 128 | |
124 | 129 | #define MAXHOSTNAMELEN 1024 |
125 | 130 |
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\ |