static char* generate_share_request_body(Share *share) { xmlChar *buf = NULL; xmlDocPtr doc; xmlNodePtr node , fnode , root; char size[16]; char body[] = "<share-content></share-content>"; doc = xmlParseMemory(body , strlen(body)); root = xmlDocGetRootElement(doc); xmlNewProp(root , BAD_CAST "id" , BAD_CAST share->guid); node = xmlNewChild(root , NULL , BAD_CAST "caps" , NULL); xmlNewProp(node , BAD_CAST "modes" , BAD_CAST "block;relay;p2p;p2pV2;relayV2;p2pV3;scV2"); xmlNewProp(node , BAD_CAST "max-size" , BAD_CAST "2097151"); node = xmlNewChild(root , NULL , BAD_CAST "client" , NULL); xmlNewProp(node , BAD_CAST "outer-ip" , BAD_CAST ""); xmlNewProp(node , BAD_CAST "inner-ip" , BAD_CAST "59.64.128.102:1429;"); xmlNewProp(node , BAD_CAST "port" , BAD_CAST "443"); node = xmlNewChild(root , NULL , BAD_CAST "fileinfo" , NULL); fnode = xmlNewChild(node , NULL , BAD_CAST "transmit" , NULL); xmlNewProp(fnode , BAD_CAST "type" , BAD_CAST "p2p"); xmlNewProp(fnode , BAD_CAST "session-id" , BAD_CAST share->sessionid); fnode = xmlNewChild(node , NULL , BAD_CAST "file" , NULL); xmlNewProp(fnode , BAD_CAST "name" , BAD_CAST share->filename); memset(size, 0, sizeof(size)); xmlNewProp(fnode , BAD_CAST "size" , BAD_CAST size); xmlNewProp(fnode , BAD_CAST "url" , BAD_CAST ""); xmlNewProp(fnode , BAD_CAST "md5" , BAD_CAST share->md5); xmlNewProp(fnode , BAD_CAST "id" , BAD_CAST share->guid); xmlNewProp(fnode , BAD_CAST "p2ptorelay" , BAD_CAST "1"); xmlNewProp(fnode , BAD_CAST "file-type" , BAD_CAST "unknown"); xmlDocDumpMemory(doc , &buf , NULL); xmlFreeDoc(doc); return xml_convert(buf); }
char* generate_send_nudge_body() { xmlChar *buf; xmlDocPtr doc; xmlNodePtr node; char body[] = "<is-composing></is-composing>"; doc = xmlParseMemory(body , strlen(body)); node = xmlDocGetRootElement(doc); node = xmlNewChild(node , NULL , BAD_CAST "state" , NULL); xmlNodeSetContent(node , BAD_CAST "nudge"); xmlDocDumpMemory(doc , &buf , NULL); xmlFreeDoc(doc); return xml_convert(buf); }
char* generate_invite_friend_body(const char* sipuri) { xmlChar *buf; xmlDocPtr doc; xmlNodePtr node; char body[] = "<args></args>"; doc = xmlParseMemory(body , strlen(body)); node = xmlDocGetRootElement(doc); node = xmlNewChild(node , NULL , BAD_CAST "contacts" , NULL); node = xmlNewChild(node , NULL , BAD_CAST "contact" , NULL); xmlNewProp(node , BAD_CAST "uri" , BAD_CAST sipuri); xmlDocDumpMemory(doc , &buf , NULL); xmlFreeDoc(doc); return xml_convert(buf); }
char* generate_create_buddylist_body(const char* name) { char args[] = "<args></args>"; xmlChar *res; xmlDocPtr doc; xmlNodePtr node; doc = xmlParseMemory(args , strlen(args)); node = xmlDocGetRootElement(doc); node = xmlNewChild(node , NULL , BAD_CAST "contacts" , NULL); node = xmlNewChild(node , NULL , BAD_CAST "buddy-lists" , NULL); node = xmlNewChild(node , NULL , BAD_CAST "buddy-list" , NULL); xmlNewProp(node , BAD_CAST "name" , BAD_CAST name); xmlDocDumpMemory(doc , &res , NULL); xmlFreeDoc(doc); return xml_convert(res); }
char* generate_delete_buddylist_body(int id) { char args[] = "<args></args>"; char ida[4]; memset(ida, 0, sizeof(ida)); sprintf(ida , "%d" , id); xmlChar *res; xmlDocPtr doc; xmlNodePtr node; doc = xmlParseMemory(args , strlen(args)); node = xmlDocGetRootElement(doc); node = xmlNewChild(node , NULL , BAD_CAST "contacts" , NULL); node = xmlNewChild(node , NULL , BAD_CAST "buddy-lists" , NULL); node = xmlNewChild(node , NULL , BAD_CAST "buddy-list" , NULL); xmlNewProp(node , BAD_CAST "id" , BAD_CAST ida); xmlDocDumpMemory(doc , &res , NULL); xmlFreeDoc(doc); return xml_convert(res); }
static gchar *generate_edit_buddylist_body(gint id , const gchar *name) { gchar args[] = "<args></args>"; gchar ids[128]; xmlChar *res; xmlDocPtr doc; xmlNodePtr node; doc = xmlParseMemory(args , strlen(args)); node = xmlDocGetRootElement(doc); node = xmlNewChild(node , NULL , BAD_CAST "contacts" , NULL); node = xmlNewChild(node , NULL , BAD_CAST "buddy-lists" , NULL); node = xmlNewChild(node , NULL , BAD_CAST "buddy-list" , NULL); xmlNewProp(node , BAD_CAST "name" , BAD_CAST name); memset(ids, 0, sizeof(ids)); snprintf(ids, sizeof(ids) - 1 , "%d" , id); xmlNewProp(node , BAD_CAST "id" , BAD_CAST ids); xmlDocDumpMemory(doc , &res , NULL); xmlFreeDoc(doc); return xml_convert(res); }