could not initialize lsa pipe

David Wuertele dave-gnus at bfnet.com
Tue Oct 5 17:57:05 GMT 2004


I'm trying to use the libsmbclient RPC cli_srvsvc_net_share_enum().
>From following the implementation in the "net" executable, it appears
that I have to do something like this:

    nt_status = cli_full_connection (&cli, NULL, server_name, &server_ip, 0, 
                                     "IPC$", "IPC", username, workgroup, password, 
                                     CLI_FULL_CONNECTION_ANNONYMOUS_FALLBACK,
                                     Undefined, NULL);
    mem_ctx = talloc_init ("run_rpc_command");
  #ifdef WTF_IS_LSA
    cli_nt_session_open (cli, PI_LSARPC);
    cli_lsa_open_policy (cli, mem_ctx, False, SEC_RIGHTS_MAXIMUM_ALLOWED, &pol);
    cli_lsa_query_info_policy (cli, mem_ctx, &pol, info_class, &domain_name, &domain_sid);
    cli_lsa_close (cli, mem_ctx, &pol);
    cli_nt_session_close (cli);
  #endif /* WTF_IS_LSA */
    cli_nt_session_open(cli, PI_SRVSVC);
    init_enum_hnd (&hnd, 0);
    cli_srvsvc_net_share_enum (cli, mem_ctx, 1, &ctr, preferred_len, &hnd);
    for (i = 0; i < ctr.num_entries; i++) {
          char sharename[MAX_BUFF_SIZE];
          SRV_SHARE_INFO_1 *info1 = &ctr.share.info1[i];
          rpcstr_pull_unistr2_fstring (netname, &info1->info_1_str.uni_netname);
          rpcstr_pull_unistr2_fstring (remark, &info1->info_1_str.uni_remark);
    }

My question is about the section between the #ifdef WTF_IS_LSA and the
#endif.  The question is, WTF is LSA, and why does net initialize it?
Is this necessary to enumerate a server's shares?



More information about the samba-technical mailing list