void find_srv::FindSrvs_URL(char* Asrvtype) { SLPError result; SLPHandle hslp; SLPError callbackerr; if(SLPOpen("en",SLP_FALSE,&hslp) == SLP_OK) { //printf("\ntest\n"); result = SLPFindSrvs(hslp, Asrvtype, 0, 0, mySrvUrlCallback, &callbackerr); //printf("\ntest2\n"); if(result != SLP_OK) { printf("errorcode: %i\n",result); } SLPClose(hslp); } }
void FindSrvs(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 = SLPFindSrvs(hslp, cmdline->cmdparam1, cmdline->scopes, cmdline->cmdparam2, mySrvUrlCallback, 0); if (result != SLP_OK) printf("errorcode: %i\n", result); SLPClose(hslp); } }
bp::object SLP::discover( const bp::object &srvtype, const bp::object &scopelist, const bp::object &filter, const bp::object &async) { std::string std_srvtype = StringConv::asStdString(srvtype, "srvtype"); std::string std_scopelist = StringConv::asStdString(scopelist, "scopelist"); std::string std_filter = StringConv::asStdString(filter, "filter"); 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 services. SLPError err; bp::list srvs; if ((err = SLPFindSrvs( hslp, std_srvtype.c_str(), std_scopelist.c_str(), std_filter.c_str(), SLP::urlCallback, static_cast<void*>(&srvs))) != SLP_OK) { throw_SLPError("SLP discovery failed", static_cast<int>(err)); } return srvs; }
/*-------------------------------------------------------------------------*/ int SlpPerfTest1_slpfindsrvs (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 = SLPFindSrvs(hslp, srv->servicetype, 0, 0, SlpPerfTest1_slpsrvurlcallback, &found); if(errorcode != SLP_OK) { printf("SLPFindSrvs(hslp,%s,0,0,callback,%i) returned %i\n", srv->servicetype, found, errorcode); printf("This should not happen!\n"); return -1; } if(found <= 0) { printf("Did not find any services on SLPFindSrvs(). This is bad\n"); return -1; } return 0; }
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); }
/*=========================================================================*/ void FindSrvs(SLPToolCommandLine* cmdline) /*=========================================================================*/ { SLPError result; SLPHandle hslp; if(SLPOpen(cmdline->lang,SLP_FALSE,&hslp) == SLP_OK) { result = SLPFindSrvs(hslp, cmdline->cmdparam1, cmdline->scopes, cmdline->cmdparam2, mySrvUrlCallback, 0); if(result != SLP_OK) { printf("errorcode: %i\n",result); } SLPClose(hslp); } }
int main (int argc, char *argv[]) { SLPError err; SLPError callbackerr; SLPHandle hslp; err = SLPOpen ("en", SLP_FALSE, &hslp); check_error_state(err,"Error opening slp handle."); err = SLPFindSrvs ( hslp, argv[1], 0, /* use configured scopes */ 0, /* no attr filter */ MySLPSrvURLCallback, &callbackerr); check_error_state(err, "Error registering service with slp."); /* Now that we're done using slp, close the slp handle */ SLPClose (hslp); return(0); }