コード例 #1
0
ファイル: slptool.c プロジェクト: eSDK/eSDK_OBS_API
void FindAttrs(SLPToolCommandLine * cmdline)
{
   SLPError result;
   SLPHandle hslp;

   if (SLPOpen(cmdline->lang, SLP_FALSE, &hslp) == SLP_OK)
   {
#ifndef UNICAST_NOT_SUPPORTED
      if (cmdline->unicastifc && (result = SLPAssociateIP(hslp, 
            cmdline->unicastifc)) != SLP_OK)
      {
         printf("errorcode: %i\n", result);
         SLPClose(hslp);
         return;
      }
#endif
#ifndef MI_NOT_SUPPORTED 
      if (cmdline->interfaces && (result = SLPAssociateIFList(hslp, 
            cmdline->interfaces)) != SLP_OK)
      {
         printf("errorcode: %i\n", result);
         SLPClose(hslp);
         return;
      }
#endif
      result = SLPFindAttrs(hslp, cmdline->cmdparam1, cmdline->scopes,
                     cmdline->cmdparam2, myAttrCallback, 0);
      if (result != SLP_OK)
         printf("errorcode: %i\n", result);
      SLPClose(hslp);
   }
}
コード例 #2
0
ファイル: lmiwbem_slp.cpp プロジェクト: miminar/lmiwbem
bp::object SLP::discoverAttrs(
    const bp::object &srvurl,
    const bp::object &scopelist,
    const bp::object &attrids,
    const bp::object &async)
{
    std::string std_srvurl = StringConv::asStdString(srvurl, "srvurl");
    std::string std_scopelist = StringConv::asStdString(scopelist, "scopelist");
    std::string std_attrids = StringConv::asStdString(attrids, "attrids");
    bool std_async = Conv::as<bool>(async, "async");

    // Open SLP handle.
    ScopedSLPHandle hslp(std_async);
    if (!hslp)
        throw_SLPError("Can't open SLP handle", static_cast<int>(hslp.error()));

    // Discover the attrs.
    SLPError err;
    bp::dict attrs;
    if ((err = SLPFindAttrs(
            hslp,
            std_srvurl.c_str(),
            std_scopelist.c_str(),
            std_attrids.c_str(),
            SLP::attrCallback,
            static_cast<void*>(&attrs))) != SLP_OK)
    {
        throw_SLPError("SLP attrs discovery failed", static_cast<int>(err));
    }

    return attrs;
}
コード例 #3
0
ファイル: slptest.c プロジェクト: AparnaKarve/manageiq
int
main(int argc, char **argv)
{
	SLPError	slprv;
	SLPHandle	slph;
	struct SRV_URL_CB_INFO cbinfo;
	
	slprv = SLPOpen(NULL, SLP_FALSE, &slph);
	if(slprv != SLP_OK)	{
		printf("Error opening slp handle %i\n", slprv);
		exit(1);
	}
	
	cbinfo.num_url = 0;
	
	slprv = SLPFindSrvs( slph,
		"service:wbem",
		0,                    /* use configured scopes */
		0,                    /* no attr filter        */
		MySLPSrvURLCallback,
		&cbinfo );

	if((slprv != SLP_OK) || (cbinfo.callbackerr != SLP_OK))	{
		printf("SLPFindSrvs Error: %i\n", slprv);
		exit(1);
	}
	else	{
		int i;
		printf("SLPFindSrvs discovered %d servers:\n", cbinfo.num_url);
		for(i = 0; i < cbinfo.num_url; i++)	{
			printf("\t%s\n", cbinfo.srv_urls[i]);
			slprv = SLPFindAttrs(slph,
				cbinfo.srv_urls[i],
				"", /* attributes */
				"", /* use configured scopes */
				myAttrCallback,
				NULL);
			if(slprv != SLP_OK)	{
				printf("errorcode: %i\n", slprv);
			}
		}
	}
	
	SLPClose(slph);
}
コード例 #4
0
ファイル: slpperf_test1.c プロジェクト: Distrotech/openslp
/*-------------------------------------------------------------------------*/
int SlpPerfTest1_slpfindattrs (SLPHandle hslp, 
                               SLPList* service_list,
                               double* ave_slpfindattrs,
                               int* count_slpfindattrs)
/*-------------------------------------------------------------------------*/
{
    int             found;
    struct timezone tz;
    struct timeval  start;
    struct timeval  end;
    TestService_T*  srv;
    SLPError        errorcode;

    srv = FindRandomTestService(service_list);

       /* mark start time */
    gettimeofday(&start,&tz);
    
    /* call SLP API */
    found = 0;
   
    errorcode = SLPFindAttrs( hslp, 
                              srv->serviceurl,
                              0,
                              0,
                              SlpPerfTest1_slpfindattrscallback, 
                              &found);
    if(errorcode != SLP_OK)
    {
        printf("SLPFindAttrs(hslp,%s,0,0,callback,%i) returned %i\n", srv->serviceurl,found,errorcode);
        printf("This should not happen!\n");
    
        return -1;
    }

    if(found <= 0)
    {
        printf("Did not find any attributes on SLPFindAttrs(). This is bad\n");
        return -1;
    }
                     
    return 0;
}
コード例 #5
0
/*=========================================================================*/
void FindAttrs(SLPToolCommandLine* cmdline)
/*=========================================================================*/
{
    SLPError    result;
    SLPHandle   hslp;

    if(SLPOpen(cmdline->lang,SLP_FALSE,&hslp) == SLP_OK)
    {

        result = SLPFindAttrs(hslp,
                             cmdline->cmdparam1,
                             cmdline->scopes,
                             cmdline->cmdparam2,
                             myAttrCallback,
                             0);
        if(result != SLP_OK)
        {
            printf("errorcode: %i\n",result);
        }
        SLPClose(hslp);
    }               
}
コード例 #6
0
ファイル: find_srv.cpp プロジェクト: oneplus1000/sqlac
void FindAttrs(char *srv_url)

{
    SLPError    result;
    SLPHandle   hslp;

    if(SLPOpen("en",SLP_FALSE,&hslp) == SLP_OK)
    {
        //printf("xxx\n");
        result = SLPFindAttrs(hslp,
                              srv_url,
                              0,
                              0,
                              myAttrCallback,
                              0);
        //printf("xxx2\n");
        if(result != SLP_OK)
        {
            printf("errorcode: %i\n",result);
        }
        SLPClose(hslp);
    }
}