This bug was causing secchan to leak a little bit of memory on almost every
connection close. This is most visible when openflow-monitor is running,
because openflow-monitor connects to secchan once per second.
static int do_ssl_init(void);
static bool ssl_wants_io(int ssl_error);
static void ssl_close(struct vconn *);
+static void ssl_clear_txbuf(struct ssl_vconn *);
static int interpret_ssl_error(const char *function, int ret, int error,
int *want);
static void ssl_tx_poll_callback(int fd, short int revents, void *vconn_);
{
struct ssl_vconn *sslv = ssl_vconn_cast(vconn);
poll_cancel(sslv->tx_waiter);
+ ssl_clear_txbuf(sslv);
+ ofpbuf_delete(sslv->rxbuf);
SSL_free(sslv->ssl);
close(sslv->fd);
free(sslv);
static struct vlog_rate_limit rl = VLOG_RATE_LIMIT_INIT(10, 25);
+static void stream_clear_txbuf(struct stream_vconn *);
+
int
new_stream_vconn(const char *name, int fd, int connect_status,
uint32_t ip, struct vconn **vconnp)
{
struct stream_vconn *s = stream_vconn_cast(vconn);
poll_cancel(s->tx_waiter);
+ stream_clear_txbuf(s);
+ ofpbuf_delete(s->rxbuf);
close(s->fd);
free(s);
}