questions questions questions
First i see that a new event (libevent) is created with when a "connect" is made with a socket, the event type is EV_WRITE. why not EV_READ aswell,

/* add to our list of monitored event sources */
conn->ev = event_new(nci->eb, conn->fd, EV_WRITE,
nc_conn_evt_connected, conn);