Module: ngircd.git Branch: master Commit: 04b947cdc3ad1f3370aae2ba2e7308587bea0dda URL: http://ngircd.barton.de/cgi-bin/gitweb.cgi?p=ngircd.git&a=commit;h=04b94...
Author: Alexander Barton alex@barton.de Date: Sat Aug 31 14:15:09 2013 +0200
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!
---
src/ngircd/irc.c | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-)
diff --git a/src/ngircd/irc.c b/src/ngircd/irc.c index d1e1d41..968bcea 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 */