Last modified: 2012-05-11 19:28:01 UTC
"<ipbanononly>" appears instead of "anononly" in Special:GlobalBlock. But more importantly, IPv4 global blocks appear correctly in Special:GlobalBlockList, but IPv6 blocks do not.
Update: I have just found out (using MW 1.18.0 and the current version of GB) that IPv6 blocks also are not effective, even though the blocking form accepts IPv6. As a side suggestion, allow the ranges to be subject to something like $wgBlockCIDRLimit. Often, cross-wiki raids have many people from many addresses.
(In reply to comment #0) > "<ipbanononly>" appears instead of "anononly" in Special:GlobalBlock. This looks fine on trunk
Two things: 1) The code "$ip_pattern = substr( $hex_ip, 0, 4 ) . '%';" in getGlobalBlockingBlock is not very useful for IPv6 2) The schema only gives 32 chars for ipv6 hex addresses. However IP::toHex() adds a v6- prefix, so the column width is too low. This causes the values to be truncated and the blocks don't work.
(In reply to comment #2) > (In reply to comment #0) > > "<ipbanononly>" appears instead of "anononly" in Special:GlobalBlock. > > This looks fine on trunk I don't have a trunk build; I have r77687. I'm going to try to install the latest build. (In reply to comment #3) > Two things: > 1) The code "$ip_pattern = substr( $hex_ip, 0, 4 ) . '%';" in > getGlobalBlockingBlock is not very useful for IPv6 > 2) The schema only gives 32 chars for ipv6 hex addresses. However IP::toHex() > adds a v6- prefix, so the column width is too low. This causes the values to be > truncated and the blocks don't work. It looks like, then, we'll need to make a separate table in the schema for IPv6...
Update: Using r100842, there's no problem with the anon only field, but the IPv6 issue is pretty big, and is probably a major reason why the WMF cannot deploy WMF to commercial use yet.
Probably just lengthening the field is more than enough, maybe a flag to say is ipv6 or something Less than 10k rows on wmf usage, so schema changes are relatively cheap (In reply to comment #3) > 2) The schema only gives 32 chars for ipv6 hex addresses. However IP::toHex() > adds a v6- prefix, so the column width is too low. This causes the values to be > truncated and the blocks don't work. I do like the comment here: gb_range_start varbinary(32) NOT NULL, -- Needs 32, not 8 for IPv6 support
I expanded those fields to varbinary(35) instead of 32, and it works like a charm.
https://gerrit.wikimedia.org/r/#/c/6899/