Anope.org > General Chat

Questions about making an IRC Service

(1/2) > >>

aeon:
While I'm not a pro programmer, I can do C#,Java,c++. I am not an elite person for the job so please do not expect me to know everything about what your about to read below. I only learned what I know via trial and error and so much Google searching.

However Google searches on this matter turn up maybe 1 post and that really does not cover it in detail.

Anyways, I would like to create an IRC service that can connect from a link block in an IRCD
not a module for operserv to load (though I have a question on this as well!)

I've done countless IRC bots, but never anything to directly connect to the IRC server as a server. The main reason I wish to do this is because I can act on things like Connect/Joins ( I understand you can not modify the ircd from third-party applications, and only act on them) + it is giving me something to learn about and do anyway.

Yes I know I need to have the server protocols. I have a documentation on them + been reading them.

Question #1
How do I go about making it connect from the IRC servers link block as a service and not a client.

Question #2
Since this is going to be run as a service does that mean the service itself needs to be coded in C? (I think thats what anope is in right? as well as the unrealircd?) or could I do it in something like C#?

Adam:
The easiest way to do this is to write a module for Anope. Writing something from scratch is outside of the scope of this forum.

aeon:
so basically its a useless cause...

Jens Voss:
You can just read the documentation shipped with your IRCd. It contains most of the information you need. You will find the rest by try&error or by reading the source.

Making a script or module that is able to communicate with an IRCd and support all possible messages is hell a lot of work. Trust me, I have done it two times.

Jan Milants:

--- Quote ---Question #1
How do I go about making it connect from the IRC servers link block as a service and not a client.
--- End quote ---
Your client will be considered a server once you send the IRCd the SERVER command as documented by the specific ircd protocol..


--- Quote ---Since this is going to be run as a service does that mean the service itself needs to be coded in C? (I think thats what anope is in right? as well as the unrealircd?) or could I do it in something like C#?
--- End quote ---
Any language that will let you connect to a socket will do.. it has even been done in mIRC scripting I think, though you d have to be completely nuts to want to do that... most ircd's are C/C++ for performance reasons, Java or C# will do just fine, though they ll use more resources and be a bit slower.

and is there any particular reason why you don't want to do it as a module to an existing server like anope..?
I don't think there is much you could do with a standalone service that you couldn't do with just a module in anope at only a 10th of the effort..
it would make it wayyy easier since all of the protocol details would be handled by anopes core.
If you base it on 1.9, you could probably strip anope to the bone and leave only the very core that connects to the ircd, then it should be able to connect alongside a regular install of anope..
tricky bit here would be the fact that 1.9 is still in development and constantly changing...

Navigation

[0] Message Index

[#] Next page

Go to full version