/***************************************************************************** * sout_SLDePReg: Unregisters the program from SLP *****************************************************************************/ int sout_SLPDereg( sout_instance_t *p_sout, char * psz_url, char * psz_name) { #ifdef HAVE_SLP_H SLPHandle slp_handle; SLPError slp_res; char *psz_service= sout_SLPBuildName(psz_url,psz_name); if( SLPOpen( NULL, SLP_FALSE, &slp_handle ) != SLP_OK) { msg_Warn(p_sout,"Unable to initialize SLP"); return -1; } msg_Info(p_sout , "Unregistering %s from SLP", psz_service); slp_res = SLPDereg ( slp_handle, psz_service, sout_SLPReport, NULL ); if( slp_res != SLP_OK ) { msg_Warn(p_sout,"Error while registering service: %i", slp_res ); return -1; } return 0; #else /* This function should never be called if this is false */ return -1; #endif }
void slapd_slp_dereg() { int i; if( slapd_srvurls == NULL ) return; for( i=0; slapd_srvurls[i] != NULL; i++ ) { SLPDereg( slapd_hslp, slapd_srvurls[i], slapd_slp_regreport, NULL ); } }
void Deregister(SLPToolCommandLine * cmdline) { SLPError result; SLPHandle hslp; if (SLPOpen(cmdline->lang, SLP_FALSE, &hslp) == SLP_OK) { result = SLPDereg(hslp, cmdline->cmdparam1, mySLPRegReport, 0); if (result != SLP_OK) printf("errorcode: %i\n", result); SLPClose(hslp); } }
/*-------------------------------------------------------------------------*/ int SlpPerfTest1_slpdereg (SLPHandle hslp, SLPList* service_list, double* ave_slpdereg, int* count_slpdereg) /*-------------------------------------------------------------------------*/ { 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 */ errorcode = SLPDereg(hslp, srv->serviceurl, SlpPerfTest1_deregreport, srv); if(errorcode != SLP_OK) { printf("SLPDereg(hslp,%s,callback,0) returned %i\n", srv->serviceurl, errorcode); printf("This should not happen!\n"); return -1; } /* mark end time */ gettimeofday(&end,&tz); /* unlink the registered service from the list and free it*/ free(SLPListUnlink(service_list,(SLPListItem*)srv)); /* recalculate average time */ *ave_slpdereg = (*ave_slpdereg) * (*count_slpdereg) + ElapsedTime(&start,&end); *count_slpdereg = *count_slpdereg + 1; *ave_slpdereg = *ave_slpdereg / *count_slpdereg; return 0; }
/*-------------------------------------------------------------------------*/ int SlpPerfTest1_slpderegall (SLPHandle hslp, SLPList* service_list, double* ave_slpdereg, int* count_slpdereg) /*-------------------------------------------------------------------------*/ { SLPError errorcode; TestService_T* srv; srv = (TestService_T*)service_list->head; while(srv) { errorcode = SLPDereg(hslp, srv->serviceurl, SlpPerfTest1_deregreport, srv); srv = (TestService_T*)srv->listitem.next; } return errorcode; }