From: Alexander Barton Date: Sat, 31 Aug 2013 12:15:09 +0000 (+0200) Subject: Show connection flag "s" (SSL) in RPL_TRACE{LINK|SERVER} X-Git-Tag: rel-21-rc1~28 X-Git-Url: https://arthur.barton.de/cgi-bin/gitweb.cgi?p=ngircd-alex.git;a=commitdiff_plain;h=04b947cdc3ad1f3370aae2ba2e7308587bea0dda Show connection flag "s" (SSL) in RPL_TRACE{LINK|SERVER} Now you can check if a server-to-server link is SSL-encrypted or not using the IRC "TRACE" command. Idea by Götz Hoffart, thanks! --- diff --git a/src/ngircd/irc.c b/src/ngircd/irc.c index d1e1d41a..968bcea6 100644 --- a/src/ngircd/irc.c +++ b/src/ngircd/irc.c @@ -450,6 +450,12 @@ Help(CLIENT *Client, const char *Topic) return CONNECTED; } +/** + * Get pointer to a static string representing the connection "options". + * + * @param Idx Connection index. + * @return Pointer to static (global) string buffer. + */ static char * #ifdef ZLIB Option_String(CONN_ID Idx) @@ -460,16 +466,22 @@ Option_String(UNUSED CONN_ID Idx) static char option_txt[8]; #ifdef ZLIB UINT16 options; - - options = Conn_Options(Idx); #endif + assert(Idx != NONE); + + options = Conn_Options(Idx); strcpy(option_txt, "F"); /* No idea what this means, but the * original ircd sends it ... */ +#ifdef SSL_SUPPORT + if(options & CONN_SSL) /* SSL encrypted link */ + strlcat(option_txt, "s", sizeof(option_txt)); +#endif #ifdef ZLIB - if(options & CONN_ZIP) /* zlib compression supported. */ - strcat(option_txt, "z"); + if(options & CONN_ZIP) /* zlib compression enabled */ + strlcat(option_txt, "z", sizeof(option_txt)); #endif + LogDebug(" *** %d: %d = %s", Idx, options, option_txt); return option_txt; } /* Option_String */