DreamSpaceWorld IRC Network IRC Operator Manual
------------------------------------------------

Version 1.0.0


Written by: PJKevin (pjkevin@dreamspaceworld.net)



1a Introduction:
----------------

Welcome to the Administration of DreamSpaceWorld IRC Network. You are one of the chosen few
people to help run the network and we look forward to working with you in developing the 
network. The Staff on DSW have an open door policy where comments and feedback are most
welcome. Please feel free to give your ideas or contribute anything that could bring our
network to the highest level.


1b History:
-----------

DreamSpaceWorld was foundered on 7 September 2005 when a group of friends from different networks
decided to open a base to serve users with a friendly environment and open door policy where we
evaluate every suggestion given to us. PJKevin, drosdow, oldage and aLTi formed the network with
the help of FreezeQueen, DreamHealer, pharrell, zekey and Scots from its first server dreams.*
to the network's website.

The network went through a lot of ups and downs during the initial stages and even times when
accidents did happen but we continued day and night. Today,we have staff (opers and non-opers)
from all around the world; America, Australia, Malaysia covering different timezones and
delegated with different tasks.




2.1 What is an IRC Operator?
----------------------------

An IRC Operator is a normal IRC user given special privileges to maintain the network technically 
(servers, routing, services) and non-technically (website, help channels). They are not police
or IRC Cops or go round catching bad guys though they can remove abusive users.



2.2 What are the duties of an IRC Operator?
--------------------------------------------

IRC Operators have 3 major duties:

1) Assist their Server Administrator in maintaining the server they oper on.
2) Assist the network administration the server and network it is linked to in day to day 
   operations.
3) Provide help to users who need.

Kill (or any other form of removal of user from the network or server) is not a main duty of an
IRC Operator but a part of maintaining the server and network you oper on. If you believe opering
is just for kills, then becoming an IRC Operator is not for you. Opering is not about kills but
how you can come up with solutions to resolve problems. Remember that kills and such should only
be used as the last resort.

Other than the above 3 duties, opers have other tasks eg. website, help committee, and several
other teams. Opers are free and encouraged to join these teams depending on their interests.


3.0 Bahamut 
-----------

DreamSpaceWorld uses Bahamut-1.8.3 which was developed by the DALnet IRC Network. On any IRC
Network, you can see the available modes when you connect to the server. The following is an
example:

Welcome to the DreamSpaceWorld IRC Network banding!pjkevin@219.95.45.216
Your host is frozendreams.dreamspaceworld.net, running version bahamut-1.8(03)
This server was created Wed Sep 28 2005 at 22:06:09 CDT
frozendreams.dreamspaceworld.net bahamut-1.8(03) aAbcdefFghiIjkKmnoOrRswxXy bceiIjklLmMnoOprRstv
NETWORK=DreamSpaceWorld SAFELIST MAXBANS=100 MAXCHANNELS=10 CHANNELLEN=32 KICKLEN=307 NICKLEN=30
TOPICLEN=307 MODES=6 CHANTYPES=# CHANLIMIT=#:10 PREFIX=(ov)@+ STATUSMSG=@+ are available on this 
server

CASEMAPPING=ascii WATCH=128 SILENCE=10 ELIST=cmntu EXCEPTS INVEX CHANMODES=beI,k,jl,cimMnOprRst
MAXLIST=b:100,e:45,I:45 TARGMAX=DCCALLOW:,JOIN:,KICK:4,KILL:20,NOTICE:20,PART:,PRIVMSG:20,
WHOIS:,WHOWAS: are available on this server


The first line tells you the server name and the IRCd which it's running. Second line tells you
the server's hostname and available modes usermodes followed by channel modes. The following line
tells you the server settings eg. Network name, maximum bans, channels, channel, nick, topic,
kick character limit and the maximum modes you can set at a time. The remaining lines tell the
features available on the server including the number of kicks, kills etc, you can to at a time.


3.1 Channel Modes
-----------------

3.1.1 +b
--------

This mode instructs a restriction (ban) to be placed on a mask specified in the format of
nickname!username@hostname. For example, if I want to ban the domain jp (Japan) where no
one from Japan can join the channel, I will use:

/mode #channelname +b *!*@*.jp

? is a wildcard used for a single character
* is a wildcard that means any string of character.


3.1.2 +c
--------

This mode means no colours allowed on the channel. When set, messages with colours will be 
blocked from the channel.


3.1.3 +e
--------

This modes works as an exception. When a mask is in place in the banlist and someone (friend)
is affected by this is unable to join, this mode overrides the ban in place based on the mask
set. For example,if *!*@*.my (a ban on Malaysian users) is placed but Xury is not able to join
and Xury's mask is Xury!~me@210.23klj.tm.net.my, I can place an exception using the following:

/mode #channelname +e *!*me@210.23klj.tm.net.my


3.1.4 +i
--------

This mode sets the channel to invite only. Users will not be able to join the channel unless
they are invited by a channel operator, services or have a mask that matches their hostmask
in the channel's Invite list (see following mode).


3.1.5 +I
--------

This mode is used to allow certain users matching a certain mask to join the channel when the
channel is set to +i (invite only-see above mode). However it is reminded it will not override
if there is an existing ban mask. Example, if Xury can't join #dreamspaceworld because it is
+i, and Xury's mask is Xury!~me@210.23klj.tm.net.my, I can place an invite using the following:

/mode #dreamspaceworld +I *!~me@210.23klj.tm.net.my


3.1.6 +j
--------

This mode prevents join throttling by restricting the number of N users that join in S seconds.
If more than N users join in that number of seconds, they will get channel is full and have to 
try again later. In the example below, it means only 4 users can join in 3 seconds.

/mode #channelname +j 4:3


3.1.7 +k
--------

This mode sets a password (key) on the channel which users must supply when using the /join 
command.

/mode #channelname +k keyword


3.1.8 +l
--------

This mode restricts the number of users who can join the channel. Once the limit has been 
reached, anyone else that attempts to join the channel will get an error message telling
channel is full. Example, if I want to set the limit to 230, I will type:

/mode #channelname +l 30


3.1.9 +m
--------

This mode restricts the channel allowing only Ops (+o) and Voiced (+v) users to chat in the
channel. Nick change is also not allowed.


3.1.10 +M
---------

This mode is similar to the +m mode except it prevents non-registered/identified (+r usermode)
nicknames from chatting in the channel. However, Ops and Voices can chat in the main of a +M
channel even if they are not identified to NickServ.


3.1.11 +n
---------

This mode prevents users who are not in the channel from messaging the channel. This mode is
recommended to prevent external floods.


3.1.12 +o
---------

This mode gives the user channel operator privileges. The user will be marked with a @ sign 
beside his nick (may not be applicable to other networks). Channel Operators can change
channel modes, op, ban, voice other users and change the channel topic (subject to ChanServ
settings if the channel is registered with services).


3.1.13 +O
---------

This mode means only an IRC Operator (excluding local operators) can join the channel in
question. This mode can only be set by a Global IRC Operator and above.


3.1.14 +p
---------

This sets the channel as private. If a user joins a channel set with +p and someone who is not
in the channel performs /WHOIS, the channel will not show on the WHOIS output. However, Server
Administrators (usermode +A) will be able to view the channel in the output which will be marked
with a %.


3.1.15 +r
---------

This mode can only be set by services marking that the channel is registered. 


3.1.16 +R
---------

This mode restricts the channel only allowing those who are registered and identified to NickServ
to join. If a user who has not identified to services attempts to join the channel, he/she will
receive an error message prompting him/her to register his/her nick.


3.1.17 +s
---------

This sets the channel as private. If a user joins a channel set with +s and someone who is not
in the channel performs /WHOIS, the channel will not show on the WHOIS output. +s channels also
will not be displayed on /LIST. However, Server Administrators (usermode +A) will be able to 
view the channel in the output which will be marked with a %.


3.1.18 +t
---------

This mode only allows channel operators to set/change the topic. However, this may be overriden
by ChanServ's TOPICLOCK option if the channel is registered.


3.1.19 +v
---------

This mode gives a user voice access and the user is marked with a + sign beside his/her nick.
Usually channel operators voice users on a moderated (+m) channel or operators in training or
just because they are friends of the operator.


3.2 User modes
--------------


3.2.1 +i
--------

This mode sets the user in invisible mode. It doesn't mean the user is literally invisible but
cannot be found easily using /who or /names command unless both are in the same channel.


3.2.2 +k
--------

This mode sends kill messages which can turn into quite a flood and is seldom used on
a large IRC Network.


3.2.3 +r
--------

This mode can only be set by services indicating the user is identified to a registered nick
with NickServ. When identified, the user will have an extra line on his WHOIS:

Tomyhoi is ~Tomyhoi@ppp-210.86.142.18.revip.asianet.co.th * Tomyhoi
Tomyhoi on @#Science @#pjkevin 
Tomyhoi using dreams.dreamspaceworld.net May your dreams come true
Tomyhoi has identified for this nick <---
Tomyhoi End of /WHOIS list.


3.2.4 +R
--------

This mode will prevent users who are not identified to NickServ from messaging the user that sets
this mode. This mode is useful to avoid getting spammed.


3.2.5 +s
--------

This mode allows generic server notices to be sent to the user. This mode is not used on large
IRC Networks.


3.2.6 +w
--------

This mode is for wallops. Users who use this mode will be able to see oper chats that uses
/wallops command. However, wallops is seldom used since globops was introduced.


3.3 IRC Operator Modes
----------------------

3.3.1 +o
--------

This mode indicates that the oper is a global IRC Operator. Their IRC Operator status in the
/WHOIS output will be shown to users regardless of what server they are on. This mode cannot
be set using /mode but by using /oper nickname operpassword and with the correct access on
the server. The oper is abled to use specific OperServ commands, perform remote routing and
global wide kills.


3.3.2 +O
--------

This mode indicates that the user is a local IRC Operator. Their IRC Operator status is only
shown on the server they opered on. To view their status if you are not on the same server, use
/whois opernick opernick. The oper is not allowed to use OperServ and may only perform local
routing and kills.


3.3.3 +a
--------

This mode marks the user as a Services Administrator. The user is able to use /sajoin and /samode
commands. However for full services access, the user must be added to Services Admin database in
OperServ.  Users set at this mode will have an extra output in their /WHOIS. Example:


pharrell is pharrell@staff.dreamspaceworld.net * lord watch over me...
pharrell on @#opertraining @#opers @#pjkevin 
pharrell using dreams.dreamspaceworld.net May your dreams come true
pharrell has identified for this nick
pharrell is an IRC Operator - Services Administrator
pharrell End of /WHOIS list.


3.3.4 +A
--------

This mode marks the user as a Server Administrator. The user is usually the one who selects his/
her operators and usually is used with the mode +a (Services Administrator). Users set at this
mode will have an extra output in their /WHOIS. Example:


PJKevin is pjkevin@i.rule.dreamspaceworld.net * Silence is Golden
PJKevin on @#opertraining @#dreamspaceworld @#services @#pjkevin @#opers 
PJKevin using frozendreams.dreamspaceworld.net Ice skating server
PJKevin has identified for this nick
PJKevin is an IRC Operator - Server Administrator
PJKevin has been idle 9mins 57secs, signed on Mon Nov 21 00:30:55
PJKevin End of /WHOIS list.


3.3.5 +b
--------

This mode enables the user to send and receive /chatops notices.


3.3.6 +c 
--------

This mode will show users who are connecting and disconnecting from the server. It can turn into
a flood and is not used on a large network.


3.3.7 +d
--------

Users who are set at this mode will be able to receive debug messages.


3.3.8 +e
--------

This mode is related to /DCCALLOW and will tell the user of stopped transfers at the server 
level.


3.3.9 +f
--------
This mode alerts an IRC Operator everytime someone on their server gets flooded or gets 
disconnected for excess flood. Channels that are protected by the built-in flood protection
will also be pointed out whenever the flood protection triggers. 


3.3.10 +F
---------

User can bypass recvq throttling.


3.3.11 +g
---------

This mode allows globops to be sent to the oper who sets this mode. Normal users who set this
mode will not receive any of the globops.


3.3.12 +h
---------

This mode shows that the oper is in helpful mode. When a user performs /stats p, it the oper's
nick will appear with the idle time. Example:

FreezeQueen (FreezeQuee@staff.dreamspaceworld.net) Idle: 212
T-W-O (T-W-O@staff.dreamspaceworld.net) Idle: 42039
2 OPERs
End of /STATS report.


3.3.13 +I
---------

This mode will hide the IRC Operator's server information from public view in the /WHOIS.


3.3.14 +j
---------

This mode alerts the user of rejected drone connections.


3.3.15 +K
---------

Notifies the user of U:lined server kills (example services).


3.3.16 +m
---------

This mode reports possible spambots and failed targets.


3.3.17 +n
---------

This mode will send the user routing notices (squits/connects).


3.3.18 +X/+x
------------

Squelch and Silent Squelch. Stops a user transmitting, for example 
it stops their PRIVMSG. Only settable by U:lined servers.


3.3.19 +y
---------

This is also known as a SPY mode. It sends a notice whenever someone
does ADMIN/MOTD/LINKS/STATS on your server.


4 IRC Operator Commands
-----------------------

The following are all the IRC Operator commands available in Bahamut-1.8.3. Please
read this guide carefully. Also note that opering is a privilege and not a right. Abuse
of access will not be tolerated and abusers will be dismissed without warning.


4.1 Opermasking/Oper/Deoper
---------------------------


When the server admin chooses you to become an IRC Operator, you will be added to the server's
ircd.conf file with the details including your opername, password, hosts you can oper from and
access flags. If you type /stats o, you will see the following information:

O * * zeke 4294377471 opers
O * * PJKevin 4294377471 opers
O * * FreezeQueen 4294377471 opers
O * * pharrell 4294967295 opers
O * * aLTi 4294967295 opers
End of /STATS report.

The above may or may not be the same depending whether it is a local oper (o) or a global (O),
and the access flags the oper has. If you're opered up, you will be able to see the oper hosts.

To mask yourself, your admin would have configured a special oper port specified in the 
server's I-line with a password whereby only opers can use that port providing the correct 
port and port's password to mask yourself. The command is as follows when connecting to 
the server. The third command however is used if 6667 has been set with the masking flag.

/server servername:operport port_password:opernick:operpassword

/server servername:operport port_password:opernick:operpassword:nickserv_password

/server servername:6667 opernick:operpassword

Example:

/server dreams.dreamspaceworld.net:7201 liberty:pjkevin:abc123
/server dreams.dreamspaceworld.net:7201 liberty:pjkevin:abc123:tamborine
/server dreams.dreamspaceworld.net:6667 pjkevin:abc123

In the above example, you can see that the server my O-line is on is dreams.*. If I attempt
to oper on a server I don't have an O-line, it will not work. The oper port in this example is 
7201 and the port's password is liberty. My opernick is pjkevin and my password is abc123. Be 
reminded that in order to mask yourself, your hosts must have been set correctly in your O-line
of the ircd.conf file. If there is a problem or your hosts have changed, please notify your 
admin. If you wish, you can identify to services automatically using the second example. If
port 6667 is used to oper, you can then use the third command.

Once you have been masked and connected, you can now oper up by typing:

/oper opernick operpassword

Example:

/oper PJKevin abc123


Assuming the information provided is correct, you will receive the following:


-dreams.dreamspaceworld.net- *** Notice --- PJKevin (PJKevin@dreamspaceworld.net) is now 
operator (O)
-
* PJKevin sets mode: +owsgnh
-

You are now an IRC Operator

Note: If you're a Services Admin (+a) or Server Admin (+A), you will have to add these modes
manually eg. /mode nickname +A or /mode nickname +a. 


4.2 /who and /rwho
------------------

These commands are quite complexed. /who is available to normal users though it will not do
much help because it only works on users who aren't invisible (+i usermode) though they can
use it to trace clones and drones in channels as well as other criterias. /rwho however is
more complexed and can only be used by IRC Operators. Because explaining these commands here
would take up quite a space since it is complexed, you can try using /who ? and /rwho ?
and practise them. Ask a senior if you're not sure how it works.


4.3 Oper Communication Tools and Notices
----------------------------------------

IRCOps have 4 useful commands which helps them to communicate among other opers. They are:-

a) Locops
b) Globops
c) Chatops
d) Wallops


Locops is for oper communication on the local server. When used, opers on other servers will not
be able to read your notices. When globops is used, the notices will be sent to opers on other
servers as well. Chatops can only be received by opers set with the mode +b. Wallops can be
received by opers and users set at +w. Wallops is uncommon since the existance of globops and
because non-opers will be able to read them.

A reminder that whatever is said on oper chats must not be shared with non opers. Doing so may
result your O-line being suspended.


Server notices be it to 1 or all servers on the network can become handy especially when services
are down and GLOBAL can't be used or if you want to reroute/restart servers.

/notice $servername message (Notice will be sent to all users of a particular server)

/notice $*.network.net (Notice will be sent to all users on the network)


4.4 /kill
---------

The kill command forcefully removes a user from the server/ network. It can be due to abuse, 
floods and repeated offences. A local operator can only kill users off the server he opers on.
A global operator however can remove any user on the network. The command syntax is:

/kill nickname reasonhere

A reason must be provided when using this command. IRC Operators must not use this command for
personal reasons and not use profanity in their kill messages. Failure to do so will result their
O-line being revoked.


4.5 Kline and Unkline
---------------------

This command is useful to add a local server ban especially for drone connections and floodbots
on a local server. The syntax is:

/kline time(in minutes) username@host :Reasonhere

/unkline username@host


4.6 Stats
---------

The /stats command is used to get information and the server's configuration including server
lines eg. (O/o C/N and I/Y lines). The syntax is as follows:

/stats letter servername.*

Example:

If I want to check the Y-lines of freezie.*, I will type:

/stats y freezie.*

If the server name is not specified, it will then assume you are requesting the info of the 
server you're currently on. Below are the letters and their functions. Y


* a - displays akills
* c - displays server connect blocks (C/N lines)
* d - displays clone limit statistics
* D - displays special clone limits
* g - displays network gcos restrictions
* G - displays local server gcos restrictions
  i - displays allowed blocks (I-lines)
* k - displays temporary K-lines
* K - displays permanent K-lines
  l - displays generic info about [nick]
* m - displays commands and usage
  o - displays configured oper lines (O/o-lines)
  p - displays opers and their idle time in seconds
  q - displays network nick/channel restrictions (sq-lines)
  Q - displays local server nick/channel restrictions
  r - displays ircd usage (only in debugmode)
* s - displays server name cache
* t - displays server generic stats
* T - displays throttle stats
* u - displays server uptime
* U - displays super servers (U-lines)
  v - displays connected servers and idle times
* w - displays fdlist (only in debugmode)
  y - displays class blocks (Y-lines)
* z - displays memory stats
  ? - displays network traffic statistics bdefgjnx

Note: To view the information marked with a *, you will have to be opered up.

4.7 Version
-----------

This command gives you information on how the server has been compiled. Each letter represents
a configuration as the server was compiled.

A     SENDQ_ALWAYS
c     CHROOTDIR
C     CMDLINE_CONFIG
d     DO_ID
D     DEBUGMODE
e     LOCOP_REHASH
E     OPER_REHASH
f     FOLLOW_IDENT_RFC
F     HIDE_FAKES
g     SUN_GSO_BUG
G     SHOW_GHOSTS
H     HUB
i     SHOW_INVISIBLE_LUSERS
I     NO_DEFAULT_INVISIBLE
K     OPER_KILL
k     LOCAL_KILL_ONLY
L     LEAST_IDLE
m     M4_PREPROC
M     IDLE_FROM_MSG
N     DELAY_NICKS
p     CRYPT_OPER_PASSWORD
P     CRYPT_LINK_PASSWORD
N     NPATH
r     LOCOP_RESTART
R     OPER_RESTART
s     SECUNREG
S     ENABLE_SUMMON
t     OPER_REMOTE
T     TRACE_STATS
u     IRCII_KLUDGE
U     ENABLE_USERS
V     VALLOC
w     NOWRITEALARM
X     UNIXPORT
Y     USE_SYSLOG
8     V28PlusOnly


4.8 Trace
---------

This command can be used on both servers and users.

When using this command on a user, it returns the path between the user and you. For example
I am on frozendreams.* and perform a trace on the nick pharrell. So I will type /trace pharrell. 
The following result will be displayed:

Link bahamut-1.8(03) pharrell dreams.dreamspaceworld.net
User users pharrell[pharrell@dreamspaceworld.net] 65

In the above, you can tell that pharrell is 1 hop away from me where it takes the route
frozendreams.* -> dreams.* . In the last line, we can do a breakdown:


User users pharrell[pharrell@dreamspaceworld.net] 65
^     ^     ^                                     ^
^     ^     ^                                    SendQ
^     ^     nickname [username@host]
^     ^
^     Connection Class
^
Connection type


Using this command you can determine a lag between the route. If the nick's information isn't
displayed or the result just stops at:

Link bahamut-1.8(03) pharrell dreams.dreamspaceworld.net

there could be a possible lag between frozendreams.* and dreams.*.



When you perform a trace on a server, you will type /trace servername.*. If you are not opered
up, you will only see opers who are not using usermode +i (invisible). It also displays the 
number of users and servers it is holding. Example if I perform a trace on frozendreams.*


Operator opers PJKevin[pjkevin@i.rule.dreamspaceworld.net] 0
Server hub 4S 21C dreams.dreamspaceworld.net[(+)anetto@0.0.0.0] PJKevin!pjkevin@i.rule.dreamspaceworld.net 6
Operator opers missaintbehaving[pnkroses@c-67-177-201-138.hsd1.co.comcast.net] 64
Operator opers drosdow[drosdow@staff.dreamspaceworld.net] 11
Server NONE 0S 136416323C frozendreams.dreamspaceworld.net *!*@frozendreams.dreamspaceworld.net 11
Class users 7
Class opers 3
Class hub 1
frozendreams.dreamspaceworld.net End of TRACE

In the above example, you will see that there are 4 servers and 21 clients (21 excluding the 
local users. It also tells us that there are 7 users and 3 opers.


4.9 Lusers 
----------

Lusers gives the detailed statistics of the server and network including number of servers,
number of IRC Operators online, number of invisible users and total of local and global
users.


There are 11 users and 20 invisible on 5 servers
12 IRC Operators online
25 channels formed
I have 10 clients and 1 servers
-
Current local users: 10 Max: 13
Current global users: 31 Max: 42


In the above, the 11 users it is referring to is the non-invisible users and 20 invisible
users currently on the network on 5 servers. There are 12 IRC Operators online with 25 channels
formed. There are 10 local clients and 1 server (hub). The global statistics is not accurate
because it includes services.

You can also view the lusers of another server by simply typing /lusers * servername.* .


4.10 Rehash
-----------

This command is used to reread the configuration files on the server. Using /rehash without
any parameters will force the server to reread the ircd.conf file.

1) /rehash motd

This rereads the ircd.motd file.


2) /rehash tklines

This removes temporary k-lines.


3) /rehash throttles

This will remove throttled IPs


4) /rehash dns

This rereads the /etc/resolv.conf file


5) /rehash gc

This will help clear excess memory


6) /rehash ip

This will reload the IP hash for the new and improved ACKPATCH.
This should never need to be used.


4.11 Links
----------

Links tells us how the servers are routed from your server's view giving it an outline. Below is
an example of the network view when I type /links from frozendreams.*


frozendreams.dreamspaceworld.net (0) Ice skating Server
 dreams.dreamspaceworld.net (1) May all your dreams come true
  saturn.dreamspaceworld.net (2) From outer space
   summer.dreamspaceworld.net (3) Summer kisses winter tears
  services.dreamspaceworld.net (2) Services for IRC Networks

The numbers in brackets beside the server name tells you the number of hops from frozendreams eg.
saturn.* is 2 hops away from frozendreams.* .


4.12 Samode
-----------

This command can only be used by Services Administrators (+a) or Server Administrators (+A). It
forcefully changes channel modes even without you being opped or present in the channel. Be
reminded that this command isn't for you to play around with showing off your access nor op
yourselves in channels you don't have access to. It is to be used in floods and takeover
situations only. Failure to follow guidelines when using this command can lead to demotion
or in worst cases, suspension of your O-line.

Example:

/samode #Help +R (Sets channel to only registered nicks may join #Help)


4.13 Sajoin
-----------

This command is a little similiar to SAMODE but it forces the user who uses this command to
join channels that have restriction modes like (b/i/k/l). This command isn't intended for
IRC Operators to use to circumvent (evade) bans. This is to help deal with takeover situations.
As with all IRC Operator commands, abusing your privileges can lead to demotion or in worst
cases, suspension of your O-line.

Example:

/sajoin #opertraining


4.14 Die
--------

There are times the server may become disruptive on the network for some reason or other or
you want to terminate the server due to a scheduled maintainance or after recompiling the
server and you want the changes to take effect. This command will stop the ircd process 
on your box and everyone including yourself will be disconnected from the server.


Be reminded however, not everyone can use this command. You must have the correct flag
in your O-line and also know the password to perform this command. In most cases you will
not need to use it unless told otherwise by your Server Admin.


4.15 Restart
------------

This command is a little similiar to the DIE command except it restarts the IRCd process. Like
the DIE command, everyone on the server including yourself will be disconnected. However, they
will be able to reconnect once the server has been fully restarted.


Be reminded however, not everyone can use this command. You must have the correct flag
in your O-line and also know the password to perform this command. In most cases you will
not need to use it unless told otherwise by your Server Admin.


NOTE: When using the DIE or RESTART commands, please be sure to inform everyone on the server
by sending them a server notice regarding your action and give them time to change servers so 
they will not be caught offguard. Also send a globops so other operators will know what you're
doing.


4.16 Close
----------

This command will close all connections from clients that have not fully registered yet.


4.17 Routing
------------

This is the most important part of the network. Routing as technical as it may sound is
the backbone of any network be it a normal home network, office or even on IRC. You can
build and collapse the network with it. Many people are afraid to learn routing due to
the fact it is too complex and technical. We're not going to explain the complex parts
here but how routing works to support the network and also how to fix netsplits and lags.

When you apply to link a server to any IRC Network be it here, DALnet or EFnet for that matter,
2 things are taken into consideration at first glance of the application. One is the hardware
aspects of the machine and the other is the routing to find the best uplinks. Both criterias
play an important role in a server application.In your server application, you are normally 
asked to perform a ping and traceroute to determine the connectivity speed in ms and the number
of destination hops from your server to the target and this will tell the routing team what 
to expect and the best uplinks of your server. 


b) Network Structure, routes and hops
-------------------------------------

As we all know, there are 2 kinds of servers; leaf servers and hub servers. Leaf servers are
linked to hub servers. They allow connections from users. Hub servers house leaf servers and
don't accept user connections. Hub servers are connected to 1 major hub which usually holds
services.*. The following diagram is a sample of the network link.


                                   
                                   
            winter.* <------------summer.* ------------> spring.*
             (L1)                 (H1)                    (L2)
                                   |
            
             autumn*<------------dreams.*------------>   frozendreams.*
              (L3)                (H0)                    (L4)
                                 / |  \                 
                                   |
                          water.*  |   fire.* -------->  earth.*         
                          (L5)     |    (H2)             (L6)
            
                               services.*    
                                  (S)     
            
                           

In the above diagram, you will see that dreams.* is the main hub. It holds 3 leaf servers
(water.*, autumn.* and frozendreams.*) and 2 minor hubs (summer.* and fire.*). Services is
connected to dreams.* as well. Fire.* has 1 leaf (earth.*) whereas Spider.* has 2 leaf
servers (spring.* and winter.*).

From the above example we can tell that water.* is 3 hops away from winter.* so we can
simplify this route by the following:


Route        Winter.* ---> summer.* ---> dreams.* ---> water.*

Hops          (0)           (1)           (2)          (3)


c) Rerouting
------------

Rerouting can be done if:-

1) The hub that houses the server is going down.
2) There appears to be a lag and a reroute would help.


When a server's home hub suddenly goes down, the leaf servers connected to it will be in a split
since there is no route to the main network. So you will need to find a new uplink for the
server. An important reminder that there must be a matching connection block (C/N lines) on
both the hub and leaf servers. To see the C/N lines for your server, type /stats c.

Before rerouting servers, you must inform the current net staff via globops and also send a
notice to the users on the server telling them on the reroute and it will connect back as soon
as possible. We don't want them to get caught offguard.

c) Rerouting
------------

Rerouting can be done if:-

1) The hub that houses the server is going down.
2) There appears to be a lag and a reroute would help.


When a server's home hub suddenly goes down, the leaf servers connected to it will be in a split
since there is no route to the main network. So you will need to find a new uplink for the
server. An important reminder that there must be a matching connection block (C/N lines) on
both the hub and leaf servers. To see the C/N lines for your server, type /stats c.

Before rerouting servers, you must inform the current net staff via globops and also send a
notice to the users on the server telling them on the reroute and it will connect back as soon
as possible. We don't want them to get caught offguard.


i) /squit

This command is similiar to the normal quit except it is used to quit the link between the
server you oper on and the link you want to disconnect. The syntax of using this command is:

/squit servername.* reason


Example 1:

winter.* ---> fire.*


If you're on winter.* and wish to delink it from fire.* to reroute, you will type:

/squit fire.* rerouting due to lag

The reason we're squitting fire.* is you need to squit the far end of the link. If you /squit
the server you're on instead, it will close your connection to the server :P. This kind of a
/squit is called a local squit since you're delinking a server connected to yours.


Example 2:

winter.* ---> fire.* ---> summer.* ---> saturn.*


If you're on winter.* and want to squit saturn.*, you will type:

/squit saturn.* rerouting server

Again it is reminded that we have to terminate the far end of the link which is saturn.*. This
kind of a squit is called a remote squit because you're not connected to fire.* nor summer.* so
you're remotely squitting the server. Only global operators and above may perform remote squits.

Warning! Never type /squit services.* as it cannot be rerouted. Doing so will cause services.* to
shut down immediately and you will need to get an SRA to rerun the process.



ii) /connect

This command will create a link to the destination server. It is used after a squit in a need of
a reroute or if there was a netsplit. The syntaxes are as follows

Local connect:

/connect destination.* port_number 

(If no port is given, it connects to the port specified in the ircd.conf file)


Remote connect:

/connect destination.* port_number origin.*


On ChatX, the default port number is 7325. This can also be verified by typing /stats c. As told
earlier, there must be a matching connect block (C/N lines) in order to link 2 servers.


Local connect example:


Alpha.*        Jedi.*


If I am on Alpha.* and I want to connect it to Jedi.*, I will type /connect Jedi.* and it will
connect to Jedi.* using the port specified in the ircd.conf file.



Remote connect example:

Jedi.* ---> Spider.*   Shout.*

If I am on Jedi.* and I want to link Spider.* to shout.*, I will type:


/connect Shout.* 7325 Spider.*


Note that only global operators and above can perform remote connects.


5. Services Commands for IRC Operators
--------------------------------------

DreamSpaceWorld uses Anope-1.7.12 Services though we may intend to have our own in the future
due to its stability. Should you have any questions regarding the commands or features, please
do not hesitate to contact any Root Administrator and we will be happy to assist you. 

Warning: As with all IRC Operator Server commands, Services IRC Operator commands should be used
         only when necessary. You are not above the network policies. Abuse of OperServ and other
         IRC Operator commands will be classified as Services Abuse and breach of trust which
         violates the network policies and will be liable to sanctions and removal of access.


5.1 OperServ Commands for Global Operators
-------------------------------------------

5.1.1 OPER
----------

Using the LIST parameter shows the list of Services Operators. Adding of Services Operators can
only be done by a Services Administrator or Services Root Administrator.


5.1.2 ADMIN
-----------

Using the LIST parameter shows the list of Services Administrators. Adding of Services 
Administrators can only be done by a Services Root Administrator.


5.1.3  STAFF
------------

Shows the list of Services Operators, Services Administrators and Services Root Administrators.


5.1.4  MODLIST
--------------

This command shows the list of loaded modules in services.


5.1.5  MODINFO
--------------

This command provides more information on a services module.



5.2 OperServ Commands for Services Operators
---------------------------------------------

5.2.1  MODE
-----------

Like the /mode command on IRC, this is used to modify channel modes (similiar to /samode). It 
must be stressed here that you must follow the correct parameters.

/operserv MODE #channel +- modes


5.2.2  STATS
------------

This command gives various information on the network statistics. When used alone without
any parameters, it provides user/oper count (excluding services), the highest user count
and services uptime.With the AKILL parameter, it provides the akill list size and the default
expiry time. the ALL parameter can only be used by Services Administrators which displays
services memory. Using this parameter on a large network and is discouraged. The RESET 
option will reset the user count.


5.2.3  GLOBAL
-------------

This command sends a global notice to everyone on the network. It is to be used only
for important notifications.

/operserv GLOBAL message_here


5.2.4  KICK
-----------

This command is used to kick users out of the channel with a reason. The command is useful if
no channel operator is present and the need arises.

/operserv KICK #channelname nickname reason


5.2.5  CLEARMODES
------------------

Used alone, OperServ clears all binary modes (i,k,l,m,n,p,s,t). If the ALL parameter is given
it also clears +o and +v.

/operserv CLEARMODES

/operserv CLEARMODES ALL


5.2.6 KILLCLONES
-----------------

This command kills clones that have the same host as the nickname given in the command. It adds
a temporary akill which prevents them from reconnecting immediately. A wallops is also sent
informing who used the command and the number of users affected.

/operserv KILLCLONES nickname


5.2.7 AKILL
-----------

This command modifies the AKILL list against users. The format of the akill set is username@host
with an expiry and reason which must be provided. Akill expiry can be in the form of 1h, 3d 
but never with a combination like 1h30m. If you do not specify the unit specifier like h (hours)
or d (days), the default taken will be days so if you place +30, the akill will last for 30 days.
If you don't want it to expire, set the expiry parameter as +0.

DEL removes the akill specified either by host or entry number. LIST shows the entire akill list
whereas VIEW gives a more detailed view of the LIST.



/operserv AKILL ADD [+expiry] username@host reason

/operserv AKILL DEL  username@host | entry-number

/operserv AKILL LIST mask | list

/operserv AKILL VIEW mask | list

/operserv AKILL CLEAR


5.2.8 SGLINE
------------

This command modifies the SGLINE list against users. It forbids the user's realname with an expiry 
and reason which must be provided. SGLINE expiry can be in the form of 1h, 3d but never with a 
combination like 1h30m. If you do not specify the unit specifier like h (hours) or d (days), 
the default taken will be days so if you place +30, the SGLINE will last for 30 days. If
you don't want it to expire, set the expiry parameter as +0.

DEL removes the SGLINE specified either by host or entry number. LIST shows the entire SGLINE
list whereas VIEW gives a more detailed view of the LIST.


/operserv SGLINE ADD [+expiry] mask:reason

/operserv SGLINE DEL  mask | entry-number

/operserv SGLINE LIST mask | list

/operserv SGLINE VIEW mask | list

/operserv SGLINE CLEAR


5.2.9 SQLINE
------------

This command modifies the SQLINE list against users. It forbids users who have a nickname
that matches a certain pattern from connecting. SQLINE expiry can be in the form of 1h, 3d 
but never with a combination like 1h30m. If you do not specify the unit specifier like
h (hours) or d (days), the default taken will be days so if you place +30, the SQLINE will
last for 30 days. If you don't want it to expire, set the expiry parameter as +0. If a #
is placed in front, it disallows users from using the channel that matches the entry.

DEL removes the SQLINE specified either by host or entry number. LIST shows the entire SQLINE
list whereas VIEW gives a more detailed view of the LIST.

/operserv SQLINE ADD [+expiry] mask reason

/operserv SQLINE DEL  mask | entry-number

/operserv SQLINE LIST mask | list

/operserv SQLINE VIEW mask | list

/operserv SQLINE CLEAR


5.2.10 SZLINE
-------------

This command modifies the SZLINE list against users. It forbids any matched IPs (masks) from
connecting (whether it has PTR RR or not). SZLINE expiry can be in the form of 1h, 3d but never
with a combination like 1h30m. If you do not specify the unit specifier like h (hours) or d 
(days), the default taken will be days so if you place +30, the SZLINE will last for 30 days. If
you don't want it to expire, set the expiry parameter as +0.

DEL removes the SZLINE specified either by host or entry number. LIST shows the entire SZLINE
list whereas VIEW gives a more detailed view of the LIST.

/operserv SZLINE ADD [+expiry] mask reason

/operserv SZLINE DEL  mask | entry-number

/operserv SZLINE LIST mask | list

5.3 OperServ Commands for Services Operators
---------------------------------------------


5.3.1 CHANLIST
--------------

This command lists channels by a specific pattern whether they are registered or not. If a
nick is given, it shows the channels the user is on. If SECRET is used, it only shows
+p (private) and +s (secret) channels.

/operserv CHANLIST pattern | nick SECRET


5.3.2 USERLIST
--------------

This command lists users by a specific pattern whether they are registered or not. When
using a search pattern, the format must be specified in nick!username@host format If a channel
name is given, it shows the users on that channel. If INVISIBLE is used, it shows users who
are set to +i (invisible).

/operserv USERLIST pattern | channel INVISIBLE


5.3.3 NEWS
----------

This allows Services Admins to add/remove logonnews, opernews and randomnews. However, it is
only limited to 3 at a time to avoid flooding the user. If there are more than 3, the 3 most
recent ones will be displayed. 


LOGONNEWS  (Defines news displayed to users when they log on to ChatX)
RANDOMNEWS (Defines news displayed randomly to users when they log on)
OPERNEWS   (Defines news displayed to IRC Operators upon opering)

/operserv LOGONNEWS | RANDOMNEWS | OPERNEWS | ADD TEXT

/operserv LOGONNEWS | RANDOMNEWS | OPERNEWS | DEL [NUM|ALL]

/operserv LOGONNEWS | RANDOMNEWS | OPERNEWS | LIST




5.3.4 SESSION
-------------

There are 2 syntaxes for this command, LIST and VIEW. This command is useful in checking for
clones. The LIST option must have a threshold which must be greater than one to prevent a list
of single sessions host. The VIEW command is used with a host which must not include wildcards. 

/operserv SESSION LIST threshold

/operserv SESSION VIEW host


5.3.5 EXCEPTION
---------------

This command sets a limit to host sessions and is used for client machines to limit the number 
of sessions connected at a time based on the host (not hostmask) and limit set. Once it has 
reached its limit, all clients attempting to connect will be killed. 


/operserv EXCEPTION ADD [+expiry] mask limit reason

/operserv EXCEPTION DEL {mask | list}

/operserv EXCEPTION MOVE num newnum

/operserv EXCEPTION LIST [mask | list]

/operserv EXCEPTION VIEW [mask | list]



5.3.6 JUPE
----------

This command tells services to create a fake server to prevent the real server from connecting. 
It is useful especially due to squit/connect problems with the server in question. If a reason 
is given, it will be displayed in the server information field or else the name of the one who 
requested is displayed. To remove a jupe, the /squit command is used.

/operserv JUPE servername reason



5.3.7 NOOP
----------

This command instructs the server to temporarily disable O-lines and also killing the opers
preventing them from rehashing the ircd.conf file. To remove this effect, the REVOKE parameter
is used.

/operserv NOOP SET server

/operserv NOOP REVOKE server


5.3.8 IGNORE
------------

This command is used to ignore a nick for a certain period defined in time or until services has
been restarted. Only 1 unit can be used eg. s for seconds, m for minutes and h for hours. If 
the unit is not specified, the default which is seconds will be taken.For a permanent ignore,
0 will be placed as time.

/operserv IGNORE ADD TIME nickname

/operserv IGNORE DEL nickname

/operserv IGNORE LIST

/operserv IGNORE CLEAR


5.3.9 DEFCON
------------

This command is used in the event the network is under threat of attacks or floods. It sets
restrictions to services/channels and also wards off further connections on the network. This
is defined in 5 levels which level 1 is the lowest and level 5 being the highest.

/operserv DEFCON 1|2|3|4|5


5.3.10 CHANKILL
---------------

Sets an AKILL on users of a particular channel. It goes by the user@host format on every
user then enforces it. 

/operserv CHANKILL +expiry reason


*Note*: The following commands should NOT be used unless necessary or told to.
                                      ---

5.3.11 SET
----------

These set of commands set various global services settings:

READONLY   Set read-only or read-write mode
LOGCHAN    Report log messages to a channel
DEBUG      Activate or deactivate debug mode
NOEXPIRE   Activate or deactivate no expire mode
SUPERADMIN Activate or deactivate super-admin mode
SQL        Activate or deactivate sql mode
IGNORE     Activate or deactivate ignore mode
LIST       List the options


5.3.12 RELOAD
-------------

This forces services to reread the configuration file. However, sometimes a reboot of services
may be required for (such as Services' nicknames, activation of the session limitation, etc.)

/operserv RELOAD


5.3.13 RESTART
--------------

This forces services to save to database and restart the executable file.

/operserv RESTART


5.3.14 QUIT
-----------

This command terminates services without saving to database. It should not be used unless there
could be a possible damage to in-memory database. Otherwise, use SHUTDOWN.

/operserv QUIT


5.3.15 SHUTDOWN
---------------

This command saves services database and terminates the process.

/operserv SHUTDOWN


5.3.16 UPDATE
-------------

This command forces services database to be updated.

/operserv UPDATE



5.4NickServ Commands for Services Administrators
-------------------------------------------------

5.4.1 SUSPEND
-------------

This command freezes the nick in question preventing the owner from using/identifying. The nick's
info is not lost but the nick can expire. To release the nick, UNSUSPEND is used.

/nickserv SUSPEND +expiry nickname reason

/nickserv UNSUSPEND nickname


5.4.2 FORBID
------------

This command holds the nickname preventing it from being used/registered. The nick's info is lost
but it will not expire. Commonly used for nicknames that impersonate services. It may
be cancelled with the DROP command.

/nickserv FORBID nickname


5.4.3 GETEMAIL
--------------

This command returns the nicknames registered under that email address. Please take note that
wildcards are not allowed. Services logs when the command is issued and by whom.

/nickserv GETEMAIL email_address


5.4.4 OTHER COMMANDS 
--------------------

Services Administrators are able to DROP nicknames and also modify nickname options without being
identified for that nickname.



5.5 ChanServ Commands for Services Administrators
--------------------------------------------------


5.5.1 SUSPEND
-------------

This command freezes the channel preventing users from using it or identifying. ChanServ will 
not op anyone on a frozen channel. To release the channel, UNSUSPEND is used.

/chanserv SUSPEND +expiry #channelname reason

/chanserv UNSUSPEND #channelname


5.5.2 FORBID
------------

This command will hold the channel preventing it from being used/registered. The channel's info
is lost if used on a registered channel but will not expire. It may be cancelled using the DROP
command.

/chanserv FORBID #channelname


5.5.3 OTHER COMMANDS 
--------------------

Services Administrators are able to DROP channels and also modify channel options without being
identified for that channel.



*Credits*
---------

I would like to thank a few people who have helped me in wiriting this operator's manual. Firstly
zekey and DreamHealer for training me with the Bahamut IRCd and its features. Scots and pharrell
for their guidance in network administration and management. Last but not least, to the staff of
DreamSpaceWorld IRC Network who have given me their support.

    Source: geocities.com/adrian_netto