Hi,

Can we get rid of those casts in relayd by not declaring a void
pointer for struct rsession?  That way the compiler can do its job
and enforce correct types.

ok?

bluhm


Index: usr.sbin/relayd/relay.c
===================================================================
RCS file: /data/mirror/openbsd/cvs/src/usr.sbin/relayd/relay.c,v
retrieving revision 1.133
diff -u -p -r1.133 relay.c
--- usr.sbin/relayd/relay.c     12 Apr 2011 12:37:22 -0000      1.133
+++ usr.sbin/relayd/relay.c     22 Apr 2011 13:37:11 -0000
@@ -907,7 +907,7 @@ void
 relay_write(struct bufferevent *bev, void *arg)
 {
        struct ctl_relay_event  *cre = (struct ctl_relay_event *)arg;
-       struct rsession         *con = (struct rsession *)cre->con;
+       struct rsession         *con = cre->con;
        if (gettimeofday(&con->se_tv_last, NULL) == -1)
                con->se_done = 1;
        if (con->se_done)
@@ -936,7 +936,7 @@ void
 relay_read(struct bufferevent *bev, void *arg)
 {
        struct ctl_relay_event  *cre = (struct ctl_relay_event *)arg;
-       struct rsession         *con = (struct rsession *)cre->con;
+       struct rsession         *con = cre->con;
        struct evbuffer         *src = EVBUFFER_INPUT(bev);
 
        if (gettimeofday(&con->se_tv_last, NULL) == -1)
@@ -961,7 +961,7 @@ int
 relay_resolve(struct ctl_relay_event *cre,
     struct protonode *proot, struct protonode *pn)
 {
-       struct rsession         *con = (struct rsession *)cre->con;
+       struct rsession         *con = cre->con;
        char                     buf[IBUF_READ_SIZE], *ptr;
        int                      id;
 
@@ -1028,7 +1028,7 @@ relay_resolve(struct ctl_relay_event *cr
 char *
 relay_expand_http(struct ctl_relay_event *cre, char *val, char *buf, size_t 
len)
 {
-       struct rsession *con = (struct rsession *)cre->con;
+       struct rsession *con = cre->con;
        struct relay    *rlay = (struct relay *)con->se_relay;
        char             ibuf[128];
 
@@ -1105,7 +1105,7 @@ int
 relay_handle_http(struct ctl_relay_event *cre, struct protonode *proot,
     struct protonode *pn, struct protonode *pk, int header)
 {
-       struct rsession         *con = (struct rsession *)cre->con;
+       struct rsession         *con = cre->con;
        char                     buf[IBUF_READ_SIZE], *ptr;
        int                      ret = PN_DROP, mark = 0;
        struct protonode        *next;
@@ -1221,7 +1221,7 @@ void
 relay_read_httpcontent(struct bufferevent *bev, void *arg)
 {
        struct ctl_relay_event  *cre = (struct ctl_relay_event *)arg;
-       struct rsession         *con = (struct rsession *)cre->con;
+       struct rsession         *con = cre->con;
        struct evbuffer         *src = EVBUFFER_INPUT(bev);
        size_t                   size;
 
@@ -1256,7 +1256,7 @@ void
 relay_read_httpchunks(struct bufferevent *bev, void *arg)
 {
        struct ctl_relay_event  *cre = (struct ctl_relay_event *)arg;
-       struct rsession         *con = (struct rsession *)cre->con;
+       struct rsession         *con = cre->con;
        struct evbuffer         *src = EVBUFFER_INPUT(bev);
        char                    *line;
        long                     lval;
@@ -1374,7 +1374,7 @@ void
 relay_read_http(struct bufferevent *bev, void *arg)
 {
        struct ctl_relay_event  *cre = (struct ctl_relay_event *)arg;
-       struct rsession         *con = (struct rsession *)cre->con;
+       struct rsession         *con = cre->con;
        struct relay            *rlay = (struct relay *)con->se_relay;
        struct protocol         *proto = rlay->rl_proto;
        struct evbuffer         *src = EVBUFFER_INPUT(bev);
@@ -1672,7 +1672,7 @@ static int
 _relay_lookup_url(struct ctl_relay_event *cre, char *host, char *path,
     char *query, enum digest_type type)
 {
-       struct rsession         *con = (struct rsession *)cre->con;
+       struct rsession         *con = cre->con;
        struct protonode        *proot, *pnv, pkv;
        char                    *val, *md = NULL;
        int                      ret = PN_FAIL;
@@ -1726,7 +1726,7 @@ int
 relay_lookup_url(struct ctl_relay_event *cre, const char *str,
     enum digest_type type)
 {
-       struct rsession *con = (struct rsession *)cre->con;
+       struct rsession *con = cre->con;
        int              i, j, dots;
        char            *hi[RELAY_MAXLOOKUPLEVELS], *p, *pp, *c, ch;
        char             ph[MAXHOSTNAMELEN];
@@ -1803,7 +1803,7 @@ relay_lookup_url(struct ctl_relay_event 
 int
 relay_lookup_query(struct ctl_relay_event *cre)
 {
-       struct rsession         *con = (struct rsession *)cre->con;
+       struct rsession         *con = cre->con;
        struct protonode        *proot, *pnv, pkv;
        char                    *val, *ptr;
        int                      ret;
@@ -1846,7 +1846,7 @@ relay_lookup_query(struct ctl_relay_even
 int
 relay_lookup_cookie(struct ctl_relay_event *cre, const char *str)
 {
-       struct rsession         *con = (struct rsession *)cre->con;
+       struct rsession         *con = cre->con;
        struct protonode        *proot, *pnv, pkv;
        char                    *val, *ptr;
        int                      ret;
@@ -1982,7 +1982,7 @@ relay_close_http(struct rsession *con, u
 int
 relay_splicelen(struct ctl_relay_event *cre)
 {
-       struct rsession *con = (struct rsession *)cre->con;
+       struct rsession *con = cre->con;
        off_t len;
        socklen_t optlen;
 
@@ -2002,7 +2002,7 @@ void
 relay_error(struct bufferevent *bev, short error, void *arg)
 {
        struct ctl_relay_event *cre = (struct ctl_relay_event *)arg;
-       struct rsession *con = (struct rsession *)cre->con;
+       struct rsession *con = cre->con;
        struct evbuffer *dst;
        struct timeval tv, tv_now;
 
@@ -2061,8 +2061,7 @@ relay_accept(int fd, short sig, void *ar
        if (fcntl(s, F_SETFL, O_NONBLOCK) == -1)
                goto err;
 
-       if ((con = (struct rsession *)
-           calloc(1, sizeof(struct rsession))) == NULL)
+       if ((con = calloc(1, sizeof(*con))) == NULL)
                goto err;
 
        con->se_in.s = s;
@@ -2354,7 +2353,7 @@ relay_bindany(int fd, short event, void 
                return;
        }
 
-       if (relay_connect((struct rsession *)con) == -1)
+       if (relay_connect(con) == -1)
                relay_close(con, "session failed");
 }
 
@@ -2979,7 +2978,7 @@ relay_ssl_readcb(int fd, short event, vo
 {
        struct bufferevent *bufev = arg;
        struct ctl_relay_event *cre = (struct ctl_relay_event *)bufev->cbarg;
-       struct rsession *con = (struct rsession *)cre->con;
+       struct rsession *con = cre->con;
        struct relay *rlay = (struct relay *)con->se_relay;
        int ret = 0, ssl_err = 0;
        short what = EVBUFFER_READ;
@@ -3054,7 +3053,7 @@ relay_ssl_writecb(int fd, short event, v
 {
        struct bufferevent *bufev = arg;
        struct ctl_relay_event *cre = (struct ctl_relay_event *)bufev->cbarg;
-       struct rsession *con = (struct rsession *)cre->con;
+       struct rsession *con = cre->con;
        struct relay *rlay = (struct relay *)con->se_relay;
        int ret = 0, ssl_err;
        short what = EVBUFFER_WRITE;
Index: usr.sbin/relayd/relayd.h
===================================================================
RCS file: /data/mirror/openbsd/cvs/src/usr.sbin/relayd/relayd.h,v
retrieving revision 1.143
diff -u -p -r1.143 relayd.h
--- usr.sbin/relayd/relayd.h    12 Apr 2011 12:37:22 -0000      1.143
+++ usr.sbin/relayd/relayd.h    22 Apr 2011 12:08:09 -0000
@@ -153,7 +153,7 @@ struct ctl_relay_event {
        struct bufferevent      *bev;
        struct evbuffer         *output;
        struct ctl_relay_event  *dst;
-       void                    *con;
+       struct rsession         *con;
        SSL                     *ssl;
        u_int8_t                *nodes;
        struct proto_tree       *tree;

Reply via email to