diff options
Diffstat (limited to 'otr.h')
-rw-r--r-- | otr.h | 34 |
1 files changed, 30 insertions, 4 deletions
@@ -48,9 +48,36 @@ void cmd_otr(struct irc *, char **args); #include <libotr/message.h> #include <libotr/privkey.h> +/* representing a keygen job */ +typedef struct kg { + const char *accountname; + const char *protocol; + + struct kg *next; +} kg_t; + +/* struct to encapsulate our book keeping stuff */ +typedef struct otr { + OtrlUserState us; + pid_t keygen; /* pid of keygen slave (0 if none) */ + FILE *to; /* pipe to keygen slave */ + FILE *from; /* pipe from keygen slave */ + + /* active keygen job (NULL if none) */ + const char *sent_accountname; + const char *sent_protocol; + + /* keygen jobs waiting to be sent to slave */ + kg_t *todo; +} otr_t; + /* called from main() */ void otr_init(void); +/* called from irc_new()/irc_free() */ +otr_t *otr_new(); +void otr_free(otr_t *otr); + /* called by storage_* functions */ void otr_load(struct irc *irc); void otr_save(struct irc *irc); @@ -70,13 +97,12 @@ int otr_send_message(struct im_connection *ic, const char *handle, const char *m #else -typedef void *OtrlUserState; +typedef void otr_t; typedef void *OtrlMessageAppOps; -#define otrl_userstate_create() (NULL) -#define otrl_userstate_free(us) {} - #define otr_init() {} +#define otr_new() (NULL) +#define otr_free(otr) {} #define otr_load(irc) {} #define otr_save(irc) {} #define otr_remove(nick) {} |