Further pop_mx_ng work
[apps/madmutt.git] / lib-sys / evtloop.h
index 961390a..e9eff3a 100644 (file)
@@ -24,6 +24,7 @@
 #include <lib-lib/lib-lib.h>
 #include <gnutls/gnutls.h>
 #include <sys/socket.h>
+#include "account.h"
 
 typedef enum el_state {
     EL_LLP_INIT,
@@ -58,13 +59,14 @@ typedef struct job_t {
     int fd;
     int ssf;
 
-    gnutls_session_t session;
-    gnutls_certificate_credentials_t xcred;
-
+    unsigned cond  : 1;
     el_state state : 2;
     el_mode  mode  : 3;
     el_mode  emode : 3;
 
+    gnutls_session_t session;
+    gnutls_certificate_credentials_t xcred;
+
     struct timeval mru;
     int (*llp)(struct job_t *);
     const struct machine_t *m;
@@ -91,12 +93,14 @@ __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, int ssl);
+__must_check__ int el_job_connect2(job_t *w, const ACCOUNT *);
 __must_check__ int el_job_starttls(job_t *w);
 __must_check__ ssize_t el_job_read(job_t *w, buffer_t *buf);
 __must_check__ ssize_t el_job_write(job_t *w, buffer_t *buf);
 
 void el_lock(void);
 void el_unlock(void);
+void el_wait(volatile job_t *w);
 
 int el_dispatch(int timeout);