X-Git-Url: http://git.madism.org/?p=apps%2Fmadmutt.git;a=blobdiff_plain;f=mutt_sasl.c;h=8938afa82ca6949ee091eaa943ff7d0c7fef028a;hp=dd97bfa81333ebd9f65350daec17723c42272db2;hb=20e55d4252ca2db1fc2b1099acf8393c22903575;hpb=85fd0dfe747c58f2da62074ddd90a598397a4848 diff --git a/mutt_sasl.c b/mutt_sasl.c index dd97bfa..8938afa 100644 --- a/mutt_sasl.c +++ b/mutt_sasl.c @@ -16,7 +16,7 @@ #include #include -#include +#include #include #include "mutt.h" @@ -28,7 +28,23 @@ * a protection buffer. */ #define M_SASL_MAXBUF 65536 -#define IP_PORT_BUFLEN 1024 +typedef struct { + sasl_conn_t *saslconn; + const sasl_ssf_t *ssf; + const unsigned int *pbufsize; + + /* read buffer */ + char *buf; + unsigned blen; + unsigned int bpos; + + /* underlying socket data */ + void *sockdata; + int (*msasl_open) (CONNECTION * conn); + int (*msasl_close) (CONNECTION * conn); + int (*msasl_read) (CONNECTION * conn, char *buf, ssize_t len); + int (*msasl_write) (CONNECTION * conn, const char *buf, ssize_t count); +} SASL_DATA; static sasl_callback_t mutt_sasl_callbacks[5]; @@ -115,7 +131,7 @@ int mutt_sasl_client_new (CONNECTION * conn, sasl_conn_t ** saslconn) struct sockaddr_storage local, remote; socklen_t size; - char iplocalport[IP_PORT_BUFLEN], ipremoteport[IP_PORT_BUFLEN]; + char iplocalport[STRING], ipremoteport[STRING]; const char *service; int rc; @@ -137,14 +153,14 @@ int mutt_sasl_client_new (CONNECTION * conn, sasl_conn_t ** saslconn) size = sizeof(local); if (getsockname(conn->fd, (struct sockaddr *) &local, &size) - || iptostring(&local, iplocalport, IP_PORT_BUFLEN) != SASL_OK) + || iptostring(&local, iplocalport, STRING) != SASL_OK) { return -1; } size = sizeof(remote); if (getpeername(conn->fd, (struct sockaddr *) &remote, &size) - || iptostring(&remote, ipremoteport, IP_PORT_BUFLEN) != SASL_OK) + || iptostring(&remote, ipremoteport, STRING) != SASL_OK) { return -1; } @@ -252,8 +268,8 @@ void mutt_sasl_setup_conn (CONNECTION * conn, sasl_conn_t * saslconn) conn->conn_write = mutt_sasl_conn_write; } -void mutt_sasl_done (void) { - sasl_done (); +void mutt_sasl_shutdown(void) { + sasl_done(); } /* mutt_sasl_cb_authname: callback to retrieve authname or user from ACCOUNT */