|
|
| Author |
Message |
W-Unit Newbie

Joined: 29 Jul 2004 Posts: 83
|
Posted: Apr 22, 2006 11:25am Post subject: Connecting to a U:Line |
|
|
Hi,
I'm trying to create a services pack for UnrealIRCd using mircscript. Right now the services are limited to using O:Lines to carry out their jobs, but this restricts them from doing a few things that would be useful (such as NickServ forcing a nick change if the IDENTIFY command is not recieved for a registered nick; right now it /kill's them instead).
So, obviously, it would be very useful if I could have the services connect to a U:Line'd server. Trouble is, I have no idea how this is done. A normal connect command won't work for a U:Line server (since they're not even real servers, per se)...
So since services.mytestnet.com doesn't really belong to me as a DNS name, yet I still use it for my U:Line server on my little test network, how do I connect a client to this server? I know its possible because this is exactly what services distros like Anope do. |
|
| Back to top |
|
 |
Alpha Lurker

Joined: 29 Dec 2005 Posts: 206
|
Posted: Apr 22, 2006 1:03pm Post subject: |
|
|
services.mytestnet.com
The bots for anope are part of the server itself. Nothing can connect to it. It is part of a script. Not a real server. |
|
| Back to top |
|
 |
Alek none

Joined: 14 Aug 2003 Posts: 24
|
Posted: Apr 22, 2006 1:53pm Post subject: |
|
|
Just connect a random unreal server to your network, then uline it on the other servers, then whatever clients you connect will be ulines and can do as they wish (for the most part).
Its really no different than any other server for what you are trying to do, since from what I understand your mirc stuff doesn't emulate a server. |
|
| Back to top |
|
 |
W-Unit Newbie

Joined: 29 Jul 2004 Posts: 83
|
Posted: Apr 22, 2006 5:08pm Post subject: |
|
|
| Alpha wrote: | services.mytestnet.com
The bots for anope are part of the server itself. Nothing can connect to it. It is part of a script. Not a real server. |
I understood that from the beginning, but obviously Anope does not integrate itself with the UnrealIRCd source. Therefore, if Anope is able to, as far as the daemon is concerned, connect a client on a U:Line, so should I. I just don't know how to fool the daemon into thinking that I am in fact on a different server which happens to be U:Line'd.
| Alek wrote: | Just connect a random unreal server to your network, then uline it on the other servers, then whatever clients you connect will be ulines and can do as they wish (for the most part).
Its really no different than any other server for what you are trying to do, since from what I understand your mirc stuff doesn't emulate a server. |
I might be wrong, but I don't think U:Line servers are ever real linked servers; they simply exist in concept for processing by the daemon. In any case, though, I don't have a separate IP address to create a link off of (this is not a "real" IRC network, just one I'm running for testing purposes; I'm behind a router and on Windows, I'm not dumb enough to try to run a server through that) and I don't want to fool with trying to link two IRCds off of one computer (is that even possible?).
Surely there is a way to do this. All I need is for my script to have access to the commands listed in /helpop ?svscmds. |
|
| Back to top |
|
 |
PingBad Post Whore

Joined: 05 Feb 2005 Posts: 3027 Location: New Zealand
|
Posted: Apr 22, 2006 7:02pm Post subject: |
|
|
For a server to link to another (this applies only to UnrealIRCd, afaik), the connecfting server sends a PASS <password> command, then a SERVER <servername> :<description> command (it may be more than this, been a little while since I sniffed around in raw TCP traffic between server links). When the link has proved successful, the connecting server then throws a USER <nick> <hopcount> <time> <ip> <vhost> <ident> :<realname> command for every user connected to it, and for every user connected behind it (the server being connected to also does this).
Amazing what you learn from Ethereal |
|
| Back to top |
|
 |
W-Unit Newbie

Joined: 29 Jul 2004 Posts: 83
|
Posted: Apr 22, 2006 9:19pm Post subject: |
|
|
I understand how links work, but you have to understand the services server is not a real link. It requires no link block at all and runs "virtually" I guess you could say. It's only there to provide authority for services.
If I run Anope, my services connect to 127.0.0.1 port 6667, just like I do when I connect to the normal, non-U:Line'd server.
This is what's causing all my confusion. How in the hell do you connect to this thing? And by connect I do not mean /connect, as in to link the server, I mean how does a regular old client connect on a U:Line. There has to be a way, otherwise none of the commands in /helpop ?svscmds would be usable by anyone. |
|
| Back to top |
|
 |
DeMiNe0 Lurker

Joined: 25 Jan 2004 Posts: 197 Location: Westchester, New York
|
Posted: Apr 22, 2006 9:52pm Post subject: |
|
|
| So.... Are you trying to uline a user more or less? Unreal has a module to do that. |
|
| Back to top |
|
 |
PingBad Post Whore

Joined: 05 Feb 2005 Posts: 3027 Location: New Zealand
|
Posted: Apr 23, 2006 3:14am Post subject: |
|
|
| W-Unit wrote: | I understand how links work, but you have to understand the services server is not a real link. It requires no link block at all and runs "virtually" I guess you could say. It's only there to provide authority for services.
If I run Anope, my services connect to 127.0.0.1 port 6667, just like I do when I connect to the normal, non-U:Line'd server.
This is what's causing all my confusion. How in the hell do you connect to this thing? And by connect I do not mean /connect, as in to link the server, I mean how does a regular old client connect on a U:Line. There has to be a way, otherwise none of the commands in /helpop ?svscmds would be usable by anyone. | As far as the IRCd is concerned it is a real link, and yes it does require a link block (on the IRCd's end, anyway).
Anope declares its clients internally, they aren't remote machines that connect to your IRCd and do the hooblah... on top of that, Anope doesn't listen on any port.. none whatsoever (doing so would open a MAJOR security hole in any network that uses it). The IRCd does listen on given ports, however. |
|
| Back to top |
|
 |
Alek none

Joined: 14 Aug 2003 Posts: 24
|
Posted: Apr 23, 2006 10:33am Post subject: |
|
|
The server you are connecting to doesn't care whether the server you are ulining is another real server, a script, or whatever. It really doesn't matter. For what you are trying to do, just connect another unreal server, uline it, and connect your mirc clients to that.
The anope link is as real as any other link, its just that the anope server only communicates with the server its connected to. |
|
| Back to top |
|
 |
W-Unit Newbie

Joined: 29 Jul 2004 Posts: 83
|
Posted: Apr 23, 2006 6:45pm Post subject: |
|
|
| DeMiNe0 wrote: | | So.... Are you trying to uline a user more or less? Unreal has a module to do that. |
Yes, that would be sufficient. I found the module, but it's in *.c format, which I'm pretty sure can't work on a Windows box. Do you know of any way it can?
| Alek wrote: | The server you are connecting to doesn't care whether the server you are ulining is another real server, a script, or whatever. It really doesn't matter. For what you are trying to do, just connect another unreal server, uline it, and connect your mirc clients to that.
The anope link is as real as any other link, its just that the anope server only communicates with the server its connected to. |
Sorry...I'm really not all that experienced with network routing. Normally, when you link a server, the two server's you're linking have different IP addresses. In this case they would not. I have no idea how I would do that, though I do know it's possible because, der, that's exactly what Anope does (I just remembered that)
So, either I need to get this module (but I don't think the Windows version of Unreal even supports modules, does it?), or someone needs to plainly tell me in idiot's terms exactly what commands I need to give in order to just get a client connected with U:Line priveliges.
Sorry for being so dull-minded  |
|
| Back to top |
|
 |
Ph0enix none

Joined: 21 Apr 2006 Posts: 8
|
Posted: Apr 24, 2006 4:29am Post subject: |
|
|
| easy, buy a cheap shell they cost as low as 8 bux a month then u wont have any issues |
|
| Back to top |
|
 |
nenolod Idler

Joined: 23 Jan 2004 Posts: 357 Location: A box!
|
|
| Back to top |
|
 |
Monosex none

Joined: 08 Apr 2004 Posts: 14
|
Posted: Apr 24, 2006 4:53pm Post subject: |
|
|
| W-Unit wrote: | | Sorry...I'm really not all that experienced with network routing. Normally, when you link a server, the two server's you're linking have different IP addresses. In this case they would not. I have no idea how I would do that, though I do know it's possible because, der, that's exactly what Anope does (I just remembered that) |
There's nothing stopping you from running services on another IP, it just connects to the server remotely. And yes, you can run two ircds on one IP, just use different ports.
The point is, that as far as your ircd is concerned, services IS a server, and it introduces it's artifical clients. There is no way to connect to services directly as it's not listening on any port and it is not designed to accept client connections anyway.
ps. if you really want your own services in mircscript, learn sockets and write it as a full services server, not just separate clients. |
|
| Back to top |
|
 |
Ph0enix none

Joined: 21 Apr 2006 Posts: 8
|
Posted: Apr 24, 2006 7:25pm Post subject: |
|
|
| im sure that there is someone that would run a server and services for nothing for you if you had something in return for example a user base so the server is getting used. |
|
| Back to top |
|
 |
xtothez none

Joined: 19 Dec 2005 Posts: 11
|
Posted: Apr 25, 2006 2:10pm Post subject: |
|
|
| W-Unit wrote: | | someone needs to plainly tell me in idiot's terms exactly what commands I need to give in order to just get a client connected with U:Line priveliges. |
You need a program or script that will
a) Open a socket
b) Connect to the Unreal daemon
c) Introduce itself as a valid u:lined server
d) Respond to pings as needed
e) Introduce its own clients to use
Basically, you need a services program, and thats what Anope et all are. You should really be looking at writing an expansion module for an existing services platform rather than reinventing the wheel with mircscript - which offers none of the needed funcionality. |
|
| Back to top |
|
 |
|
|
| |