X-Git-Url: https://jfr.im/git/irc/rqf/shadowircd.git/blobdiff_plain/c7c9aa764d9cbdc653a2212e0ecad4fdf4ddcd1c..b6c85cc60b04bc75697a47a5a019e17d8dd47a47:/libratbox/src/gnutls.c diff --git a/libratbox/src/gnutls.c b/libratbox/src/gnutls.c index 51a25de..0da7748 100644 --- a/libratbox/src/gnutls.c +++ b/libratbox/src/gnutls.c @@ -20,7 +20,7 @@ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 * USA * - * $Id: gnutls.c 26092 2008-09-19 15:13:52Z androsyn $ + * $Id: gnutls.c 26296 2008-12-13 03:36:00Z androsyn $ */ #include @@ -108,27 +108,21 @@ rb_ssl_tryaccept(rb_fde_t *F, void *data) ret = do_ssl_handshake(F, rb_ssl_tryaccept); - switch (ret) - { - case -1: - F->accept->callback(F, RB_ERROR_SSL, NULL, 0, F->accept->data); - break; - case 0: - /* do_ssl_handshake does the rb_setselect stuff */ + /* do_ssl_handshake does the rb_setselect */ + if(ret == 0) return; - default: - break; - - } + ad = F->accept; + F->accept = NULL; rb_settimeout(F, 0, NULL, NULL); rb_setselect(F, RB_SELECT_READ | RB_SELECT_WRITE, NULL, NULL); + + if(ret > 0) + ad->callback(F, RB_OK, (struct sockaddr *)&ad->S, ad->addrlen, ad->data); + else + ad->callback(F, RB_ERROR_SSL, NULL, 0, ad->data); - ad = F->accept; - F->accept = NULL; - ad->callback(F, RB_OK, (struct sockaddr *)&ad->S, ad->addrlen, ad->data); rb_free(ad); - } void @@ -508,4 +502,12 @@ rb_supports_ssl(void) return 1; } +void +rb_get_ssl_info(char *buf, size_t len) +{ + rb_snprintf(buf, len, "GNUTLS: compiled (%s), library(%s)", + LIBGNUTLS_VERSION, gnutls_check_version(NULL)); +} + + #endif /* HAVE_GNUTLS */