The branch, master has been updated
       via  1134c4f3a63 s3:utils: Fix the auth function to print correct values 
to the user
       via  25021b836f7 s3:utils: Handle the domain before username and password
      from  2cfbf43f706 smbd: Fix traversing snapshot dirs that vanished in 
current fileset

https://git.samba.org/?p=samba.git;a=shortlog;h=master


- Log -----------------------------------------------------------------
commit 1134c4f3a63c9618c3fb79abefb40a798c7c1701
Author: Andreas Schneider <a...@samba.org>
Date:   Fri Dec 15 08:23:25 2023 +0100

    s3:utils: Fix the auth function to print correct values to the user
    
    In order to show correct values in the password prompt displayed by
    cli_credentials_get_password*(). We need to set the domain and username
    in the credentials system.
    
    The credentials supplied via the SMB URL have a higher priority than the
    command line options.
    
    BUG: https://bugzilla.samba.org/show_bug.cgi?id=15538
    
    Signed-off-by: Andreas Schneider <a...@samba.org>
    Reviewed-by: Volker Lendecke <v...@samba.org>
    
    Autobuild-User(master): Volker Lendecke <v...@samba.org>
    Autobuild-Date(master): Thu Jan  4 11:26:52 UTC 2024 on atb-devel-224

commit 25021b836f74d3d247bce44c6c02a2d8b2cc39ea
Author: Andreas Schneider <a...@samba.org>
Date:   Fri Dec 15 09:41:06 2023 +0100

    s3:utils: Handle the domain before username and password
    
    The cli_credentials_get_password*() function will interactively ask the
    user for a password if none has been supplied via another ways. To show
    the correct domain and username in the prompt, we need handle domain
    and user first.
    
    BUG: https://bugzilla.samba.org/show_bug.cgi?id=15538
    
    Signed-off-by: Andreas Schneider <a...@samba.org>
    Reviewed-by: Volker Lendecke <v...@samba.org>

-----------------------------------------------------------------------

Summary of changes:
 source3/utils/smbget.c | 37 ++++++++++++++++++++-----------------
 1 file changed, 20 insertions(+), 17 deletions(-)


Changeset truncated at 500 lines:

diff --git a/source3/utils/smbget.c b/source3/utils/smbget.c
index 70b3685c89f..67ea259afb8 100644
--- a/source3/utils/smbget.c
+++ b/source3/utils/smbget.c
@@ -116,22 +116,23 @@ static void get_auth_data_with_context_fn(SMBCCTX *ctx,
        const char *domain = NULL;
        enum credentials_obtained obtained = CRED_UNINITIALISED;
 
-       username = cli_credentials_get_username_and_obtained(creds, &obtained);
-       if (username != NULL) {
+       domain = cli_credentials_get_domain_and_obtained(creds, &obtained);
+       if (domain != NULL) {
                bool overwrite = false;
-               if (usr[0] == '\0') {
+               if (dom[0] == '\0') {
                        overwrite = true;
                }
                if (obtained >= CRED_CALLBACK_RESULT) {
                        overwrite = true;
                }
                if (overwrite) {
-                       strncpy(usr, username, usr_len - 1);
+                       strncpy(dom, domain, dom_len - 1);
                }
        }
+       cli_credentials_set_domain(creds, dom, obtained);
 
-       password = cli_credentials_get_password_and_obtained(creds, &obtained);
-       if (password != NULL) {
+       username = cli_credentials_get_username_and_obtained(creds, &obtained);
+       if (username != NULL) {
                bool overwrite = false;
                if (usr[0] == '\0') {
                        overwrite = true;
@@ -140,33 +141,35 @@ static void get_auth_data_with_context_fn(SMBCCTX *ctx,
                        overwrite = true;
                }
                if (overwrite) {
-                       strncpy(pwd, password, pwd_len - 1);
+                       strncpy(usr, username, usr_len - 1);
                }
        }
+       cli_credentials_set_username(creds, usr, obtained);
 
-       domain = cli_credentials_get_domain_and_obtained(creds, &obtained);
-       if (domain != NULL) {
+       password = cli_credentials_get_password_and_obtained(creds, &obtained);
+       if (password != NULL) {
                bool overwrite = false;
-               if (usr[0] == '\0') {
+               if (pwd[0] == '\0') {
                        overwrite = true;
                }
                if (obtained >= CRED_CALLBACK_RESULT) {
                        overwrite = true;
                }
                if (overwrite) {
-                       strncpy(dom, domain, dom_len - 1);
+                       strncpy(pwd, password, pwd_len - 1);
                }
        }
+       cli_credentials_set_password(creds, pwd, obtained);
 
-       smbc_set_credentials_with_fallback(ctx, domain, username, password);
+       smbc_set_credentials_with_fallback(ctx, dom, usr, pwd);
 
-       if (!opt.quiet && username != NULL) {
-               if (username[0] == '\0') {
+       if (!opt.quiet) {
+               if (usr[0] == '\0') {
                        printf("Using guest user\n");
+               } else if (dom[0] == '\0') {
+                       printf("Using user: %s\n", usr);
                } else {
-                       printf("Using domain: %s, user: %s\n",
-                               domain,
-                               username);
+                       printf("Using domain: %s, user: %s\n", dom, usr);
                }
        }
 }


-- 
Samba Shared Repository

Reply via email to