int main() { struct in_addr addr; smb_session *session; smb_tid tid; smb_fd fd; session = smb_session_new(); if (session == NULL) exit(1); inet_aton("127.0.0.1", &addr.sin_addr); if (smb_session_connect(session, "MYNAME", addr.sin_addr.s_addr, SMB_TRANSPORT_TCP)) { printf("Unable to connect to host\n"); exit(2); } smb_session_set_creds(session, "MYNAME", "login", "password"); if (smb_session_login(session)) { if (session->guest) printf("Logged in as GUEST \n"); else printf("Successfully logged in\n"); } else { printf("Auth failed\n"); exit(3); } tid = smb_tree_connect(session, "MyShare"); if (!tid) { printf("Unable to connect to share\n"); exit(4); } fd = smb_fopen(session, tid, "\\My\\File"); if (!fd) { printf("Unable to open file\n"); exit(5); } char buffer[512]; smb_fread(session, fd, buffer, 512); /* Use data */ smb_fclose(session, fd); smb_tree_disconnect(session, tid); smb_session_destroy(session); return(0); }
/***************************************************************************** * Close: free unused data structures *****************************************************************************/ static void Close( vlc_object_t *p_this ) { stream_t *p_access = (stream_t*)p_this; access_sys_t *p_sys = p_access->p_sys; if( p_sys->p_ns ) netbios_ns_destroy( p_sys->p_ns ); if( p_sys->i_fd ) smb_fclose( p_sys->p_session, p_sys->i_fd ); if( p_sys->p_session ) smb_session_destroy( p_sys->p_session ); vlc_UrlClean( &p_sys->url ); free( p_sys->psz_fullpath ); free( p_sys ); }
/***************************************************************************** * Close: free unused data structures *****************************************************************************/ static void Close( vlc_object_t *p_this ) { access_t *p_access = (access_t*)p_this; access_sys_t *p_sys = p_access->p_sys; if( p_sys->p_ns ) netbios_ns_destroy( p_sys->p_ns ); if( p_sys->i_fd ) smb_fclose( p_sys->p_session, p_sys->i_fd ); if( p_sys->p_session ) smb_session_destroy( p_sys->p_session ); vlc_UrlClean( &p_sys->url ); if( p_sys->shares ) smb_share_list_destroy( p_sys->shares ); if( p_sys->files ) smb_stat_list_destroy( p_sys->files ); free( p_sys->psz_user_opt ); free( p_sys->psz_pwd_opt ); free( p_sys->psz_domain_opt ); free( p_sys->psz_share ); free( p_sys->psz_path ); free( p_sys ); }