From: Andreas Schneider Date: Mon, 23 Jun 2008 09:00:20 +0000 (+0200) Subject: Add krb5 support for the testbrowse example. X-Git-Tag: samba-4.0.0alpha6~801^2~944 X-Git-Url: http://git.samba.org/samba.git/?a=commitdiff_plain;h=ef0a7b0b94cfb9b57d634b083d2b2652bb88865d;p=ab%2Fsamba.git%2F.git Add krb5 support for the testbrowse example. Signed-off-by: Andreas Schneider Signed-off-by: Derrell Lipman (This used to be commit 84b1ea39a4f27ebcf06a2bafed78396c7353df0e) --- diff --git a/examples/libsmbclient/get_auth_data_fn.h b/examples/libsmbclient/get_auth_data_fn.h index b1d36c8beac..6b91c973375 100644 --- a/examples/libsmbclient/get_auth_data_fn.h +++ b/examples/libsmbclient/get_auth_data_fn.h @@ -1,3 +1,5 @@ +#include + static void get_auth_data_fn(const char * pServer, const char * pShare, @@ -15,6 +17,8 @@ get_auth_data_fn(const char * pServer, char username[256] = { '\0' }; char password[256] = { '\0' }; + static int krb5_set = 1; + if (strcmp(server, pServer) == 0 && strcmp(share, pShare) == 0 && *workgroup != '\0' && @@ -25,7 +29,12 @@ get_auth_data_fn(const char * pServer, strncpy(pPassword, password, maxLenPassword - 1); return; } - + + if (krb5_set && getenv("KRB5CCNAME")) { + krb5_set = 0; + return; + } + fprintf(stdout, "Workgroup: [%s] ", pWorkgroup); fgets(temp, sizeof(temp), stdin); @@ -68,4 +77,6 @@ get_auth_data_fn(const char * pServer, strncpy(workgroup, pWorkgroup, sizeof(workgroup) - 1); strncpy(username, pUsername, sizeof(username) - 1); strncpy(password, pPassword, sizeof(password) - 1); + + krb5_set = 1; } diff --git a/examples/libsmbclient/testbrowse.c b/examples/libsmbclient/testbrowse.c index a7eda365af9..a6e6395078f 100644 --- a/examples/libsmbclient/testbrowse.c +++ b/examples/libsmbclient/testbrowse.c @@ -117,6 +117,9 @@ main(int argc, char * argv[]) smbc_setFunctionAuthData(context, get_auth_data_fn); } + smbc_setOptionUseKerberos(context, 1); + smbc_setOptionFallbackAfterKerberos(context, 1); + /* If we've been asked to log to stderr instead of stdout, ... */ if (debug_stderr) { /* ... then set the option to do so */