# include "config.h"
#endif
-#include <vlc/vlc.h>
+#include <vlc_common.h>
#include <vlc_plugin.h>
#include <vlc_access.h>
#ifdef WIN32
static void Win32AddConnection( access_t *, char *, char *, char *, char * );
-#endif
-
+#else
static void smb_auth( const char *srv, const char *shr, char *wg, int wglen,
char *un, int unlen, char *pw, int pwlen )
{
//wglen = unlen = pwlen = 0;
}
+#endif
/****************************************************************************
* Open: connect to smb server and ask for file
* smb://[[[domain;]user[:password@]]server[/share[/path[/file]]]] */
if( !psz_user ) psz_user = var_CreateGetString( p_access, "smb-user" );
- if( !*psz_user ) { free( psz_user ); psz_user = 0; }
+ if( psz_user && !*psz_user ) { free( psz_user ); psz_user = 0; }
if( !psz_pwd ) psz_pwd = var_CreateGetString( p_access, "smb-pwd" );
- if( !*psz_pwd ) { free( psz_pwd ); psz_pwd = 0; }
+ if( psz_pwd && !*psz_pwd ) { free( psz_pwd ); psz_pwd = 0; }
if( !psz_domain ) psz_domain = var_CreateGetString( p_access, "smb-domain" );
- if( !*psz_domain ) { free( psz_domain ); psz_domain = 0; }
+ if( psz_domain && !*psz_domain ) { free( psz_domain ); psz_domain = 0; }
#ifdef WIN32
if( psz_user )
Win32AddConnection( p_access, psz_path, psz_user, psz_pwd, psz_domain);
- asprintf( &psz_uri, "//%s", psz_path );
+ i_ret = asprintf( &psz_uri, "//%s", psz_path );
#else
if( psz_user )
- asprintf( &psz_uri, "smb://%s%s%s%s%s@%s",
- psz_domain ? psz_domain : "", psz_domain ? ";" : "",
- psz_user, psz_pwd ? ":" : "",
- psz_pwd ? psz_pwd : "", psz_path );
+ i_ret = asprintf( &psz_uri, "smb://%s%s%s%s%s@%s",
+ psz_domain ? psz_domain : "", psz_domain ? ";" : "",
+ psz_user, psz_pwd ? ":" : "",
+ psz_pwd ? psz_pwd : "", psz_path );
else
- asprintf( &psz_uri, "smb://%s", psz_path );
+ i_ret = asprintf( &psz_uri, "smb://%s", psz_path );
#endif
free( psz_user );
free( psz_pwd );
free( psz_domain );
+ if( i_ret == -1 )
+ return VLC_ENOMEM;
+
#ifdef USE_CTX
if( !(p_smb = smbc_new_context()) )
{
- msg_Err( p_access, "out of memory" );
free( psz_uri );
return VLC_ENOMEM;
}
NETRESOURCE net_resource;
DWORD i_result;
char *psz_parser;
+ VLC_UNUSED( psz_domain );
HINSTANCE hdll = LoadLibrary(_T("MPR.DLL"));
if( !hdll )