static void config_v1_write_handler(lcb_sockdata_t *sockptr,
                                    lcb_io_writebuf_t *wbuf,
                                    int status)
{
    lcb_t instance;
    lcb_connection_t conn = sockptr->lcbconn;

    if (!lcb_sockrw_v1_cb_common(sockptr, wbuf, (void **)&instance)) {
        return;
    }
    lcb_sockrw_v1_onwrite_common(sockptr, wbuf, &conn->output);
    if (status) {
        v1_error_common(instance);
    }

    lcb_sockrw_set_want(conn, LCB_READ_EVENT, 1);
    lcb_sockrw_apply_want(conn);
}
void lcb_server_v1_write_handler(lcb_sockdata_t *sockptr,
                                 lcb_io_writebuf_t *wbuf,
                                 int status)
{
    lcb_server_t *c;
    if (!lcb_sockrw_v1_cb_common(sockptr, wbuf, (void **)&c)) {
        return;
    }

    lcb_sockrw_v1_onwrite_common(sockptr, wbuf, &c->connection.output);

    c->inside_handler = 1;

    if (status) {
        event_complete_common(c, LCB_NETWORK_ERROR);
    } else {
        lcb_sockrw_set_want(&c->connection, LCB_READ_EVENT, 0);
        event_complete_common(c, LCB_SUCCESS);
    }
}
static void v1_generic_write_handler(lcb_sockdata_t *sd,
                                     lcb_io_writebuf_t *wbuf,
                                     int status)
{
    lcb_t instance;
    lcb_connection_t conn = sd->lcbconn;

    if (!lcb_sockrw_v1_cb_common(sd, wbuf, (void **)&instance)) {
        return;
    }

    lcb_sockrw_v1_onwrite_common(sd, wbuf, &sd->lcbconn->output);

    if (status) {
        conn->easy.error(conn);
    } else {
        lcb_sockrw_set_want(conn, LCB_READ_EVENT, 1);
        lcb_sockrw_apply_want(conn);
    }
}