# include "config.h"
#endif
-#include <vlc/vlc.h>
+#include <vlc_common.h>
+#include <vlc_plugin.h>
#include <vlc_access.h>
#ifdef WIN32
#define DOMAIN_LONGTEXT N_("Domain/Workgroup that " \
"will be used for the connection.")
-vlc_module_begin();
- set_shortname( "SMB" );
- set_description( _("SMB input") );
- set_capability( "access2", 0 );
- set_category( CAT_INPUT );
- set_subcategory( SUBCAT_INPUT_ACCESS );
+vlc_module_begin ()
+ set_shortname( "SMB" )
+ set_description( N_("SMB input") )
+ set_capability( "access", 0 )
+ set_category( CAT_INPUT )
+ set_subcategory( SUBCAT_INPUT_ACCESS )
add_integer( "smb-caching", 2 * DEFAULT_PTS_DELAY / 1000, NULL,
- CACHING_TEXT, CACHING_LONGTEXT, VLC_TRUE );
+ CACHING_TEXT, CACHING_LONGTEXT, true )
add_string( "smb-user", NULL, NULL, USER_TEXT, USER_LONGTEXT,
- VLC_FALSE );
+ false )
add_string( "smb-pwd", NULL, NULL, PASS_TEXT,
- PASS_LONGTEXT, VLC_FALSE );
+ PASS_LONGTEXT, false )
add_string( "smb-domain", NULL, NULL, DOMAIN_TEXT,
- DOMAIN_LONGTEXT, VLC_FALSE );
- add_shortcut( "smb" );
- set_callbacks( Open, Close );
-vlc_module_end();
+ DOMAIN_LONGTEXT, false )
+ add_shortcut( "smb" )
+ set_callbacks( Open, Close )
+vlc_module_end ()
/*****************************************************************************
* Local prototypes
#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
access_sys_t *p_sys;
struct stat filestat;
char *psz_path, *psz_uri;
- char *psz_user = 0, *psz_pwd = 0, *psz_domain = 0;
+ char *psz_user = NULL, *psz_pwd = NULL, *psz_domain = NULL;
int i_ret;
#ifdef USE_CTX
* smb://[[[domain;]user[:password@]]server[/share[/path[/file]]]] */
if( !psz_user ) psz_user = var_CreateGetString( p_access, "smb-user" );
- if( psz_user && !*psz_user ) { free( psz_user ); psz_user = 0; }
+ if( psz_user && !*psz_user ) { free( psz_user ); psz_user = NULL; }
if( !psz_pwd ) psz_pwd = var_CreateGetString( p_access, "smb-pwd" );
- 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 && !*psz_domain ) { free( psz_domain ); psz_domain = 0; }
+ if( psz_pwd && !*psz_pwd ) { free( psz_pwd ); psz_pwd = NULL; }
+ if( !psz_domain ) psz_domain = var_CreateGetString( p_access, "smb-domain" );
+ if( psz_domain && !*psz_domain ) { free( psz_domain ); psz_domain = NULL; }
#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
- if( psz_user ) free( psz_user );
- if( psz_pwd ) free( psz_pwd );
- if( psz_domain ) free( psz_domain );
+ 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;
}
if( i_pos < 0 ) return VLC_EGENERIC;
- msg_Dbg( p_access, "seeking to "I64Fd, i_pos );
+ msg_Dbg( p_access, "seeking to %"PRId64, i_pos );
#ifdef USE_CTX
i_ret = p_sys->p_smb->lseek(p_sys->p_smb, p_sys->p_file, i_pos, SEEK_SET);
return VLC_EGENERIC;
}
- p_access->info.b_eof = VLC_FALSE;
+ p_access->info.b_eof = false;
p_access->info.i_pos = i_ret;
return VLC_SUCCESS;
return -1;
}
- if( i_read == 0 ) p_access->info.b_eof = VLC_TRUE;
+ if( i_read == 0 ) p_access->info.b_eof = true;
else if( i_read > 0 ) p_access->info.i_pos += i_read;
return i_read;
*****************************************************************************/
static int Control( access_t *p_access, int i_query, va_list args )
{
- vlc_bool_t *pb_bool;
+ bool *pb_bool;
int *pi_int;
int64_t *pi_64;
switch( i_query )
{
case ACCESS_CAN_SEEK:
- pb_bool = (vlc_bool_t*)va_arg( args, vlc_bool_t* );
- *pb_bool = VLC_TRUE;
+ pb_bool = (bool*)va_arg( args, bool* );
+ *pb_bool = true;
break;
case ACCESS_CAN_FASTSEEK:
- pb_bool = (vlc_bool_t*)va_arg( args, vlc_bool_t* );
- *pb_bool = VLC_TRUE;
+ pb_bool = (bool*)va_arg( args, bool* );
+ *pb_bool = true;
break;
case ACCESS_CAN_PAUSE:
- pb_bool = (vlc_bool_t*)va_arg( args, vlc_bool_t* );
- *pb_bool = VLC_TRUE;
+ pb_bool = (bool*)va_arg( args, bool* );
+ *pb_bool = true;
break;
case ACCESS_CAN_CONTROL_PACE:
- pb_bool = (vlc_bool_t*)va_arg( args, vlc_bool_t* );
- *pb_bool = VLC_TRUE;
- break;
-
- case ACCESS_GET_MTU:
- pi_int = (int*)va_arg( args, int * );
- *pi_int = 0;
+ pb_bool = (bool*)va_arg( args, bool* );
+ *pb_bool = true;
break;
case ACCESS_GET_PTS_DELAY:
NETRESOURCE net_resource;
DWORD i_result;
char *psz_parser;
+ VLC_UNUSED( psz_domain );
HINSTANCE hdll = LoadLibrary(_T("MPR.DLL"));
if( !hdll )