summary refs log tree commit diff
path: root/state.c
diff options
context:
space:
mode:
authorJune McEnroe <june@causal.agency>2019-10-23 18:51:57 -0400
committerJune McEnroe <june@causal.agency>2019-10-23 18:51:57 -0400
commite2be3c85131896e203f7ba16d883bc61bfa09064 (patch)
treefbea6de725284cba7a7c06f5a4b28ff247eba599 /state.c
parentSend to server if client has no needs (diff)
downloadpounce-e2be3c85131896e203f7ba16d883bc61bfa09064.tar.gz
pounce-e2be3c85131896e203f7ba16d883bc61bfa09064.zip
Synchronize state after client registration
Diffstat (limited to 'state.c')
-rw-r--r--state.c23
1 files changed, 23 insertions, 0 deletions
diff --git a/state.c b/state.c
index c7d517e..161fd90 100644
--- a/state.c
+++ b/state.c
@@ -14,8 +14,10 @@
  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  */
 
+#include <assert.h>
 #include <err.h>
 #include <stdbool.h>
+#include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
 #include <sysexits.h>
@@ -128,3 +130,24 @@ void stateParse(char *line) {
 		break;
 	}
 }
+
+void stateSync(struct Client *client) {
+	char buf[4096];
+	int len = snprintf(
+		buf, sizeof(buf),
+		":%s 001 %s :%s\r\n"
+		":%s 002 %s :%s\r\n"
+		":%s 003 %s :%s\r\n"
+		":%s 004 %s %s %s %s %s\r\n",
+		intro.origin, nick, intro.welcome,
+		intro.origin, nick, intro.yourHost,
+		intro.origin, nick, intro.created,
+		intro.origin, nick,
+		intro.myInfo[0], intro.myInfo[1], intro.myInfo[2], intro.myInfo[3]
+	);
+	assert(len > 0 && (size_t)len < sizeof(buf));
+
+	// TODO: Send ISUPPORT.
+
+	clientSend(client, buf, len);
+}