shithub: svc

Download patch

ref: 50bc9f2c47441facf926715dca4e73da381d6a5d
parent: 2b69733d8c24af32a3e89fcf587e6a7409d179d6
author: Michael Misch <michaelmisch1985@gmail.com>
date: Thu Feb 19 02:22:44 EST 2026

Get IRC mostly there

--- a/convS2C.c
+++ b/convS2C.c
@@ -27,6 +27,7 @@
 
 	s.fn = (*parse_cmd);
 	s.cmd.type = ErrorCmd;
+	s.cmd.data = "";
 	s.base = c;
 	s.size = n;
 	for(;;){
--- a/service.c
+++ b/service.c
@@ -425,10 +425,15 @@
 			respond(r, "not implemented yet");
 			goto Out;
 		}
+		if(!cmd.data){
+			respond(r, "expected data");
+			goto Out;
+		}
 		if(b = bufferSearch(f->svc->base, cmd.buffer)) {
 			qlock(&b->l);
 			switch(cmd.type){
 			case FeedCmd:
+
 				d = dirfstat(b->fd);
 				pwrite(b->fd, cmd.data, strlen(cmd.data), d->length);
 				free(d);
@@ -465,7 +470,7 @@
 	for(i = 0; i < nservice; i++)
 		if(service[i].ref > 0)
 			if((bufferSearchTag(service[i].base, r->tag))){
-				memset(&cmd, 0, CmdSize);
+				memset(&cmd, 0, sizeof(Cmd));
 				cmd.type = FlushCmd;
 				send(service[i].cmds, &cmd);
 				break;
--