summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMaxim Biro <nurupo.contributions@gmail.com>2014-02-21 20:30:38 -0500
committerMaxim Biro <nurupo.contributions@gmail.com>2014-02-21 20:30:38 -0500
commit36adc48b781105e55790d0049fec1b190104e480 (patch)
treeaae758d3bc439fcc9a86b3ad994cd87dbea9e894
parent554afe11d7c3e286b6f286405a1a1857b9f55c81 (diff)
Added size functions for names and status messages
-rw-r--r--toxcore/Messenger.c21
-rw-r--r--toxcore/Messenger.h11
-rw-r--r--toxcore/tox.c25
-rw-r--r--toxcore/tox.h11
4 files changed, 62 insertions, 6 deletions
diff --git a/toxcore/Messenger.c b/toxcore/Messenger.c
index 9f75f89f..e3dcf2a1 100644
--- a/toxcore/Messenger.c
+++ b/toxcore/Messenger.c
@@ -533,6 +533,19 @@ int getname(Messenger *m, int32_t friendnumber, uint8_t *name)
533 return m->friendlist[friendnumber].name_length; 533 return m->friendlist[friendnumber].name_length;
534} 534}
535 535
536int m_get_name_size(Messenger *m, int32_t friendnumber)
537{
538 if (friend_not_valid(m, friendnumber))
539 return -1;
540
541 return m->friendlist[friendnumber].name_length;
542}
543
544int m_get_self_name_size(Messenger *m)
545{
546 return m->name_length;
547}
548
536int m_set_statusmessage(Messenger *m, uint8_t *status, uint16_t length) 549int m_set_statusmessage(Messenger *m, uint8_t *status, uint16_t length)
537{ 550{
538 if (length > MAX_STATUSMESSAGE_LENGTH) 551 if (length > MAX_STATUSMESSAGE_LENGTH)
@@ -588,6 +601,14 @@ int m_copy_statusmessage(Messenger *m, int32_t friendnumber, uint8_t *buf, uint3
588 return MIN(maxlen, m->friendlist[friendnumber].statusmessage_length); 601 return MIN(maxlen, m->friendlist[friendnumber].statusmessage_length);
589} 602}
590 603
604/* return the size of friendnumber's user status.
605 * Guaranteed to be at most MAX_STATUSMESSAGE_LENGTH.
606 */
607int m_get_self_statusmessage_size(Messenger *m)
608{
609 return m->statusmessage_length;
610}
611
591int m_copy_self_statusmessage(Messenger *m, uint8_t *buf, uint32_t maxlen) 612int m_copy_self_statusmessage(Messenger *m, uint8_t *buf, uint32_t maxlen)
592{ 613{
593 memset(buf, 0, maxlen); 614 memset(buf, 0, maxlen);
diff --git a/toxcore/Messenger.h b/toxcore/Messenger.h
index 8474bbe7..88e5e19d 100644
--- a/toxcore/Messenger.h
+++ b/toxcore/Messenger.h
@@ -370,6 +370,12 @@ uint16_t getself_name(Messenger *m, uint8_t *name);
370 */ 370 */
371int getname(Messenger *m, int32_t friendnumber, uint8_t *name); 371int getname(Messenger *m, int32_t friendnumber, uint8_t *name);
372 372
373/* return the length of name, including null on success.
374 * return -1 on failure.
375 */
376int m_get_name_size(Messenger *m, int32_t friendnumber);
377int m_get_self_name_size(Messenger *m);
378
373/* returns valid ip port of connected friend on success 379/* returns valid ip port of connected friend on success
374 * returns zeroed out IP_Port on failure 380 * returns zeroed out IP_Port on failure
375 */ 381 */
@@ -384,10 +390,11 @@ IP_Port get_friend_ipport(Messenger *m, int32_t friendnumber);
384int m_set_statusmessage(Messenger *m, uint8_t *status, uint16_t length); 390int m_set_statusmessage(Messenger *m, uint8_t *status, uint16_t length);
385int m_set_userstatus(Messenger *m, USERSTATUS status); 391int m_set_userstatus(Messenger *m, USERSTATUS status);
386 392
387/* return the length of friendnumber's status message, including null. 393/* return the length of friendnumber's status message, including null on success.
388 * Pass it into malloc. 394 * return -1 on failure.
389 */ 395 */
390int m_get_statusmessage_size(Messenger *m, int32_t friendnumber); 396int m_get_statusmessage_size(Messenger *m, int32_t friendnumber);
397int m_get_self_statusmessage_size(Messenger *m);
391 398
392/* Copy friendnumber's status message into buf, truncating if size is over maxlen. 399/* Copy friendnumber's status message into buf, truncating if size is over maxlen.
393 * Get the size you need to allocate from m_get_statusmessage_size. 400 * Get the size you need to allocate from m_get_statusmessage_size.
diff --git a/toxcore/tox.c b/toxcore/tox.c
index ae824697..f91879ea 100644
--- a/toxcore/tox.c
+++ b/toxcore/tox.c
@@ -210,6 +210,21 @@ int tox_get_name(Tox *tox, int32_t friendnumber, uint8_t *name)
210 return getname(m, friendnumber, name); 210 return getname(m, friendnumber, name);
211} 211}
212 212
213/* returns the length of name on success.
214 * returns -1 on failure.
215 */
216int tox_get_name_size(Tox *tox, int32_t friendnumber)
217{
218 Messenger *m = tox;
219 return m_get_name_size(m, friendnumber);
220}
221
222int tox_get_self_name_size(Tox *tox)
223{
224 Messenger *m = tox;
225 return m_get_self_name_size(m);
226}
227
213/* Set our user status; 228/* Set our user status;
214 * you are responsible for freeing status after. 229 * you are responsible for freeing status after.
215 * 230 *
@@ -227,8 +242,8 @@ int tox_set_user_status(Tox *tox, TOX_USERSTATUS status)
227 return m_set_userstatus(m, status); 242 return m_set_userstatus(m, status);
228} 243}
229 244
230/* return the length of friendnumber's status message, including null. 245/* returns the length of status message on success.
231 * Pass it into malloc. 246 * returns -1 on failure.
232 */ 247 */
233int tox_get_status_message_size(Tox *tox, int32_t friendnumber) 248int tox_get_status_message_size(Tox *tox, int32_t friendnumber)
234{ 249{
@@ -236,6 +251,12 @@ int tox_get_status_message_size(Tox *tox, int32_t friendnumber)
236 return m_get_statusmessage_size(m, friendnumber); 251 return m_get_statusmessage_size(m, friendnumber);
237} 252}
238 253
254int tox_get_self_status_message_size(Tox *tox)
255{
256 Messenger *m = tox;
257 return m_get_self_statusmessage_size(m, friendnumber);
258}
259
239/* Copy friendnumber's status message into buf, truncating if size is over maxlen. 260/* Copy friendnumber's status message into buf, truncating if size is over maxlen.
240 * Get the size you need to allocate from m_get_statusmessage_size. 261 * Get the size you need to allocate from m_get_statusmessage_size.
241 * The self variant will copy our own status message. 262 * The self variant will copy our own status message.
diff --git a/toxcore/tox.h b/toxcore/tox.h
index 348ef6e5..17bd4e1a 100644
--- a/toxcore/tox.h
+++ b/toxcore/tox.h
@@ -223,6 +223,12 @@ uint16_t tox_get_self_name(Tox *tox, uint8_t *name);
223 */ 223 */
224int tox_get_name(Tox *tox, int32_t friendnumber, uint8_t *name); 224int tox_get_name(Tox *tox, int32_t friendnumber, uint8_t *name);
225 225
226/* returns the length of name on success.
227 * returns -1 on failure.
228 */
229int tox_get_name_size(Tox *tox, int32_t friendnumber);
230int tox_get_self_name_size(Tox *tox);
231
226/* Set our user status. 232/* Set our user status.
227 * You are responsible for freeing status after. 233 * You are responsible for freeing status after.
228 * 234 *
@@ -234,10 +240,11 @@ int tox_get_name(Tox *tox, int32_t friendnumber, uint8_t *name);
234int tox_set_status_message(Tox *tox, uint8_t *status, uint16_t length); 240int tox_set_status_message(Tox *tox, uint8_t *status, uint16_t length);
235int tox_set_user_status(Tox *tox, TOX_USERSTATUS userstatus); 241int tox_set_user_status(Tox *tox, TOX_USERSTATUS userstatus);
236 242
237/* return the length of friendnumber's status message. 243/* returns the length of status message on success.
238 * Pass it into malloc 244 * returns -1 on failure.
239 */ 245 */
240int tox_get_status_message_size(Tox *tox, int32_t friendnumber); 246int tox_get_status_message_size(Tox *tox, int32_t friendnumber);
247int tox_get_self_status_message_size(Tox *tox);
241 248
242/* Copy friendnumber's status message into buf, truncating if size is over maxlen. 249/* Copy friendnumber's status message into buf, truncating if size is over maxlen.
243 * Get the size you need to allocate from m_get_statusmessage_size. 250 * Get the size you need to allocate from m_get_statusmessage_size.