#define MUTT_LIB_SYS_EVTLOOP_H
#include <lib-lib/lib-lib.h>
+#include <gnutls/gnutls.h>
typedef enum el_state {
EL_LLP_INIT,
typedef struct job_t {
int fd;
+ gnutls_session_t session;
+
el_state state : 2;
el_mode mode : 3;
el_mode emode : 3;
void (*finalize)(job_t *w, el_status);
} machine_t;
+#define EL_JOB_CHECK(expr) \
+ do { if ((expr) < 0) return -1; } while (0)
+
__must_check__ int el_job_setmode(job_t *w, el_mode);
__must_check__ int el_job_release(job_t *j, el_status);
__must_check__ int el_job_connect(job_t *w, struct sockaddr *, socklen_t len,
int type, int proto);
+__must_check__ ssize_t el_job_read(job_t *w, buffer_t *buf);
static inline job_t *el_job_start(const machine_t *m, void *cfg) {
job_t *w = job_new();