commit 0388b56b659378d06da4d3ae5b44ec1b11d53374 from: Omar Polo date: Wed Jan 31 12:53:36 2024 UTC net: switch to new imsg apis commit - 186a1eec82f03f9e24c4095c0a31f4a10de19c88 commit + 0388b56b659378d06da4d3ae5b44ec1b11d53374 blob - 92e56f67f76e65aaa37c8de91230b7ee17e21a7b blob + ee328d475bdb5b22bfa532dbe9d5537a7d91ee0d --- net.c +++ net.c @@ -633,8 +633,7 @@ handle_dispatch_imsg(int fd, short event, void *d) struct imsgbuf *ibuf = &iev->ibuf; struct imsg imsg; struct req *req; - struct get_req *r; - size_t datalen; + struct get_req r; ssize_t n; int certok; @@ -656,41 +655,39 @@ handle_dispatch_imsg(int fd, short event, void *d) err(1, "imsg_get"); if (n == 0) break; - datalen = IMSG_DATA_SIZE(imsg); - switch (imsg.hdr.type) { + switch (imsg_get_type(&imsg)) { case IMSG_GET: - r = imsg.data; - if (datalen != sizeof(*r) || - r->host[sizeof(r->host) - 1] != '\0' || - r->port[sizeof(r->port) - 1] != '\0' || - r->req[sizeof(r->req) - 1] != '\0') + if (imsg_get_data(&imsg, &r, sizeof(r)) == -1 || + r.host[sizeof(r.host) - 1] != '\0' || + r.port[sizeof(r.port) - 1] != '\0' || + r.req[sizeof(r.req) - 1] != '\0') die(); - if (r->proto != PROTO_FINGER && - r->proto != PROTO_GEMINI && - r->proto != PROTO_GOPHER) + if (r.proto != PROTO_FINGER && + r.proto != PROTO_GEMINI && + r.proto != PROTO_GOPHER) die(); if ((req = calloc(1, sizeof(*req))) == NULL) die(); - req->id = imsg.hdr.peerid; + req->id = imsg_get_id(&imsg); TAILQ_INSERT_HEAD(&reqhead, req, reqs); - if ((req->host = strdup(r->host)) == NULL) + if ((req->host = strdup(r.host)) == NULL) die(); - if ((req->port = strdup(r->port)) == NULL) + if ((req->port = strdup(r.port)) == NULL) die(); - if ((req->req = strdup(r->req)) == NULL) + if ((req->req = strdup(r.req)) == NULL) die(); req->len = strlen(req->req); - req->proto = r->proto; + req->proto = r.proto; conn_towards(req); break; case IMSG_CERT_STATUS: - if ((req = req_by_id(imsg.hdr.peerid)) == NULL) + if ((req = req_by_id(imsg_get_id(&imsg))) == NULL) break; if (imsg_get_data(&imsg, &certok, sizeof(certok)) == @@ -703,13 +700,13 @@ handle_dispatch_imsg(int fd, short event, void *d) break; case IMSG_PROCEED: - if ((req = req_by_id(imsg.hdr.peerid)) == NULL) + if ((req = req_by_id(imsg_get_id(&imsg))) == NULL) break; bufferevent_enable(req->bev, EV_READ); break; case IMSG_STOP: - if ((req = req_by_id(imsg.hdr.peerid)) == NULL) + if ((req = req_by_id(imsg_get_id(&imsg))) == NULL) break; close_conn(0, 0, req); break; @@ -720,7 +717,7 @@ handle_dispatch_imsg(int fd, short event, void *d) return; default: - errx(1, "got unknown imsg %d", imsg.hdr.type); + errx(1, "got unknown imsg %d", imsg_get_type(&imsg)); } imsg_free(&imsg);