void JabberProtocol::SendUnsubscriptionRequest(string username) { XMLEntity *entity; char **atts = CreateAttributeMemory(6); // assemble attributes strcpy(atts[0], "to"); strcpy(atts[1], username.c_str()); strcpy(atts[2], "type"); strcpy(atts[3], "unsubscribe"); strcpy(atts[4], "id"); strcpy(atts[5], GenerateUniqueID().c_str()); entity = new XMLEntity("presence", (const char **)atts); // send XML command char *str = entity->ToString(); socketAdapter->SendData(BString(str)); free(str); DestroyAttributeMemory(atts, 6); delete entity; }
void JackTransportEngine::RequestNewPos(jack_position_t* pos) { jack_position_t* request = WriteNextStateStart(2); pos->unique_1 = pos->unique_2 = GenerateUniqueID(); CopyPosition(pos, request); jack_log("RequestNewPos pos = %ld", pos->frame); WriteNextStateStop(2); }
void JabberProtocol::RemoveFromRoster(UserID *removed_user) { XMLEntity *entity, *entity_query, *entity_item; char **atts = CreateAttributeMemory(4); char **atts_query = CreateAttributeMemory(2); char **atts_item = CreateAttributeMemory(6); // assemble attributes strcpy(atts[0], "type"); strcpy(atts[1], "set"); strcpy(atts[2], "id"); strcpy(atts[3], GenerateUniqueID().c_str()); strcpy(atts_query[0], "xmlns"); strcpy(atts_query[1], "jabber:iq:roster"); strcpy(atts_item[0], "jid"); strcpy(atts_item[1], removed_user->Handle().c_str()); strcpy(atts_item[2], "name"); strcpy(atts_item[3], removed_user->FriendlyName().c_str()); strcpy(atts_item[4], "subscription"); strcpy(atts_item[5], "remove"); entity = new XMLEntity("iq", (const char **)atts); entity_query = new XMLEntity("query", (const char **)atts_query); entity_item = new XMLEntity("item", (const char **)atts_item); entity_query->AddChild(entity_item); entity->AddChild(entity_query); // log command //_iq_map[atts[3]] = ROSTER; // send XML command char *str = entity->ToString(); socketAdapter->SendData(BString(str)); free(str); DestroyAttributeMemory(atts, 4); DestroyAttributeMemory(atts_query, 2); DestroyAttributeMemory(atts_item, 6); delete entity; }
void JabberProtocol::SendUserRegistration(BString username, BString password, BString resource) { XMLEntity *entity_iq, *entity_query; char **atts_iq = CreateAttributeMemory(4); char **atts_query = CreateAttributeMemory(2); // assemble attributes; strcpy(atts_iq[0], "id"); strcpy(atts_iq[1], GenerateUniqueID().c_str()); strcpy(atts_iq[2], "type"); strcpy(atts_iq[3], "set"); strcpy(atts_query[0], "xmlns"); strcpy(atts_query[1], "jabber:iq:register"); // construct XML tagset entity_iq = new XMLEntity("iq", (const char **)atts_iq); entity_query = new XMLEntity("query", (const char **)atts_query); entity_iq->AddChild(entity_query); entity_query->AddChild("username", NULL, username.String()); entity_query->AddChild("password", NULL, password.String()); entity_query->AddChild("resource", NULL, resource.String()); // log command //_iq_map[atts_iq[1]] = NEW_USER; // send XML command char *str = entity_iq->ToString(); socketAdapter->SendData(BString(str)); free(str); DestroyAttributeMemory(atts_iq, 4); DestroyAttributeMemory(atts_query, 2); delete entity_iq; }