[vlc-commits] dsm: try to connect to the share to check if login is valid
Thomas Guillem
git at videolan.org
Thu May 21 17:10:50 CEST 2015
vlc | branch: master | Thomas Guillem <thomas at gllm.fr> | Wed May 20 19:12:46 2015 +0200| [874245a237fd80bde5c1771082632507a6836819] | committer: Thomas Guillem
dsm: try to connect to the share to check if login is valid
If the host accepts guests, the login will be valid but we won't be able to
connect to the share.
> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=874245a237fd80bde5c1771082632507a6836819
---
modules/access/dsm/access.c | 30 ++++++++++++++++++++----------
1 file changed, 20 insertions(+), 10 deletions(-)
diff --git a/modules/access/dsm/access.c b/modules/access/dsm/access.c
index 34f9ad0..26a3754 100644
--- a/modules/access/dsm/access.c
+++ b/modules/access/dsm/access.c
@@ -180,23 +180,21 @@ static int Open( vlc_object_t *p_this )
goto error;
}
+ get_path( p_access );
+
if( login( p_access ) != VLC_SUCCESS )
+ {
+ msg_Err( p_access, "Unable to connect to share %s", p_sys->psz_share );
goto error;
+ }
- if( !get_path( p_access ) )
+ /* If there is no shares, browse them */
+ if( !p_sys->psz_share )
return BrowserInit( p_access );
msg_Dbg( p_access, "Path: Share name = %s, path = %s", p_sys->psz_share,
p_sys->psz_path );
- /* Connect to the share */
- p_sys->i_tid = smb_tree_connect( p_sys->p_session, p_sys->psz_share );
- if( !p_sys->i_tid )
- {
- msg_Err( p_access, "Unable to connect to share %s", p_sys->psz_share );
- goto error;
- }
-
/* Let's finally ask a handle to the file we wanna read ! */
p_sys->i_fd = smb_fopen( p_sys->p_session, p_sys->i_tid, p_sys->psz_path,
SMB_MOD_RO );
@@ -390,7 +388,19 @@ static int smb_connect( access_t *p_access )
smb_session_set_creds( p_sys->p_session, psz_domain,
p_sys->creds.login, p_sys->creds.password );
- return smb_session_login( p_sys->p_session ) ? VLC_SUCCESS : VLC_EGENERIC;
+ if( smb_session_login( p_sys->p_session ) )
+ {
+ if( p_sys->psz_share )
+ {
+ /* Connect to the share */
+ p_sys->i_tid = smb_tree_connect( p_sys->p_session, p_sys->psz_share );
+ if( !p_sys->i_tid )
+ return VLC_EGENERIC;
+ }
+ return VLC_SUCCESS;
+ }
+ else
+ return VLC_EGENERIC;
}
/* Performs login with existing credentials and ask the user for new ones on
More information about the vlc-commits
mailing list