added basic ssl support to ircu
[ircu2.10.12-pk.git] / ircd / s_auth.c
index 476cce5610e347af399065c528807671c52fe51b..b2102ad92835ee2fd71edf23e6b2895a1e747db5 100644 (file)
@@ -141,7 +141,10 @@ typedef enum {
 
 /** Sends response \a r (from #ReportType) to client \a c. */
 #define sendheader(c, r) \
-   send(cli_fd(c), HeaderMessages[(r)].message, HeaderMessages[(r)].length, 0)
+   if(cli_connect(c)->con_ssl) \
+     ssl_send_encrypt_plain(cli_connect(c)->con_ssl, HeaderMessages[(r)].message, HeaderMessages[(r)].length); \
+   else \
+     send(cli_fd(c), HeaderMessages[(r)].message, HeaderMessages[(r)].length, 0)
 
 /** Enumeration of IAuth connection flags. */
 enum IAuthFlag
@@ -270,12 +273,13 @@ static int auth_set_username(struct AuthRequest *auth)
   {
     /* Prepend ~ to user->username. */
     s = user->username;
-    s[USERLEN-1] = '\0';
+    s[USERLEN] = '\0';
     for (last = '~'; (ch = *s) != '\0'; )
     {
       *s++ = last;
       last = ch;
     }
+    *s++ = last;
     *s = '\0';
   } /* else cleaned version of client-provided name is in place */