added ssl cipher notice on connect
authorpk910 <philipp@zoelle1.de>
Sun, 8 Nov 2015 18:55:34 +0000 (19:55 +0100)
committerpk910 <philipp@zoelle1.de>
Sun, 8 Nov 2015 18:55:34 +0000 (19:55 +0100)
include/ssl.h
ircd/s_user.c
ircd/ssl.c

index dc910b1aaa587e5e7944b22ab5eef2e45c9bc7ac..db4cad0f50fcc46f363a36e8e08e1034a80c5cca 100644 (file)
@@ -94,4 +94,6 @@ IOResult ssl_send_encrypt(struct SSLConnection *connection, struct MsgQ* buf, un
 IOResult ssl_send_encrypt_plain(struct SSLConnection *connection, char *buf, int len);
 extern int ssl_connection_flush(struct SSLConnection *connection);
 
 IOResult ssl_send_encrypt_plain(struct SSLConnection *connection, char *buf, int len);
 extern int ssl_connection_flush(struct SSLConnection *connection);
 
+extern const char* ssl_get_cipher(struct SSLConnection *connection);
+
 #endif /* INCLUDED_parse_h */
 #endif /* INCLUDED_parse_h */
index 632e185b5348bfa146b473cf193342ff7743f448..9853ed237b74e818dfa53267eaaf08767595e065 100644 (file)
@@ -399,6 +399,9 @@ int register_user(struct Client *cptr, struct Client *sptr)
     
     if(cli_connect(sptr)->con_ssl) {
       SetSSLConn(sptr);
     
     if(cli_connect(sptr)->con_ssl) {
       SetSSLConn(sptr);
+      
+      const char *cipher = ssl_get_cipher(cli_connect(sptr)->con_ssl);
+      sendcmdto_one(&me, CMD_NOTICE, sptr, "%C :You are connected to %s with %s", sptr, cli_name(&me), cipher);
     }
   }
   else {
     }
   }
   else {
index e407bd4dcc8cf2934e8521b997addc695b971aca..62f61470641b3bf1434d9dc9d0759cbb4a1de6bd 100644 (file)
@@ -405,6 +405,12 @@ int ssl_connection_flush(struct SSLConnection *connection) {
   return 0;
 }
 
   return 0;
 }
 
+const char* ssl_get_cipher(struct SSLConnection *connection) {
+  if(!connection)
+    return NULL;
+  return SSL_get_cipher(connection->session);
+}
+
 #else
 void ssl_free_connection(struct SSLConnection *connection) {}
 void ssl_free_listener(struct SSLConnection *listener) {}
 #else
 void ssl_free_connection(struct SSLConnection *connection) {}
 void ssl_free_listener(struct SSLConnection *listener) {}
@@ -412,5 +418,6 @@ struct SSLListener *ssl_create_listener() { return NULL; }
 struct SSLConnection *ssl_start_handshake_listener(struct SSLListener *listener, int fd, void *data, enum SSLDataType datatype) { return NULL; }
 IOResult ssl_recv_decrypt(struct SSLConnection *connection, char *buf, int *len) { return IO_FAILURE; }
 int ssl_connection_flush(struct SSLConnection *connection) { return 0; };
 struct SSLConnection *ssl_start_handshake_listener(struct SSLListener *listener, int fd, void *data, enum SSLDataType datatype) { return NULL; }
 IOResult ssl_recv_decrypt(struct SSLConnection *connection, char *buf, int *len) { return IO_FAILURE; }
 int ssl_connection_flush(struct SSLConnection *connection) { return 0; };
+const char* ssl_get_cipher(struct SSLConnection *connection) { return NULL; }
 #endif
 
 #endif