|
IRCHelper.co.uk |
|
|
This is taken as is. It contains some interesting info on Xnet's IRC server, but its here because it contains some good FAQ's for the services we use.The Official Xnet IRC Services FAQFAQ Version: 1.0FAQ Applies to Xnet IRC services software version: 2.8t_32 (services8t_p32.tgz) or higher. for unix systems and win32 via cygnus api. Author: Dr/icebsd Contact: drai@hotmail.com Mailing list: dev-com@xnet.org This file in its latest and greatest may be found from: ContentsIntroduction
IntroductionThis FAQ was made in response to the fairly hard-head approach to installing Xnet's services. Trial and Error. This FAQ was to help you solve these trial-and-error problems faster, and thus saving you and me time. Bug reports/known bugs are on the website.Please read it, and tell me if you find any problems with it. Including language, grammar/spelling or anything. I wrote this to help you to help me -- I know Xnet services isn't easy to setup, the more feedback I get from you helps me help you. :) I hope you find this FAQ helpful, interesting and not at all too technical. Dr/icebsd Compiling QuestionsQ. Why doesn't it have ./configure (also known as: Why isn't it using autoconf)? Like eggdrop, or espernet?A. I never really found out how to make things in autoconf without doing a severe re-write. And everything is working fine, and we (xnet) mainly uses only Linux/Freebsd/SunOS anyway.Q. How do I compile it for my machine then (that is not a Linux based one)?A. You edit source/Makefile and change the following lines:# Extra Stacking (paranoid_segv_hunt) # freebsd equivalent # SunOS 4.1.3 with quirks (supposed to be BSD compat) You must comment out the first one (as that's for linux), and uncomment the operating system you're running. There are also some LIBS= (for library options) that you might need to change. The others should be OK. This Makefile only works with Linux/FreeBSD or SunOS(4.x.x and 5.x), as they have been tested on these machines. Otherwise, you'll have to consult a programmer or a technician/admin to fix
the Makefile for your system. Q. My compiler generates errors at the linking stage, with errors such as main.o: Undefined symbol `_strsignal' referenced from text segmentA. That means the function _strsignal() was accessed and wasn't found in any of the source code or libraries. This usually means you didn't specify the LIBS= or SYSDEF= options correctly. As for this case, _strsignal wasn't found, therefore you need to remove "-DHAS_STRSIGNAL" from SYSDEF.Q. Compiler fails to link the code (that is, the last line of the "make" looks like this: gcc file1.o file2.o etc.o -o services <-- note the "-o services")A. There is a library missing, in your LIBS= option. That is the most likely case. And you were SO CLOSE TO actually finishing the compile. Linking is always the last instruction in a make. :)Q. I've done those changes, it still keeps giving me errors?A. Firstly, have you done "make clean ; make" for each time you try and recover? You have to make clean to make sure you start fresh.Secondly, if that fails, please email dev-com@xnet.org with your O/S, via the "uname -a" command. And your C compiler, by whatever it normally takes to find the version info, as for GCC, you type: "gcc -v". Thirdly, if we do reply and offer help, it would be done alot quicker if we
had shell access to your machine to find out what's wrong with it (or what's
different about it). Installing and ConfiguringQ. What is the INSTALL script in my services directory?A. This allows you to install the binaries, helpfiles and datafiles into a directory you specify. It gives you the basic setup, so you'll still have to edit the *.conf files.Usage: ./INSTALL <dir> or if <dir> is blank, it installs into the current directory under
./bin Q. ircdlist.conf file? What's that?A. ircdlist.conf was built out of sheer frustration from not being able to just "Jump" from server to server without recompiling or rebooting services. It was an even better excuse to write a different interpreter. At the end of it, it was a file designed to "configure" the innards of services as well as allow services to "Jump" from server to server. Read the help file on it, ./docs, as it explains more about the configuration system more than a scope of a simple FAQ.You will need to edit ircdlist.conf to add more "servers"
for services to connect with, and their passwords. You can specify a bunch of
other things too. Q. What are services.conf and default.conf for?A. There were originally based in "C header files" which meant it required a recompile everytime you wanted to change one of those variables. I decided this wasn't a good idea, and hacked it out into "configuration files" which you can change and reboot without recompiling. Saves time. Default.conf and Services.conf have comment structures similar to "C/C++", so it isn't like your average BASH/Unix script file. Thus, another excuse to write an interpreter was born.Q. Okay, I have edited the config files, but I still get a message: (1) Fatal errors encounteredA. Look at the screen and read the messages. For example, when it says "possibly not set" then this variable was just set to 0 and is abit strange to be set to 0. (I've named all my variables so that the default operation would be 1, worded like: NO_OPERS_ALLOWED instead of OPERS_ALLOWED). However, those that say "not set" are the ones giving you the fatal errors. These MUST be set for them to work. A very good example of a variable that NEEDS to be set in services.conf but hardly ever used now (obsoleted) is the password variable.PASSWORD not set I commented this in the services.conf -- just to make sure you were awake ;) After setting the password variable, you will still need to set the "correct" password for the matching server in the ircdlist.conf file. Q. What are these variables, and why aren't they set?WEBSERV_ENABLED possibly not set (has a value of 0)BINARY_KEY possibly not set (has a value of 0)DIE_BINARY_KEY possibly not set (has a value of 0)
The two KEY variables are to certify that the binary hasn't corrupted in any way, and requires the key generator to find the correct to place in the "BINARY_KEY" variable. In other words, don't worry about this for now. As it is used only for Xnet
-- to save me trouble/time. If you want a copy of the key generator, just email
me. Q. How do I set myself as "Super Oper" or "Administrator" or "The IRCD God" (aka: how do i hardcode myself into Operserv to allow myself to add others)?A. You have to edit data/sv*.lst and change the name there and the level to the one you want. This hardcodes the "Operserv access list".CompatibilityQ. Is this version of "IRC services" compatible with any other Server besides "Xnet's IRCD"?A. No idea, we haven't really tested it on any other IRCD, but it is known to work on EliteIRCD with some modifications. Alot of the code is based on Xnet-IRCD functions, such as IP/CloneKill and the SVSNICK change (but svsnick will also work on any dalnet based svsnick function).Q. Can I move my Magick or Espernet's services Database into Xnet's services?A. It probably won't work, because they use a slightly different, but unloadable, format. You will have to make a convertor or simply start fresh.Q. Can I move databases from a 32-bit Little Endian CPU to a 32-bit Big Endian CPU?A. Yes! You can, if you compile services with ENDIAN_CONVERSION enabled.The best way to do this, is to compile two files, one called services, and
the other called services-endian. You run services-endian first and it will
convert the database and you should shut it down immediately using /m operserv
quit. Restart with your original (non-endian conversion enabled) services
and voila!! Q. How about other 16-bit to 32-bit or some unusual conversion?A. Not at the moment, no. Currently we are trying to change this, and hardcode the number of bytes we use for the database, but right now, it won't work.For example, we use the data-type "integer" which has 32-bit on 32-bit o/ses. On a 16-bit O/S it is only 16-bit long, and thus it will corrupt the database. The method (which we know about, but are too lazy to implement) is define a
datatype WORD or whatever, and make it 16-bits. This should be in the next major
version of Xnet's services. Run-time problemsQ. What IRCD lines must I put into ircd.conf to get services to work properly?A. You will obviously need C/N lines, and a U:line for services, plus a H:line to let services jupe other servers. You most probably need to test it out on a single hub server before throwing it on a major network.The U/H lines must be placed on every server on the network, but C/N is
needed only for the hub(s). Q. What is the average CPU load Xnet's services generates on a pentium-120?A. It should be less than 1 per-cent. If it has reached 99% somehow, you should restart services. If it is continuously using 99%, you might need to debug and log all commands sent to services -- since it is likely someone trying to attack it over IRC.It could also be possible that you didn't specify U:lines correctly, and services is doing a mode-flood instead of dropping chanserv (depending on a setting in your default.conf). As a sidenote, if you're in a unix system, they don't have it in per-cent, of course. You'll just have to figure out how many points equal what percentage of your CPU is using, generally, 1.0 load avg signifies 100% or thereabouts (but not always). Therefore, services should have a loadavg of less than 0.1. However, in unix a loadavg greater than 1.0 signifies a loss in time for the kernel to switch between tasks (its multi-tasking, remember?) -- still meaning 100% in cpu terms, but it means the kernel cannot effectively manage other tasks; thus, losing any "real-time" capabilities. This is obviously not the desired loadavg. "top" is a program in linux which can be very helpful in
understanding and measuring CPU time/load. Q. Operserv's global command doesn't seem to work?A. There may be numerous reasons for this. If it isn't U:lined, then it won't work. If services's nicks (Operserv, Globaler, etc) aren't opered (/whois operserv -- should be operator), then it won't work. If you're using an IRCD that doesn't support /msg $*, then it won't work. Generally speaking, this won't happen if you're using Xnet's IRCD.However, to get the services's nicks to RE-OPER, /msg operserv reintroduce. Q. On my network, we have something similar to Xnet's Virtual World, but it isn't the same, and we're finding that Nickserv Info will show the "realhost" instead of the "fakehost". How do I fix this or go code around it?A. Okay, well, first, you need to realise that Xnet's Virtual world uses a seperate variable that is sent along an IP command (which is also used to detect/kill clones). This provides services with two hosts. If services have two hosts, it will display the "fakehost" no matter what. However, on IRCDs that don't support the IP command, services will only ever have "realhost". And will display that one.The current fix is to patch do_ip() to the way your IRCD does it, or patch
your IRCD to the way Xnet's does theirs. There is no standard on Virtual World
implementation. (which by the way, started off on Austnet and an even earlier
implementation was found in microsoft's comic chat servers). The best way is to
use compatible servers and services, or code around this yourself. Please don't
bug someone at Xnet to do it for you. We would really like to, but its just a
waste of time when we have an ircd already capable of this. Q. How do I change this: "NickServ- /join #xnet for help with lost password" to some other admin channel on my network?A. edit nickserv.c and find the string /join #xnet and replace with something else.You might want to do this for the helpfiles directory and every other source file, whilst you're at it. :) Please leave in the credits inside the source and helpfiles, it is the only
way we can identify whether you're using a legal version of our services or not.
The license agreement clearly states that you should leave the copyright
information intact :) Everything else is free. General/Misc QuestionsQ. When was Xnet services version 2.8 started, and well, basically, how long has it been untouched for?A. I think it was started back before June-July 1998, the exact date I'm not able to remember, but I'm sure I have it timestamped somewhere. I do have the old archives, because I have this lovely cd-burner which I use to store every archive :)It hasn't been touched for several months now, and its mid-August 1999 as I write this, so I would say roughly.. from 4/april/99 (taking the timestamp from the VERSION file is probably the most accurate measure) It was taken from Xnet's older services, which was taken from Icenet's, which was taken from Espernet's... weeee. how was that for a history? Q. Is there one for Win32 (Win95/98/NT)?A. Yes, but its in debug for the time being. No source is worthwhile for release, although it is available on request (as per GPL I am obliged to). The buglist should be on the download page on my homepage -- you will see the many bugs, etc.It uses the Cygnus API (cygwin1.dll) for win32. http://www.cygnus.com/ Q. I have a bug I want you guys/girls to notice, where do I send it to?A. Email dev-com@xnet.org, and if that fails, email me (personally). I will probably be alot slower than the mailing list. Also please try and tell us if you're not on the mailing list when you do send it there, because we'll have to carbon copy it to you so that you can see our reply :)Q. I have a patch/addition/suggestion, where do I send this to?A. Email dev-com@xnet.org -- but please note: we aren't obliged to use the idea/source, and by submitting it you are granting GPL (GNU Public License) for us to use. (just in the same way we have done to make our software free, we expect the same in return).Q. Where is version 2.9 being held or is it not being made at all?A. I did start making a 2.9 awhile back, with encrypted passwords, etc, but I -- as most teenagers probably do -- went insane -- and deleted it. Of course, not much was lost. And its worthwhile to start it again, but for some reason I can never find the time now. And it was named 2.9 purely because the database wouldn't have been compatible with 2.8.I'm actually keeping my eye out for Gemini and their services, and I'm
working/studying. So if I'm hardly ever working on services, it is generally
because its stable and its fine (for xnet). Q. Why are there some stuff in there that don't work or don't exist?A. They are most probably in development. As it is open source, you will find it partially completed or not done, but open for more coding.Q. Where did you get the idea for an FAQ?A. Well, an un-named person from SubGenius.net wanted to use Xnet's IRC services with EliteIRCD, so I basically thought, it would be a good idea to base it on the questions he asked. It is mainly my fault for not informing the public how to use it.Q. What systems do you normally run at?A. I have a pentium 120 computer, with alot of hard drives. Basically I swap these hard drives around, each with different operating systems. I run Redhat 4.2 for my programming one (development) and I run Windows 95 for my email/internet-games/word processing, and WinNT for "the other windows" purely for networking testing, etc. And a "test linux" drive which I put Redhat 4.2 with updates for -- you guessed it, various testing.I also have a SunOS/sparc system which I work with. For various testing and networking. Q. I know this is stupid, but why don't you run slackware? I'm an eleet hacker and I run slackware.. its secure, manG. and my other man, runs FreeBSD. Why do you run RedHat?A. Not much of a question, but here is my answer. Redhat is simple to install, simple to upgrade, basically, very very simple. Just as slackware and freebsd are also simple. Redhat has more organized directories, and a nicer init script. Redhat has better upgrade management. Redhat is used by more developers (Linus Torvalds, Rasterman, you name it). Redhat can be secure if you are a good administrator. Redhat has the mix of functionality and organization that I prefer -- and from that, you can create security. There is no way I would attempt to create a secure system from the reverse point of view.Q. How much do you get paid for doing this? I mean, does Xnet offer you money or anything?A. I don't get paid, I do this because I needed to find a challenge, and I offer it to Xnet as a goodwill service -- something which if they otherwise had to pay me to do, would be very expensive.Q. What else do you do besides programming for free? Don't you have a life? What's this 2600 thing I keep hearing about? Are you some sort of hacker or something?A. 2600 is a quite hard to explain to the uninitiated, so I won't. Instead view: http://www.2600.org.au/ for more info. I am a programmer, with network administration and security analysis tools. Basically, I've been hired to connect up LANs with Novell, WinNT, and various unix systems. You may hire me by contacting me at my email with the subject: "I need your services". Otherwise I'm just a full-time student.Q. I feel sorry for you, how do I donate you money or something?A. You may contact me via the email and offer me a job (if you live in Sydney, Australia -- otherwise don't bother unless you're willing to pay for my plane ticket, too). I don't really want money donations, but I'll take (almost any) computer parts if you offer to ship them over. Usually they measure by weight, so, that means you can forget about monitor, case, etc, specifically I want: modems (even winmodems), network cards, infrared transceivers (dont ask), hard disks, removable storage devices (zip, jaz, orb drives, tape backup, cd-burners), RAM of all sorts (notebook, 30 pin, 72 pin, EDO, SD), CPUs of any sort -- from 486 to cyrix to AMD to Pentiums to Celerons to PIIs, cd-rom and I'm currently looking for a sound card.Q. Where can I get your contact information or where are you located?A. Via email. As for shipping, employment or otherwise anything else, I live in Sydney, Australia.Legal Info, etc.This document realises it uses certain trademarks from companies and acknowledges the companies by writing the trademark with a capital letter wherever possible.Should the material be unsatisfactory, please contact me with the contact details above. All material contained within this document is copyrighted by the author. Permission is granted to reproduce this document, in its entirety, in any form, as long as no charge is required for the viewer to view this document. It may not be resold in magazines, or other forms of "pay first, then see" without the author's original handwritten permission. All other rights reserved. |