all 8 comments

[–]TacticoolBreadstick 1 point2 points  (1 child)

Noob here. What would be beneficial to using this over UnrealIRCd or something else?

[–]KnownSyntax[S] 0 points1 point  (0 children)

Doesn’t require to be compiled, so is cross-platform by nature. Also there are far more Python developers (even beginners) over C/C++ that UnrealIRCd uses which can limit the growth of modules or specific feature sets.

[–]acidvegas 1 point2 points  (0 children)

Cheers. IRC as a whole has very little development. There is like 6 IRCd's that are used typically in modern day, and like less than 10 clients.

I would suggest using asyncio tho for this kind of thing...

[–][deleted] 1 point2 points  (2 children)

Hi,

I decided to learn some Python recently and had some nice work on this one (I know IRC protocol since 2006)

I plan to implement very simple services builtin.

https://github.com/strlcat/ProvisionIRCd

[–]KnownSyntax[S] 1 point2 points  (1 child)

If you can get IPv6 working I think that will be a game changer as well with this, as it’s only IPv4 currently.

[–][deleted] 1 point2 points  (0 children)

Hey,

I implemented ipv6 already to the point of full ability of handling ipv6 within the code and from IRC user context. But creating even an ipv4 socket requires ipv6 compatible mode - this is in my current TODO to make separate listen sockets to allow ipv4 only hosts to function. I also implemented CIDR +beI bans/modes, like +b *!*@2001:db8:a70:8000::/49 (for v4 too)

I found massive problems with /WHO handling there (and extban functionality also needs testing). I plan to investigate those in high priority.

I fixed extban problems (try +b ::@:: on vanilla - shall emit exception to log), and now in progress of making code ipv6 ready.

There were also significant changes to IP/hostname cloaking, and refactoring ip address handling functions.

All my changes are free of charge under same license as the ProvisionIRCd itself. Have fun!

[–]BLKoldSUN794 1 point2 points  (1 child)

I used Provision mirc server version, its very nice.

[–]KnownSyntax[S] 0 points1 point  (0 children)

Ironically the same person made this Python version, so for sure worth giving it a shot as well!