Esempio n. 1
0
int main(int ac, char **av)
{
  netbios_ns        *ns;
  struct in_addr      addr;
  const char          *name;

  ns = netbios_ns_new();

  if (ac != 2)
  {
    fprintf(stderr, "%s usage: %s a.b.c.d\n", av[0], av[0]);
    fprintf(stderr, "Print the netbios name for this IP address\n");
    exit(1);
  }

  inet_aton(av[1], &addr);
  if ((name = netbios_ns_inverse(ns, addr.s_addr)) == NULL)
  {
    fprintf(stderr, "Unable to perform inverse name resolution for %s\n", av[1]);
    exit(42);
  }

  printf("%s\n", name);
  netbios_ns_destroy(ns);
  return (0);
}
Esempio n. 2
0
File: sd.c Progetto: ToBeStrong/vlc
void bdsm_SdClose (vlc_object_t *p_this)
{
    services_discovery_t *sd = (services_discovery_t *)p_this;
    services_discovery_sys_t *p_sys = sd->p_sys;

    if( p_sys == NULL )
        return;

    if( p_sys->p_ns )
    {
        netbios_ns_discover_stop( p_sys->p_ns );
        netbios_ns_destroy( p_sys->p_ns );
    }

    if( p_sys->p_entry_item_list )
    {
        for ( int i = 0; i < vlc_array_count( p_sys->p_entry_item_list ); i++ )
        {
            struct entry_item *p_entry_item;

            p_entry_item = vlc_array_item_at_index( p_sys->p_entry_item_list,
                                                    i );
            vlc_gc_decref( p_entry_item->p_item );
            free( p_entry_item );
        }
        vlc_array_destroy( p_sys->p_entry_item_list );
    }

    free( p_sys );
}
Esempio n. 3
0
int main()
{
  netbios_ns *ns;
  netbios_ns_discover_callbacks callbacks;

  ns = netbios_ns_new();

  callbacks.p_opaque = (void*)0x42;
  callbacks.pf_on_entry_added = on_entry_added;
  callbacks.pf_on_entry_removed = on_entry_removed;

  printf("Discovering...\nPress Enter to quit\n");
  if (netbios_ns_discover_start(ns,
                                4, // broadcast every 4 seconds
                                &callbacks))
  {
    fprintf(stderr, "Error while discovering local network\n");
    exit(42);
  }

  getchar();

  netbios_ns_discover_stop(ns);
  netbios_ns_destroy(ns);

  return 0;
}
Esempio n. 4
0
File: sd.c Progetto: asdlei00/vlc
void SdClose (vlc_object_t *p_this)
{
    services_discovery_t *sd = (services_discovery_t *)p_this;
    services_discovery_sys_t *p_sys = sd->p_sys;

    if( p_sys == NULL )
        return;

    if( p_sys->ns != NULL )
        netbios_ns_destroy( p_sys->ns );
}
Esempio n. 5
0
File: sd.c Progetto: asdlei00/vlc
int SdOpen (vlc_object_t *p_this)
{
    services_discovery_t *p_sd = (services_discovery_t *)p_this;
    services_discovery_sys_t *p_sys = malloc (sizeof (*p_sys));

    if( p_sys == NULL )
        return VLC_ENOMEM;
    p_sd->p_sys = p_sys;

    /* Let's create a NETBIOS name service object */
    p_sys->ns = netbios_ns_new();
    if( p_sys->ns == NULL )
        goto error;

    if( !netbios_ns_discover( p_sys->ns ) )
        goto error;

    for( ssize_t i = 0; i < netbios_ns_entry_count( p_sys->ns ); i++ )
    {
        netbios_ns_entry *p_entry = netbios_ns_entry_at( p_sys->ns, i );

        if( p_entry->type == 0x20 )
        {
            input_item_t *p_item;
            char *psz_mrl;

            if( asprintf(&psz_mrl, "smb://%s", p_entry->name) < 0 )
                goto error;

            p_item = input_item_NewWithType( psz_mrl, p_entry->name, 0, NULL,
                                             0, -1, ITEM_TYPE_NODE );
            msg_Dbg( p_sd, "Adding item %s", psz_mrl );

            services_discovery_AddItem( p_sd, p_item, NULL );

            free( psz_mrl );
        }
    }

    return VLC_SUCCESS;

    error:
        if( p_sys->ns != NULL )
            netbios_ns_destroy( p_sys->ns );
        free( p_sys );
        p_sd->p_sys = NULL;

        return VLC_EGENERIC;
}
Esempio n. 6
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 );
}
Esempio n. 7
0
/*****************************************************************************
 * 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 );
}