X-Git-Url: https://jfr.im/git/solanum.git/blobdiff_plain/800ff2ca9de79ef676b381b0a948ab9d7fac711b..d09c55338feb5627da978058432a15dccec16907:/ircd/channel.c diff --git a/ircd/channel.c b/ircd/channel.c index 4609325a..cb4bdd5c 100644 --- a/ircd/channel.c +++ b/ircd/channel.c @@ -38,7 +38,6 @@ #include "s_conf.h" /* ConfigFileEntry, ConfigChannel */ #include "s_newconf.h" #include "logger.h" -#include "ipv4_from_ipv6.h" #include "s_assert.h" struct config_channel_entry ConfigChannel; @@ -127,10 +126,10 @@ send_channel_join(struct Channel *chptr, struct Client *client_p) if (!IsClient(client_p)) return; - sendto_channel_local_with_capability(ALL_MEMBERS, NOCAPS, CLICAP_EXTENDED_JOIN, chptr, ":%s!%s@%s JOIN %s", + sendto_channel_local_with_capability(client_p, ALL_MEMBERS, NOCAPS, CLICAP_EXTENDED_JOIN, chptr, ":%s!%s@%s JOIN %s", client_p->name, client_p->username, client_p->host, chptr->chname); - sendto_channel_local_with_capability(ALL_MEMBERS, CLICAP_EXTENDED_JOIN, NOCAPS, chptr, ":%s!%s@%s JOIN %s %s :%s", + sendto_channel_local_with_capability(client_p, ALL_MEMBERS, CLICAP_EXTENDED_JOIN, NOCAPS, chptr, ":%s!%s@%s JOIN %s %s :%s", client_p->name, client_p->username, client_p->host, chptr->chname, EmptyString(client_p->user->suser) ? "*" : client_p->user->suser, client_p->info); @@ -540,10 +539,10 @@ is_banned_list(struct Channel *chptr, rb_dlink_list *list, struct Client *who, struct membership *msptr, const char *s, const char *s2, const char **forward) { - char src_host[NICKLEN + USERLEN + HOSTLEN + 6]; - char src_iphost[NICKLEN + USERLEN + HOSTLEN + 6]; - char src_althost[NICKLEN + USERLEN + HOSTLEN + 6]; - char src_ip4host[NICKLEN + USERLEN + HOSTLEN + 6]; + char src_host[NAMELEN + USERLEN + HOSTLEN + 6]; + char src_iphost[NAMELEN + USERLEN + HOSTLEN + 6]; + char src_althost[NAMELEN + USERLEN + HOSTLEN + 6]; + char src_ip4host[NAMELEN + USERLEN + HOSTLEN + 6]; char *s3 = NULL; char *s4 = NULL; struct sockaddr_in ip4; @@ -579,9 +578,8 @@ is_banned_list(struct Channel *chptr, rb_dlink_list *list, s3 = src_althost; } } -#ifdef RB_IPV6 if(GET_SS_FAMILY(&who->localClient->ip) == AF_INET6 && - ipv4_from_ipv6((const struct sockaddr_in6 *)&who->localClient->ip, &ip4)) + rb_ipv4_from_ipv6((const struct sockaddr_in6 *)&who->localClient->ip, &ip4)) { sprintf(src_ip4host, "%s!%s@", who->name, who->username); s4 = src_ip4host + strlen(src_ip4host); @@ -589,7 +587,6 @@ is_banned_list(struct Channel *chptr, rb_dlink_list *list, s4, src_ip4host + sizeof src_ip4host - s4); s4 = src_ip4host; } -#endif RB_DLINK_FOREACH(ptr, list->head) { @@ -598,11 +595,8 @@ is_banned_list(struct Channel *chptr, rb_dlink_list *list, match(actualBan->banstr, s2) || match_cidr(actualBan->banstr, s2) || match_extban(actualBan->banstr, who, chptr, CHFL_BAN) || - (s3 != NULL && match(actualBan->banstr, s3)) -#ifdef RB_IPV6 - || + (s3 != NULL && match(actualBan->banstr, s3)) || (s4 != NULL && (match(actualBan->banstr, s4) || match_cidr(actualBan->banstr, s4))) -#endif ) break; else @@ -668,6 +662,7 @@ int is_banned(struct Channel *chptr, struct Client *who, struct membership *msptr, const char *s, const char *s2, const char **forward) { +#if 0 if (chptr->last_checked_client != NULL && who == chptr->last_checked_client && chptr->last_checked_type == CHFL_BAN && @@ -680,6 +675,9 @@ is_banned(struct Channel *chptr, struct Client *who, struct membership *msptr, chptr->last_checked_ts = rb_current_time(); return chptr->last_checked_result; +#else + return is_banned_list(chptr, &chptr->banlist, who, msptr, s, s2, forward); +#endif } /* is_quieted() @@ -693,6 +691,7 @@ int is_quieted(struct Channel *chptr, struct Client *who, struct membership *msptr, const char *s, const char *s2) { +#if 0 if (chptr->last_checked_client != NULL && who == chptr->last_checked_client && chptr->last_checked_type == CHFL_QUIET && @@ -705,6 +704,9 @@ is_quieted(struct Channel *chptr, struct Client *who, struct membership *msptr, chptr->last_checked_ts = rb_current_time(); return chptr->last_checked_result; +#else + return is_banned_list(chptr, &chptr->quietlist, who, msptr, s, s2, NULL); +#endif } /* can_join() @@ -720,9 +722,9 @@ can_join(struct Client *source_p, struct Channel *chptr, const char *key, const rb_dlink_node *invite = NULL; rb_dlink_node *ptr; struct Ban *invex = NULL; - char src_host[NICKLEN + USERLEN + HOSTLEN + 6]; - char src_iphost[NICKLEN + USERLEN + HOSTLEN + 6]; - char src_althost[NICKLEN + USERLEN + HOSTLEN + 6]; + char src_host[NAMELEN + USERLEN + HOSTLEN + 6]; + char src_iphost[NAMELEN + USERLEN + HOSTLEN + 6]; + char src_althost[NAMELEN + USERLEN + HOSTLEN + 6]; int use_althost = 0; int i = 0; hook_data_channel moduledata; @@ -962,8 +964,8 @@ find_bannickchange_channel(struct Client *client_p) struct Channel *chptr; struct membership *msptr; rb_dlink_node *ptr; - char src_host[NICKLEN + USERLEN + HOSTLEN + 6]; - char src_iphost[NICKLEN + USERLEN + HOSTLEN + 6]; + char src_host[NAMELEN + USERLEN + HOSTLEN + 6]; + char src_iphost[NAMELEN + USERLEN + HOSTLEN + 6]; if (!MyClient(client_p)) return NULL; @@ -1260,7 +1262,7 @@ send_cap_mode_changes(struct Client *client_p, struct Client *source_p, char *pbuf; const char *arg; int dir; - int arglen; + int arglen = 0; /* Now send to servers... */ mc = 0; @@ -1376,7 +1378,7 @@ resv_chan_forcepart(const char *name, const char *reason, int temp_time) sendto_server(target_p, chptr, CAP_TS6, NOCAPS, ":%s PART %s", target_p->id, chptr->chname); - sendto_channel_local(ALL_MEMBERS, chptr, ":%s!%s@%s PART %s :%s", + sendto_channel_local(target_p, ALL_MEMBERS, chptr, ":%s!%s@%s PART %s :%s", target_p->name, target_p->username, target_p->host, chptr->chname, target_p->name);