comparison libpurple/protocols/jabber/auth.h @ 28725:4f45aae3ace1

Let's try a more complex set of return states / values for auth mechs. This won't build with Cyrus support yet.
author Paul Aurich <paul@darkrain42.org>
date Tue, 01 Dec 2009 07:32:53 +0000
parents c1d41b7484ff
children b94fd073187c
comparison
equal deleted inserted replaced
28724:554ae3e78952 28725:4f45aae3ace1
27 typedef struct _JabberSaslMech JabberSaslMech; 27 typedef struct _JabberSaslMech JabberSaslMech;
28 28
29 #include "jabber.h" 29 #include "jabber.h"
30 #include "xmlnode.h" 30 #include "xmlnode.h"
31 31
32 typedef enum {
33 JABBER_SASL_STATE_FAIL = -1, /* Abort, Retry, Fail? */
34 JABBER_SASL_STATE_OK = 0, /* Hooray! */
35 JABBER_SASL_STATE_CONTINUE = 1 /* More authentication required */
36 } JabberSaslState;
37
32 struct _JabberSaslMech { 38 struct _JabberSaslMech {
33 gint8 priority; /* Higher priority will be tried before lower priority */ 39 gint8 priority; /* Higher priority will be tried before lower priority */
34 const gchar *name; 40 const gchar *name;
35 xmlnode *(*start)(JabberStream *js, xmlnode *mechanisms); 41 JabberSaslState (*start)(JabberStream *js, xmlnode *mechanisms, xmlnode **reply, const char **msg);
36 xmlnode *(*handle_challenge)(JabberStream *js, xmlnode *packet); 42 JabberSaslState (*handle_challenge)(JabberStream *js, xmlnode *packet, xmlnode **reply, const char **msg);
37 gboolean (*handle_success)(JabberStream *js, xmlnode *packet); 43 JabberSaslState (*handle_success)(JabberStream *js, xmlnode *packet, const char **msg);
38 xmlnode *(*handle_failure)(JabberStream *js, xmlnode *packet); 44 JabberSaslState (*handle_failure)(JabberStream *js, xmlnode *packet, xmlnode **reply, const char **msg);
39 void (*dispose)(JabberStream *js); 45 void (*dispose)(JabberStream *js);
40 }; 46 };
41 47
42 gboolean jabber_process_starttls(JabberStream *js, xmlnode *packet); 48 gboolean jabber_process_starttls(JabberStream *js, xmlnode *packet);
43 void jabber_auth_start(JabberStream *js, xmlnode *packet); 49 void jabber_auth_start(JabberStream *js, xmlnode *packet);