]> jfr.im git - solanum.git/blobdiff - src/client.c
capability: add capability_index_list() to build a list of capabilities given an...
[solanum.git] / src / client.c
index 93b04e71793f83b0921de4efdb8febbee466cfc4..892c88cd5eb96a435112f478f177a4f4f5804908 100644 (file)
@@ -224,13 +224,6 @@ free_local_client(struct Client *client_p)
                rb_close(client_p->localClient->F);
        }
 
-       if (client_p->localClient->auth_user)
-       {
-               memset(client_p->localClient->auth_user, 0,
-                       strlen(client_p->localClient->auth_user));
-               rb_free(client_p->localClient->auth_user);
-       }
-
        if(client_p->localClient->passwd)
        {
                memset(client_p->localClient->passwd, 0,
@@ -238,6 +231,7 @@ free_local_client(struct Client *client_p)
                rb_free(client_p->localClient->passwd);
        }
 
+       rb_free(client_p->localClient->auth_user);
        rb_free(client_p->localClient->challenge);
        rb_free(client_p->localClient->fullcaps);
        rb_free(client_p->localClient->opername);
@@ -262,6 +256,7 @@ free_client(struct Client *client_p)
        s_assert(&me != client_p);
        free_local_client(client_p);
        free_pre_client(client_p);
+       rb_free(client_p->certfp);
        rb_bh_free(client_heap, client_p);
 }
 
@@ -423,10 +418,10 @@ notify_banned_client(struct Client *client_p, struct ConfItem *aconf, int ban)
        const char *reason = NULL;
        const char *exit_reason = conn_closed;
 
-       if(ConfigFileEntry.kline_with_reason && !EmptyString(aconf->passwd))
+       if(ConfigFileEntry.kline_with_reason)
        {
-               reason = aconf->passwd;
-               exit_reason = aconf->passwd;
+               reason = get_user_ban_reason(aconf);
+               exit_reason = reason;
        }
        else
        {
@@ -1145,7 +1140,7 @@ exit_generic_client(struct Client *client_p, struct Client *source_p, struct Cli
        if(IsOper(source_p))
                rb_dlinkFindDestroy(source_p, &oper_list);
 
-       sendto_common_channels_local(source_p, ":%s!%s@%s QUIT :%s",
+       sendto_common_channels_local(source_p, NOCAPS, ":%s!%s@%s QUIT :%s",
                                     source_p->name,
                                     source_p->username, source_p->host, comment);