/************************************************************************************************** * @fn macBackoffTimerSetCount * * @brief Sets the count of the backoff timer. * * @param backoff - new count * * @return none ************************************************************************************************** */ MAC_INTERNAL_API void macBackoffTimerSetCount(uint32 backoff) { #if defined( FEATURE_BEACON_MODE ) halIntState_t s; MAC_ASSERT(backoff < macBackoffTimerRollover); /* count must be less than rollover value */ MAC_ASSERT(!(backoff & 0x80000000)); /* count must not represent negative value for int32 */ DBG_PRINT2(DBGSYS, "MAC_RADIO_BACKOFF_SET_COUNT(%u), RAT BACKOFF = %u", backoff, MAC_RADIO_BACKOFF_COUNT()); HAL_ENTER_CRITICAL_SECTION(s); MAC_RADIO_BACKOFF_SET_COUNT(backoff); MAC_BACKOFF_TIMER_UPDATE_WAKEUP(); HAL_EXIT_CRITICAL_SECTION(s); #endif /* FEATURE_BEACON_MODE */ }
/* * ldapu_find * Description: * Caller should free res if it is not NULL. * Arguments: * ld Pointer to LDAP (assumes connection has been * established and the client has called the * appropriate bind routine) * base basedn (where to start the search) * scope scope for the search. One of * LDAP_SCOPE_SUBTREE, LDAP_SCOPE_ONELEVEL, and * LDAP_SCOPE_BASE * filter LDAP filter * attrs A NULL-terminated array of strings indicating which * attributes to return for each matching entry. Passing * NULL for this parameter causes all available * attributes to be retrieved. * attrsonly A boolean value that should be zero if both attribute * types and values are to be returned, non-zero if only * types are wanted. * res A result parameter which will contain the results of * the search upon completion of the call. * Return Values: * LDAPU_SUCCESS if entry is found * LDAPU_FAILED if entry is not found * <rv> if error, where <rv> can be passed to * ldap_err2string to get an error string. */ int ldapu_find (LDAP *ld, const char *base, int scope, const char *filter, const char **attrs, int attrsonly, LDAPMessage **res) { int retval; #ifdef USE_THIS_CODE /* ASYNCHRONOUS */ int msgid; #endif int numEntries; *res = 0; /* If base is NULL set it to null string */ if (!base) { DBG_PRINT1("ldapu_find: basedn is missing -- assuming null string\n"); base = ""; } if (!filter || !*filter) { DBG_PRINT1("ldapu_find: filter is missing -- assuming objectclass=*\n"); filter = ldapu_strings[LDAPU_STR_FILTER_DEFAULT]; } DBG_PRINT2("\tbase:\t\"%s\"\n", base); DBG_PRINT2("\tfilter:\t\"%s\"\n", filter ? filter : "<NULL>"); DBG_PRINT2("\tscope:\t\"%s\"\n", (scope == LDAP_SCOPE_SUBTREE ? "LDAP_SCOPE_SUBTREE" : (scope == LDAP_SCOPE_ONELEVEL ? "LDAP_SCOPE_ONELEVEL" : "LDAP_SCOPE_BASE"))); retval = ldapu_search_s(ld, base, scope, filter, (char **)attrs, attrsonly, res); if (retval != LDAP_SUCCESS) { /* retval = ldap_result2error(ld, *res, 0); */ DBG_PRINT2("ldapu_search_s: %s\n", ldapu_err2string(retval)); return(retval); } numEntries = ldapu_count_entries(ld, *res); if (numEntries == 1) { /* success */ return LDAPU_SUCCESS; } else if (numEntries == 0) { /* not found -- but not an error */ DBG_PRINT1("ldapu_search_s: Entry not found\n"); return LDAPU_FAILED; } else if (numEntries > 0) { /* Found more than one entry! */ DBG_PRINT1("ldapu_search_s: Found more than one entry\n"); return LDAPU_ERR_MULTIPLE_MATCHES; } else { /* should never get here */ DBG_PRINT1("ldapu_search_s: should never reach here\n"); ldapu_msgfree(ld, *res); return LDAP_OPERATIONS_ERROR; } }