src/protocols/gg/libgg.c

changeset 9415
fbcb89b007bb
parent 9265
4a0b6fecad64
child 9663
59a2776bbce5
--- a/src/protocols/gg/libgg.c	Sun Jun 27 17:52:05 2004 +0000
+++ b/src/protocols/gg/libgg.c	Sun Jun 27 18:19:09 2004 +0000
@@ -1,4 +1,4 @@
-/* $Id: libgg.c 10064 2004-06-11 03:58:48Z eblanton $ */
+/* $Id: libgg.c 10230 2004-06-27 18:19:09Z lschiere $ */
 
 /*
  *  (C) Copyright 2001 Wojtek Kaniewski <wojtekka@irc.pl>,
@@ -73,7 +73,7 @@
 #ifdef __GNUC__
 __attribute__ ((unused))
 #endif
-= "$Id: libgg.c 10064 2004-06-11 03:58:48Z eblanton $";
+= "$Id: libgg.c 10230 2004-06-27 18:19:09Z lschiere $";
 
 #endif 
 
@@ -592,6 +592,38 @@
 }
 
 /*
+ * gg_change_status_descr()
+ *
+ * zmienia status uøytkownika na opisowy.
+ *
+ *  - sess - opis sesji
+ *  - status - nowy status uøytkownika
+ *  - descr - opis statusu
+ *
+ * 0, -1.
+ */
+int gg_change_status_descr(struct gg_session *sess, int status, const char *descr)
+{
+	struct gg_new_status p;
+
+	gg_debug(GG_DEBUG_FUNCTION, "** gg_change_status_descr(%p, %d, \"%s\");\n", sess, status, descr);
+
+	if (!sess || !descr) {
+		errno = EFAULT;
+		return -1;
+	}
+
+	if (sess->state != GG_STATE_CONNECTED) {
+		errno = ENOTCONN;
+		return -1;
+	}
+
+	p.status = fix32(status);
+
+	return gg_send_packet(sess, GG_NEW_STATUS, &p, sizeof(p), descr, (strlen(descr) > GG_STATUS_DESCR_MAXSIZE) ? GG_STATUS_DESCR_MAXSIZE : strlen(descr), NULL);