Code: void LLAvatarProperties::sendGenericRequest(const LLUUID& avatar_id, S32 type) { if (type != APT_AVATAR_INFO && (type < APT_GROUPS || type > APT_NOTES)) { llerrs << "Invalid request type: " << type << llendl; }
if (isPendingRequest(avatar_id, type)) { LL_DEBUGS("AvatarProperties") << "Skipping duplicate request type " << type << " for avatar " << avatar_id << LL_ENDL; return; }
if (type != APT_CLASSIFIEDS && gSavedSettings.getBool("UseAgentProfileCap")) { std::string url = gAgent.getRegionCapability("AgentProfile"); if (!url.empty()) { LL_DEBUGS("AvatarProperties") << "Using AgentProfile capability to retrieve data for avatar: " << avatar_id << LL_ENDL; addPendingRequest(avatar_id, APT_GROUPS); addPendingRequest(avatar_id, APT_PICKS); addPendingRequest(avatar_id, APT_NOTES); addPendingRequest(avatar_id, APT_AVATAR_INFO); url += "/" + avatar_id.asString(); gCoros.launch("requestAgentUserInfoCoro", boost::bind(requestAvatarPropertiesCoro, avatar_id, url)); // Also request an agent groups list refresh for LLAgent. HB if (avatar_id == gAgentID) { gAgent.sendAgentDataUpdateRequest(); } return; } }
if (type == APT_AVATAR_INFO) { sendAvatarPropertiesRequest(avatar_id); return; }
addPendingRequest(avatar_id, type);
// Must match the order defined in EAvatarPropertiesUpdateType static const char* udp_methods[] = { "avatargroupsrequest", // APT_GROUPS "avatarpicksrequest", // APT_PICKS "avatarclassifiedsrequest", // APT_CLASSIFIEDS "avatarnotesrequest", // APT_NOTES }; const char* method = udp_methods[type - APT_GROUPS];
|