1
0
mirror of https://github.com/unrealircd/unrealircd.git synced 2026-07-04 14:53:12 +02:00

2 Commits

Author SHA1 Message Date
cmunk 5f49057d01 Addition of Unreal3.1-beta3 2000-05-28 08:45:32 +00:00
cvs2hg 7c8ad67b28 fixup commit for branch 'unlabeled-1.1.1.1.4' 2000-02-28 22:45:49 +00:00
184 changed files with 9681 additions and 31861 deletions
-19
View File
@@ -1,19 +0,0 @@
Welcome to the UnrealIRCd configuration program. This program
will help you compile your IRC server by asking you questions
regarding your system and how you want the ircd to function.
If you need help setting up your server, mail
supporters@lists.unrealircd.org or ask on IRC:
/server irc.ircsystems.net, /join #unreal-support
Regardless, please read Unreal.nfo first along with all documentation
and FAQ's in doc/. If you do not do this, we will NOT help you!
If the code is changed in any way, or the version string is modified,
we will _NOT_ support the product. (Unless of course you got explicit
permission from one of the UnrealIRCd coders.)
Finally, unofficial UnrealIRCd/32 builds (if it doesn't say "genuine"
in the display) are _NOT_ supported.
-Luke (maintainer of UnrealIRCd 3.1.x)
-8
View File
@@ -1,8 +0,0 @@
|=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=|
| UnrealIRCD Custom Create Network Configuration|
|=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=|
| |
| This will not be too hard, just follow the |
| instructions, and answer the questions... |
| |
|=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=|
-30
View File
@@ -1,30 +0,0 @@
Unreal3.1.4-Meadows Release Notes
===================================
* This is yet another significant upgrade over the last version. Most notable
compatibility wise is the backporting of the new host cloaking from 3.2.
As a result of this, we strongly recommend that you convert all of your servers
to 3.1.4 and avoid running a network with mixed versions. They'll link fine
and operate okay, but the differences in cloaking will make it easier for
individuals to evade bans by simply switching servers.
* Also, before this version if a 3.2 server with IPv6 enabled was linked to the
network, and a client connected using IPv6, it caused 3.1.x servers to segfault,
as the cloaking routine was unable to deal with IPv6 format addresses. This is
also corrected in this version
* Please Note: There have been a couple of configuration file changes! This is
IMPORTANT. Your IRCd WILL NOT START if you don't change the cloak key values found
in unrealircd.conf. Additionally, it would be prudent to note that there is a
new directive in unrealircd.conf, exempt_all, which permits exempt lines in
ircd.conf to match glines in addition to klines. It defaults to 1. Finally, both
version numbers in the .network file and unrealircd.conf have been changed. In
unrealircd.conf, because of the 4 new directives. In the .network file because
we removed techadmin, and the host directive for it. We will NOT bring techadmin
back. If you don't like it, readd it yourself, and be sure to note that we won't
provide support for modified versions of Unreal.
* The rest of the changes can be found (obviously) in the Changes file.
* Finally, read Unreal.nfo as usual AND THE DOCS in doc/.
-17
View File
@@ -1,17 +0,0 @@
|-------------------------------------------------------------------------|
| Congratulations on your new SSL self-signed certificate for your IRCd. |
| However, wouldn't it be better that you get your certifcate signed by |
| some kind of Certification Authority (CA), so your users can check that |
| they are really connected to the real server, so they feel secure? |
| |
| An initiative has been started, to help this problem, as more and more |
| SSL-enabled IRC servers will be started in the future, and people will |
| have trouble authenticating that they are really at the right server. |
| This initiative is called OpenIRC CA - They offer you to sign |
| SSL certificates for use with your IRCd for free, |
| so your users can be sure that they can trust you and your server. |
| To get a signed certificate from them please visit the website |
| http://www.openirc-ca.eu.org |
| | Press enter to continue |
---------------------------------------------------------------------------
-17
View File
@@ -1,17 +0,0 @@
_ _ _ ___________ _____ _
| | | | | |_ _| ___ \/ __ \ | |
| | | |_ __ _ __ ___ __ _| | | | | |_/ /| / \/ __| |
| | | | '_ \| '__/ _ \/ _` | | | | | / | | / _` |
| |_| | | | | | | __/ (_| | |_| |_| |\ \ | \__/\ (_| |
\___/|_| |_|_| \___|\__,_|_|\___/\_| \_| \____/\__,_|
Update Script v2.0
What download program do you want to use?
-----------------------------------------
Type "wget" for wget
Type "lynx" for lynx
>
Vendored
-52
View File
@@ -1,52 +0,0 @@
--leave-preprocessor-space
--dont-break-procedure-type
--no-space-after-function-call-names
--brace-indent0
--indent-level8
-ip8
--dont-line-up-parentheses
--continuation-indentation4
--case-indentation2
--no-space-after-casts
--blank-lines-after-procedures
--no-blank-lines-after-declarations
--braces-on-struct-decl-line
--paren-indentation0
--case-brace-indentation0
--line-length80
--declaration-indentation5
-T size_t
-T aClass
-T TS
-T aClient
-T aServer
-T anUser
-T aChannel
-T Mode
-T aConfItem
-T aMessage
-T aMessageTree
-T aGline
-T aListingArgs
-T snomask_t
-T n_short
-T n_long
-T n_time
-T u_char
-T u_short
-T u_long
-T u_int
-T dbuf
-T dbufbuf
-T aHashEntry
-T Link
-T Dlink
-T VOIDSIG
-T aHostent
-T ResRQ
-T aCache
-T CacheTable
-T cainfo
-T reinfo
-T RETSIGTYPE
-T OPT_TYPE
-423
View File
@@ -1,423 +0,0 @@
/*
* UnrealIRCd Changes File - (C) Carsten Munk 1999-2002 &
* The UnrealIRCd Team
*
* $Id$
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 1, or (at your option)
* any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*
*/
[ Unreal4.0 ]
- Fixed a _serious_ bug in SERVER command, reported by Valen, Forrester,
M0rpheus, JK, and Hiten.
[ Unreal3.1.3 ]
-----------------------------------------------------------
Initial release, based on 3.1.1 code and lots of 3.2-beta
functions that are actually sane
-----------------------------------------------------------
resolv.h line 76
#if ((__GNU_LIBRARY__ == 6) && (__GLIBC__ >=2) && (__GLIBC_MINOR__ >= 2))
#define res_init __res_init
#endif
Fixes compile error w/ later glibc
--Luke
===================================
parse.c line 404
removed if (lifesux)
--Luke
===================================
s_bsd.c
first instance of HighscoreFD
removed the define
removed rhighest_fd as well
removed all instances of HighscoreFD()
changed rhighest_fd + 1 to MAXCONNECTION
(100% cpu fix from 3.1.1)
--Luke
===================================
channel.c
Took m_sjoin from 3.2
removed lp2
changed Member *lp to Link *lp;
Changed other stuff (document later?)
--Luke
===================================
s_serv.c
replaced m_server_estab with one from u32june12
--Luke
===================================
Fixed missing : on line 419 s_err.c (numeric 379)
--Luke
===================================
stole all m_chg* and m_set* functions from u32june12
in s_unreal.c
--Luke
===================================
stole sdesc from latest beta in s_unreal.c
--Luke
===================================
line 1683 in s_serv.c
added me to /info
--Luke
===================================
line 1342 res.c
added line sts foolishly deleted that broke win32 resolver
--Luke
===================================
line 2161 in channel.c
fixed mode segfault bug
--Luke
===================================
line 152, fixed #endif error
aln.c
--Luke
===================================
-------------------------------------------------------------
Beta2ish
-------------------------------------------------------------
line 341 ircd.c
win32 hates SIGQUIT, #ifndef it out.
--Zogg
===================================
line 1298 s_bsd.c
set_blocking() won't compile under msvc.
Not important, #ifndef'd out for win32
--Zogg
===================================
line 234 in Makefile.dist
fixed perms on ssl certs
--Luke
===================================
Added Zogg's win32 makefile that actually works.
--Luke
===================================
------------------------------------------------------------
Beta3ish
------------------------------------------------------------
Changed line 179 in ssl.c to
set_blocking(cptr->fd, NULL);
otherwise random segfaults on ssl connect occur
--Luke
===================================
Changed line 223 in ssl.c to
strcat(buf, (char *) my_itoa(bits));
otherwise got warning on compile in bsd
--Luke
===================================
Put in rest of patch for mode propagation bug
*whack*
--Luke
===================================
--------------------------------------------------------------
Beta4
--------------------------------------------------------------
Stole StripColors from 3.2-beta, resolves memory
leak in 3.1.3
--Luke
===================================
Rearranged doc/ slightly (moved some more stuff to
History
--Luke
===================================
s_user.c line 1946 - (char *)StripColors as per
new StripColors function from 3.2-beta
--Luke
===================================
stole add_exbanid and add_banid from devel
(other stuff was just weird)
--Luke
===================================
line 4748 in s_user.c for cases i and o added fix (svsmode)
line 4651 too (svs2mode)
for svsmode bug (thanks codemastr)
--Luke
===================================
line 829, 1035 in s_kline.c gline bug resolved
(again codemastr)
--Luke
===================================
line 1583 res.c fixed dns l, only opers!
(again codemastr)
--Luke
===================================
Modified ./Config to play nice with BSD
(and yes, God forbid, SunOS 5.x *shudder*)
--Luke
===================================
added -lsocket when compiling fdmaxcounter
in sunos 5.x, may produce crack induced result
but at least it compiles now
--Luke
===================================
145, list.c added passwd fix
deled cptr->passwd; above (line 135ish)
--Luke
===================================
*** 3.1.3 Released ***
[ Unreal 3.1.4 ]
--------------------------------------------------
The fixes and backports continue. Strange how much
time maintaining Unreal can eat up...
Beta1
--------------------------------------------------
Removed tech admin.
This feature is useless bloat. If you want it back
do NOT complain to any of the Unreal coders, feel
free to reimplement it yourself. Do note, however,
that if you modify the code in any way, shape, or
form you immediately give up your ability to
receive any type of support from us.
--Luke
===================================
Line 703 in ircd.c fixed...breaks
gcc3 compatibility (thanks to shellz.net's
NuC for reporting)
--Luke
===================================
Fixed issue in s_user.c where +H opers
could be identified by normal users in
a trivial manner (thanks to Magnet from
epiknet)
--Luke
===================================
s_user.c fixes
basically, /whois doesn't display snotice
if you're +W and do it to yourself
/who the same
and "is a secure connection" is no longer
bold (it was lame)
--Luke
===================================
s_serv.c fixes
fixed map bug that allowed you to trivially
find a hidden U lined server (hopefully)
--Luke
===================================
rmed zip.c (not used at all.)
and zip.h and anything related to zip
--Luke
===================================
E lines now match glines, zlines, shuns
(if you say yes in config)
--Luke
===================================
map bug still exists (earlier fix made it
worse)...removed.
--Luke
===================================
/adchat bug that sends it to coadmins twice
(coadmins are actually server admins as far
as the ircd is concerned for most purposes, no
need to send to both UMODES)
--Luke
===================================
rewrote m_kick almost entirely (it sucked)
--Luke
===================================
newdns.c removed - another useless file
--Luke
===================================
------------------------------------------------
Beta2
------------------------------------------------
ripped cloak.c from 3.2, and added Config
options as needed.
--Luke
===================================
Fixed 3 svsnoops bugs, so it appears to be
actually working now...
--Luke
===================================
+S users no longer show channels in /whois
--Luke
===================================
Added a gzline command. I use it with bopm on
my network all the time, and am getting
sick of readding it after each new release.
Additionally, I think it's a useful command
for anyone to have.
--Luke
===================================
Revamped operoverride stuff so it's consistent
and somewhat sane. (also made NetAdmin.Chat
NetAdminChat to keep with other forms)
--Luke
===================================
Fixed m_kick more
--Luke
===================================
Made "is a bot.." not bold
--Luke
===================================
Fixed a bug with \r\n being mistakenly parsed
wrong. Thanks to John_z
--Luke
===================================
Added temp patch to m_kline to stop segfault
--Luke
===================================
------------------------------------------------
Beta3
------------------------------------------------
Backported check_pings with loop.do_ban_check from 3.2
--Stskeeps
===================================
Added nice fix to HCN so that BOPM works natively
(it would still be wise to mod bopm yourself
and have it scan all clients by using +F, as I've
done, but whatever.)
--Luke
===================================
Moved cloak key definitions to .network file
--Luke
===================================
omfg, a patch that resolved some really interesting
problems with really long parameter modes has been
applied. (this in itself is a great reason to
upgrade)
--Luke
===================================
Moved exempt_all option to unrealircd.conf, no longer
a #define in settings.h & ./Config option.
--Luke
===================================
Made stop code error more stupid-people friendly
--Luke
===================================
Added code that shows nick changes on entire net
when umode +j (JUNK). Also, went through channel.c
and made all snotices look "nicer"
--Luke
===================================
Moved cloak keys to unrealircd.conf, since the
.network files are public domain (in general).
Go lynch Stskeeps if you don't like it.
--Luke
===================================
Actually added sample lines to unrealircd.conf
for EXEMPT_ALL and CLOAK_KEY_n. Also, changed
version number on both that and the .network
file, as both have changed since 3.1.3.
--Luke
===================================
Useful /who patch incorporated, thanks to
larne
--Luke
===================================
Rewrote all of /who, fuck everyone's patches
mine are better!
--Luke
===================================
More /who madness! I've added an h flag, similar
to the o flag that you can append on the end
for opers, so for instance say you /who *bob* h
it will display real hosts instead of masked ones
in the replies.
--Luke
===================================
Oper invisibility is no longer enabled by default
but is a provided option in ./Config
--Luke
===================================
Changed information flag shown in /version. R now
appears if invisibility is compiled in (even if
disabled in unrealircd.conf)
--Luke
===================================
rmed Config.c (broken, severely) and networks.ndx
--Luke
===================================
Added win32-compile-guide in doc/ for people wanting
to compile their own version for windows.
--Luke
===================================
Once again we global when anyone that's not a local
oper opers. I like this, if you don't email me and
maybe I'll add a conf option for it.
--Luke
===================================
-1988
View File
File diff suppressed because it is too large Load Diff
-15
View File
@@ -1,15 +0,0 @@
Send donations to:
------------------
UnrealIRCd Project
C/O Carsten Munk
P.O.Box 52
7400 Herning
Denmark
(if you want to that is .. it will just make us a little more able to code
even more on this project. You will get in /credits if you do so).
-- Stskeeps
[ $Id$ ]
-156
View File
@@ -1,156 +0,0 @@
$Id$
Installation Procedures for the UnrealIRCD:
=======================================================================
Created by Stskeeps <stskeeps@tspre.org>
=======================================================================
This document describes how to install ircd, the unix daemon that acts as
an IRC server.
For more information on UnrealIRCD contact us at
unreal-dev@lists.sourceforge.net
The UnrealIRCD is available from http://www.unrealircd.com
along with the latest copy of this document.
=======================================================================
This version of the UnrealIRCD is known to compile on the following
platforms, and with the following compilers. If you wish to add to this
list, send the relevant information to us.
OS and Version Compiler and Version Comments
------------------- ------------------------ -------------------------------
NetBSD 1.2B gcc 2.7.2
FreeBSD 2.1.0 gcc 2.6.3 Do NOT use crypt at all...
SunOS 4.1.4 gcc 2.7-96q1 (Cygnus)
Solaris 2.4 gcc 2.7-96q1 (Cygnus) (SunOS 5.4)
Solaris 2.5 SunWorks Pro C (SunOS 5.5.1)
cc: SC4.0 18 Oct 1995 C 4.0
Digital Unix 3.2 gcc 2.7-96q3 (Cygnus)
Linux 2.0.24 gcc 2.7.2.1
HPUX 9.01 gcc 2.6.3
HPUX 10.01 gcc 2.7-96q3 (Cygnus)
Linux PPC (iMac)
AmigaOS 3.0 GCC egcs-2.91.66 (compile with -D_AMIGA)
Windows NT/95 MSVC++ 4.0
Linux Mandrake Read FAQ
Linux 2.3.x gcc 2.95.2 glibc 2.1.3
=======================================================================
Unpacking the Distribution
If you are reading this, you have most likely already done this, but to
recap:
The UnrealIRCD server comes tarred and gziped. To uncompress it and expand
it, use the following commands at the Unix prompt:
gzip -d Unreal3.1.tar.gz
tar -xvf Unreal3.1.tar
This will create a new directory called Unreal3.0 and unpack the source
into it.
=======================================================================
Editing the Configuration Files
In previous versions of the source code many files had to be edited to
make things right for any given server.
In this version you DO NOT NEED TO EDIT THE Makefile OR ANY FILES
IN include! That is, unless you set some strange options. If you
find the need to edit include/config.h, for example,
mail us and tell us why ; Config can be made smarter, and that will make
it so you won't have to edit anything for the next version.
=======================================================================
Compiling Your Server
Windows users: You must compile the Config program first. To do this
run the following command: $CC src\Config.c
where $CC is the name of your compiler. for MSVC users that is 'cl'
To build the server, simply run
% ./Config
to start the configuraton program. This program looks at your system
and generate the include/setup.h, include/settings.h, and Options files.
You will be asked some questions. Usually the default answers are the best
ones and most correct. To accept the default, just hit RETURN.
Next, type 'make'. This will compile your server. Depending on your system,
this may be a good time for a caffeine break. (MSVC users run 'nmake')
Hopefully, the server will compile without incident. If it does not, and
you are not able to determine the error, please email
unreal-dev@lists.sourceforge.net and hopefully someone will be able to help you with the problem. If you
do need to fix something, mail there with a patch.
BE CERTAIN TO INCLUDE OPERATING SYSTEM INFORMATION (uname -a) AND COMPILER
VERSION (gcc -v, for instance) IN ALL BUG REPORTS.
=======================================================================
Installing the Files
'make install' does not work in this release -- it doesn't do anything
except a compile if that is needed.
The only files you need are the binary from src/ircd and and an ircd.conf
(see below for copying doc/example.conf as your initial ircd.conf). You
probably will want to create a MOTD file too, as well as place the man
pages from the doc directory to appropriate place in your system.
=======================================================================
Configuring Your Server
The previous step places a file named 'example.conf' into your irc
directory you specified to Config.
To create an IRC configuration file, edit: ircd.conf
Now edit this file to reflect your server. The file is mainly
self-explanatory. Note that if you plan to use your server on ROXnet,
make sure that you have the following line:
U:services.roxnet.org:*:*
If you need help configuring your file, please connect to ROXnet,
(irc.flirt.org or irc.roxnet.org) - go to channel #UnrealIRCd, and ask.
=======================================================================
Starting Your Server
Simply enter the complete path to the executable into the Unix command
line, then hit return. Your server is now operational, assuming that you
have completed all the steps described above.
NOTE: If you get something like the following when running ircd:
ircd fd table too big
Hard Limit: 256 IRC max: 1024
Fix MAXCONNECTIONS
You need to change config.h and recompile. Find the line that says
"#define MAXCONNECTIONS 1024", and change it to the number given after
"Hard Limit" (most likely 256), then make the server again, following the
above instructions.
Enjoy!
- The UnrealIRCd Team - unreal-dev@lists.sourceforge.net
-340
View File
@@ -1,340 +0,0 @@
GNU GENERAL PUBLIC LICENSE
Version 2, June 1991
Copyright (C) 1989, 1991 Free Software Foundation, Inc.
59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
Preamble
The licenses for most software are designed to take away your
freedom to share and change it. By contrast, the GNU General Public
License is intended to guarantee your freedom to share and change free
software--to make sure the software is free for all its users. This
General Public License applies to most of the Free Software
Foundation's software and to any other program whose authors commit to
using it. (Some other Free Software Foundation software is covered by
the GNU Library General Public License instead.) You can apply it to
your programs, too.
When we speak of free software, we are referring to freedom, not
price. Our General Public Licenses are designed to make sure that you
have the freedom to distribute copies of free software (and charge for
this service if you wish), that you receive source code or can get it
if you want it, that you can change the software or use pieces of it
in new free programs; and that you know you can do these things.
To protect your rights, we need to make restrictions that forbid
anyone to deny you these rights or to ask you to surrender the rights.
These restrictions translate to certain responsibilities for you if you
distribute copies of the software, or if you modify it.
For example, if you distribute copies of such a program, whether
gratis or for a fee, you must give the recipients all the rights that
you have. You must make sure that they, too, receive or can get the
source code. And you must show them these terms so they know their
rights.
We protect your rights with two steps: (1) copyright the software, and
(2) offer you this license which gives you legal permission to copy,
distribute and/or modify the software.
Also, for each author's protection and ours, we want to make certain
that everyone understands that there is no warranty for this free
software. If the software is modified by someone else and passed on, we
want its recipients to know that what they have is not the original, so
that any problems introduced by others will not reflect on the original
authors' reputations.
Finally, any free program is threatened constantly by software
patents. We wish to avoid the danger that redistributors of a free
program will individually obtain patent licenses, in effect making the
program proprietary. To prevent this, we have made it clear that any
patent must be licensed for everyone's free use or not licensed at all.
The precise terms and conditions for copying, distribution and
modification follow.
GNU GENERAL PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
0. This License applies to any program or other work which contains
a notice placed by the copyright holder saying it may be distributed
under the terms of this General Public License. The "Program", below,
refers to any such program or work, and a "work based on the Program"
means either the Program or any derivative work under copyright law:
that is to say, a work containing the Program or a portion of it,
either verbatim or with modifications and/or translated into another
language. (Hereinafter, translation is included without limitation in
the term "modification".) Each licensee is addressed as "you".
Activities other than copying, distribution and modification are not
covered by this License; they are outside its scope. The act of
running the Program is not restricted, and the output from the Program
is covered only if its contents constitute a work based on the
Program (independent of having been made by running the Program).
Whether that is true depends on what the Program does.
1. You may copy and distribute verbatim copies of the Program's
source code as you receive it, in any medium, provided that you
conspicuously and appropriately publish on each copy an appropriate
copyright notice and disclaimer of warranty; keep intact all the
notices that refer to this License and to the absence of any warranty;
and give any other recipients of the Program a copy of this License
along with the Program.
You may charge a fee for the physical act of transferring a copy, and
you may at your option offer warranty protection in exchange for a fee.
2. You may modify your copy or copies of the Program or any portion
of it, thus forming a work based on the Program, and copy and
distribute such modifications or work under the terms of Section 1
above, provided that you also meet all of these conditions:
a) You must cause the modified files to carry prominent notices
stating that you changed the files and the date of any change.
b) You must cause any work that you distribute or publish, that in
whole or in part contains or is derived from the Program or any
part thereof, to be licensed as a whole at no charge to all third
parties under the terms of this License.
c) If the modified program normally reads commands interactively
when run, you must cause it, when started running for such
interactive use in the most ordinary way, to print or display an
announcement including an appropriate copyright notice and a
notice that there is no warranty (or else, saying that you provide
a warranty) and that users may redistribute the program under
these conditions, and telling the user how to view a copy of this
License. (Exception: if the Program itself is interactive but
does not normally print such an announcement, your work based on
the Program is not required to print an announcement.)
These requirements apply to the modified work as a whole. If
identifiable sections of that work are not derived from the Program,
and can be reasonably considered independent and separate works in
themselves, then this License, and its terms, do not apply to those
sections when you distribute them as separate works. But when you
distribute the same sections as part of a whole which is a work based
on the Program, the distribution of the whole must be on the terms of
this License, whose permissions for other licensees extend to the
entire whole, and thus to each and every part regardless of who wrote it.
Thus, it is not the intent of this section to claim rights or contest
your rights to work written entirely by you; rather, the intent is to
exercise the right to control the distribution of derivative or
collective works based on the Program.
In addition, mere aggregation of another work not based on the Program
with the Program (or with a work based on the Program) on a volume of
a storage or distribution medium does not bring the other work under
the scope of this License.
3. You may copy and distribute the Program (or a work based on it,
under Section 2) in object code or executable form under the terms of
Sections 1 and 2 above provided that you also do one of the following:
a) Accompany it with the complete corresponding machine-readable
source code, which must be distributed under the terms of Sections
1 and 2 above on a medium customarily used for software interchange; or,
b) Accompany it with a written offer, valid for at least three
years, to give any third party, for a charge no more than your
cost of physically performing source distribution, a complete
machine-readable copy of the corresponding source code, to be
distributed under the terms of Sections 1 and 2 above on a medium
customarily used for software interchange; or,
c) Accompany it with the information you received as to the offer
to distribute corresponding source code. (This alternative is
allowed only for noncommercial distribution and only if you
received the program in object code or executable form with such
an offer, in accord with Subsection b above.)
The source code for a work means the preferred form of the work for
making modifications to it. For an executable work, complete source
code means all the source code for all modules it contains, plus any
associated interface definition files, plus the scripts used to
control compilation and installation of the executable. However, as a
special exception, the source code distributed need not include
anything that is normally distributed (in either source or binary
form) with the major components (compiler, kernel, and so on) of the
operating system on which the executable runs, unless that component
itself accompanies the executable.
If distribution of executable or object code is made by offering
access to copy from a designated place, then offering equivalent
access to copy the source code from the same place counts as
distribution of the source code, even though third parties are not
compelled to copy the source along with the object code.
4. You may not copy, modify, sublicense, or distribute the Program
except as expressly provided under this License. Any attempt
otherwise to copy, modify, sublicense or distribute the Program is
void, and will automatically terminate your rights under this License.
However, parties who have received copies, or rights, from you under
this License will not have their licenses terminated so long as such
parties remain in full compliance.
5. You are not required to accept this License, since you have not
signed it. However, nothing else grants you permission to modify or
distribute the Program or its derivative works. These actions are
prohibited by law if you do not accept this License. Therefore, by
modifying or distributing the Program (or any work based on the
Program), you indicate your acceptance of this License to do so, and
all its terms and conditions for copying, distributing or modifying
the Program or works based on it.
6. Each time you redistribute the Program (or any work based on the
Program), the recipient automatically receives a license from the
original licensor to copy, distribute or modify the Program subject to
these terms and conditions. You may not impose any further
restrictions on the recipients' exercise of the rights granted herein.
You are not responsible for enforcing compliance by third parties to
this License.
7. If, as a consequence of a court judgment or allegation of patent
infringement or for any other reason (not limited to patent issues),
conditions are imposed on you (whether by court order, agreement or
otherwise) that contradict the conditions of this License, they do not
excuse you from the conditions of this License. If you cannot
distribute so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence you
may not distribute the Program at all. For example, if a patent
license would not permit royalty-free redistribution of the Program by
all those who receive copies directly or indirectly through you, then
the only way you could satisfy both it and this License would be to
refrain entirely from distribution of the Program.
If any portion of this section is held invalid or unenforceable under
any particular circumstance, the balance of the section is intended to
apply and the section as a whole is intended to apply in other
circumstances.
It is not the purpose of this section to induce you to infringe any
patents or other property right claims or to contest validity of any
such claims; this section has the sole purpose of protecting the
integrity of the free software distribution system, which is
implemented by public license practices. Many people have made
generous contributions to the wide range of software distributed
through that system in reliance on consistent application of that
system; it is up to the author/donor to decide if he or she is willing
to distribute software through any other system and a licensee cannot
impose that choice.
This section is intended to make thoroughly clear what is believed to
be a consequence of the rest of this License.
8. If the distribution and/or use of the Program is restricted in
certain countries either by patents or by copyrighted interfaces, the
original copyright holder who places the Program under this License
may add an explicit geographical distribution limitation excluding
those countries, so that distribution is permitted only in or among
countries not thus excluded. In such case, this License incorporates
the limitation as if written in the body of this License.
9. The Free Software Foundation may publish revised and/or new versions
of the General Public License from time to time. Such new versions will
be similar in spirit to the present version, but may differ in detail to
address new problems or concerns.
Each version is given a distinguishing version number. If the Program
specifies a version number of this License which applies to it and "any
later version", you have the option of following the terms and conditions
either of that version or of any later version published by the Free
Software Foundation. If the Program does not specify a version number of
this License, you may choose any version ever published by the Free Software
Foundation.
10. If you wish to incorporate parts of the Program into other free
programs whose distribution conditions are different, write to the author
to ask for permission. For software which is copyrighted by the Free
Software Foundation, write to the Free Software Foundation; we sometimes
make exceptions for this. Our decision will be guided by the two goals
of preserving the free status of all derivatives of our free software and
of promoting the sharing and reuse of software generally.
NO WARRANTY
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
REPAIR OR CORRECTION.
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
POSSIBILITY OF SUCH DAMAGES.
END OF TERMS AND CONDITIONS
How to Apply These Terms to Your New Programs
If you develop a new program, and you want it to be of the greatest
possible use to the public, the best way to achieve this is to make it
free software which everyone can redistribute and change under these terms.
To do so, attach the following notices to the program. It is safest
to attach them to the start of each source file to most effectively
convey the exclusion of warranty; and each file should have at least
the "copyright" line and a pointer to where the full notice is found.
<one line to give the program's name and a brief idea of what it does.>
Copyright (C) <year> <name of author>
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
Also add information on how to contact you by electronic and paper mail.
If the program is interactive, make it output a short notice like this
when it starts in an interactive mode:
Gnomovision version 69, Copyright (C) year name of author
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
This is free software, and you are welcome to redistribute it
under certain conditions; type `show c' for details.
The hypothetical commands `show w' and `show c' should show the appropriate
parts of the General Public License. Of course, the commands you use may
be called something other than `show w' and `show c'; they could even be
mouse-clicks or menu items--whatever suits your program.
You should also get your employer (if you work as a programmer) or your
school, if any, to sign a "copyright disclaimer" for the program, if
necessary. Here is a sample; alter the names:
Yoyodyne, Inc., hereby disclaims all copyright interest in the program
`Gnomovision' (which makes passes at compilers) written by James Hacker.
<signature of Ty Coon>, 1 April 1989
Ty Coon, President of Vice
This General Public License does not permit incorporating your program into
proprietary programs. If your program is a subroutine library, you may
consider it more useful to permit linking proprietary applications with the
library. If this is what you want to do, use the GNU Library General
Public License instead of this License.
-238
View File
@@ -1,238 +0,0 @@
#/************************************************************************
#* IRC - Internet Relay Chat, Makefile
#* Copyright (C) 1990, Jarkko Oikarinen
#*
#* This program is free software; you can redistribute it and/or modify
#* it under the terms of the GNU General Public License as published by
#* the Free Software Foundation; either version 1, or (at your option)
#* any later version.
#*
#* This program is distributed in the hope that it will be useful,
#* but WITHOUT ANY WARRANTY; without even the implied warranty of
#* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
#* GNU General Public License for more details.
#*
#* You should have received a copy of the GNU General Public License
#* along with this program; if not, write to the Free Software
#* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
#*
#* $Id$
#*/
CC=gcc
INCLUDEDIR=../include
NETWORKSDIR=
FROMDOS=/home/cmunk/bin/4dos
# [CHANGEME]
# Default flags:
# Change XCFLAGS if you don't like what Config puts there. Same with
# IRCDLIBS.
#
# If you are configuring by hand, try "-O -g" for XCFLAGS, and leave
# IRCDLIBS blank. If that fails, try recomendations below.
#
XCFLAGS=
IRCDLIBS=
CRYPTOLIB=
OPENSSLINCLUDES=
#
# use the following on MIPS:
#CFLAGS= -systype bsd43 -DSYSTYPE_BSD43 -I$(INCLUDEDIR)
# For Irix 4.x (SGI), use the following:
#CFLAGS= -g -cckr -I$(INCLUDEDIR)
#
# on NEXT use:
#CFLAGS=-bsd -I$(INCLUDEDIR)
#on NeXT other than 2.0:
#IRCDLIBS=-lsys_s
#
# AIX 370 flags
#CFLAGS=-D_BSD -Hxa -I$(INCLUDEDIR)
#IRCDLIBS=-lbsd
#
# Dynix/ptx V2.0.x
#CFLAGS= -I$(INCLUDEDIR) -O -Xo
#IRCDLIBS= -lsocket -linet -lnsl -lseq
#
# Dynix/ptx V1.x.x
#IRCDLIBS= -lsocket -linet -lnsl -lseq
#
#use the following on SUN OS without nameserver libraries inside libc
#IRCDLIBS=-lresolv
#
# Solaris 2
#IRCDLIBS=-lsocket -lnsl -lresolv -L/usr/ucblib -R/usr/ucblib -lgen
#
# ESIX
#CFLAGS=-O -I$(INCLUDEDIR) -I/usr/ucbinclude
#IRCDLIBS=-L/usr/ucblib -L/usr/lib -lsocket -lucb -lns -lnsl
#
# LDFLAGS - flags to send the loader (ld). SunOS users may want to add
# -Bstatic here.
#
#LDFLAGS=-Bstatic
#
#Dell SVR4
#CC=gcc
#CFLAGS= -I$(INCLUDEDIR) -O2
#IRCDLIBS=-lsocket -lnsl -lucb
# [CHANGEME]
# IRCDMODE is the mode you want the binary to be.
# The 4 at the front is important (allows for setuidness)
#
# WARNING: if you are making ircd SUID or SGID, check config.h to make sure
# you are not defining CMDLINE_CONFIG
IRCDMODE = 711
# [CHANGEME]
# IRCDDIR must be the same as DPATH in include/config.h
#
IRCDDIR=/usr/local/lib/ircd
# [CHANGEME]
# Some SunOS versions want this. Try it without first.
#RES=res_init.o res_comp.o res_mkquery.o
# BSDI systems want this.
#RES=res_skipname.o
# The rest are perfectly content with this.
RES=
#
# If your system is lacking regex, uncomment this line
#
#REGEX=../extras/regex/regex.o
REGEX=
# [CHANGEME]
# If you get a compile-time error dealing with u_int32_t, comment out
# this line.
# NEED_U_INT32_T= -DNEED_U_INT32_T
NEED_U_INT32_T=
# [CHANGEME]
# If you get a link-time error dealing with strtoul, comment out
# this line.
# STRTOUL= strtoul.o
STRTOUL=
# [CHANGEME]
# If you get crashes around a specific number of clients, and that client
# load comes close or a little over the system-defined value of FD_SETSIZE,
# override it here and see what happens.
FD_SETSIZE=
# Where is your openssl binary
OPENSSLPATH=
CFLAGS=-I$(INCLUDEDIR) $(XCFLAGS) $(NEED_U_INT32_T) $(FD_SETSIZE)
SHELL=/bin/sh
SUBDIRS=src
BINDIR=$(IRCDDIR)
MANDIR=/usr/local/man
INSTALL=/usr/bin/install
RM=rm
CP=cp
TOUCH=touch
all: build
MAKEARGS = 'CFLAGS=${CFLAGS}' 'CC=${CC}' 'IRCDLIBS=${IRCDLIBS}' \
'LDFLAGS=${LDFLAGS}' 'IRCDMODE=${IRCDMODE}' \
'BINDIR=${BINDIR}' 'INSTALL=${INSTALL}' \
'INCLUDEDIR=${INCLUDEDIR}' 'IRCDDIR=${IRCDDIR}' \
'MANDIR=${MANDIR}' 'RM=${RM}' 'CP=${CP}' 'TOUCH=${TOUCH}' \
'RES=${RES}' 'SHELL=${SHELL}' 'STRTOUL=${STRTOUL}' \
'CRYPTOLIB=${CRYPTOLIB}' 'REGEX=${REGEX}' \
'CRYPTOINCLUDES=${CRYPTOINCLUDES}'
server:
build:
-@if [ ! -f include/setup.h ] ; then \
echo "Hmm...doesn't look like you've run Config..."; \
echo "Doing so now."; \
sh Config; \
fi
@for i in $(SUBDIRS); do \
echo "Building $$i";\
( cd $$i; ${MAKE} ${MAKEARGS} build; ) \
done
@echo ' __________________________________________________ '
@echo '| Compile is now complete. Now you have to go do |'
@echo '| The load-time configuration - try go read the |'
@echo '| file "dynconf" using your favourite viewer or |'
@echo '| editor. The file will contain instructions on how|'
@echo '| to do the dynamic configuration :) |'
@echo '| You might want to see include/config.h to adjust |'
@echo '| some settings |'
@echo '| |'
@echo '| If you really like UnrealIRCd, and would like to |'
@echo '| make a donation, please read the Donation file in|'
@echo '| this archive. :) |'
@echo '| |'
@echo '| Thanks for using Unreal IRCd! If you are in need |'
@echo '| for any kind of help regarding the IRCd please |'
@echo '| read the Unreal.nfo file. |'
@echo '|__________________________________________________|'
clean:
$(RM) -f *~ \#* core *.orig include/*.orig
@for i in $(SUBDIRS); do \
echo "Cleaning $$i";\
( cd $$i; ${MAKE} ${MAKEARGS} clean; ) \
done
-@if [ -f include/setup.h ] ; then \
echo "To really restart installation, remove include/setup.h" ; \
fi
-@if [ -f include/settings.h ] ; then \
echo "and include/settings.h" ; \
fi
cleandir: clean
rm -rf include/networks.h include/setup.h include/settings.h Makefile Settings
makex:
chmod +x Config newnet ircd ircdcron/ircdchk killircd
chmod +x makeconf rehash ircdreg
fromdos: cleandir
$(FROMDOS) -dv *
$(FROMDOS) -dv src/*
$(FROMDOS) -dv include/*
$(FROMDOS) -dv doc/*
$(FROMDOS) -dv crypt/*
$(FROMDOS) -dv ircdcron/*
makedist: makex
echo "Stamping.."
stamp: makedist
echo "/* Auto created release stamping */" > include/stamp.h
echo "#define RELEASEID2 \"`date +%s`\"" >> include/stamp.h
echo "#define RELEASESTUFF \"`hostname`\"" >> include/stamp.h
echo "" >> include/stamp.h
depend:
@for i in $(SUBDIRS); do \
echo "Making dependencies in $$i";\
( cd $$i; ${MAKE} ${MAKEARGS} depend; ) \
done
install: all
@echo "Now install by hand; make install is broken."
pem: src/ssl.cnf
@echo "Generating certificate request .. "
$(OPENSSLPATH) req -new -config src/ssl.cnf -out server.req.pem \
-keyout server.key.pem -nodes
@echo "Generating self-signed certificate .. "
$(OPENSSLPATH) req -x509 -days 365 -in server.req.pem \
-key server.key.pem -out server.cert.pem
@echo "Generating fingerprint .."
$(OPENSSLPATH) x509 -subject -dates -fingerprint -noout \
-in server.cert.pem
@echo "Setting o-rwx & g-rwx for files... "
chmod o-rwx server.req.pem server.key.pem server.cert.pem
chmod g-rwx server.req.pem server.key.pem server.cert.pem
@echo "Done!"
-37
View File
@@ -1,37 +0,0 @@
#!/bin/sh
clear
echo "Starting up UnrealIRCd Setup"
echo ""
echo "Press enter to proceed to setup..."
read cc
more -d Unreal.nfo
echo "Press enter to proceed to FAQ..."
read cc
more -d doc/faq
echo "Press enter to proceed to configuration..."
read cc
if [ "$1" != "-noconfig" ] ; then
./Config
fi
echo "Press enter to proceed to compiling..."
read cc
make
echo "Press enter to proceed to ircd.conf making..."
read cc
./makeconf
echo "Press enter to proceed to network configuration..."
read cc
clear
echo "Do you want to use one of these network files, or make your own?"
cd networks
ls *.network
echo "[Type "no" if you want to make your own]"
read cc
if [ "$cc" == "no" ] ; then
./makenet
fi
echo "Press enter to proceed to dynamic ircd configuration..."
read cc
pico unrealircd.conf
echo "You should be able to run UnrealIRCd using ./ircd now".
-59
View File
@@ -1,59 +0,0 @@
===============================================
= UnrealIRCd v3.1.4 =
===============================================
Was brought to you by:
* Stskeeps <stskeeps@unrealircd.com>
* codemastr <codemastr@unrealircd.com>
* Luke <luke@unrealircd.com>
Precenses on the Internet:
* http://www.unrealircd.com
CVS:
To get anonymous access: (read only)
"cvs -d :pserver:anonymous@cvs.ircsystems.net:/home/cmunk/ircsystems/cvsroot login"
press enter when asked for password
and to get latest stable:
"cvs -d :pserver:anonymous@cvs.ircsystems.net:/home/cmunk/ircsystems/cvsroot checkout -r stable -d Unreal-stable unreal"
latest beta:
"cvs -d :pserver:anonymous@cvs.ircsystems.net:/home/cmunk/ircsystems/cvsroot checkout -r beta -d Unreal-beta unreal"
* To get support
================
* IRC: /server irc.ircsystems.net 6667 - /join #unreal-support
[Note: Please be patient after asking questions, we may do other stuff
or we're away. Don't repeat questions, we heard you first time,
READ THE TOPIC before you ask anything. We do this on a free
base so we are volunteeringly helping you, but we are humans
like you, and we got to have peace at times as well.]
* Mailing list: unreal-support@lists.sourceforge.net (for support)
* READ doc/faq BEFORE ASKING QUESTIONS!
* Got a bug to report?
======================
* If the server crashes and dumps core do this:
* Go into the Unreal directory and type this:
gdb src/ircd core.filename
where core.filename is the filename in the dumping core message
if it loads gdb, (not saying "command not found" etc), type "bt" in
the program (type "quit" to get out again)
The output coming out there please mail it to
unreal-dev@lists.sourceforge.net, along with OS type,
what "uname -a" says, any clues what it is, if you did anything etc
etc. Please keep the core dump files if we ask you to mail us them
if needed
* If you experince any wierdnesses (that doesnt crash the server)
please mail unreal-dev@lists.sourceforge.net with any clues on what
you did, what you experinced etc.
* Got a suggestion?
===================
* Mail it to unreal-dev@lists.sourceforge.net :) or catch one from
the Unreal team online on IRC:)
-53
View File
@@ -1,53 +0,0 @@
#
# Unreal Internet Relay Chat Daemon
# Copyright (C) Carsten V. Munk 2000
#
# NOTE: Those words are not meant to insult you (the user)
# but is meant to be a list of words so that the +G channel/user mode
# will work properly. You can easily modify this file at your will.
# If you got words to add to this file, please mail badwords@tspre.org
#
#
#
#
#
#
# This is some filling space, scroll down to see the words
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
pussy
fuck
whore
slut
shit
asshole
bitch
cunt
vagina
penis
jackass
*fucker*
faggot
fag
horny
gay
dickhead
sonuvabitch
*fuck*
boobs
tits
-53
View File
@@ -1,53 +0,0 @@
#
# Unreal Internet Relay Chat Daemon
# Copyright (C) Carsten V. Munk 2000
#
# NOTE: Those words are not meant to insult you (the user)
# but is meant to be a list of words so that the +G channel/user mode
# will work properly. You can easily modify this file at your will.
# If you got words to add to this file, please mail badwords@tspre.org
#
#
#
#
#
#
# This is some filling space, scroll down to see the words
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
pussy
fuck
whore
slut
shit
asshole
bitch
cunt
vagina
penis
jackass
*fucker*
faggot
fag
horny
gay
dickhead
sonuvabitch
*fuck*
boobs
tits
-40
View File
@@ -1,40 +0,0 @@
#************************************************************************
#* IRC - Internet Relay Chat, ircd/crypt/Makefile
#* Copyright (C) 1991 Darren Reed
#*
#* This program is free software; you can redistribute it and/or modify
#* it under the terms of the GNU General Public License as published by
#* the Free Software Foundation; either version 1, or (at your option)
#* any later version.
#*
#* This program is distributed in the hope that it will be useful,
#* but WITHOUT ANY WARRANTY; without even the implied warranty of
#* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
#* GNU General Public License for more details.
#*
#* You should have received a copy of the GNU General Public License
#* along with this program; if not, write to the Free Software
#* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
#*
#* $Id$
#*/
#
# Change this to the path of your local ircd.conf file
#
IRCDCONF = ../ircd.conf
LIBS=-lcrypt
all: mkpasswd
crypt: install
mkpasswd: mkpasswd.c
cc ${LIBS} -O mkpasswd.c -o mkpasswd
install:
chmod 700 crypter
./crypter ${IRCDCONF}
@echo 'done.'
clean:
/bin/rm -f mkpasswd
-63
View File
@@ -1,63 +0,0 @@
/************************************************************************
* IRC - Internet Relay Chat, ircd/crypt/README
* Copyright (C) 1991 Nelson Minar
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 1, or (at your option)
* any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*
* $Id$
*/
The change implemented here is that the operator password in irc.conf
is no longer stored in plaintext form, but is encrypted the same way
that user passwords are encrypted on normal UNIX systems. Ie, instead
of having
O:*:goodboy:Nelson
in your ircd.conf file, you have
O:*:sCnvYRmbFJ7oI:Nelson
You still type "/oper Nelson goodboy" to become operator. However, if
someone gets ahold of your irc.conf file, they can no longer figure
out what the password is from reading it. There are still other
security holes, namely server-server passwords, but this closes one
obvious problem.
So how do you generate these icky looking strings for passwords?
There's a simple program called mkpasswd to do that for you. Just run
mkpasswd, and at the prompt type in your plaintext password. It will
spit out the encrypted password, which you should then just copy into
the irc.conf file. This should be done only when adding new passwords
to your irc.conf file. To change over your irc.conf file to use
encrypted passwords, define CRYPT_OPER_PASSWORD in config.h. You will
need to recompile your server if you already compiled it with this
feature disabled. Once compiled, edit the Makefile in this directory
and chang "IRCDCONF" to your irc.conf file. Then "make install" in this
directory to replace all the operator passwords in your irc.conf file
with the encrypted format.
Choose your passwords carefully. Do not choose something in a
dictionary, make sure its at least 5 characters. Anything past 8
characters is ignored.
One thing to note about crypt() passwords - for every plaintext, there
are 4096 different passwords. Some valid encryptions of "goodboy"
include t1Ub2RhRQHd4g sCnvYRmbFJ7oI and Xr4Z.Kg5tcdy6. The first
two characters (the "salt") determine which of the 4096 passwords
you will get. mkpasswd chooses the salt randomly, or alternately
will let you specify one on the command line.
see also - crypt(3)
-77
View File
@@ -1,77 +0,0 @@
#!/usr/local/bin/perl
#************************************************************************
#* IRC - Internet Relay Chat, ircd/crypt/crypter
#* Copyright (C) 1991 Sean Batt
#*
#* This program is free software; you can redistribute it and/or modify
#* it under the terms of the GNU General Public License as published by
#* the Free Software Foundation; either version 1, or (at your option)
#* any later version.
#*
#* This program is distributed in the hope that it will be useful,
#* but WITHOUT ANY WARRANTY; without even the implied warranty of
#* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
#* GNU General Public License for more details.
#*
#* You should have received a copy of the GNU General Public License
#* along with this program; if not, write to the Free Software
#* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
#*
#* $Id$
#*
#*/
#From Sean Batt sean@coombs.anu.edu.au
#
#Temporary output file
#
$tmpfile = "/tmp/ircd.conf.tmp";
#
#Original ircd.conf file
#
$ircdconf = @ARGV[0];
$ircdout = "IRCDOUT";
print "crypting ",$ircdconf,"\n";
@saltset = ('a' .. 'z', 'A' .. 'Z', '0' .. '9', '.', '/');
umask(0077);
open ($ircdout, ">/tmp/ircd.conf.tmp") || die "open $!";
while ($text = <>) {
#if its not an "O" line we can ignore it
if ($text =~ /^o/i) {
chop($text);
@oline = split(':', $text);
$salt = $saltset[rand(time)%64].$saltset[(rand(time)>>6)%64];
$oline[2] = crypt(@oline[2], $salt);
print ($ircdout join(':',@oline)."\n");
}
elsif ($text =~ /^n/i) {
chop($text);
@nline = split(':', $text);
$salt = $saltset[rand(time)%64].$saltset[(rand(time)>>6)%64];
$nline[2] = crypt(@nline[2], $salt);
print ($ircdout join(':',@nline)."\n");
}
elsif ($text =~ /^x/i) {
chop($text);
@xline = split(':', $text);
$salt1 = $saltset[rand(time)%64].$saltset[(rand(time)>>6)%64];
$salt2 = $saltset[rand(time)%64].$saltset[(rand(time)>>6)%64];
$xline[1] = crypt(@xline[1], $salt1);
$xline[2] = crypt(@xline[2], $salt2);
print ($ircdout join(':',@xline)."\n");
}
else {
print $ircdout "$text";
}
}
close ($ircdout);
close ($ircdin);
print "/bin/cp ",$tmpfile," ",$ircdconf,"\n";
(fork()==0) ? exec("/bin/cp", $tmpfile, $ircdconf) : wait;
#unlink($tmpfile);
-43
View File
@@ -1,43 +0,0 @@
/* simple password generator by Nelson Minar (minar@reed.edu)
* copyright 1991, all rights reserved.
* You can use this code as long as my name stays with it.
*
* $Id$
*
*/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
extern char *getpass();
int main(argc, argv)
int argc;
char *argv[];
{
static char saltChars[] = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789./";
char salt[3];
char * plaintext;
int i;
if (argc < 2) {
srandom(time(0)); /* may not be the BEST salt, but its close */
salt[0] = saltChars[random() % 64];
salt[1] = saltChars[random() % 64];
salt[2] = 0;
}
else {
salt[0] = argv[1][0];
salt[1] = argv[1][1];
salt[2] = '\0';
if ((strchr(saltChars, salt[0]) == NULL) || (strchr(saltChars, salt[1]) == NULL))
fprintf(stderr, "illegal salt %s\n", salt), exit(1);
}
plaintext = getpass("Enter Password: ");
printf("Encryption: %s\n", crypt(plaintext, salt));
return 0;
}
-1751
View File
File diff suppressed because it is too large Load Diff
-129
View File
@@ -1,129 +0,0 @@
[ $Id$ ]
Take this with a grain of salt.. it's heaps old and this isn't Elite anymore
---------------------------
Version Elite2.0 ==========
===========================
- Since +x was rewritten, the ban bug is 100% fixed. :)
- Rewrote +x hidden host function completely.
- Fixed FUNNY bug with hiddenhost and /who (Reported by Prod|gy)
- Added/Removed irc networks
- Fixed bug in /watch (Reported/Fixed by Despise)
- Added nick-change flood protection.
- Added an awesome manual... ./manual to run
- Removed /who notice for opers.
- Added protection of /akill *@* :)
- Removed java stuff completely. (Java clients are like normal IRC clients...right?)
- Added new +a mode. This mode can only be set by +q channel owners. When you are +a in a
channel, you cannot be deopped or kicked. (Syntax: /mode #chan +a <nick>)
- Added new +q channel mode. ChanServ must set the channel founder +q so they are also
known as channel owners via the ircd. Channel owners are protected and may set
other users +a which they will also be protected (but not chan owners).
(Syntax: /mode #chan +q <nick>)
- Re-coded /MAP
- Changed GLINE notices from sendto_ops to send to all opers with +e flag on.
- Added (addnet) script, you can run this to add your net settings to the next release.
- Changed <server> to <ircnetwork> in whois "Blah is an oper on <server>"
- Added new +L channel mode. If a #chat has a limit (+l) of 10 users, and +L set to channel
#chat2, when a user trys to join #chat, they won't get "#chat is full", they will be
auto-joined to #chat2 - (Linked channels in other words).
(Syntax: /mode #chan +L <linked chan>)
- Changes user@shadow-33.com to user@user-33.one.com (noone will know one.com is the realhost)
- Changed +x for IP's from (x.x.x.***) to (x.x.x.network-#)
- In oline flags * will introduce +e on oper up. (before: required +e in oline flag)
- Removed +t usermode (UMODE_ALL) - wasn't used.
- Made 'create your own network setting' feature more stable.
- Added new channel mode (+x) to disable colored text in channel.
- Added +C (Co Administrator)
- Added +T (Technical Administrator)
- Changed /map to numerics...
- Made startup message when booting more stable.
Version Elite1.3 (02/23/99)
============================
- Cleaned up version.c.SH
- Added new net settings (netdomain & helpchan)
- Added new net config creator in ./Config
- Made ./Config more easier...
- Created new usermode +j (Java user)
- New hostname (java.shadownet.org) for java users.
- Removed RUN_SERVICES code from entire ircd.
Version Elite1.2.4 (02/14/99)
============================
- Fixed the nick crash bug! (damn m_kill small error)
- New network(s) added.
- Changed one thing in m_gline (nothing big)
Version Elite1.2.3 (02/10/99)
============================
- Removed SOCKS checking. (possibly cause of crashing)
- Added new networks
Version Elite1.2.2 (02/02/99)
============================
- Fixed the crashing bug. (Changing nicks with linked servers)
- Modified AceStar net settings.
- Q-line notices are back (except for ULined clients).
- Fixed /kill bug with services.
Version Elite1.2.1 (01/29/99)
============================
- Fixed multiple notices from +N / -N
- Added some text to s_err.c
- Possibly fixed the odd crashing... ?
Version Elite1.2 (01/24/99)
============================
- Netadmin can be used via +N in the oline slot now.
- When +N is executed, net-wide oper msg's are sent about it.
- Completely removed the freeze function (it's a toy unlike a command)
- Changed abit of the GLINE adding notice.
- Added logging to a file for glines (gline.log)
- Implemented SOCKS checking (thx Rhom).
- Changed channel lists only when 2 ppl in chan to 1.
- Changed sendto_ops function in many places in s_user.c/s_serv.c to
sendto_locfailops.
- Changed GNOTICE in s_user.c/s_serv.c to GLOBOPS
- Fixed hiddenhost bug with /kill (+w could see real host of oper)
- Fixed hiddenhost bug with /oper (+s could see real host of oper)
[Special thanks goes out to Rhom for reporting/help patch bugs]
Version Elite1.1.1 (12/12/98)
=============================
- Fixed /whois bug (had problems with mIRC clients *sigh*)
- Fixed /topic bug (didn't allow topic changes at all.)
Version Elite1.1 (12/6/98)
============================
- Fixed ./Config script (Net select)
- Fixed /remgline bug.
- If ULined clients, channels are not shown which they are in.
- Fixed +e / +t / +b (non-opers could get +et before)
- Fixed OperMode notice.
- Fixed Gline sending extra Global on expire.
- Fixed /whowas wrong hostname bug (by Thiago)
- Fixed chkconf ZLINE error (by matt)
- Added PhazeNet configuration
- Added option for auto +x in ./Config
- Freeze was disabled in this version (It will be back in 1.2)
Version Elite1.0 (09/20/98)
============================
- Changed Shadow3.9 to Elite1.0 (Starting a new IRCD)
- Changed some numeric's around in src/s_err.c
- Auto +x on Oper up.
- Fixed small error in ./ircd script.
- Made ./Config more Linux-redhat friendly.
- Added RelicNet to the ircd.
- include/config.h is much more compatible with all IRC nets.
- Added /gline (works 100%) [/gline <user@host> <seconds> <reason>].
- Fixed up /map.
- Added UMODE's +e & +t
* e: EYES [Can see ppl who /whois, and other notices.]
* t: ALL [See's all net notices ie: See's all Client connectings...]
- Fixed the hiddenhost bug with IP's...
- Fixed major bug with hiddenhost which caused coredump.
- Made a new script (makeconf) -- generates the ircd.conf file.
-329
View File
@@ -1,329 +0,0 @@
Written by ^MrMike^ (mike@sector001.org) for the UnrealIRCd
Modified by codemastr to include a few other commands
(note, this file will be updated in CVS asap)
PRIVMSG
- Used to send a message to a person or a channel
Syntax: MSG <nick>,<nick2>,<nick3>,<nick4> <text>
Example: PRIVMSG Stskeeps :Hello. Unreal is a very good ircd.
Example: PRIVMSG Stskeeps,codemastr,DrBin :Hello Unreal Coding Team
NOTICE
- Mainly used for one-time communication or for the results of a command.
Syntax: NOTICE <nick>,<nick2>,<nick3>,<nick4> <text>
Example: NOTICE codemastr :Hi. How are you?
Example: NOTICE codemastr,Stskeeps :Hi codemastr and Stskeeps.
MODE
- Used to change the mode of a channel or a user. You can only change modes for channel you are an Operator or Half-Op on. Also, you can only changes user modes for yourself.
Syntax: MODE <channel/user> <mode>
Example: MODE #UnrealIRCD +tn
Example: MODE #UnrealIRCD +ootn codemastr Stskeeps
NICK
- Changes your "online identity" on a server. All those in the channel you are in will be alerted of your nickname change.
Syntax: NICK <new nickname>
Example: NICK |codemastr|
JOIN
- Used to enter one or more channels on an IRC server. All occupants of the channel will be notified of your arrival.
Syntax: JOIN <chan>,<chan2>,<chan3>
Example: JOIN #UnrealIRCD
Example: JOIN #UnrealIRCD,#OperHelp
PING
- Determines the amount of lag (time it takes for a response to reach a person and come back) between yourself and someone else.
Syntax: PING <user>
Example: PING Stskeeps
WHOIS
- Shows information about the user in question, such as their "name", channels they are currently in, their hostmask, etc.
Syntax: WHOIS <user>
Example: WHOIS DrBin
ISON
- Used to determine of a certain user or users are currently on the IRC server based upon their nickname.
Syntax: ISON <user> <user2> <user3> <user4>
Example: ISON Stskeeps DrBin codemastr NickServ ChanServ OperServ MemoServ
USER
- Used during registration to server (i.e. during inital connection sequence.)
PART
- Used to part (or leave) a channel you currently occupy. All those in the channel will be notified of your departure.
Syntax: PART <chan>,<chan2>,<chan3>,<chan4>
Example: PART #UnrealIRCD
Example: PART #UnrealIRCD,#OperHelp
QUIT
- Disconnects you from the IRC server. Those in the channels you occupy will be notified of your departure. If you do not specify a reason, your nickname becomes the reason.
Syntax: QUIT <reason>
Example: QUIT Leaving!
USERHOST
- Returns the userhost of the user in question. Usually used by scripts or bots to retrieve userhost information.
Syntax: USERHOST <nickname>
Example: USERHOST codemastr
SVSNICK
- Can only be used by a U:Lined server (i.e. services). Changes the nickname of the user in question.
Syntax: SVSNICK <nickname> <new nickname> :<timestamp>
Example: SVSNICK Stskeeps Techie :963086432
SVSMODE
- Can only be used by a U:Lined server (i.e. services). Changes the mode of the channel or user in question.
Syntax: SVSMODE <channel/user> :<mode>
Example: SVSMODE #UnrealIRCD :+o Stskeeps
Example: SVSMODE codemastr :+i
LUSERS
- Provides local and global user information (such as current and maximum user count).
Syntax: LUSERS <server>
CHANSERV
- Will send a secure message to ChanServ. Similar to /msg ChanServ, but more secure. May not work if server is configured improperly.
TOPIC
- Sets/Changes the topic of the channel in question, or just display the current topic.
Syntax: TOPIC <channel>
Syntax: TOPIC <channel> <topic>
Example: TOPIC #operhelp
Example: TOPIC #UnrealIRCD Welcome to the Unreal IRCD Home Channel.
INVITE
- Sends a user an invitation to join a perticular channel. You must be an operator on the channel in order to invite a user into it.
Syntax: INVITE <user> <channel>
Example: INVITE codemastr #OperHelp
KICK
- Removes a user from a channel. Can only be used by Operators or Half-Ops. If no reason is specified, your nickname becomes the reason.
Syntax: KICK <channel> <user> <reason>
WALLOPS
- Sends a "message" to all those with the umode +w. Only IRCops can send wallops, while anyone can view them.
Syntax: WALLOPS <message>
KILL
- Forcefully disconnects a user from an IRC Sever. Can only be used by IRCops.
Syntax: KILL <user> <reason>
Example: KILL Clone5 Cloning is not allowed
AWAY
- Sets your online status to "away".
Syntax: AWAY <reason> (AWAY without a reason will unset you away)
Example: AWAY Walking the dog...
SQUIT
- Disconnects an IRC Server from the network
Syntax: SQUIT <server>
Example: SQUIT leaf.*
WHO
- Searches user information (-i users only) for supplied information. IRCops are a ble to search +i users.
Syntax: WHO <search>
Example: WHO *.aol.com
WHOWAS
- Retrieves previous 'WHOIS' information for users no longer connected to the server.
Syntax: WHOWAS <nickname>
Example: WHOWAS Stskeeps
LIST
- Provides a complete listing of all channels on the network. If a search string is specified, it will only show those matching the search string.
Syntax: LIST <search string>
Example: LIST
Example: LIST *ircd*
NAMES
- Provides a list of users on the specified channel.
Syntax: NAMES <channel>
Example: NAMES #help
OPER
- Attempts to give a user IRCop status.
Syntax: OPER <uid> <pass>
Example: OPER codemastr codeit
CONNECT
- Links another IRC server to the one you are currently on. Remote connections are also possible.
Syntax: CONNECT <server>
Syntax: <CONNECT> <hub> <port> <leaf>
Example: CONNECT leaf.*
Example: CONNECT hub.* 6667 leaf.*
VERSION
- Provides version information of the IRCD software in usage.
Syntax: VERSION
STATS
- Provides certain statistical information about the server (for example, u will provide uptime information).
Syntax: STATS <letter>
Example: STATS u
LINKS
- Lists all of the servers currently linked to the network.
Syntax: LINKS
ADMIN
- Provides administrative information regarding the server.
Syntax: ADMIN <server>
SAMODE
- Allowed a services administrator to change the mode on a channel, without having operator status.
Syntax: SAMODE <channel> <mode>
Example: SAMODE #UnrealIRCD +m
SVSKILL
- Can only be used by a U:Lined server. Forcefully disconnects a user from the network.
Syntax: SVSKILL <user> <reason>
Example: SVSKILL codemastr Goodbye
SVSNOOP
- Can only be used by a U:Lined server. Enabled or disables whether Global IRCop functions exist on the server in question or not.
Syntax: SVSNOOP <server> <+/->
Example: SVSNOOP leaf.* -
MOTD
- Displays the Message of the Day.
Syntax: MOTD
Syntax: MOTD <server>
KLINE
- "Bans" a hostmask from connection to the IRC server.
Syntax: KLINE <hostmask> <reason>
Example: KLINE *@*.aol.com Abuse
UNKLINE
- Removes a k:line from the server.
Syntax: UNKLINE <hostmask>
Example: UNKLINE *@*.aol.com
ZLINE
- Disables all access to the IRC server from a specified IP.
Syntax: ZLINE <ip>
Example: ZLINE 127.0.0.1
UNZLINE
- Removes a currently active z:Line.
Syntax: UNZLINE <ip>
Example: ZLINE 127.0.0.1
GLOBOPS
- Sends a global "message" to all IRCops. Only viewable by IRCops (unlike WallOps, which can be viewed by normal users).
Syntax: GLOBOPS <message>
Example: GLOBOPS Going to be akilling those clones...
CHATOPS
- GLOBOPS is usually reserved for important network information. Therefore, for Oper Chat, CHATOPS was invented. IRCops with the +c flag enabled will be able to send/receive CHATOPS messages.
Syntax: CHATOPS <message>
Example: CHATOPS How's everyone doing today?
LOCOPS
- Similar to GLOBOPS, except only received by those IRCops local to your server.
Syntax: LOCOPS <message>
Example: LOCOPS Going to be adding a temp k:line for that user...
REHASH
- Prompts the server to reread its configuration file (ircd.conf). Will also remove any temporarly lines (i.e. k:line).
Syntax: REHASH
RESTART
- Kills and restarts the irc daemon, disconnecting all users currently on that server.
Syntax: RESTART
Syntax: RESTART <password>
DIE
- Kills the irc daemon, disconnecting all users currently on that server.
Syntax: DIE
Syntax: DIE <password>
RULES
- Reads the rules.conf file and sends the contents to the user.
Syntax: RULES
MAP
- Provides a "network map" of the IRC network. Mainly used for routing purposes.
Syntax: MAP
DALINFO
- Original DALnet ircd credits.
Syntax: DALINFO
MKPASSWD
- Used for generating an encrypted password. Mainly used for encrypted O:Line passwords.
Syntax: MKPASSWD <password>
Example: MKPASSWD codeit
ADDLINE
- Adds a line to the server's ircd.conf file. After added, you must REHASH the server for it to take affect.
Syntax: ADDLINE <line>
Example: ADDLINE C:127.0.0.1:server.dal.net:linking:7325:50
NACHAT
- Similar to CHATOPS, but only Network Admins are able to send/recieve messages.
Syntax: NACHAT <message>
Example: NACHAT Linking a new server in a couple minutes...
KNOCK
- For channels which are invite only, you can "knock" on the channel to request an invite.
Syntax: KNOCK <channel> <message>
Example: KNOCK #secret_chan I'm an op, let me in!
CREDITS
- Credits for Unreal IRCD.
Syntax: CREDITS
LICENSE
- GPL information.
Syntax: LICENSE
SVSJOIN
- Forces a user to join a channel. Can only be used by a U:Lined server.
Syntax: SVSJOIN <nick> <channel>
Example: SVSJOIN codemastr #jail
SAJOIN
- Forces a user to join a channel. Can only be used by a Services Admin.
Syntax: SAJOIN <nick> <channel>
Example: SAJOIN Stskeeps #OperHelp
SVSPART
- Forces a user to leave a channel. Can only be used by a U:Lined server.
Syntax: SVSPART <nick> <channel>
Example: SVSPART codemastr #jail
SAPART
- Forces a user to leave a channel. Can only be used by a Services Admin.
Syntax: SAPART <nick> <channel>
Example: SAPART Stskeeps #OperHelp
SETHOST
- Changes the hostname of yourself. Only available to IRCops.
Syntax: SETHOST <host>
Example: SETHOST coder.tspre.org
SETIDENT
- Changes the ident of yourself. Only available to IRCops.
Syntax: SETIDENT <ident>
Example: SETIDENT coder
SETNAME
- Changes the "IRC Name" (or "Real Name") of yourself. Available to everyone.
Syntax: SETNAME <name>
Example: SETNAME Unreal Coding Team Member
CHGHOST
- Changes the hostname of a user currently on the IRC network. Only available to IRCops.
Syntax: CHGHOST <nick> <host>
Example: CHGHOST codemastr coder.tspre.org
CHGIDENT
- Changes the ident of a user currently on the IRC network. Only available to IRCops.
Syntax: CHGIDENT <nick> <ident>
Example: CHGIDENT codemastr coder
CHGNAME
- Changes the "IRC Name" (or "Real Name") of a user currently on the IRC network. Only available to IRCops.
Syntax: CHGNAME <nick> <name>
Example: CHGNAME codemastr Unreal Coding Team Member
+21
View File
@@ -60,6 +60,7 @@ modified for UnrealIRCD3.1 by codemastr
8.8) .......................... Set sadmin_host Line
8.9) .......................... Set netadmin_host Line
8.10) ......................... Set coadmin_host Line
8.11) ......................... Set techadmin_host Line
8.12) ......................... Set hidden_host Line
8.13) ......................... Set netdomain Line
8.14) ......................... Set helpchan Line
@@ -457,6 +458,7 @@ o = local oper, flags included: rhgwlckbBnuf
O = global oper, flags included: oRDCK
a = services admin, access to /samode
C = co admin
T = tech admin
A = admin
N = network admin access to remote /rehash and remote /restart and a bunch more
* = flags included: AaNCTzSHW^
@@ -1633,6 +1635,25 @@ Set coadmin_host ..: coadmin.starspace.net
--------------------
8.11) Set techadmin_host Line:
This allows you to specify a host that TechAdmins will receive when they
/oper, this only works if iNAH (See section 8.17) is enabled. If this is left
blank it can cause some problems in your IRCd so it is recommended that you
fill in a value.
Syntax:
Set techadmin_host : techadminhost
This tells the server to switch the host of the TechAdmin to techadminhost when
they /oper.
Examples:
Set techadmin_host : techadmin.starspace.net
This will make a TechAdmin's host change to techadmin.starspace.net when they
/oper up if iNAH is enabled.
--------------------
8.12) Set hidden_host Line:
The Set hidden_host line allows you to specify what the masked part of a users
+481 -521
View File
File diff suppressed because it is too large Load Diff
+52 -3
View File
@@ -61,16 +61,65 @@ A: T:Lines is a new Unreal feature that makes it able to show different
7) Where can i download updates to Unreal?
A: Mostly you can download the newest version at
http://www.unrealircd.com
http://unreal.tspre.org
Versions may be spewed out regulary due to new features and bugs..
8) Why does it say "unlimit core failed" or something when I boot the IRCd?
A: It's just a warning, mainly just ignore it.
9) I use Linux Mandrake and ./Config always hangs! What can I do??
A: Go edit the Config script and remove those lines:
-SNIP START-
cat > $TMP <<__EOF__
#$STRINGH STRINGH
#$STRINGSH STRINGSH
#ifdef STRINGH
#include <string.h>
#endif
#ifdef STRINGSH
#include <strings.h>
#endif
main()
{
char *t = "a", *s = strtok(t, ",");
if (!strcmp(t, s))
exit(0);
exit(1);
}
__EOF__
$COMP >/dev/null 2>&1
if [ $? -ne 0 ] ; then
echo $n " strtok$c"
NSTRTOK=define
else
$EXEC
if [ $? -ne 0 ] ; then
echo $n " strtok$c"
NSTRTOK=define
fi
fi
$RM -f $EXEC $TMP
--- SNIP END---
And replace it by
NSTRTOK=undef
This should get it to work=) (thanks to Joe Whipple for reporting this bug)
---END----
10) Hosts show up as (null).network.net !!
A: This is because you have forgotten to include the network file.
The correct form is (in unrealircd.conf)
Include ..........: <network file>
If this doesn't work .. seek me at irc.ircsystems.net #unrealircd
If this doesn't work .. seek me at irc.global-irc.net #unrealircd
11) The IRCd uses like 66.7% CPU !!!?
A: Try run it with nice :
/usr/bin/nice -n 19 src/ircd
if services go this way too just place ./<name> instead of src/ircd
Any more support seek me at the default place:P
12) My IRCd which runs on a FreeBSD says something about FDs and
Max: 0 What shall I do??
@@ -141,4 +190,4 @@ match.c:247: argument 'n' doesn't match prototype
Then go into include/setup.h and add this line:
#define GOT_STRCASECMP
(C) Carsten Munk 1999-2000
(C) Carsten Munk 1999
-109
View File
@@ -1,109 +0,0 @@
RPL_PROTOCTL (RPL_ISUPPORT):
version: 2.1+ (new version: 3.1+)
This sends a numeric during client signon that lists various features that
Unreal supports. This allows client and script writers to know what features
they can use, and various parameters about the irc server. The numeric
used is '005' to try and maintain some semblance of compatibility with
DALnet which has a similar feature. The 005 numeric may be split across
multiple lines if the length exceeds 512 characters.
The format is:
:servername 005 target feature1 feature2... :are supported by this server.
:servername 005 target feature200... :are supported by this server.
features are either a word describing the feature eg: 'SILENCE', or a word
describing the feature and an equals and a list of parameters.
eg: SILENCE=15 (says that we support silence, and we support up to 15 of
them per user), or FOO=12,3 (says we support FOO with parameters 12 and 3)
for example ircu2.10.08 lists:
:test.undernet.org 005 test SILENCE=15 WHOX WALLCHOPS USERIP CPRIVMSG
CNOTICE MODES=6 MAXCHANNELS=10 MAXBANS=30 NICKLEN=9 TOPICLEN=160
KICKLEN=160
-------------------------------------------------------------------------
UnrealIRCd Supports:
:unreal.server 005 nick MAP KNOCK SAFELIST HCN WATCH=%i SILENCE=%i MODES=%i
MAXCHANNELS=%i MAXBANS=%i NICKLEN=%i TOPICLEN=%i
KICKLEN=%i CHANTYPES=# PREFIX=%s :are supported by this server
Feature "MAP"
-------------
/map shows the servers as the server percieves them, who's connected
to who in a pretty display, with number of users attached to each server
Numerics used:
RPL_MAP (006)
RPL_MAPEND (007)
Feature "KNOCK"
---------------
Command: /KNOCK #Channel :<Reason>
This command will only work if you are not a member of the channel and the
+K (No knocks) mode is not on, and the channel is not +i (and you are not
banned). This will send a notice to ops in the channel, about that the user
"knocked".
Feature "SAFELIST"
------------------
This note means that the user will not get disconnected when doing a /list,
as some IRC networks do
Feature "HCN"
-------------
This is a special feature that you activate using /protoctl +HCN,
that will cause +c notices when being oper, being in the Hybrid IRCd style
Feature "WATCH"
---------------
Parameters: How many watch entries are possible
This will ensure the server is able to do the DALnet WATCH command
Feature "SILENCE"
-----------------
Parameters: How many silence entries you can have
Version: unknown, ircu2.9.32 at least.
Silence is a server side ignore. You can /silence +hostmask or
/silence +nick, to add someone to your silence list, or use /silence
-hostmask to remove it. /silence will list your 'silence list'.
you can /silence nick, to see someone elses silence list (useful for
helping someone). Silence is preferably used as a last resort as it
tends to use server CPU time.
Syntax:
SILENCE +hostmask
SILENCE +nick
SILENCE -hostmask
SILENCE -nick
SILENCE nick
reply:
RPL_SILELIST 217
RPL_ENDOFSILELIST 218
Feature/Modifier "MODES"
------------------------
Parameters: How many modes with parameters you can use in one /mode buffer
Feature/Modifier "MAXCHANNELS"
------------------------------
Parameters: How many channels a normal user can join (opers may have
unlimited)
Feature/Modifier "MAXBANS"
-271
View File
@@ -1,271 +0,0 @@
The Tao of Internet Relay Chat
Copyright (C) Ove Ruben R Olsen 1994
Version of 940110
Contributing masters: Master ScottM
-----
Something is formed by the electrons, born in the silent cable. Shaping
and growing and ungrowing. It is there yet not there. It is the source of
Internet Relay Chat. I do not know the name, thus I will call it the Tao
of Internet Relay Chat.
If the Tao is great, then the IRC is running ceaselessly. If the IRC is
great then the server is running without ever stoping. If the server is
great then the client will always be the server. The luser is then pleased
and there is Chat in the world.
The Tao of IRC squits far away and connects on returning.
-----
The genetic potential of birth, a lot to know, yet unknown.
In the begining there was nothing.
Out of nothing the Tao gave birth to tolsun.oulu.fi. tolsun gave birth to
OuluBox.
OuluBox gave birth to rmsg.
rmsg was not Tao, so MUT gave birth to IRC.
No one knows when IRC came into existance, the mighty master WiZ have it
to be at the end of the eight month in the year of the Dragon.
-----
Each channel has its purpose, however humble. Each channel is the Yin and
Yang of IRC. Each channels has it's place within the IRC.
In the beginning there was only channel 0, thus channel 0 is the soil of
IRC.
Channel 1 to channel 10 then was open as the sea. Channel 11 to 999 was the
trees and forests of IRC. Channels above 999 should not be mentioned, and
channels below 0 were unborn and contained many secrets.
This was not the right Tao, so IRC gave birth to +channels.
+channels had the yin and yang. Mode does not.
This was not the right Tao still, so IRC gave birth to #channels.
#channels have the yin and yang.
Only channel 0 is the right path to Tao, but avoid speaking on channel 0.
-----
There was a great dispute among the Broom-Walkers of the Relay. Some of them
wanted neither yin nor yang. Out of this Eris came into existance. Some of the
Broom-Walkers then created Eris Free-net.
This was the right Tao.
Kind Gentle and Boring Net was another wrong path to the Tao of Internet Relay
Chat.
Some time later there was a quantity of some lusers who wanted to be
Broom-Walkers also. The Eris Free Broom-Walkers did not agree with them,
thus a new IRC was born. This IRC is called the Undernet.
But this is not the right Tao, either.
-----
There will always be disputes among the Broom-Walkers of Internet Relay Chat.
This is the very nature of the IRC.
-----
Lusers that do not understand the Tao is always using the yang of Mode on
their channels. Lusers that do understand the Tao are always using Ignore
on their channels.
How could this not be so ?
-----
The wise sage luser is told about the Chat and uses it. The luser is told
about the IRC and is looking for it. The flock are told about the Tao and
make a fool of the IRC.
If there was no laughter, there would be no Tao.
-----
The master says:
"Without the Tao of Internet Relay Chat, life becomes meaningless."
The Relay of the old time was mysterious and sacred. We can neither imagine
its thoughts nor path; we are left but to describe.
-----
The sage luser must be aware like a frog crossing the highway.
-----
The great master Wumpus once dreamed that he was an automaton. When he awoke
he exclaimed:
"I don't know whether I am Wumpus dreaming that I am a client,
or a client dreaming that I am Wumpus!"
So was the first Automata born.
The master Nap then said:
"Any automata should not speak unless spoken to.
Any automata shall only whisper when spoken to."
Thus replied the master Gnarfer:
"The lusers shall keep in mind that a automata can be either good or
bad. Create good automata, and the IRC will hail you and you will
gain fame and fortune. Create bad automata and people will start to
hate you, and finaly you will be /KILLed to ethernal damnation"
Many lusers have fallen into the clutches of ethernal damnation. They where
not following the Tao.
-----
There once was a luser who went to #BotSex. Each day he saw the automatons.
The luser decided that he also would have such a automata.
He asked another luser for his automata. The other luser gave his automata
away.
The luser was not within the Tao, so he just started the automata. The automata
had only Yang inside so all the lusers files where deleted.
Some moons laither the same luser then had become a sage luser, and did create
his automata from the very grounds with materials found inside the IRC.
The luser was now within the Tao and his automata lived happily ever after.
-----
There once was a master who wrote automatons without the help of master Phone.
A novice luser, seeking to imitate him, began with the help of master Phone.
When the novice luser asked the master to evaluate his automata the master
replied: "What is a working automata for the master is not for the luser.
You must must BE the IRC before automating."
-----
Master BigCheese gave birth to master Troy; his duty clear. Master Troy gave
birth to master Phone, for the Tao of Irc must be eternal and must flow as the
ceaseless river of Time itself.
-----
Master Phone once said about the ircII client:
"public_msg is for a message from someone NOT on the channel
public_other is for a message on a channel that doesn't belong to
a window. public is for a message on a channel that belongs to a
window!"
Out of this raised the mighty chaos.
-----
The sage luser came to the master who wrote automata without the help of
master Phone. The sage luser asked the master who wrote automata: "Which is
easiest to make. A automata with the help of master Phone or an automata
made with the help of a language ?"
The master who wrote automata then replied:
"With the help of a language."
The sage luser was disapointed and exclaimed: "But, with master Phone you
do not need to know anything about the soil of IRC. Is not that the easiet
way ?"
"Not really" said the master who wrote automata, "when using master Phone
you are closed inside a box. For sure, it is a great box for the lusers,
but the master will need more power, thus a language is the only path to go.
With the language the master will never have to limit himself. When using
such a language the master will seek the best between the need and the
availibility."
"I see", said the sage luser.
This is the essence of Tao of IRC automatas.
-----
A client should be light and be used for communication. The spirit of a good
client is that it should be very convinient for the luser to use, but hard
for the luser who want to create automata.
There should never ever be too many functions or too few functions.
There should always be a ignore.
Without ignore the client is not within the Tao of Chating.
The client should always respond the luser with messages that will not
astnonish him too much. The server likewise. If the server does not, then it
is the clients job to explain what the server says.
A client which fails this, will be useless and cause confusion for the lusers.
The only way to correct this is to use another client or to write a new one.
-----
A luser asked the masters on #IrcHelp: "My client does not work".
The masters replied: "Upgrade your client".
The luser then wondered why the master knew. The master then told him about
the Protocol.
"Your client does not work beaucse it does not understand the server. Why
should it always work ? Only a fool would expect such. But, clients are made
by humans, and humans are not perfect. Only Tao is.
The IRC is solid. The IRC is floating, and will always be dynamic. Live with
that or /quit."
-----
The luser came to the masters of #IrcHelp, asking about the Tao of IRC within
the client.
The masters then said that the Tao of IRC always lies inside the client
regardless of how the client connects to the server.
"Is the Tao in irc ?" asked the luser.
"It so is" replied the masters of #IrcHelp.
"Is the Tao in the ircII, Kiwi, rxirc, vms, rockers and msa ?" asked the
luser.
"In all of them and in the TPC, irchat, zenirc, zircon X11-irc and even the
dos irc has the Tao" said the master quietly.
"Is the Tao in a telnet connection directly to the server ?"
The master then was quiet for a long time and said. "Please leave, such
questions are not within the Tao of IRC".
-----
The master says: "Without the Protocol of TCP the messages will not travel.
Without the client, the server is useless."
-----
There once was a luser who used the ircII client. "ircII can do anything I
ever need for using IRC" said the emacs client user, "I have /ON's, I have
assignments, I have aliasing. Why don't you use this instead of the huge
emacs client, which also has a messy screen?"
The emacs client user then replied by saying that "it is better to have a
scripting language that is the client instead of have a client that has
a scripting language." Upon hearing this, the ircII client luser fell silent.
-----
The master Wumpus said: "Time for you to leave. I did, now I'm happy."
The master Gnarfer replied: "Use, but never overuse IRC, then you will also
be happy within IRC"
-----
A luser came unto the masters of #EU-Opers and asked, "How can I be, yet not
be, a user@host within the IRC?"
The masters of #EU-Opers replied: "To be Tao is to be ones true self. To hide
ones self is not Tao, and is not IRC, you have much to learn before you shall
be at rest within the Flow of Irc. Please leave"
+373 -1026
View File
File diff suppressed because it is too large Load Diff
-16
View File
@@ -1,16 +0,0 @@
Compiling UnrealIRCd 3.1.x for Windows
--------------------------------------
This document assumes you have a working build environment for
Visual Studio .NET or Visual Studio 6.0. Other versions may work
as well, but have not been tested.
1. Copy include/win32/settings.h and setup.h to include/
2. Copy extras/regex/regex.h to include/
3. Copy extras/regex/regex.c to src/
4. Edit include/settings.h to your liking (pretty much change DOMAINNAME)
5. Unzip src/win32/unrealircd.bmp.gz
6. Execute "nmake makefile.win32"
Congratulations, you should have a functioning win32 binary.
--Luke (luke@unrealircd.com)
-20
View File
@@ -1,20 +0,0 @@
Dynamic Configuration Guide
Okay first you have to go edit the file "unrealircd.conf" in
the directory "networks/". In that file you see a field with
name "Include" .. if you want to create your own network file
(IRC network specification) you have to write like
"networks/<irc network>.network" like "networks/myircnetwork.network"
If there is already a network file you can just put in the path
like : "networks/dragonwings.org"
If you want to create your own network file
copy the file "template.network" to the name you want to use for
your network file and edit it.
If you experince any problems email me at stskeeps@tspre.org
or try msg me at /server irc.ircsystems.net : #UnrealIRCd
My nick is mostly Stskeeps or Techie (or Nightwalker if i had a bad night:P)
--Stskeeps
-308
View File
@@ -1,308 +0,0 @@
/*
** burst.c
**
** Nicolas Pioch, Dec 93
** <Nicolas.Pioch@enst.fr>
** Carsten V. Munk Nov 2000
*/
#include <sys/types.h>
#include <sys/time.h>
#include <sys/socket.h>
#include <sys/param.h>
#include <sys/signal.h>
#include <netinet/in.h>
#include <sys/un.h>
#include <netdb.h>
#include <errno.h>
#include <arpa/inet.h>
#include <sys/ioctl.h>
#include <ctype.h>
#include <string.h>
#include <fcntl.h>
#include <stdio.h>
#ifdef POSIX
#include <sys/select.h>
#endif
#define MYBUFSIZE 2048
char *jupedservername, *uplinkservername, *jupereason;
int options;
char *password;
typedef struct aClient {
int socket;
char buffer[MYBUFSIZE+1];
int read;
int write;
} aClient;
void fatalrestart(aClient *robotptr, const char *s);
void fatal(const char *s) {
perror(s);
exit(1);
}
typedef void (*signalhandler)(int);
static void signal_catcher(int sig, int code, struct sigcontext *scp) {
fprintf(stderr, "Caught signal %d with code %d\n", sig, code);
switch(sig) {
case SIGFPE: /* Floating point exception */
case SIGILL: /* Illegal instruction */
case SIGSEGV: /* Segmentation violation */
case SIGBUS: /* Bus error */
case SIGSYS: /* Bad argument to system call */
fatal("Fatal signal received, aborting...");
break;
case SIGQUIT:
case SIGINT:
case SIGTERM: /* On se barre */
fatal("AAAAAAAAArrrrrrrrgh!");
break;
}
signal(sig, (signalhandler)signal_catcher);
}
typedef union socket_address {
struct sockaddr_un unixx;
struct sockaddr_in inet;
} socket_address;
void name_to_number(int address_family, const char *hostname, int port,
socket_address *addr, int *len2) {
u_long iaddr;
int len;
struct hostent *host;
char *inaddr;
bzero ((char *) addr, sizeof (socket_address) );
if ( address_family == AF_UNIX ) {
strcpy(addr->unixx.sun_path,hostname);
*len2=sizeof( struct sockaddr_un );
} else {
if ((hostname) && (hostname[0])) {
if (hostname[0] >= '0' && hostname[0] <= '9') {
iaddr = inet_addr(hostname);
inaddr = (char *) &iaddr;
len=sizeof(iaddr);
} else {
host=gethostbyname (hostname);
if (!host)
fatal("Unknown host");
inaddr=host->h_addr_list[0];
len=host->h_length;
}
bcopy(inaddr, (char *)&addr->inet.sin_addr, len);
}
addr->inet.sin_port=htons((u_short) port);
*len2=sizeof(struct sockaddr_in);
}
addr->inet.sin_family = address_family;
}
int read_data(aClient *robotptr) {
int nbytes;
if ((nbytes=read(robotptr->socket, &(robotptr->buffer[robotptr->write]),
(sizeof(robotptr->buffer) - robotptr->write - 1))) < 0)
fatalrestart(robotptr, "read on socket");
if (nbytes == 0) {
close(robotptr->socket);
fatalrestart(robotptr, "Connection Closed");
}
robotptr->write+=nbytes;
robotptr->buffer[robotptr->write]=0;
return(nbytes);
}
void send_data(int socketfd, const char *data, int length) {
int length2;
length2=write(socketfd, data, length);
if (length2 != length)
fprintf(stderr, "*** write truncated to %d chars...\n", length2);
}
int create_client(const char *hostname, const int hostport) {
int descript;
socket_address hostaddr;
int adlen;
if ((descript=socket(PF_INET, SOCK_STREAM, 0)) < 0)
fatal("socket");
name_to_number(AF_INET, hostname, hostport, &hostaddr, &adlen);
if (connect(descript, &hostaddr.inet, adlen) < 0)
fatal("connect");
return(descript);
}
void parse_line(aClient *robotptr) {
char *toparse;
toparse=(robotptr->buffer + robotptr->read);
printf("%s\n",toparse);
/* Special handling for PING messages */
if (!strncasecmp(toparse, "PING ", 5) || !strncasecmp(toparse, "8 ", 2)){
toparse=strtok(toparse, "\r\n");
toparse[1]='\0';
send_data(robotptr->socket, toparse, strlen(toparse));
return;
}
if (!strncasecmp(toparse, "AO", 2) || !strncasecmp(toparse, "NETINFO", 7))
{
if (!(options & 0x80))
exit(1);
}
}
void parse_data(aClient *robotptr) {
int next;
while((robotptr->read < robotptr->write)
&& ((robotptr->buffer[robotptr->read] == '\r')
|| (robotptr->buffer[robotptr->read] == '\n')))
robotptr->read++;
for(next=robotptr->read; next<=robotptr->write; next++) {
if ((robotptr->buffer[next] == '\r')
|| (robotptr->buffer[next] == '\n'))
break;
}
if (next<robotptr->write) {
robotptr->buffer[next]=0;
next++;
parse_line(robotptr);
robotptr->read=next;
parse_data(robotptr);
}
if (robotptr->read == robotptr->write) {
robotptr->read=robotptr->write=0;
} else {
bcopy((robotptr->buffer + robotptr->read),
(robotptr->buffer), (robotptr->write-robotptr->read));
robotptr->write-=robotptr->read;
robotptr->read=0;
}
}
void run_client(aClient *robotptr) {
fd_set mask, returnmask[3];
int selectval;
FD_ZERO(&mask);
FD_SET(robotptr->socket, &mask);
while (1) {
bcopy((char *)&mask,(char *)returnmask,sizeof(fd_set));
FD_ZERO(returnmask+1);
bcopy((char *)&mask,(char *)(returnmask+2),sizeof(fd_set));
selectval=select(FD_SETSIZE,
returnmask, returnmask+1, returnmask+2, NULL);
if (selectval) {
read_data(robotptr);
parse_data(robotptr);
}
}
}
void initialize(aClient *robotptr) {
char passphrase[MYBUFSIZE];
robotptr->socket=create_client(uplinkservername, atol(jupereason));
sprintf(passphrase,
"PROTOCTL %s %s %s %s %s %s %s %s %s\r\n",
(options & 0x1) ? "NOQUIT" : "",
(options & 0x2) ? "TOKEN" : "",
(options & 0x4) ? "NICKv2" : "",
(options & 0x8) ? "SJOIN" : "",
(options & 0x10) ? "SJOIN2" : "",
(options & 0x20) ? "UMODE2" : "",
(options & 0x40) ? "NS" : "",
(options & 0x100) ? "SJ3" : "",
(options & 0x200) ? "SJB64" : "");
write(robotptr->socket, passphrase, strlen(passphrase));
sprintf(passphrase, "PASS %s\r\nSERVER %s 1 :[Burst analysis].\r\n",
password,jupedservername);
write(robotptr->socket, passphrase, strlen(passphrase));
}
void fatalrestart(aClient *robotptr, const char *s) {
perror(s);
close(robotptr->socket);
sleep(10);
initialize(robotptr);
run_client(robotptr);
}
int main(int argc, char* argv[]) {
aClient robot;
char *p;
if (argc != 6) {
fprintf(stderr, "IRCd burst generator, by Carsten V. Munk 2000, based off jupe.c by Nicolas Pioch\n");
fprintf(stderr,
"Usage: %s <burstservername> <uplink> <port> <options> <password>\n", argv[0]);
fprintf(stderr, "Options can be a combination of these:\n");
fprintf(stderr, "1 = Enable NOQUIT 2 = Enable TOKEN\n");
fprintf(stderr, "3 = Enable NICKv2 4 = Enable SJOIN\n");
fprintf(stderr, "5 = Enable SJOIN2 6 = Enable UMODE2\n");
fprintf(stderr, "7 = Enable NS 8 = Ignore end of burst\n");
fprintf(stderr, "9 = Enable SJ3 a = Enable SJB64\n");
fatal("incorrect argument count");
exit(1);
}
jupedservername=argv[1];
uplinkservername=argv[2];
jupereason=argv[3];
password = argv[5];
p = argv[4];
for (; *p; p++)
{
if (*p == '1')
options |= 0x1;
if (*p == '2')
options |= 0x2;
if (*p == '3')
options |= 0x4;
if (*p == '4')
options |= 0x8;
if (*p == '5')
options |= 0x10;
if (*p == '6')
options |= 0x20;
if (*p == '7')
options |= 0x40;
if (*p == '8')
options |= 0x80;
if (*p == '9')
options |= 0x100;
if (*p == 'a')
options |= 0x200;
}
/* installe le signal_catcher */
signal(SIGTERM,(signalhandler)signal_catcher);
robot.read=robot.write=0;
initialize(&robot);
run_client(&robot);
exit(0);
}
-1
View File
@@ -1 +0,0 @@
...
-98
View File
@@ -1,98 +0,0 @@
# Makefile for regex.
#
# Copyright (C) 1992, 1993 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2, or (at your option)
# any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
version = 0.12
# You can define CPPFLAGS on the command line. Aside from system-specific
# flags, you can define:
# -DREGEX_MALLOC to use malloc/realloc/free instead of alloca.
# -DDEBUG to enable the compiled pattern disassembler and execution
# tracing; code runs substantially slower.
# -DEXTRACT_MACROS to use the macros EXTRACT_* (as opposed to
# the corresponding C procedures). If not -DDEBUG, the macros
# are used.
CPPFLAGS =
# Likewise, you can override CFLAGS to optimize, use -Wall, etc.
CFLAGS = -g
# Ditto for LDFLAGS and LOADLIBES.
LDFLAGS =
LOADLIBES =
srcdir = @srcdir@
VPATH = @srcdir@
CC = @CC@
DEFS = @DEFS@
SHELL = /bin/sh
subdirs = moo
default all:: regex.o
.PHONY: default all
regex.o: regex.c regex.h
$(CC) $(CFLAGS) $(CPPFLAGS) $(DEFS) -I. -I$(srcdir) -c $<
clean mostlyclean::
rm -f *.o
distclean:: clean
rm -f Makefile config.status
extraclean:: distclean
rm -f patch* *~* *\#* *.orig *.rej *.bak core a.out
configure: configure.in
autoconf
config.status: configure
sh configure --no-create
Makefile: Makefile.in config.status
sh config.status
makeargs = $(MFLAGS) CPPFLAGS='$(CPPFLAGS)' CFLAGS='$(CFLAGS)' CC='$(CC)' \
DEFS='$(DEFS)' LDFLAGS='$(LDFLAGS)' LOADLIBES='$(LOADLIBES)'
default all install \
mostlyclean clean distclean extraclean realclean \
TAGS check::
for d in $(subdirs); do (cd $$d; $(MAKE) $(makeargs) $@); done
.PHONY: install mostlyclean clean distclean extraclean realclean TAGS check
# Prevent GNU make 3 from overflowing arg limit on system V.
.NOEXPORT:
distfiles = AUTHORS ChangeLog COPYING INSTALL NEWS README \
*.in configure regex.c regex.h
distdir = regex-$(version)
distargs = version=$(version) distdir=../$(distdir)/$$d
dist: TAGS configure
@echo "Version numbers in: Makefile.in, ChangeLog, NEWS,"
@echo " regex.c, regex.h,"
@echo " and doc/xregex.texi (if modified)."
rm -rf $(distdir)
mkdir $(distdir)
ln $(distfiles) $(distdir)
for d in $(subdirs); do (cd $$d; $(MAKE) $(distargs) dist); done
tar czhf $(distdir).tar.Z $(distdir)
rm -rf $(distdir)
.PHONY: dist
-60
View File
@@ -1,60 +0,0 @@
This directory contains the GNU regex library. It is compliant with
POSIX.2, except for internationalization features.
See the file NEWS for a list of major changes in the current release.
See the file INSTALL for compilation instructions. (The only thing
installed is the documentation; regex.c is compiled into regex.o, but
not installed anywhere.)
The subdirectory `doc' contains a (programmers') manual for the library.
It's probably out-of-date. Improvements are welcome.
The subdirectory `test' contains the various tests we've written.
We know this code is not as fast as it might be. If you have specific
suggestions, profiling results, or other such useful information to
report, please do.
Emacs 18 is not going use this revised regex (but Emacs 19 will). If
you want to try it with Emacs 18, apply the patch at the end of this
file first.
Mail bug reports to bug-gnu-utils@prep.ai.mit.edu.
Please include an actual regular expression that fails (and the syntax
used to compile it); without that, there's no way to reproduce the bug,
so there's no way we can fix it. Even if you include a patch, also
include the regular expression in error; otherwise, we can't know for
sure what you're trying to fix.
Here is the patch to make this version of regex work with Emacs 18.
*** ORIG/search.c Tue Jan 8 13:04:55 1991
--- search.c Sun Jan 5 10:57:00 1992
***************
*** 25,26 ****
--- 25,28 ----
#include "commands.h"
+
+ #include <sys/types.h>
#include "regex.h"
***************
*** 477,479 ****
/* really needed. */
! && *(searchbuf.buffer) == (char) exactn /* first item is "exact match" */
&& searchbuf.buffer[1] + 2 == searchbuf.used) /*first is ONLY item */
--- 479,482 ----
/* really needed. */
! /* first item is "exact match" */
! && *(searchbuf.buffer) == (char) RE_EXACTN_VALUE
&& searchbuf.buffer[1] + 2 == searchbuf.used) /*first is ONLY item */
***************
*** 1273,1275 ****
searchbuf.allocated = 100;
! searchbuf.buffer = (char *) malloc (searchbuf.allocated);
searchbuf.fastmap = search_fastmap;
--- 1276,1278 ----
searchbuf.allocated = 100;
! searchbuf.buffer = (unsigned char *) malloc (searchbuf.allocated);
searchbuf.fastmap = search_fastmap;
-462
View File
@@ -1,462 +0,0 @@
#!/bin/sh
# Guess values for system-dependent variables and create Makefiles.
# Generated automatically using autoconf.
# Copyright (C) 1991, 1992, 1993 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2, or (at your option)
# any later version.
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
# Usage: configure [--srcdir=DIR] [--host=HOST] [--gas] [--nfp] [--no-create]
# [--prefix=PREFIX] [--exec-prefix=PREFIX] [--with-PACKAGE] [TARGET]
# Ignores all args except --srcdir, --prefix, --exec-prefix, --no-create, and
# --with-PACKAGE unless this script has special code to handle it.
for arg
do
# Handle --exec-prefix with a space before the argument.
if test x$next_exec_prefix = xyes; then exec_prefix=$arg; next_exec_prefix=
# Handle --host with a space before the argument.
elif test x$next_host = xyes; then next_host=
# Handle --prefix with a space before the argument.
elif test x$next_prefix = xyes; then prefix=$arg; next_prefix=
# Handle --srcdir with a space before the argument.
elif test x$next_srcdir = xyes; then srcdir=$arg; next_srcdir=
else
case $arg in
# For backward compatibility, also recognize exact --exec_prefix.
-exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* | --exec=* | --exe=* | --ex=* | --e=*)
exec_prefix=`echo $arg | sed 's/[-a-z_]*=//'` ;;
-exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- | --exec | --exe | --ex | --e)
next_exec_prefix=yes ;;
-gas | --gas | --ga | --g) ;;
-host=* | --host=* | --hos=* | --ho=* | --h=*) ;;
-host | --host | --hos | --ho | --h)
next_host=yes ;;
-nfp | --nfp | --nf) ;;
-no-create | --no-create | --no-creat | --no-crea | --no-cre | --no-cr | --no-c | --no- | --no)
no_create=1 ;;
-prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*)
prefix=`echo $arg | sed 's/[-a-z_]*=//'` ;;
-prefix | --prefix | --prefi | --pref | --pre | --pr | --p)
next_prefix=yes ;;
-srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=* | --s=*)
srcdir=`echo $arg | sed 's/[-a-z_]*=//'` ;;
-srcdir | --srcdir | --srcdi | --srcd | --src | --sr | --s)
next_srcdir=yes ;;
-with-* | --with-*)
package=`echo $arg|sed 's/-*with-//'`
# Delete all the valid chars; see if any are left.
if test -n "`echo $package|sed 's/[-a-zA-Z0-9_]*//g'`"; then
echo "configure: $package: invalid package name" >&2; exit 1
fi
eval "with_`echo $package|sed s/-/_/g`=1" ;;
*) ;;
esac
fi
done
trap 'rm -f conftest* core; exit 1' 1 3 15
rm -f conftest*
compile='${CC-cc} $CFLAGS $DEFS conftest.c -o conftest $LIBS >/dev/null 2>&1'
# A filename unique to this package, relative to the directory that
# configure is in, which we can look for to find out if srcdir is correct.
unique_file=regex.c
# Find the source files, if location was not specified.
if test -z "$srcdir"; then
srcdirdefaulted=yes
# Try the directory containing this script, then `..'.
prog=$0
confdir=`echo $prog|sed 's%/[^/][^/]*$%%'`
test "X$confdir" = "X$prog" && confdir=.
srcdir=$confdir
if test ! -r $srcdir/$unique_file; then
srcdir=..
fi
fi
if test ! -r $srcdir/$unique_file; then
if test x$srcdirdefaulted = xyes; then
echo "configure: Can not find sources in \`${confdir}' or \`..'." 1>&2
else
echo "configure: Can not find sources in \`${srcdir}'." 1>&2
fi
exit 1
fi
# Preserve a srcdir of `.' to avoid automounter screwups with pwd.
# But we can't avoid them for `..', to make subdirectories work.
case $srcdir in
.|/*|~*) ;;
*) srcdir=`cd $srcdir; pwd` ;; # Make relative path absolute.
esac
if test -z "$CC"; then
echo checking for gcc
saveifs="$IFS"; IFS="${IFS}:"
for dir in $PATH; do
test -z "$dir" && dir=.
if test -f $dir/gcc; then
CC="gcc"
break
fi
done
IFS="$saveifs"
fi
test -z "$CC" && CC="cc"
# Find out if we are using GNU C, under whatever name.
cat > conftest.c <<EOF
#ifdef __GNUC__
yes
#endif
EOF
${CC-cc} -E conftest.c > conftest.out 2>&1
if egrep yes conftest.out >/dev/null 2>&1; then
GCC=1 # For later tests.
fi
rm -f conftest*
# Make sure to not get the incompatible SysV /etc/install and
# /usr/sbin/install, which might be in PATH before a BSD-like install,
# or the SunOS /usr/etc/install directory, or the AIX /bin/install,
# or the AFS install, which mishandles nonexistent args. (Sigh.)
if test -z "$INSTALL"; then
echo checking for install
saveifs="$IFS"; IFS="${IFS}:"
for dir in $PATH; do
test -z "$dir" && dir=.
case $dir in
/etc|/usr/sbin|/usr/etc|/usr/afsws/bin) ;;
*)
if test -f $dir/install; then
if grep dspmsg $dir/install >/dev/null 2>&1; then
: # AIX
else
INSTALL="$dir/install -c"
INSTALL_PROGRAM='$(INSTALL)'
INSTALL_DATA='$(INSTALL) -m 644'
break
fi
fi
;;
esac
done
IFS="$saveifs"
fi
INSTALL=${INSTALL-cp}
INSTALL_PROGRAM=${INSTALL_PROGRAM-'$(INSTALL)'}
INSTALL_DATA=${INSTALL_DATA-'$(INSTALL)'}
echo checking for AIX
echo checking how to run the C preprocessor
if test -z "$CPP"; then
CPP='${CC-cc} -E'
cat > conftest.c <<EOF
#include <stdio.h>
EOF
err=`eval "$CPP $DEFS conftest.c 2>&1 >/dev/null"`
if test -z "$err"; then
:
else
CPP=/lib/cpp
fi
rm -f conftest*
fi
cat > conftest.c <<EOF
#ifdef _AIX
yes
#endif
EOF
eval "$CPP $DEFS conftest.c > conftest.out 2>&1"
if egrep "yes" conftest.out >/dev/null 2>&1; then
DEFS="$DEFS -D_ALL_SOURCE=1"
fi
rm -f conftest*
echo checking for DYNIX/ptx libseq
cat > conftest.c <<EOF
#if defined(_SEQUENT_)
yes
#endif
EOF
eval "$CPP $DEFS conftest.c > conftest.out 2>&1"
if egrep "yes" conftest.out >/dev/null 2>&1; then
SEQUENT=1
fi
rm -f conftest*
test -n "$SEQUENT" && test -f /usr/lib/libseq.a &&
LIBS="$LIBS -lseq"
echo checking for POSIXized ISC
if test -d /etc/conf/kconfig.d &&
grep _POSIX_VERSION /usr/include/sys/unistd.h >/dev/null 2>&1
then
ISC=1 # If later tests want to check for ISC.
DEFS="$DEFS -D_POSIX_SOURCE=1"
if test -n "$GCC"; then
CC="$CC -posix"
else
CC="$CC -Xp"
fi
fi
echo checking for minix/config.h
cat > conftest.c <<EOF
#include <minix/config.h>
EOF
err=`eval "$CPP $DEFS conftest.c 2>&1 >/dev/null"`
if test -z "$err"; then
MINIX=1
fi
rm -f conftest*
# The Minix shell can't assign to the same variable on the same line!
if test -n "$MINIX"; then
DEFS="$DEFS -D_POSIX_SOURCE=1"
DEFS="$DEFS -D_POSIX_1_SOURCE=2"
DEFS="$DEFS -D_MINIX=1"
fi
echo checking for ANSI C header files
cat > conftest.c <<EOF
#include <stdlib.h>
#include <stdarg.h>
#include <string.h>
#include <float.h>
EOF
err=`eval "$CPP $DEFS conftest.c 2>&1 >/dev/null"`
if test -z "$err"; then
# SunOS string.h does not declare mem*, contrary to ANSI.
echo '#include <string.h>' > conftest.c
eval "$CPP $DEFS conftest.c > conftest.out 2>&1"
if egrep "memchr" conftest.out >/dev/null 2>&1; then
# SGI's /bin/cc from Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi.
cat > conftest.c <<EOF
#include <ctype.h>
#define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
#define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
#define XOR(e,f) (((e) && !(f)) || (!(e) && (f)))
int main () { int i; for (i = 0; i < 256; i++)
if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) exit(2);
exit (0); }
EOF
eval $compile
if test -s conftest && (./conftest; exit) 2>/dev/null; then
DEFS="$DEFS -DSTDC_HEADERS=1"
fi
rm -f conftest*
fi
rm -f conftest*
fi
rm -f conftest*
for hdr in string.h
do
trhdr=HAVE_`echo $hdr | tr '[a-z]./' '[A-Z]__'`
echo checking for ${hdr}
cat > conftest.c <<EOF
#include <${hdr}>
EOF
err=`eval "$CPP $DEFS conftest.c 2>&1 >/dev/null"`
if test -z "$err"; then
DEFS="$DEFS -D${trhdr}=1"
fi
rm -f conftest*
done
# The Ultrix 4.2 mips builtin alloca declared by alloca.h only works
# for constant arguments. Useless!
echo checking for working alloca.h
cat > conftest.c <<EOF
#include <alloca.h>
main() { exit(0); }
t() { char *p = alloca(2 * sizeof(int)); }
EOF
if eval $compile; then
DEFS="$DEFS -DHAVE_ALLOCA_H=1"
fi
rm -f conftest*
decl="#ifdef __GNUC__
#define alloca __builtin_alloca
#else
#if HAVE_ALLOCA_H
#include <alloca.h>
#else
#ifdef _AIX
#pragma alloca
#else
char *alloca ();
#endif
#endif
#endif
"
echo checking for alloca
cat > conftest.c <<EOF
$decl
main() { exit(0); }
t() { char *p = (char *) alloca(1); }
EOF
if eval $compile; then
:
else
alloca_missing=1
fi
rm -f conftest*
if test -n "$alloca_missing"; then
# The SVR3 libPW and SVR4 libucb both contain incompatible functions
# that cause trouble. Some versions do not even contain alloca or
# contain a buggy version. If you still want to use their alloca,
# use ar to extract alloca.o from them instead of compiling alloca.c.
ALLOCA=alloca.o
fi
prog='/* Ultrix mips cc rejects this. */
typedef int charset[2]; const charset x;
/* SunOS 4.1.1 cc rejects this. */
char const *const *p;
char **p2;
/* HPUX 7.0 cc rejects these. */
++p;
p2 = (char const* const*) p;'
echo checking for working const
cat > conftest.c <<EOF
main() { exit(0); }
t() { $prog }
EOF
if eval $compile; then
:
else
DEFS="$DEFS -Dconst="
fi
rm -f conftest*
if test -z "$prefix"
then
echo checking for gcc to derive installation directory prefix
saveifs="$IFS"; IFS="$IFS:"
for dir in $PATH; do
test -z "$dir" && dir=.
if test $dir != . && test -f $dir/gcc; then
# Not all systems have dirname.
prefix=`echo $dir|sed 's%/[^/][^/]*$%%'`
break
fi
done
IFS="$saveifs"
fi
if test -n "$prefix"; then
test -z "$exec_prefix" && exec_prefix='${prefix}'
prsub="s%^prefix\\([ ]*\\)=\\([ ]*\\).*$%prefix\\1=\\2$prefix%"
fi
if test -n "$exec_prefix"; then
prsub="$prsub
s%^exec_prefix\\([ ]*\\)=\\([ ]*\\).*$%\
exec_prefix\\1=\\2$exec_prefix%"
fi
trap 'rm -f config.status; exit 1' 1 3 15
echo creating config.status
rm -f config.status
cat > config.status <<EOF
#!/bin/sh
# Generated automatically by configure.
# Run this file to recreate the current configuration.
# This directory was configured as follows,
# on host `(hostname || uname -n) 2>/dev/null`:
#
# $0 $*
for arg
do
case "\$arg" in
-recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
exec /bin/sh $0 $* ;;
*) echo "Usage: config.status --recheck" 2>&1; exit 1 ;;
esac
done
trap 'rm -f Makefile; exit 1' 1 3 15
CC='$CC'
INSTALL='$INSTALL'
INSTALL_PROGRAM='$INSTALL_PROGRAM'
INSTALL_DATA='$INSTALL_DATA'
CPP='$CPP'
ALLOCA='$ALLOCA'
LIBS='$LIBS'
srcdir='$srcdir'
DEFS='$DEFS'
prefix='$prefix'
exec_prefix='$exec_prefix'
prsub='$prsub'
EOF
cat >> config.status <<\EOF
top_srcdir=$srcdir
for file in .. Makefile; do if [ "x$file" != "x.." ]; then
srcdir=$top_srcdir
# Remove last slash and all that follows it. Not all systems have dirname.
dir=`echo $file|sed 's%/[^/][^/]*$%%'`
if test "$dir" != "$file"; then
test "$top_srcdir" != . && srcdir=$top_srcdir/$dir
test ! -d $dir && mkdir $dir
fi
echo creating $file
rm -f $file
echo "# Generated automatically from `echo $file|sed 's|.*/||'`.in by configure." > $file
sed -e "
$prsub
s%@CC@%$CC%g
s%@INSTALL@%$INSTALL%g
s%@INSTALL_PROGRAM@%$INSTALL_PROGRAM%g
s%@INSTALL_DATA@%$INSTALL_DATA%g
s%@CPP@%$CPP%g
s%@ALLOCA@%$ALLOCA%g
s%@LIBS@%$LIBS%g
s%@srcdir@%$srcdir%g
s%@DEFS@%$DEFS%
" $top_srcdir/${file}.in >> $file
fi; done
exit 0
EOF
chmod +x config.status
test -n "$no_create" || ./config.status
-23
View File
@@ -1,23 +0,0 @@
dnl Process this file with autoconf to produce a configure script.
AC_INIT(regex.c)
AC_PROG_CC
AC_PROG_INSTALL
dnl I'm not sure if AC_AIX and AC_DYNIX_SEQ are really necessary. The
dnl Autoconf documentation isn't specific about which BSD functions they
dnl provide.
AC_AIX
AC_DYNIX_SEQ
AC_ISC_POSIX
AC_MINIX
AC_STDC_HEADERS
AC_HAVE_HEADERS(string.h)
AC_ALLOCA
AC_CONST
AC_PREFIX(gcc)
AC_OUTPUT(Makefile doc/Makefile test/Makefile)
-4
View File
@@ -1,4 +0,0 @@
clean:
default:
all:
echo "."
-4948
View File
File diff suppressed because it is too large Load Diff
-490
View File
@@ -1,490 +0,0 @@
/* Definitions for data structures and routines for the regular
expression library, version 0.12.
Copyright (C) 1985, 1989, 1990, 1991, 1992, 1993 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
#ifndef __REGEXP_LIBRARY_H__
#define __REGEXP_LIBRARY_H__
/* POSIX says that <sys/types.h> must be included (by the caller) before
<regex.h>. */
#ifdef VMS
/* VMS doesn't have `size_t' in <sys/types.h>, even though POSIX says it
should be there. */
#include <stddef.h>
#endif
/* The following bits are used to determine the regexp syntax we
recognize. The set/not-set meanings are chosen so that Emacs syntax
remains the value 0. The bits are given in alphabetical order, and
the definitions shifted by one from the previous bit; thus, when we
add or remove a bit, only one other definition need change. */
typedef unsigned reg_syntax_t;
/* If this bit is not set, then \ inside a bracket expression is literal.
If set, then such a \ quotes the following character. */
#define RE_BACKSLASH_ESCAPE_IN_LISTS (1)
/* If this bit is not set, then + and ? are operators, and \+ and \? are
literals.
If set, then \+ and \? are operators and + and ? are literals. */
#define RE_BK_PLUS_QM (RE_BACKSLASH_ESCAPE_IN_LISTS << 1)
/* If this bit is set, then character classes are supported. They are:
[:alpha:], [:upper:], [:lower:], [:digit:], [:alnum:], [:xdigit:],
[:space:], [:print:], [:punct:], [:graph:], and [:cntrl:].
If not set, then character classes are not supported. */
#define RE_CHAR_CLASSES (RE_BK_PLUS_QM << 1)
/* If this bit is set, then ^ and $ are always anchors (outside bracket
expressions, of course).
If this bit is not set, then it depends:
^ is an anchor if it is at the beginning of a regular
expression or after an open-group or an alternation operator;
$ is an anchor if it is at the end of a regular expression, or
before a close-group or an alternation operator.
This bit could be (re)combined with RE_CONTEXT_INDEP_OPS, because
POSIX draft 11.2 says that * etc. in leading positions is undefined.
We already implemented a previous draft which made those constructs
invalid, though, so we haven't changed the code back. */
#define RE_CONTEXT_INDEP_ANCHORS (RE_CHAR_CLASSES << 1)
/* If this bit is set, then special characters are always special
regardless of where they are in the pattern.
If this bit is not set, then special characters are special only in
some contexts; otherwise they are ordinary. Specifically,
* + ? and intervals are only special when not after the beginning,
open-group, or alternation operator. */
#define RE_CONTEXT_INDEP_OPS (RE_CONTEXT_INDEP_ANCHORS << 1)
/* If this bit is set, then *, +, ?, and { cannot be first in an re or
immediately after an alternation or begin-group operator. */
#define RE_CONTEXT_INVALID_OPS (RE_CONTEXT_INDEP_OPS << 1)
/* If this bit is set, then . matches newline.
If not set, then it doesn't. */
#define RE_DOT_NEWLINE (RE_CONTEXT_INVALID_OPS << 1)
/* If this bit is set, then . doesn't match NUL.
If not set, then it does. */
#define RE_DOT_NOT_NULL (RE_DOT_NEWLINE << 1)
/* If this bit is set, nonmatching lists [^...] do not match newline.
If not set, they do. */
#define RE_HAT_LISTS_NOT_NEWLINE (RE_DOT_NOT_NULL << 1)
/* If this bit is set, either \{...\} or {...} defines an
interval, depending on RE_NO_BK_BRACES.
If not set, \{, \}, {, and } are literals. */
#define RE_INTERVALS (RE_HAT_LISTS_NOT_NEWLINE << 1)
/* If this bit is set, +, ? and | aren't recognized as operators.
If not set, they are. */
#define RE_LIMITED_OPS (RE_INTERVALS << 1)
/* If this bit is set, newline is an alternation operator.
If not set, newline is literal. */
#define RE_NEWLINE_ALT (RE_LIMITED_OPS << 1)
/* If this bit is set, then `{...}' defines an interval, and \{ and \}
are literals.
If not set, then `\{...\}' defines an interval. */
#define RE_NO_BK_BRACES (RE_NEWLINE_ALT << 1)
/* If this bit is set, (...) defines a group, and \( and \) are literals.
If not set, \(...\) defines a group, and ( and ) are literals. */
#define RE_NO_BK_PARENS (RE_NO_BK_BRACES << 1)
/* If this bit is set, then \<digit> matches <digit>.
If not set, then \<digit> is a back-reference. */
#define RE_NO_BK_REFS (RE_NO_BK_PARENS << 1)
/* If this bit is set, then | is an alternation operator, and \| is literal.
If not set, then \| is an alternation operator, and | is literal. */
#define RE_NO_BK_VBAR (RE_NO_BK_REFS << 1)
/* If this bit is set, then an ending range point collating higher
than the starting range point, as in [z-a], is invalid.
If not set, then when ending range point collates higher than the
starting range point, the range is ignored. */
#define RE_NO_EMPTY_RANGES (RE_NO_BK_VBAR << 1)
/* If this bit is set, then an unmatched ) is ordinary.
If not set, then an unmatched ) is invalid. */
#define RE_UNMATCHED_RIGHT_PAREN_ORD (RE_NO_EMPTY_RANGES << 1)
/* This global variable defines the particular regexp syntax to use (for
some interfaces). When a regexp is compiled, the syntax used is
stored in the pattern buffer, so changing this does not affect
already-compiled regexps. */
extern reg_syntax_t re_syntax_options;
/* Define combinations of the above bits for the standard possibilities.
(The [[[ comments delimit what gets put into the Texinfo file, so
don't delete them!) */
/* [[[begin syntaxes]]] */
#define RE_SYNTAX_EMACS 0
#define RE_SYNTAX_AWK \
(RE_BACKSLASH_ESCAPE_IN_LISTS | RE_DOT_NOT_NULL \
| RE_NO_BK_PARENS | RE_NO_BK_REFS \
| RE_NO_BK_VBAR | RE_NO_EMPTY_RANGES \
| RE_UNMATCHED_RIGHT_PAREN_ORD)
#define RE_SYNTAX_POSIX_AWK \
(RE_SYNTAX_POSIX_EXTENDED | RE_BACKSLASH_ESCAPE_IN_LISTS)
#define RE_SYNTAX_GREP \
(RE_BK_PLUS_QM | RE_CHAR_CLASSES \
| RE_HAT_LISTS_NOT_NEWLINE | RE_INTERVALS \
| RE_NEWLINE_ALT)
#define RE_SYNTAX_EGREP \
(RE_CHAR_CLASSES | RE_CONTEXT_INDEP_ANCHORS \
| RE_CONTEXT_INDEP_OPS | RE_HAT_LISTS_NOT_NEWLINE \
| RE_NEWLINE_ALT | RE_NO_BK_PARENS \
| RE_NO_BK_VBAR)
#define RE_SYNTAX_POSIX_EGREP \
(RE_SYNTAX_EGREP | RE_INTERVALS | RE_NO_BK_BRACES)
/* P1003.2/D11.2, section 4.20.7.1, lines 5078ff. */
#define RE_SYNTAX_ED RE_SYNTAX_POSIX_BASIC
#define RE_SYNTAX_SED RE_SYNTAX_POSIX_BASIC
/* Syntax bits common to both basic and extended POSIX regex syntax. */
#define _RE_SYNTAX_POSIX_COMMON \
(RE_CHAR_CLASSES | RE_DOT_NEWLINE | RE_DOT_NOT_NULL \
| RE_INTERVALS | RE_NO_EMPTY_RANGES)
#define RE_SYNTAX_POSIX_BASIC \
(_RE_SYNTAX_POSIX_COMMON | RE_BK_PLUS_QM)
/* Differs from ..._POSIX_BASIC only in that RE_BK_PLUS_QM becomes
RE_LIMITED_OPS, i.e., \? \+ \| are not recognized. Actually, this
isn't minimal, since other operators, such as \`, aren't disabled. */
#define RE_SYNTAX_POSIX_MINIMAL_BASIC \
(_RE_SYNTAX_POSIX_COMMON | RE_LIMITED_OPS)
#define RE_SYNTAX_POSIX_EXTENDED \
(_RE_SYNTAX_POSIX_COMMON | RE_CONTEXT_INDEP_ANCHORS \
| RE_CONTEXT_INDEP_OPS | RE_NO_BK_BRACES \
| RE_NO_BK_PARENS | RE_NO_BK_VBAR \
| RE_UNMATCHED_RIGHT_PAREN_ORD)
/* Differs from ..._POSIX_EXTENDED in that RE_CONTEXT_INVALID_OPS
replaces RE_CONTEXT_INDEP_OPS and RE_NO_BK_REFS is added. */
#define RE_SYNTAX_POSIX_MINIMAL_EXTENDED \
(_RE_SYNTAX_POSIX_COMMON | RE_CONTEXT_INDEP_ANCHORS \
| RE_CONTEXT_INVALID_OPS | RE_NO_BK_BRACES \
| RE_NO_BK_PARENS | RE_NO_BK_REFS \
| RE_NO_BK_VBAR | RE_UNMATCHED_RIGHT_PAREN_ORD)
/* [[[end syntaxes]]] */
/* Maximum number of duplicates an interval can allow. Some systems
(erroneously) define this in other header files, but we want our
value, so remove any previous define. */
#ifdef RE_DUP_MAX
#undef RE_DUP_MAX
#endif
#define RE_DUP_MAX ((1 << 15) - 1)
/* POSIX `cflags' bits (i.e., information for `regcomp'). */
/* If this bit is set, then use extended regular expression syntax.
If not set, then use basic regular expression syntax. */
#define REG_EXTENDED 1
/* If this bit is set, then ignore case when matching.
If not set, then case is significant. */
#define REG_ICASE (REG_EXTENDED << 1)
/* If this bit is set, then anchors do not match at newline
characters in the string.
If not set, then anchors do match at newlines. */
#define REG_NEWLINE (REG_ICASE << 1)
/* If this bit is set, then report only success or fail in regexec.
If not set, then returns differ between not matching and errors. */
#define REG_NOSUB (REG_NEWLINE << 1)
/* POSIX `eflags' bits (i.e., information for regexec). */
/* If this bit is set, then the beginning-of-line operator doesn't match
the beginning of the string (presumably because it's not the
beginning of a line).
If not set, then the beginning-of-line operator does match the
beginning of the string. */
#define REG_NOTBOL 1
/* Like REG_NOTBOL, except for the end-of-line. */
#define REG_NOTEOL (1 << 1)
/* If any error codes are removed, changed, or added, update the
`re_error_msg' table in regex.c. */
typedef enum
{
REG_NOERROR = 0, /* Success. */
REG_NOMATCH, /* Didn't find a match (for regexec). */
/* POSIX regcomp return error codes. (In the order listed in the
standard.) */
REG_BADPAT, /* Invalid pattern. */
REG_ECOLLATE, /* Not implemented. */
REG_ECTYPE, /* Invalid character class name. */
REG_EESCAPE, /* Trailing backslash. */
REG_ESUBREG, /* Invalid back reference. */
REG_EBRACK, /* Unmatched left bracket. */
REG_EPAREN, /* Parenthesis imbalance. */
REG_EBRACE, /* Unmatched \{. */
REG_BADBR, /* Invalid contents of \{\}. */
REG_ERANGE, /* Invalid range end. */
REG_ESPACE, /* Ran out of memory. */
REG_BADRPT, /* No preceding re for repetition op. */
/* Error codes we've added. */
REG_EEND, /* Premature end. */
REG_ESIZE, /* Compiled pattern bigger than 2^16 bytes. */
REG_ERPAREN /* Unmatched ) or \); not returned from regcomp. */
} reg_errcode_t;
/* This data structure represents a compiled pattern. Before calling
the pattern compiler, the fields `buffer', `allocated', `fastmap',
`translate', and `no_sub' can be set. After the pattern has been
compiled, the `re_nsub' field is available. All other fields are
private to the regex routines. */
struct re_pattern_buffer
{
/* [[[begin pattern_buffer]]] */
/* Space that holds the compiled pattern. It is declared as
`unsigned char *' because its elements are
sometimes used as array indexes. */
unsigned char *buffer;
/* Number of bytes to which `buffer' points. */
unsigned long allocated;
/* Number of bytes actually used in `buffer'. */
unsigned long used;
/* Syntax setting with which the pattern was compiled. */
reg_syntax_t syntax;
/* Pointer to a fastmap, if any, otherwise zero. re_search uses
the fastmap, if there is one, to skip over impossible
starting points for matches. */
char *fastmap;
/* Either a translate table to apply to all characters before
comparing them, or zero for no translation. The translation
is applied to a pattern when it is compiled and to a string
when it is matched. */
char *translate;
/* Number of subexpressions found by the compiler. */
size_t re_nsub;
/* Zero if this pattern cannot match the empty string, one else.
Well, in truth it's used only in `re_search_2', to see
whether or not we should use the fastmap, so we don't set
this absolutely perfectly; see `re_compile_fastmap' (the
`duplicate' case). */
unsigned can_be_null : 1;
/* If REGS_UNALLOCATED, allocate space in the `regs' structure
for `max (RE_NREGS, re_nsub + 1)' groups.
If REGS_REALLOCATE, reallocate space if necessary.
If REGS_FIXED, use what's there. */
#define REGS_UNALLOCATED 0
#define REGS_REALLOCATE 1
#define REGS_FIXED 2
unsigned regs_allocated : 2;
/* Set to zero when `regex_compile' compiles a pattern; set to one
by `re_compile_fastmap' if it updates the fastmap. */
unsigned fastmap_accurate : 1;
/* If set, `re_match_2' does not return information about
subexpressions. */
unsigned no_sub : 1;
/* If set, a beginning-of-line anchor doesn't match at the
beginning of the string. */
unsigned not_bol : 1;
/* Similarly for an end-of-line anchor. */
unsigned not_eol : 1;
/* If true, an anchor at a newline matches. */
unsigned newline_anchor : 1;
/* [[[end pattern_buffer]]] */
};
typedef struct re_pattern_buffer regex_t;
/* search.c (search_buffer) in Emacs needs this one opcode value. It is
defined both in `regex.c' and here. */
#define RE_EXACTN_VALUE 1
/* Type for byte offsets within the string. POSIX mandates this. */
typedef int regoff_t;
/* This is the structure we store register match data in. See
regex.texinfo for a full description of what registers match. */
struct re_registers
{
unsigned num_regs;
regoff_t *start;
regoff_t *end;
};
/* If `regs_allocated' is REGS_UNALLOCATED in the pattern buffer,
`re_match_2' returns information about at least this many registers
the first time a `regs' structure is passed. */
#ifndef RE_NREGS
#define RE_NREGS 30
#endif
/* POSIX specification for registers. Aside from the different names than
`re_registers', POSIX uses an array of structures, instead of a
structure of arrays. */
typedef struct
{
regoff_t rm_so; /* Byte offset from string's start to substring's start. */
regoff_t rm_eo; /* Byte offset from string's start to substring's end. */
} regmatch_t;
/* Declarations for routines. */
/* To avoid duplicating every routine declaration -- once with a
prototype (if we are ANSI), and once without (if we aren't) -- we
use the following macro to declare argument types. This
unfortunately clutters up the declarations a bit, but I think it's
worth it. */
#if __STDC__
#define _RE_ARGS(args) args
#else /* not __STDC__ */
#define _RE_ARGS(args) ()
#endif /* not __STDC__ */
/* Sets the current default syntax to SYNTAX, and return the old syntax.
You can also simply assign to the `re_syntax_options' variable. */
extern reg_syntax_t re_set_syntax _RE_ARGS ((reg_syntax_t syntax));
/* Compile the regular expression PATTERN, with length LENGTH
and syntax given by the global `re_syntax_options', into the buffer
BUFFER. Return NULL if successful, and an error string if not. */
extern const char *re_compile_pattern
_RE_ARGS ((const char *pattern, int length,
struct re_pattern_buffer *buffer));
/* Compile a fastmap for the compiled pattern in BUFFER; used to
accelerate searches. Return 0 if successful and -2 if was an
internal error. */
extern int re_compile_fastmap _RE_ARGS ((struct re_pattern_buffer *buffer));
/* Search in the string STRING (with length LENGTH) for the pattern
compiled into BUFFER. Start searching at position START, for RANGE
characters. Return the starting position of the match, -1 for no
match, or -2 for an internal error. Also return register
information in REGS (if REGS and BUFFER->no_sub are nonzero). */
extern int re_search
_RE_ARGS ((struct re_pattern_buffer *buffer, const char *string,
int length, int start, int range, struct re_registers *regs));
/* Like `re_search', but search in the concatenation of STRING1 and
STRING2. Also, stop searching at index START + STOP. */
extern int re_search_2
_RE_ARGS ((struct re_pattern_buffer *buffer, const char *string1,
int length1, const char *string2, int length2,
int start, int range, struct re_registers *regs, int stop));
/* Like `re_search', but return how many characters in STRING the regexp
in BUFFER matched, starting at position START. */
extern int re_match
_RE_ARGS ((struct re_pattern_buffer *buffer, const char *string,
int length, int start, struct re_registers *regs));
/* Relates to `re_match' as `re_search_2' relates to `re_search'. */
extern int re_match_2
_RE_ARGS ((struct re_pattern_buffer *buffer, const char *string1,
int length1, const char *string2, int length2,
int start, struct re_registers *regs, int stop));
/* Set REGS to hold NUM_REGS registers, storing them in STARTS and
ENDS. Subsequent matches using BUFFER and REGS will use this memory
for recording register information. STARTS and ENDS must be
allocated with malloc, and must each be at least `NUM_REGS * sizeof
(regoff_t)' bytes long.
If NUM_REGS == 0, then subsequent matches should allocate their own
register data.
Unless this function is called, the first search or match using
PATTERN_BUFFER will allocate its own register data, without
freeing the old data. */
extern void re_set_registers
_RE_ARGS ((struct re_pattern_buffer *buffer, struct re_registers *regs,
unsigned num_regs, regoff_t *starts, regoff_t *ends));
/* 4.2 bsd compatibility. */
extern char *re_comp _RE_ARGS ((const char *));
extern int re_exec _RE_ARGS ((const char *));
/* POSIX compatibility. */
extern int regcomp _RE_ARGS ((regex_t *preg, const char *pattern, int cflags));
extern int regexec
_RE_ARGS ((const regex_t *preg, const char *string, size_t nmatch,
regmatch_t pmatch[], int eflags));
extern size_t regerror
_RE_ARGS ((int errcode, const regex_t *preg, char *errbuf,
size_t errbuf_size));
extern void regfree _RE_ARGS ((regex_t *preg));
#endif /* not __REGEXP_LIBRARY_H__ */
/*
Local variables:
make-backup-files: t
version-control: t
trim-versions-without-asking: nil
End:
*/
-12
View File
@@ -1,12 +0,0 @@
all: client server
client:
gcc -o tsp-client tsp-client.c sscript.c
server:
gcc -o tsp-server-run tsp-server-run.c
gcc -o tsp-skin socker.c
clean:
rm -f *~
rm -f tsp-server-run tsp-client tsp-skin
-26
View File
@@ -1,26 +0,0 @@
how to use tsp-client:
first make it "make"
then run it like this:
$ ./tsp-client <tsp server> <port>
do this a couple of times
if the answers come within 1 second count its right
then take the most common time difference count and do in UnrealIRCd like
this:
/quote tsctl offset + <difference count>
then your server is time synched
current tsp servers online:
server port
-----------------------------
irc.flirt.org 6100
if you want to make your own TSP server (must be a box using NTP)
run ./tsp-server, it will then start running on port 6100
-40
View File
@@ -1,40 +0,0 @@
Socket Script C library
-----------------------
Home page:
http://www.linsupport.com
This is a simple library that provides usefull functions for C
networking applications. It's based on the Socket Script scripting
language, but meant for C programmers. These functions are really
shortcuts to C functions, meant to make their use simple.
This can create a static lib: libsscript.a
To compile:
make
Then to install it:
make install
(C) Copyright 1998-2000 Patrick Lambert <drow@post.com>
This library is under the LGPL license which means:
1- You can copy and use this program freely.
2- You may not claim that you wrote it.
3- If you want to include parts of this software in your own product,
you can do so if that product stays under free software and if all
copyright notices in source and documentation, as well as the no warranty
comment, remains.
4- This program is distributed without ANY WARRANTY, without even
the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
PURPOSE.
-149
View File
@@ -1,149 +0,0 @@
/*
SOCKER Socket redirector version 0.1
Patrick Doyle Oct 1998
Based on tserver by Michael Johnson and Erik Troan
Puts a normal stdin & stdout based program up on a port
as a server process. Each connection spawns a new copy
of the program.
Please notify me of any changes to this code tha you
subsequently redistribute. I can be contacted at
patrick@minotaursoftware.com.
Also, please leave my name and those of Michael Johnson
and Erik Troan at the top of this file.
*/
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <unistd.h>
#include <signal.h>
#include <netinet/in.h>
#include <sys/socket.h>
#include <arpa/inet.h>
#include <sys/types.h>
#include <sys/wait.h>
#define ZOMBIE /* Causes zombies to be collected. Only works under Linux. */
#define debug printf
#undef debug
void debug(char *format, ...){}
int sock = -1;
void die(char *msg){
perror(msg);
exit(1);
}
void handle_sig(int signum){
if(signum == SIGCHLD){
/* Collect exit statuses. Prevent zombies. */
int status;
while(0 < waitpid(-1, &status, WNOHANG));
}else{
fprintf(stderr, "\nSocker exiting normally.\n");
close(sock);
exit(0);
}
}
#define asizeof(x) (sizeof(x)/sizeof(x[0]))
void setup_sig_handler(){
int sa_num;
static int sigs[] = {
SIGHUP, SIGINT, SIGQUIT, SIGXCPU, SIGXFSZ, SIGTERM
# ifdef ZOMBIE
, SIGCHLD
# endif
};
static struct sigaction sig_actions[asizeof(sigs)];
debug("Starting setup_sig_handler\n");
memset(sig_actions, 0, sizeof(sig_actions));
sig_actions[0].sa_handler = handle_sig;
sigemptyset(&(sig_actions[0].sa_mask));
for(sa_num=1; sa_num < asizeof(sigs); sa_num++){
memcpy(sig_actions+sa_num, sig_actions, sizeof(sig_actions[0]));
}
for(sa_num=0; sa_num < asizeof(sigs); sa_num++){
if(sigaction(sigs[sa_num], sig_actions+sa_num, NULL))
die("sigaction");
}
# ifdef ZOMBIE
siginterrupt(SIGCHLD, 0); /* Don't let SIGCHLD interrupt socket calls */
# endif
debug("Ending setup_sig_handler\n");
}
int main(int argc, char *argv[]) {
struct sockaddr_in address;
int conn, i, portnum;
size_t addrLength = sizeof(struct sockaddr_in);
fprintf(stderr, "SOCKER Socket Redirector Patrick Doyle Oct 1998\n");
if (argc < 3 || !(portnum = atoi(argv[1]))){
fprintf(stderr, "Usage: socker {port_num} {command}\n");
fprintf(stderr, "Waits for TCP connections on the given port, and then\n");
fprintf(stderr, "spawns a new process executing {command} for each connection.\n");
fprintf(stderr, "Exit status: 0=caught signal and exited; 1=error\n");
exit(1);
}
if ((sock = socket(PF_INET, SOCK_STREAM, 0)) < 0)
die("socket");
debug("Calling setup_sig_handler\n");
setup_sig_handler();
/* Let the kernel reuse the socket address. This lets us run
twice in a row, without waiting for the (ip, port) tuple
to time out. */
i = 1;
setsockopt(sock, SOL_SOCKET, SO_REUSEADDR, (void*)&i, i);
address.sin_family = AF_INET;
address.sin_port = htons(portnum);
memset(&address.sin_addr, 0, sizeof(address.sin_addr));
if (bind(sock, (struct sockaddr *) &address, sizeof(address)))
die("bind");
if (listen(sock, 5))
die("listen");
while ((conn = accept(sock, (struct sockaddr *) &address, &addrLength)) >= 0) {
if(fork()){ /* Parent; loop back to accept another */
close(conn);
}else{ /* Child; exec given command line */
close(sock);
/* Redirect stdin & stdout to socket */
if(0 != dup2(conn, 0) || 1 != dup2(conn, 1))
die("dup2 redirection");
/* Turn off buffering */
/* Note: this seems to have no effect beyond execvp */
setbuf(stdin, 0);
setbuf(stdout, 0);
setbuf(stderr, 0);
/* Execute command */
execvp(argv[2], argv+2);
/* Error if we get here */
fprintf(stderr, "execvp failed. Please make sure that '%s' refers to a valid program.\n", argv[2]);
_exit(1)/*
man fork says _exit should be called to prevent parent from
being corrupted.
*/;
}
}
if (conn < 0)
die("accept");
/* Shouldn't get here */
close(sock);
return 2;
}
-115
View File
@@ -1,115 +0,0 @@
Socket Script Library 2.0
-------------------------
Here are the functions and errno code numbers returned by some of SScript's
functions:
errno:
SSCRIPT_SOCKET_FAILED 10
SSCRIPT_BIND_FAILED 11
SSCRIPT_GETSOCKETNAME_FAILED 12
SSCRIPT_FLAGS_FAILED 13
SSCRIPT_CONNECT_FAILED 20
SSCRIPT_UDPSEND_FAILED 31
SSCRIPT_UDPRECEIVE_FAILED 32
SSCRIPT_READ_FAILED 33
The following are the SScript functions available in this library.
They return either a string, an int or void. If an error occurs, it returns
NULL (in case of a string) or -1 (in case of an int) and sets errno to
the right error code (see above). Note that since each connection is
associated with a socket number (sockfd), it is possible to make
multiple connections.
- char *sscript_lindex(char *input_string, int word_number);
Get <word_number> from <input_string>. Returns the requested word.
- char *sscript_lrange(char *input_string, int starting_at);
Return everything after <starting_at> in <input_string>.
- int sscript_connect(char *server, int port, char *virtual);
Connect to <server> at port <port>, binding to virtual address
<virtual>. If no binding is required, use NULL. Returns the socket
number.
- int sscript_server(int port);
Initialize a server socket. Returns the socket number.
- int sscript_wait_clients(int sockfd, int port, int forking);
Listen to port <port> and wait for clients. This function is a
blocking function. It will stay there untill it gets a client, and when
it does, it will create a child and return its associated socket number.
The child will go in the background if <forking> is set to 1
(required for multithreading). This returns the child' sockfd.
- char *sscript_get_remote_ip();
This function returns the IP that connected to a server-oriented program.
- void sscript_disconnect(int sockfd);
Diconnects the connection pointed by <sockfd>.
- void sscript_dump(int sockfd, char *filename);
Dumps the content of <filename> to the connection pointed by <sockfd>.
- void sscript_ping(char *hostname);
Sends a TCP ping (echo to port 7) to <hostname>. This is a blocking
function and only returns if the ping worked.
- int sscript_test(char *hostname, int port);
This tests if port <port> from <hostname> is open. Returns 0 if it is.
- char *sscript_version();
Returns the current library version.
- char *sscript_read(int sockfd, int chop);
Read from the connection pointed by <sockfd> and clear the last
char if <chop> is set to 1.
- void sscript_write(int sockfd, char *string);
Write <string> to the connection pointed by <sockfd>.
- int sscript_udp_send(char *hostname, int port, char *msg);
Send an UDP packet to <hostname> at port <port> containing the message <msg>
- char *sscript_udp_listen(int port);
Listen for UDP packets on port <port>. Available to root only.
- char *sscript_icmp_detect();
Listen for ICMP messages and return the type (see ICMP.types) and the IP
that sent one. Available to root only.
- char *sscript_resolve_host(char *hostname);
Resolve <hostname> into an IP.
- char *sscript_resolve_ip(char *ip);
Resolve <ip> into an hostname.
- char *sscript_get_localhost();
Get the local hostname.
- void sscript_binary_send(int sockfd, char *filename);
This function sends a binary file.
- void sscript_binary_get(int sockfd);
This function receives a binary file.
- char *sscript_login_to_passwd(char *login)
This function converts a login name to its crypted password.
- char *sscript_uid_to_login(long uid)
This function finds the login name for the UID provided.
- int sscript_sokstat(char *option, int sockfd)
This will give the settings for the currently open socket sockfd. Option
is what you want the setting of and can be sendbuf, recvbuf, error or type.
- char *sscript_time_read(int sockfd, int time);
This function reads from sockfd for time secs, and then returns what it
read, or "timeout".
- void sscript_redir(int sockfd1, int sockfd2);
This function will redirect packets from sockfd1 to sockfd2, and the
other way around.
- void sscript_nodelay(int sockfd);
Set the socket in non-blocking mode.
-509
View File
@@ -1,509 +0,0 @@
/*
* SScript - See the sscript.doc
* (C) 1998 Drow <drow@wildstar.net>
* http://devplanet.fastethernet.net
*/
#include "sscript.h"
#include <string.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <sys/time.h>
#include <netinet/in.h>
#include <net/if.h>
#include <strings.h>
#include <sys/file.h>
#include <signal.h>
#include <unistd.h>
#include <netdb.h>
#include <arpa/inet.h>
#ifndef FNDELAY
#define FNDELAY O_NONBLOCK
#endif
#ifdef POSIX
#include <pwd.h>
#include <sys/utsname.h>
#endif
char global_var[9][1024]; /* need to find why gcc outputs warns without this */
char remoteIP[30];
char *sscript_lindex(char *input_string, int word_number)
{
char *tokens[1024];
static char tmpstring[1024];
int i;
strncpy(tmpstring,input_string,1024);
(char *)tokens[i=0] = (char *)strtok(tmpstring, " ");
while (((char *)tokens[++i] = (char *)strtok(NULL, " ")));
tokens[i] = NULL;
return(tokens[word_number]);
}
int sscript_connect(char *server, int port, char *virtual)
{
struct sockaddr_in address;
struct sockaddr_in la;
int len, sockfd;
sockfd = socket(AF_INET, SOCK_STREAM, 0);
if(sockfd<1)
{
errno = SSCRIPT_SOCKET_FAILED;
return -1;
}
address.sin_family = AF_INET;
address.sin_addr.s_addr = inet_addr(server);
address.sin_port = htons(port);
len = sizeof(address);
if(virtual!=NULL)
{
la.sin_family = AF_INET;
la.sin_addr.s_addr = inet_addr(virtual);
la.sin_port = 0;
bind(sockfd, (struct sockaddr *)&la, sizeof(la));
}
if(connect(sockfd, (struct sockaddr *)&address, len)<0)
{
errno = SSCRIPT_CONNECT_FAILED;
return -1;
}
return sockfd;
}
int sscript_server(int port)
{
int sockfd2, listen_len;
struct sockaddr_in listen_addr;
sockfd2 = socket(AF_INET, SOCK_STREAM, 0);
if(sockfd2<1)
{
errno = SSCRIPT_SOCKET_FAILED;
return -1;
}
listen_addr.sin_family = AF_INET;
listen_addr.sin_addr.s_addr = htonl(INADDR_ANY);
listen_addr.sin_port = htons(port);
listen_len = sizeof(listen_addr);
if(bind(sockfd2, (struct sockaddr *)&listen_addr, listen_len))
{
errno = SSCRIPT_BIND_FAILED;
return -1;
}
return sockfd2;
}
int sscript_wait_clients(int sockfd2, int port, int forking)
{
int sockfd=(int)NULL,len,from_len,pid;
struct sockaddr_in address;
struct sockaddr_in from_addr;
struct sockaddr_in listen_addr;
listen_addr.sin_family = AF_INET;
listen_addr.sin_addr.s_addr = htonl(INADDR_ANY);
listen_addr.sin_port = htons(port);
len = sizeof(address);
listen(sockfd2, 5);
for(;;)
{
if(forking) if(sockfd!=(int)NULL) close(sockfd);
sockfd = accept(sockfd2, (struct sockaddr *)&address, &len);
if(forking) if((pid=fork())) break;
}
from_len=sizeof(from_addr);
memset(&from_addr, 0, sizeof(from_addr));
if(getpeername(sockfd, (struct sockaddr *)&from_addr,&from_len) < 0)
{
strcpy(remoteIP,"unknown");
}
else
{
strcpy(remoteIP,inet_ntoa(from_addr.sin_addr));
}
return sockfd;
}
char *sscript_get_remote_ip()
{
return remoteIP;
}
void sscript_disconnect(int sockfd)
{
shutdown(sockfd,2);
close(sockfd);
}
void sscript_dump(int sockfd, char *filename)
{
char temp[1024]="";
FILE *fpa;
fpa=fopen(filename,"r");
if(fpa==NULL) return;
while(fgets(temp,1024,fpa)!=NULL)
write(sockfd, temp, strlen(temp));
fclose(fpa);
}
void sscript_ping(char *hostname)
{
struct sockaddr_in other_addr;
int sockfd, result;
char temp[255];
sockfd=socket(AF_INET, SOCK_STREAM, 0);
if(sockfd<0)
{
errno = SSCRIPT_SOCKET_FAILED;
return;
}
other_addr.sin_family = AF_INET;
other_addr.sin_addr.s_addr = inet_addr(hostname);
other_addr.sin_port = htons(7);
connect(sockfd, (struct sockaddr*) &other_addr,sizeof(other_addr));
result=write(sockfd,"ping\n",strlen("ping\n"));
result=read(sockfd,temp,result);
close(sockfd);
}
int sscript_test(char *hostname, int port)
{
int sockfd;
struct sockaddr_in other_addr;
if((sockfd=socket(AF_INET, SOCK_STREAM, 0))<0)
{
errno = SSCRIPT_SOCKET_FAILED;
return -1;
}
other_addr.sin_family = AF_INET;
other_addr.sin_addr.s_addr = inet_addr(hostname);
other_addr.sin_port = htons(port);
if(connect(sockfd, (struct sockaddr*)&other_addr,sizeof(other_addr))==-1)
{
errno = SSCRIPT_CONNECT_FAILED;
close(sockfd);
return -1;
}
close(sockfd);
return 0;
}
char *sscript_version()
{
return ABOUT;
}
char *sscript_read(int sockfd, int chop)
{
int i, result;
char inchar;
char string[1024];
bzero(string,1024);
strcpy(string,"");
for(i=0;(result=read(sockfd,&inchar,1))!='\0';i++)
{
string[i]=inchar;
if(inchar=='\n') break;
}
if (chop) string[i-1]=' ';
strcpy(global_var[0],string);
return global_var[0];
}
void sscript_write(int sockfd, char *string)
{
write(sockfd, string, strlen(string));
}
int sscript_compare(char *case1, char *case2)
{
return (strcmp(case1,case2));
}
char *sscript_lrange(char *input_string, int starting_at)
{
char *tokens[555];
static char tmpstring[512]="";
int i;
char out_string[512]="";
strcpy(out_string,"");
if(input_string==NULL) {
strcpy(out_string," ");
strcat(out_string,NULL);
strcpy(global_var[1],out_string);
return global_var[1]; }
strcpy(tmpstring,input_string);
(char *)tokens[i=0] = (char *)strtok(tmpstring, " ");
while(((char *)tokens[++i] = (char *)strtok(NULL, " ")));
tokens[i] = NULL;
i++;
if(i<starting_at) return (int)NULL;
while(tokens[starting_at] != NULL)
{
strcat(out_string,tokens[starting_at]);
strcat(out_string, " ");
starting_at++;
}
strcpy(global_var[2],out_string);
return global_var[2];
}
int sscript_udp_send(char *hostname, int port, char *msg)
{
int udpsock;
struct sockaddr_in udpaddr;
udpsock = socket(AF_INET, SOCK_DGRAM, 0);
if(udpsock<0)
{
errno = SSCRIPT_SOCKET_FAILED;
return -1;
}
udpaddr.sin_family = AF_INET;
udpaddr.sin_port = htons(port);
udpaddr.sin_addr.s_addr = inet_addr(hostname);
if(sendto(udpsock,msg,sizeof(msg),0,(struct sockaddr *)&udpaddr,sizeof(udpaddr))<0)
{
errno = SSCRIPT_UDPSEND_FAILED;
return -1;
}
return 0;
}
char *sscript_udp_listen(int port)
{
int udpsock,len;
struct sockaddr_in udpaddr, from;
char msg[255];
udpsock = socket(AF_INET, SOCK_DGRAM, 0);
if(udpsock<0)
{
errno = SSCRIPT_SOCKET_FAILED;
return (char *)NULL;
}
udpaddr.sin_family = AF_INET;
udpaddr.sin_addr.s_addr = INADDR_ANY;
udpaddr.sin_port = htons(port);
if(bind(udpsock,(struct sockaddr *)&udpaddr,sizeof(udpaddr))<0)
{
errno = SSCRIPT_BIND_FAILED;
close(udpsock);
return (char *)NULL;
}
len = sizeof(from);
if(recvfrom(udpsock,msg,sizeof(msg),0,(struct sockaddr *)&from,&len)<0)
{
errno = SSCRIPT_UDPRECEIVE_FAILED;
close(udpsock);
return (char *)NULL;
}
close(udpsock);
strcpy(global_var[3],msg);
return global_var[3];
}
char *sscript_icmp_detect()
{
int icmpsock,len,result,type;
struct sockaddr_in icmpaddr;
char readbuf[1024]="";
char msg[255];
if((icmpsock=socket(AF_INET, SOCK_RAW, IPPROTO_ICMP))<0)
{
errno = SSCRIPT_SOCKET_FAILED;
return (char *)NULL;
}
icmpaddr.sin_family = AF_INET;
icmpaddr.sin_addr.s_addr = INADDR_ANY;
icmpaddr.sin_port = 0;
if(bind(icmpsock,(struct sockaddr *)&icmpaddr,sizeof(icmpaddr))<0)
{
errno = SSCRIPT_BIND_FAILED;
close(icmpsock);
return (char *)NULL;
}
len=sizeof(icmpaddr);
if(getsockname(icmpsock,(struct sockaddr *)&icmpaddr,&len)<0)
{
errno = SSCRIPT_GETSOCKETNAME_FAILED;
close(icmpsock);
return (char *)NULL;
}
if((result=read(icmpsock,readbuf,sizeof(readbuf)))<0)
{
errno = SSCRIPT_READ_FAILED;
close(icmpsock);
return (char *)NULL;
}
type=readbuf[20] & 0xff;
sprintf(msg,"%d %d.%d.%d.%d ",type,readbuf[12]&0xff,readbuf[13]&0xff,readbuf[14]&0xff,readbuf[15]&0xff);
close(icmpsock);
strcpy(global_var[4],msg);
return global_var[4];
}
char *sscript_resolve_host(char *hostname)
{
struct hostent *hp;
struct sockaddr_in from;
char result[255];
memset(&from, 0, sizeof(struct sockaddr_in));
from.sin_family = AF_INET;
hp=gethostbyname(hostname);
if(hp==NULL) strcpy(result,"unknown");
else
{
memcpy(&from.sin_addr,hp->h_addr,hp->h_length);
strcpy(result,inet_ntoa(from.sin_addr));
}
strcpy(global_var[5],result);
return global_var[5];
}
char *sscript_resolve_ip(char *ip)
{
struct hostent *hp;
struct sockaddr_in from;
char result[255];
from.sin_family = AF_INET;
from.sin_addr.s_addr = inet_addr(ip);
hp=gethostbyaddr((char *)&from.sin_addr, sizeof(struct in_addr),from.sin_family);
if(hp==NULL) strcpy(result,"unknown");
else strcpy(result,(char *)hp->h_name);;
strcpy(global_var[6],result);
return global_var[6];
}
char *sscript_get_localhost()
{
char result[255];
gethostname(result,sizeof(result));
strcpy(global_var[7],result);
return global_var[7];
}
void sscript_binary_send(int sockfd, char *string)
{
char temp4[255], temp2[255];
int cnt;
FILE *fpa;
sprintf(temp4,"uuencode %s %s > %s/.temp.uue 2>/dev/null",string,string,TMP_DIR);
system(temp4);
sprintf(temp2,"%s/.temp.uue",TMP_DIR);
fpa=fopen(temp2,"r");
if(fpa==NULL || fileno(fpa)<0) return;
else {
while((cnt = read(fileno(fpa), temp4, 250))>0)
write(sockfd, temp4, cnt);
if(fpa!=NULL) fclose(fpa);
sprintf(temp4,"rm -f %s/.temp.uue",TMP_DIR);
system(temp4);
}
}
void sscript_binary_get(int sockfd)
{
char temp2[255], temp4[255], inchar, inall[1024];
FILE *fpa;
int i;
sprintf(temp2,"%s/.temp.uue",TMP_DIR);
fpa=fopen(temp2,"w");
if(fpa==NULL || fileno(fpa)<0) return;
while(strcasecmp(inall,"end\n"))
{
bzero(inall, 1024);
for(i=0;read(sockfd,&inchar,1)!='\0';i++)
{
inall[i]=inchar;
if(inchar=='\n') break;
}
fputs(inall,fpa);
}
if(fpa!=NULL) fclose(fpa);
sprintf(temp4,"uudecode %s/.temp.uue",TMP_DIR);
system(temp4);
sprintf(temp4,"rm -f %s/.temp.uue",TMP_DIR);
system(temp4);
}
char *sscript_login_to_passwd(char *login)
{
#ifdef POSIX
struct passwd *pw;
pw = getpwnam(login);
if(pw!=NULL) return pw->pw_passwd;
#endif
return (char *)NULL;
}
char *sscript_uid_to_login(long my_uid)
{
#ifdef POSIX
struct passwd *pw;
pw = getpwuid(my_uid);
if(pw!=NULL) return pw->pw_name;
#endif
return (char *)NULL;
}
int sscript_sokstat(char *option, int sockfd)
{
int optlen=sizeof(int),optval=1;
if(!strcasecmp(option,"sendbuf")) getsockopt(sockfd, SOL_SOCKET, SO_SNDBUF, (char *)&optval, &optlen);
else if(!strcasecmp(option,"recvbuf")) getsockopt(sockfd, SOL_SOCKET, SO_RCVBUF, (char *)&optval, &optlen);
else if(!strcasecmp(option,"error")) getsockopt(sockfd, SOL_SOCKET, SO_ERROR, (char *)&optval, &optlen);
else if(!strcasecmp(option,"type")) getsockopt(sockfd, SOL_SOCKET, SO_TYPE, (char *)&optval, &optlen);
else optval=-1;
return optval;
}
char *sscript_time_read(int sockfd, int time_sec)
{
struct timeval timeout;
int max_fd;
fd_set readfs, newfs;
timeout.tv_sec=time_sec;
timeout.tv_usec=0;
FD_ZERO(&readfs);
FD_SET(sockfd, &readfs);
max_fd = sockfd;
memcpy(&newfs, &readfs, sizeof(readfs));
select(max_fd+1, &newfs, NULL, NULL, &timeout);
if(FD_ISSET (sockfd, &newfs))
{
read(sockfd, global_var[8], sizeof(global_var[8]));
return(global_var[8]);
}
return("timeout");
}
void sscript_redir(int sockfd, int rsck)
{
char buf[4096];
fd_set readfs, newfs;
int max_fd, len;
FD_ZERO(&readfs);
FD_SET(sockfd, &readfs);
FD_SET(rsck, &readfs);
if(sockfd>rsck) max_fd = sockfd;
else max_fd = rsck;
while(1) {
memcpy(&newfs, &readfs, sizeof(readfs));
select(max_fd+1, &newfs, NULL, NULL, NULL);
if(FD_ISSET(sockfd, &newfs))
{
if((len=read(sockfd, buf, sizeof(buf)))<1) break;
if(write(rsck, buf, len)!=len) break;
}
if(FD_ISSET(rsck, &newfs))
{
if((len=read(rsck, buf, sizeof(buf)))<1) break;
if(write(sockfd, buf, len)!=len) break;
}
}
}
void sscript_nodelay(int sockfd)
{
int i;
if(( i = fcntl(sockfd, F_GETFL, 0)) == -1);
else if (fcntl(sockfd, F_SETFL, i | FNDELAY) == -1);
}
-45
View File
@@ -1,45 +0,0 @@
#include <stdio.h>
#include <stdlib.h>
#include <errno.h>
#define SSCRIPT_SOCKET_FAILED 10
#define SSCRIPT_BIND_FAILED 11
#define SSCRIPT_GETSOCKETNAME_FAILED 12
#define SSCRIPT_FLAGS_FAILED 13
#define SSCRIPT_CONNECT_FAILED 20
#define SSCRIPT_UDPSEND_FAILED 31
#define SSCRIPT_UDPRECEIVE_FAILED 32
#define SSCRIPT_READ_FAILED 33
#define ABOUT "Socket Script library 2.0 by Patrick Lambert (drow@post.com)"
#define POSIX
#define TMP_DIR "."
char *sscript_lindex(char *input_string, int word_number);
int sscript_connect(char *server, int port, char *virtual);
int sscript_server(int port);
int sscript_wait_clients(int sockfd2, int port, int forking);
char *sscript_get_remote_ip();
void sscript_disconnect(int sockfd);
void sscript_dump(int sockfd, char *filename);
void sscript_ping(char *hostname);
int sscript_test(char *hostname, int port);
char *sscript_version();
char *sscript_read(int sockfd, int chop);
void sscript_write(int sockfd, char *string);
int sscript_compare(char *case1, char *case2);
char *sscript_lrange(char *input_string, int starting_at);
int sscript_udp_send(char *hostname, int port, char *msg);
char *sscript_udp_listen(int port);
char *sscript_icmp_detect();
char *sscript_resolve_host(char *hostname);
char *sscript_resolve_ip(char *ip);
char *sscript_get_localhost();
void sscript_binary_send(int sockfd, char *string);
void sscript_binary_get(int sockfd);
char *sscript_login_to_passwd(char *login);
char *sscript_uid_to_login(long my_uid);
int sscript_sokstat(char *option, int sockfd);
char *sscript_time_read(int sockfd, int time_sec);
void sscript_redir(int sockfd, int rsck);
void sscript_nodelay(int sockfd);
-39
View File
@@ -1,39 +0,0 @@
/* compile with: gcc -lsscript -o example example.c */
#include <stdio.h>
#include <errno.h>
#include <time.h>
main(int argc, char *argv[])
{
/* initializing variables */
char result[255]=".";
char *p;
int port = atoi(argv[2]);
int sockfd=0,i;
time_t t,d;
/* connect somewhere */
printf("Connecting to %s:%i .. \n", argv[1], port);
/* call to sscript_connect to connect to the server */
sockfd=sscript_connect(sscript_resolve_host(argv[1]),port,NULL);
/* if it returns -1, then print the error code */
if(sockfd<1)
{
printf("An error occured: %d\n",errno);
exit(1);
}
/* call to sscript_read and copy the result in 'result' */
p = (char *)sscript_time_read(sockfd,5);
if (p)
{
strcpy(result,p);
t = atol(result);
d = t - time(NULL);
printf("TS difference from timeserver is %li (%li)\n", d, t);
}
/* print the result */
/* disconnects */
sscript_disconnect(sockfd);
}
-2
View File
@@ -1,2 +0,0 @@
#!/bin/sh
./tsp-skin 6100 ./tsp-server-run &
-3
View File
@@ -1,3 +0,0 @@
main() {
printf("%li", time(0));
}
-25
View File
@@ -1,25 +0,0 @@
#ifndef __BADWORDS_H
#define __BADWORDS_H
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#ifdef HAVE_REGEX
#include <regex.h>
#else
#include "../extras/regex/regex.h"
#endif
#define MAX_MATCH 1
#define MAX_WORDLEN 64
#define MAX_WORDS 50
#define PATTERN "\\w*%s\\w*"
#define REPLACEWORD "<censored>"
char *stripbadwords(char *, int);
int loadbadwords(char *, int);
void freebadwords(void);
#endif
+5 -5
View File
@@ -21,8 +21,8 @@
#ifndef __channel_include__
#define __channel_include__
#define CREATE 1 /* whether a channel should be
created or just tested for existance */
#define CREATE 1 /* whether a channel should be
created or just tested for existance */
#define MODEBUFLEN 200
@@ -30,7 +30,7 @@
#define ChannelExists(n) (find_channel(n, NullChn) != NullChn)
#define IsULine(sptr) (sptr->flags & FLAGS_ULINE)
#define IsULine(cptr,sptr) (sptr->flags & FLAGS_ULINE)
/* NOTE: Timestamps will be added to MODE-commands, so never make
* RESYNCMODES and MODEPARAMS higher than MAXPARA-3. DALnet servers
@@ -38,7 +38,7 @@
*/
#include "msg.h"
#define MAXMODEPARAMS (MAXPARA-2) /* Maximum modes processed */
#define RESYNCMODES 12 /* Max modes per MODE in resync */
#define MODEPARAMS 6 /* Max modes from user */
#define RESYNCMODES 12 /* Max modes per MODE in resync */
#define MODEPARAMS 6 /* Max modes from user */
#endif
+27
View File
@@ -0,0 +1,27 @@
// $Id$
#include <windows.h>
#define CIOCLASS "CioClass"
#ifndef CIO
#define CIO
typedef struct tag_CioLine
{
BYTE *Data;
WORD Len;
struct tag_CioLine *Prev, *Next;
} CioLine;
typedef struct tag_CioWndInfo
{
CioLine *FirstLine, *CurLine;
int Lines, Scroll;
int Width, Height, XChar, YChar, YJunk, ScrollMe;
HFONT hFont;
BYTE FR, FG, FB;
} CioWndInfo;
#endif
+20
View File
@@ -0,0 +1,20 @@
// $Id$
#include "Cio.h"
#define GWL_USER 0
#define CIO_ADDSTRING WM_USER
#define CIO_CLEAR WM_USER+1
// Cio_Init.c
BOOL Cio_Init(HINSTANCE hInstance);
// Cio_Main.c
LRESULT CALLBACK Cio_WndProc(HWND, UINT, WPARAM, LPARAM);
HWND Cio_Create(HINSTANCE hInstance, HWND hParent, DWORD Style, int X, int Y, int W, int H);
BOOL Cio_WndCreate(HWND hWnd);
BOOL Cio_WndPaint(HWND hWnd);
BOOL Cio_WndDestroy(HWND hWnd);
BOOL Cio_WndAddString(HWND hWnd, int Len, char *Buffer);
BOOL Cio_WndSize(HWND hWnd, LPARAM lParam);
void Cio_Scroll(HWND hWnd, CioWndInfo *CWI, int Scroll);
BOOL Cio_PrintF(HWND hWnd, char *InBuf, ...);
+15 -15
View File
@@ -31,12 +31,12 @@
#endif
typedef struct Class {
int class;
int conFreq;
int pingFreq;
int maxLinks;
long maxSendq;
int links;
int class;
int conFreq;
int pingFreq;
int maxLinks;
long maxSendq;
int links;
struct Class *next;
} aClass;
@@ -57,15 +57,15 @@ typedef struct Class {
#define FirstClass() classes
#define NextClass(x) ((x)->next)
extern aClass *classes;
extern aClass *classes;
extern aClass *find_class PROTO((int));
extern int get_conf_class PROTO((aConfItem *));
extern int get_client_class PROTO((aClient *));
extern int get_client_ping PROTO((aClient *));
extern int get_con_freq PROTO((aClass *));
extern void add_class PROTO((int, int, int, int, long));
extern void check_class PROTO((void));
extern void initclass PROTO((void));
extern aClass *find_class PROTO((int));
extern int get_conf_class PROTO((aConfItem *));
extern int get_client_class PROTO((aClient *));
extern int get_client_ping PROTO((aClient *));
extern int get_con_freq PROTO((aClass *));
extern void add_class PROTO((int, int, int, int, long));
extern void check_class PROTO((void));
extern void initclass PROTO((void));
#endif /* __class_include__ */
+28 -99
View File
@@ -29,7 +29,7 @@
#include <winsock.h>
#include <process.h>
#include <io.h>
//#include "struct.h"
#include "struct.h"
#endif
#include "dynconf.h"
#include "ircsprintf.h"
@@ -47,21 +47,17 @@
#endif
#ifdef DEVELOP_CVS
#define ID_CVS(x) static char id_cvs[] = x
#define ID_Copyright(x) static char id_copyright[] = x
#define ID_Notes(x) static char id_notes[] = x
#else
#define ID_CVS(x)
#define ID_Copyright(x)
#define ID_Notes(x)
#endif
#define BMAGIC 0x4675636B596F754661736369737473
#define BASE_VERSION "Unreal"
#ifndef _WIN32
#define FDwrite(x,y,z) write(x, y, z)
#else
#define FDwrite(x,y,z) send(x, y, z, 0)
#endif
#ifndef NULL
#define NULL 0
#endif
@@ -83,29 +79,27 @@
#if 0
#ifndef MALLOCH
char *malloc(), *calloc();
void free();
char *malloc(), *calloc();
void free();
#else
#include MALLOCH
#endif
#endif
#define TS time_t
extern int match PROTO((char *, char *));
extern int match PROTO((char *, char *));
#define mycmp(a,b) \
( (toupper((a)[0])!=toupper((b)[0])) || smycmp((a)+1,(b)+1) )
extern int smycmp PROTO((char *, char *));
extern int smycmp PROTO((char *, char *));
#ifndef GLIBC2_x
extern int myncmp PROTO((char *, char *, int));
#endif
extern int myncmp PROTO((char *, char *, int));
#endif
#ifdef NEED_STRTOK
extern char *strtok2 PROTO((char *, char *));
extern char *strtok2 PROTO((char *, char *));
#endif
#ifdef NEED_STRTOKEN
extern char *strtoken PROTO((char **, char *, char *));
extern char *strtoken PROTO((char **, char *, char *));
#endif
#ifdef NEED_INET_ADDR
extern unsigned long inet_addr PROTO((char *));
@@ -122,8 +116,8 @@ extern char *inet_ntoa PROTO((struct IN_ADDR));
extern int inet_netof PROTO((struct IN_ADDR));
#endif
int global_count, max_global_count;
extern char *myctime PROTO((TS));
int global_count, max_global_count;
extern char *myctime PROTO((time_t));
extern char *strtoken PROTO((char **, char *, char *));
#define PRECISE_CHECK
@@ -193,70 +187,29 @@ extern unsigned char char_atribs[];
#define ispunct(c) (!(char_atribs[(u_char)(c)]&(CNTRL|ALPHA|DIGIT)))
#endif
#ifndef DMALLOC
// #ifndef DMALLOC
extern char *MyMalloc();
#else
#define MyMalloc malloc
#define MyRealloc realloc
#define MyFree free
#endif
// #else
// #define MyMalloc malloc
// #define MyRealloc realloc
// #define MyFree free
// #endif
extern void flush_connections();
extern struct SLink *find_user_link( /* struct SLink *, struct Client * */ );
extern struct SLink *find_user_link(/* struct SLink *, struct Client * */);
/*
* Protocol support text. DO NO CHANGE THIS unless you know what
* you are doing.
*/
/* IRCu/Hybrid/Unreal way now :) -Stskeeps */
#define PROTOCTL_CLIENT \
":%s 005 %s" \
" MAP" \
" KNOCK" \
" SAFELIST" \
" HCN" \
" WATCH=%i" \
" SILENCE=%i" \
" MODES=%i" \
" MAXCHANNELS=%i" \
" MAXBANS=%i" \
" NICKLEN=%i" \
" TOPICLEN=%i" \
" KICKLEN=%i" \
" CHANTYPES=%s" \
" PREFIX=%s" \
" :are supported by this server"
#define PROTOCTL_PARAMETERS MAXWATCH, \
MAXSILES, \
MAXMODEPARAMS, \
MAXCHANNELSPERUSER, \
MAXBANS, \
NICKLEN, \
TOPICLEN, \
TOPICLEN, \
"#", \
"(ohv)@%+"
/* Server-Server PROTOCTL -Stskeeps */
#define PROTOCTL_SERVER "NOQUIT" \
" TOKEN" \
" NICKv2" \
" SJOIN" \
" SJOIN2" \
" UMODE2" \
" VL" \
" SJ3" \
" NS" \
" SJB64"
#define PROTOCTL_CLIENT "TOKEN WATCH=128 SAFELIST HCN PREFIX=@+%"
#define PROTOCTL_SERVER "NOQUIT TOKEN NICKv2 SJOIN SJOIN2 UMODE2 ALN"
#ifdef _WIN32
/*
* Used to display a string to the GUI interface.
* Windows' internal strerror() function doesn't work with socket errors.
*/
extern int DisplayString(HWND hWnd, char *InBuf, ...);
extern int DisplayString(HWND hWnd, char *InBuf, ...);
#undef strerror
#endif
@@ -264,34 +217,10 @@ extern int DisplayString(HWND hWnd, char *InBuf, ...);
extern char *malloc_options;
#endif
extern int lu_noninv, lu_inv, lu_serv, lu_oper,
lu_unknown, lu_channel, lu_lu, lu_lulocal, lu_lserv,
lu_clu, lu_mlu, lu_cglobalu, lu_mglobalu;
TS now;
#if defined(__STDC__)
#define __const const
#define __signed signed
#define __volatile volatile
#ifndef __GNUC__
#define __inline
#endif
#else
#ifndef __GNUC__
#define __const
#define __inline
#define __signed
#define __volatile
#ifndef NO_ANSI_KEYWORDS
#define const /* delete ANSI C keywords */
#define inline
#define signed
#define volatile
#endif
#endif
#endif
extern int lu_noninv, lu_inv, lu_serv, lu_oper,
lu_unknown, lu_channel, lu_lu, lu_lulocal, lu_lserv,
lu_clu, lu_mlu, lu_cglobalu, lu_mglobalu;
time_t now;
#endif /* __common_include__ */
+164 -94
View File
@@ -49,30 +49,37 @@
#endif
/*
* Define this if you're testing/debugging/programming.
*/
* Define this if you're testing/debugging/programming.
*/
#undef DEBUG
/* Type of host. These should be made redundant somehow. -avalon */
/* BSD Nothing Needed 4.{2,3} BSD, SunOS 3.x, 4.x */
/* HPUX Nothing needed (A.08/A.09) */
/* ULTRIX Nothing needed (4.2) */
/* OSF Nothing needed (1.2) */
/* #undef AIX IBM ugly so-called Unix, AIX */
/* #undef MIPS MIPS Unix */
/* #undef AIX /* IBM ugly so-called Unix, AIX */
/* #undef MIPS /* MIPS Unix */
/* SGI Nothing needed (IRIX 4.0.4) */
/* #undef SVR3 SVR3 stuff - being worked on where poss. */
/* #undef DYNIXPTX Sequents Brain-dead Posix implement. */
/* #undef SOL20 Solaris2 */
/* #undef ESIX ESIX */
/* #undef NEXT NeXTStep */
/* #undef SVR4 */
/* #undef SVR3 /* SVR3 stuff - being worked on where poss. */
/* #undef DYNIXPTX /* Sequents Brain-dead Posix implement. */
/* #undef SOL20 /* Solaris2 */
/* #undef ESIX /* ESIX */
/* #undef NEXT /* NeXTStep */
/* #undef SVR4 /* */
/* Additional flags to give FreeBSD's malloc, only play with this if you
* know what you're doing.
*/
#define MALLOC_FLAGS_EXTRA ""
/*
ConferenceRoom Java Client Hack -Fish
if you want it to work #define CONFROOM_JAVA_PORT <port>
where port MUST be a seperate port java clients connects on ..
*/
#undef CONFROOM_JAVA_PORT
/*
dog3/comstud ircd fdlists
@@ -81,72 +88,70 @@
#undef NO_FDLIST
/*
* Defining this will allow all ircops to see people in +s channels
* By default, only net admins can see this
*/
#undef SEE_SECRET
/*
* This allows you to see modes in /list
*/
#define LIST_SHOW_MODES
/*
* Admin's chat...
*/
#define ADMINCHAT 1
/*
If you want SHUN_NOTICES, define this
*/
#undef SHUN_NOTICES
/*
If you want to support chinese and/or japanese nicks
*/
#undef CHINESE_NICK
#undef JAPANESE_NICK
/*
Remote rehash
*/
#define REMOTE_REHASH
/*
Stripbadwords patch
*/
#define STRIPBADWORDS
/*
* NO_OPEROVERRIDE
* This will disable OperMode, OperTopic and Banwalks
*/
#undef NO_OPEROVERRIDE
/*
* Disable /sethost, /setident, /chgname, /chghost, /chgident
*/
#undef DISABLE_USERMOD
/*
Ident checking
#define this to disable ident checking
*/
#define NO_IDENT_CHECKING
#undef NO_IDENT_CHECKING
/*
* No spoof code
*
* This enables the spoof protection.
*/
/* #define NOSPOOF 1 */
/* #define NOSPOOF 1 /* */
/*
*
* This controls the "nospoof" system. These numbers are "seeds" of the
* "random" number generating formula. Choose any number you like in the
* range of 0x00000000 to 0xFFFFFFFF. Don't tell anyone these numbers, and
* don't use the default ones. Change both #define NOSPOOF... lines below.
*
* Other data is mixed in as well, but these guarantee a per-server secret.
* Also, these values need not remain constant over compilations... Change
* them as often as you like.
*/
#ifdef NOSPOOF
#ifndef NOSPOOF_SEED01
#define NOSPOOF_SEED01 0x12345678
#endif
#ifndef NOSPOOF_SEED02
#define NOSPOOF_SEED02 0x87654321
#endif
#endif /* NOSPOOF */
/*
* HOSTILENAME - Define this if you want the hostile username patch included,
* it will strip characters that are not 0-9,a-z,A-Z,_,- or .
*/
#define HOSTILENAME /* */
#define HOSTILENAME /* */
/*
* Define this to prevent mixed case userids that clonebots use. However
* this affects the servers running telclients WLD* FIN* etc.
*/
#undef DISALLOW_MIXED_CASE
/*
* Define this if you wish to ignore the case of the first character of
* the user id when disallowing mixed case. This allows PC users to
* enter the more intuitive first name with the first letter capitalised
*/
#define IGNORE_CASE_FIRST_CHAR
/*
** Nick flood limit
@@ -156,7 +161,7 @@
** Define NICK_DELAY if you want this feature.
*/
#define NICK_DELAY 15 /* recommended value 15 */
#define NICK_DELAY 15 /* recommended value 15 */
/*
** Freelinks garbage collector -Stskeeps
@@ -165,10 +170,10 @@
** HOW_MANY_FREELINKS_ALLOWED - how many freelinks allowed
*/
#ifndef GARBAGE_COLLECT_EVERY
#define GARBAGE_COLLECT_EVERY 600 /* default: 600 (10 mins) */
#define GARBAGE_COLLECT_EVERY 600 /* default: 600 (10 mins) */
#endif
#define HOW_MANY_FREELINKS_ALLOWED 200 /* default: 200 */
#define HOW_MANY_FREELINKS_ALLOWED 200 /* default: 200 */
/*
* Define this if you wish to output a *file* to a K lined client rather
@@ -179,9 +184,9 @@
/* Do these work? I dunno... */
/* #undef VMS Should work for IRC client, not server */
/* #undef MAIL50 If you're running VMS 5.0 */
/* #undef PCS PCS Cadmus MUNIX, use with BSD flag! */
/* #undef VMS /* Should work for IRC client, not server */
/* #undef MAIL50 /* If you're running VMS 5.0 */
/* #undef PCS /* PCS Cadmus MUNIX, use with BSD flag! */
/*
* NOTE: On some systems, valloc() causes many problems.
@@ -209,14 +214,13 @@
* the maintainer.
*/
/* #undef DEBUGMODE define DEBUGMODE to enable debugging mode.*/
/* #undef DEBUGMODE /* define DEBUGMODE to enable debugging mode.*/
/* We not check whether this is ok at compile time -- codemastr */
/*
* defining FORCE_CORE will automatically "unlimit core", forcing the
* server to dump a core file whenever it has a fatal error. -mlv
*/
/* #define FORCE_CORE */
#define FORCE_CORE
/*
* Full pathnames and defaults of irc system's support files. Please note that
@@ -225,16 +229,16 @@
*/
#define CPATH "ircd.conf" /* server configuration file */
#define MPATH "ircd.motd" /* server MOTD file */
#define RPATH "ircd.rules" /* server rules file */
#define RPATH "ircd.rules" /* server rules file */
#define ZPATH "ircd.notes" /* server notes */
#define ZCONF "networks/unrealircd.conf" /* ircd configuration .. */
#define OPATH "oper.motd" /* Operators MOTD file */
#define ZCONF "networks/unrealircd.conf" /* ircd configuration .. */
#define OPATH "oper.motd" /* Operators MOTD file */
#define LPATH "debug.log" /* Where the debug file lives, if DEBUGMODE */
#define PPATH "ircd.pid" /* file for server pid */
#define lPATH "ircd.log" /* server log file */
#define VPATH "ircd.svsmotd" /* Services MOTD append. */
#define VPATH "ircd.svsmotd" /* Services MOTD append. */
#define BPATH "bot.motd" /* Bot MOTD */
#define IRCDTUNE "ircd.tune" /* tuning .. */
#define IRCDTUNE "ircd.tune" /* tuning .. */
/*
* Define this filename to maintain a list of persons who log
@@ -263,7 +267,7 @@
*
* You may want to define IRC_UID and IRC_GID
*/
/* #define CHROOTDIR */
/* #define CHROOTDIR /* */
/* SHOW_INVISIBLE_LUSERS
*
@@ -274,6 +278,13 @@
*/
#define SHOW_INVISIBLE_LUSERS
/* OPER_* defines
*
* See ./docs/example.conf for examples of how to restrict access for
* your IRC Operators
*/
/* MAXIMUM LINKS
*
* This define is useful for leaf nodes and gateways. It keeps you from
@@ -312,7 +323,14 @@
* starts up the server with a new conf file that has some extra
* O-lines. So don't use this unless you're debugging.
*/
#define CMDLINE_CONFIG /* allow conf-file to be specified on command line */
#define CMDLINE_CONFIG /* allow conf-file to be specified on command line */
/*
* To use m4 as a preprocessor on the ircd.conf file, define M4_PREPROC.
* The server will then call m4 each time it reads the ircd.conf file,
* reading m4 output as the server's ircd.conf file.
*/
#undef M4_PREPROC
/*
* If you wish to have the server send 'vital' messages about server
@@ -331,11 +349,11 @@
* If you use syslog above, you may want to turn some (none) of the
* spurious log messages for KILL/SQUIT off.
*/
#undef SYSLOG_KILL /* log all operator kills to syslog */
#undef SYSLOG_SQUIT /* log all remote squits for all servers to syslog */
#undef SYSLOG_CONNECT /* log remote connect messages for other all servs */
#undef SYSLOG_USERS /* send userlog stuff to syslog */
#undef SYSLOG_OPER /* log all users who successfully become an Op */
#undef SYSLOG_KILL /* log all operator kills to syslog */
#undef SYSLOG_SQUIT /* log all remote squits for all servers to syslog */
#undef SYSLOG_CONNECT /* log remote connect messages for other all servs */
#undef SYSLOG_USERS /* send userlog stuff to syslog */
#undef SYSLOG_OPER /* log all users who successfully become an Op */
/*
* If you want to log to a different facility than DAEMON, change
@@ -344,6 +362,15 @@
#define LOG_FACILITY LOG_DAEMON
#endif /* USE_SYSLOG */
/*
* IDLE_FROM_MSG
*
* Idle-time nullified only from privmsg, if undefined idle-time
* is nullified from everything except ping/pong.
* Added 3.8.1992, kny@cs.hut.fi (nam)
*/
#define IDLE_FROM_MSG
/*
* Size of the LISTEN request. Some machines handle this large
* without problem, but not all. It defaults to 5, but can be
@@ -386,13 +413,13 @@
* If you _must_ insist on running as root and not wanting the program to change its
* UID, then define BIG_SECURITY_HOLE below
*/
#if !defined(_WIN32)
/* Change This Line Below \/ */
#define BIG_SECURITY_HOLE
#if !defined(_WIN32) && !defined(_AMIGA)
/* Change This Line Below \/ */
#define BIG_SECURITY_HOLE
/* Its the one above ^^^^^^^ */
#ifndef BIG_SECURITY_HOLE
#define IRC_UID un_uid
#define IRC_GID un_gid
#ifndef BIG_SECUTIRY_HOLE
#define IRC_UID un_uid
#define IRC_GID un_gid
#endif
#endif
@@ -405,6 +432,10 @@
*/
#define CLIENT_FLOOD 8000
/* Define this if you want the server to accomplish ircII standard */
/* Sends an extra NOTICE in the beginning of client connection */
#undef IRCII_KLUDGE
/*
* Define your network service names here.
*/
@@ -414,8 +445,7 @@
#define OperServ "OperServ"
#define HelpServ "HelpServ"
#define StatServ "StatServ"
#define InfoServ "InfoServ"
#define BotServ "BotServ"
/*
* How many seconds in between simultaneous nick changes?
*/
@@ -453,6 +483,9 @@
*/
#define SOCKSPORT 6013
/* Define default Z:line time for SOCKS -taz */
#define ZLINE_TIME 300
/* STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP */
/* You shouldn't change anything below this line, unless absolutely needed. */
@@ -461,7 +494,7 @@
* Port where ircd resides. NOTE: This *MUST* be greater than 1024 if you
* plan to run ircd under any other uid than root.
*/
#define PORTNUM 6667 /* 6667 is default */
#define PORTNUM 6667 /* 6667 is default */
/*
* Maximum number of network connections your server will allow. This should
@@ -502,7 +535,7 @@
* chasing possible for mode and kick.
*/
#ifndef NICKNAMEHISTORYLENGTH
#define NICKNAMEHISTORYLENGTH 2000
#define NICKNAMEHISTORYLENGTH 2000
#endif
/*
@@ -548,13 +581,23 @@
* CONNECTTIMEOUT - 10 seconds for its host to respond to an ident lookup
* query and for a DNS answer to be retrieved.
*/
#define CONNECTTIMEOUT 30 /* Recommended value: 60 */
#define CONNECTTIMEOUT 60 /* Recommended value: 60 */
/*
* Max time from the nickname change that still causes KILL
* automaticly to switch for the current nick of that user. (seconds)
*/
#define KILLCHASETIMELIMIT 90 /* Recommended value: 90 */
#define KILLCHASETIMELIMIT 90 /* Recommended value: 90 */
/*
* SendQ-Always causes the server to put all outbound data into the sendq and
* flushing the sendq at the end of input processing. This should cause more
* efficient write's to be made to the network.
* There *shouldn't* be any problems with this method.
* -avalon
*/
#define SENDQ_ALWAYS
/* ------------------------- END CONFIGURATION SECTION -------------------- */
#define MOTD MPATH
@@ -575,6 +618,11 @@
#endif
#endif
#ifdef _SEQUENT_ /* Dynix 1.4 or 2.0 Generic Define.. */
#undef BSD
#define SYSV /* Also #define SYSV */
#endif
#ifdef ultrix
#define ULTRIX
#endif
@@ -595,7 +643,7 @@
#endif
#ifdef DEBUGMODE
extern void debug();
extern void debug();
# define Debug(x) debug x
# define LOGFILE LPATH
#else
@@ -607,7 +655,9 @@ extern void debug();
# endif
#endif
#ifndef ENABLE_SUMMON
# undef LEAST_IDLE
#endif
#if defined(mips) || defined(PCS)
#undef SYSV
@@ -615,57 +665,72 @@ extern void debug();
#ifdef MIPS
#undef BSD
#define BSD 1 /* mips only works in bsd43 environment */
#define BSD 1 /* mips only works in bsd43 environment */
#endif
#ifdef sequent /* Dynix (sequent OS) */
#define SEQ_NOFILE 128 /* set to your current kernel impl, */
#endif /* max number of socket connections */
#ifdef _SEQUENT_
#define DYNIXPTX
#endif
#ifdef BSD_RELIABLE_SIGNALS
# if defined(SYSV_UNRELIABLE_SIGNALS) || defined(POSIX_SIGNALS)
error You stuffed up config.h signals
#defines use only one.
error You stuffed up config.h signals #defines use only one.
# endif
#define HAVE_RELIABLE_SIGNALS
#endif
#ifdef SYSV_UNRELIABLE_SIGNALS
# ifdef POSIX_SIGNALS
error You stuffed up config.h signals
#defines use only one.
error You stuffed up config.h signals #defines use only one.
# endif
#undef HAVE_RELIABLE_SIGNALS
#endif
#ifdef POSIX_SIGNALS
#define HAVE_RELIABLE_SIGNALS
#endif
/*
* safety margin so we can always have one spare fd, for motd/authd or
* whatever else. -4 allows "safety" margin of 1 and space reserved.
*/
#define MAXCLIENTS (MAXCONNECTIONS-4)
#ifdef HAVECURSES
# define DOCURSES
#else
# undef DOCURSES
#endif
#ifdef HAVETERMCAP
# define DOTERMCAP
#else
# undef DOTERMCAP
#endif
# define stricmp strcasecmp
# define strnicmp strncasecmp
#if defined(CLIENT_FLOOD)
# if (CLIENT_FLOOD > 8000)
# define CLIENT_FLOOD 8000
# else
# if (CLIENT_FLOOD < 512)
error CLIENT_FLOOD needs redefining.
error CLIENT_FLOOD needs redefining.
# endif
# endif
#else
error CLIENT_FLOOD undefined
error CLIENT_FLOOD undefined
#endif
#if (NICKNAMEHISTORYLENGTH < 100)
# define NICKNAMEHISTORYLENGTH 100
#endif
/*
* Some ugliness for AIX platforms.
*/
@@ -688,6 +753,8 @@ error You stuffed up config.h signals
#if defined(SOL20) || defined(SOL25) || defined(SOL26) || defined(SOL27)
#define _SOLARIS
#endif
/*
* Cleaup for WIN32 platform.
*/
@@ -706,4 +773,7 @@ error You stuffed up config.h signals
#define Reg8 register
#define Reg9 register
#define Reg10 register
#endif /* __config_include__ */
#endif /* __config_include__ */
+32 -20
View File
@@ -45,14 +45,25 @@
** implementation of this package without changing the
** interface.
*/
typedef struct dbuf {
u_int length; /* Current number of bytes stored */
u_int offset; /* Offset to the first byte */
struct dbufbuf *head; /* First data buffer, if length > 0 */
#if !defined(_SEQUENT_)
typedef struct dbuf
{
u_int length; /* Current number of bytes stored */
u_int offset; /* Offset to the first byte */
struct dbufbuf *head; /* First data buffer, if length > 0 */
/* added by mnystrom@mit.edu: */
struct dbufbuf *tail; /* last data buffer, if length > 0 */
} dbuf;
struct dbufbuf *tail; /* last data buffer, if length > 0 */
} dbuf;
#else
typedef struct dbuf
{
uint length; /* Current number of bytes stored */
uint offset; /* Offset to the first byte */
struct dbufbuf *head; /* First data buffer, if length > 0 */
/* added by mnystrom@mit.edu: */
struct dbufbuf *tail; /* last data buffer, if length > 0 */
} dbuf;
#endif
/*
** And this 'dbufbuf' should never be referenced outside the
** implementation of 'dbuf'--would be "hidden" if C had such
@@ -62,10 +73,11 @@ typedef struct dbuf {
** as long as a pointer is 4 bytes, we get 2032 bytes for buffer
** data after we take away a bit for malloc to play with. -avalon
*/
typedef struct dbufbuf {
struct dbufbuf *next; /* Next data buffer, NULL if this is last */
char data[2032]; /* Actual data stored here */
} dbufbuf;
typedef struct dbufbuf
{
struct dbufbuf *next; /* Next data buffer, NULL if this is last */
char data[2032]; /* Actual data stored here */
} dbufbuf;
/*
** dbuf_put
@@ -76,10 +88,10 @@ typedef struct dbufbuf {
** returns > 0, if operation successfull
** < 0, if failed (due memory allocation problem)
*/
int dbuf_put PROTO((dbuf *, char *, int));
int dbuf_put PROTO((dbuf *, char *, int));
/* Dynamic buffer header */
/* Pointer to data to be stored */
/* Number of bytes to store */
/* Pointer to data to be stored */
/* Number of bytes to store */
/*
** dbuf_get
@@ -96,10 +108,10 @@ int dbuf_put PROTO((dbuf *, char *, int));
** Negative return values indicate some unspecified
** error condition, rather fatal...
*/
int dbuf_get PROTO((dbuf *, char *, int));
int dbuf_get PROTO(( dbuf *, char *, int));
/* Dynamic buffer header */
/* Pointer to buffer to receive the data */
/* Max amount of bytes that can be received */
/* Pointer to buffer to receive the data */
/* Max amount of bytes that can be received */
/*
** dbuf_map, dbuf_delete
@@ -126,8 +138,8 @@ int dbuf_get PROTO((dbuf *, char *, int));
** between map and delete functions...
*/
char *dbuf_map PROTO((dbuf *, int *));
/* Dynamic buffer header */
/* Return number of bytes accessible */
/* Dynamic buffer header */
/* Return number of bytes accessible */
int dbuf_delete PROTO((dbuf *, int));
/* Dynamic buffer header */
@@ -148,6 +160,6 @@ int dbuf_delete PROTO((dbuf *, int));
*/
#define DBufClear(dyn) dbuf_delete((dyn),DBufLength(dyn))
extern int dbuf_getmsg PROTO((dbuf *, char *, int));
extern int dbuf_getmsg PROTO((dbuf *, char *, int));
#endif /* __dbuf_include__ */
+49 -53
View File
@@ -23,66 +23,65 @@
#define DYNCONF_H
/* config level */
#define DYNCONF_CONF_VERSION "1.6"
#define DYNCONF_NETWORK_VERSION "2.3"
#define DYNCONF_CONF_VERSION "1.5"
#define DYNCONF_NETWORK_VERSION "2.2"
typedef struct zNetwork aNetwork;
struct zNetwork {
unsigned x_inah:1;
char *x_ircnetwork;
char *x_defserv;
char *x_services_name;
char *x_oper_host;
char *x_admin_host;
char *x_locop_host;
char *x_sadmin_host;
char *x_netadmin_host;
char *x_coadmin_host;
char *x_hidden_host;
char *x_netdomain;
char *x_helpchan;
char *x_stats_server;
typedef struct zNetwork aNetwork;
struct zNetwork {
unsigned x_inah : 1;
char *x_ircnetwork;
char *x_defserv;
char *x_services_name;
char *x_oper_host;
char *x_admin_host;
char *x_locop_host;
char *x_sadmin_host;
char *x_netadmin_host;
char *x_coadmin_host;
char *x_techadmin_host;
char *x_hidden_host;
char *x_netdomain;
char *x_helpchan;
char *x_stats_server;
};
typedef struct zConfiguration aConfiguration;
struct zConfiguration {
unsigned som:1;
unsigned mode_x:1;
unsigned mode_i:1;
unsigned mode_stripbadwords:1;
unsigned truehub:1;
unsigned stop:1;
unsigned showopers:1;
unsigned killdiff:1;
unsigned hide_ulines:1;
unsigned allow_chatops:1;
unsigned webtv_support:1;
unsigned no_oper_hiding:1;
struct zConfiguration {
unsigned som : 1;
unsigned mode_x : 1;
unsigned mode_i : 1;
unsigned mode_stripbadwords : 1;
unsigned truehub : 1;
unsigned stop : 1;
unsigned showopers : 1;
unsigned killdiff : 1;
unsigned hide_ulines : 1;
unsigned allow_chatops : 1;
unsigned webtv_support : 1;
unsigned no_oper_hiding : 1;
/* long nospoof_seed01;
long nospoof_seed02; */
long host_timeout;
int host_retries;
int exempt_all;
char *kline_address;
char *include;
char *domainname;
char *domainmask; /* '*' + domainname */
char *auto_join_chans;
char *oper_auto_join_chans;
int socksbantime;
int maxchannelsperuser;
char *socksbanmessage;
char *socksquitmessage;
long ckey_1;
long ckey_2;
long ckey_3;
aNetwork network;
long host_timeout;
int host_retries;
char *kline_address;
char *include;
char *domainname;
char *domainmask; /* '*' + domainname */
char *auto_join_chans;
char *oper_auto_join_chans;
int socksbantime;
int maxchannelsperuser;
char *socksbanmessage;
char *socksquitmessage;
aNetwork network;
};
#ifndef DYNCONF_C
extern aConfiguration iConf;
extern aConfiguration iConf;
#endif
// #define NOSPOOF_SEED01 iConf.nospoof_seed01
// #define NOSPOOF_SEED02 iConf.nospoof_seed02
#define KLINE_ADDRESS iConf.kline_address
#define INCLUDE iConf.include
#define DOMAINNAMEMASK "*" DOMAINNAME
@@ -101,11 +100,7 @@ extern aConfiguration iConf;
#define AUTO_JOIN_CHANS iConf.auto_join_chans
#define OPER_AUTO_JOIN_CHANS iConf.oper_auto_join_chans
#define HOST_TIMEOUT iConf.host_timeout
#define EXEMPT_ALL iConf.exempt_all
#define HOST_RETRIES iConf.host_retries
#define CLOAK_KEY1 iConf.ckey_1
#define CLOAK_KEY2 iConf.ckey_2
#define CLOAK_KEY3 iConf.ckey_3
#define ircnetwork iConf.network.x_ircnetwork
#define defserv iConf.network.x_defserv
@@ -116,6 +111,7 @@ extern aConfiguration iConf;
#define sadmin_host iConf.network.x_sadmin_host
#define netadmin_host iConf.network.x_netadmin_host
#define coadmin_host iConf.network.x_coadmin_host
#define techadmin_host iConf.network.x_techadmin_host
#define hidden_host iConf.network.x_hidden_host
#define netdomain iConf.network.x_netdomain
#define helpchan iConf.network.x_helpchan
+7 -7
View File
@@ -4,21 +4,21 @@
/* $Id$ */
typedef struct fdstruct {
int entry[MAXCONNECTIONS + 2];
int last_entry;
int entry[MAXCONNECTIONS + 2];
int last_entry;
} fdlist;
void addto_fdlist(int a, fdlist * b);
void delfrom_fdlist(int a, fdlist * b);
void init_fdlist(fdlist * b);
void addto_fdlist(int a, fdlist * b);
void delfrom_fdlist(int a, fdlist * b);
void init_fdlist(fdlist * b);
#ifndef TRUE
#define TRUE 1
#endif
#define LOADCFREQ 5
#define LOADRECV 35
#define FDLISTCHKFREQ 2
#define FDLISTCHKFREQ 2
#endif /*
* _IRCD_DOG3_FDLIST
+229 -238
View File
@@ -29,24 +29,20 @@
#include "fdlist.h"
#endif
/* for the new s_err.c */
extern char *getreply(int);
#define rpl_str(x) getreply(x)
#define err_str(x) getreply(x)
extern TS nextconnect, nextdnscheck, nextping;
extern aClient *client, me, *local[];
extern aChannel *channel;
extern struct stats *ircstp;
extern int bootopt;
extern TS TSoffset;
extern time_t nextconnect, nextdnscheck, nextping;
extern aClient *client, me, *local[];
extern aChannel *channel;
extern struct stats *ircstp;
extern int bootopt;
extern time_t TSoffset;
/* Prototype added to force errors -- Barubary */
extern TS check_pings(TS now);
extern TS TS2ts(char *s);
extern time_t check_pings(time_t now, int check_kills);
/* Remmed out for win32 compatibility.. as stated of 467leaf win32 port.. */
extern LoopStruct loop;
#ifdef _WIN32
// extern void *hCio;
#endif
#ifdef SHOWCONNECTINFO
@@ -65,287 +61,282 @@ extern LoopStruct loop;
#define BREPORT_FAIL_ID "NOTICE AUTH :*** No ident response; username prefixed with ~\r\n"
extern char REPORT_DO_DNS[128], REPORT_FIN_DNS[128], REPORT_FIN_DNSC[128],
REPORT_FAIL_DNS[128], REPORT_DO_ID[128], REPORT_FIN_ID[128],
REPORT_FAIL_ID[128];
REPORT_FAIL_DNS[128], REPORT_DO_ID[128], REPORT_FIN_ID[128],
REPORT_FAIL_ID[128];
#ifdef SOCKSPORT
extern char REPORT_DO_SOCKS[128], REPORT_GOOD_SOCKS[128], REPORT_NO_SOCKS[128];
extern char REPORT_DO_SOCKS[128], REPORT_GOOD_SOCKS[128],
REPORT_NO_SOCKS[128];
#endif
extern int R_do_dns, R_fin_dns, R_fin_dnsc, R_fail_dns,
R_do_id, R_fin_id, R_fail_id;
R_do_id, R_fin_id, R_fail_id;
#ifdef SOCKSPORT
extern int R_do_socks, R_good_socks, R_no_socks;
extern int R_do_socks,
R_good_socks, R_no_socks;
#endif
#endif
extern aChannel *find_channel PROTO((char *, aChannel *));
extern void remove_user_from_channel PROTO((aClient *, aChannel *));
extern char *base64enc PROTO((long));
extern long base64dec PROTO((char *));
extern void add_server_to_table PROTO((aClient *));
extern void remove_server_from_tabel PROTO((aClient *));
extern aChannel *find_channel PROTO((char *, aChannel *));
extern void remove_user_from_channel PROTO((aClient *, aChannel *));
/* for services */
extern void del_invite PROTO((aClient *, aChannel *));
extern int del_silence PROTO((aClient *, char *));
extern void send_user_joins PROTO((aClient *, aClient *));
extern void clean_channelname PROTO((char *));
extern int do_nick_name PROTO((char *));
extern int can_send PROTO((aClient *, aChannel *, char *));
extern int is_chan_op PROTO((aClient *, aChannel *));
extern int has_voice PROTO((aClient *, aChannel *));
extern int is_chanowner PROTO((aClient *, aChannel *));
extern Ban *is_banned PROTO((aClient *, aClient *, aChannel *));
extern int parse_help PROTO((aClient *, char *, char *));
extern void del_invite PROTO((aClient *, aChannel *));
extern int del_silence PROTO((aClient *, char *));
extern void send_user_joins PROTO((aClient *, aClient *));
extern void clean_channelname PROTO((char *));
extern int do_nick_name PROTO((char *));
extern int can_send PROTO((aClient *, aChannel *, char *));
extern int is_chan_op PROTO((aClient *, aChannel *));
extern int is_zombie PROTO((aClient *, aChannel *));
extern int has_voice PROTO((aClient *, aChannel *));
extern int is_chanowner PROTO((aClient *, aChannel *));
extern int count_channels PROTO((aClient *));
extern Ban *is_banned PROTO((aClient *, aClient *, aChannel *));
extern int parse_help PROTO((aClient *, char *, char *));
extern void ircd_log PROTO((char *, ...));
extern aClient *find_client PROTO((char *, aClient *));
extern aClient *find_name PROTO((char *, aClient *));
extern aClient *find_nickserv PROTO((char *, aClient *));
extern aClient *find_person PROTO((char *, aClient *));
extern aClient *find_server PROTO((char *, aClient *));
extern aClient *find_server_quickx PROTO((char *, aClient *));
extern aClient *find_service PROTO((char *, aClient *));
#define find_server_quick(x) find_server_quickx(x, NULL)
extern char *find_or_add PROTO((char *));
extern int attach_conf PROTO((aClient *, aConfItem *));
extern aConfItem *attach_confs PROTO((aClient *, char *, int));
extern aConfItem *attach_confs_host PROTO((aClient *, char *, int));
extern int attach_Iline PROTO((aClient *, struct hostent *, char *));
extern aConfItem *conf, *find_me PROTO(()), *find_admin PROTO(());
extern aConfItem *count_cnlines PROTO((Link *));
extern aSqlineItem *sqline;
extern void det_confs_butmask PROTO((aClient *, int));
extern int detach_conf PROTO((aClient *, aConfItem *));
extern aSqlineItem *find_sqline_nick PROTO((char *));
extern aSqlineItem *find_sqline_match PROTO((char *));
extern aConfItem *det_confs_butone PROTO((aClient *, aConfItem *));
extern char *find_diepass();
extern char *find_restartpass();
extern aConfItem *find_conf PROTO((Link *, char *, int));
extern aConfItem *find_conf_exact PROTO((char *, char *, char *, int));
extern aConfItem *find_conf_host PROTO((Link *, char *, int));
extern aConfItem *find_conf_ip PROTO((Link *, char *, char *, int));
extern aConfItem *find_conf_name PROTO((char *, int));
extern aConfItem *find_temp_conf_entry PROTO((aConfItem *, u_int));
extern aConfItem *find_conf_servern PROTO((char *));
extern int find_kill PROTO((aClient *));
extern char *find_zap PROTO((aClient *, int));
extern int find_restrict PROTO((aClient *));
extern int rehash PROTO((aClient *, aClient *, int));
extern int initconf PROTO((int));
extern void add_temp_conf();
extern void inittoken PROTO(());
extern void reset_help PROTO(());
extern int find_exception(char *); /* hidden host */
extern void ircd_log PROTO((char *, ...));
extern aClient *find_client PROTO((char *, aClient *));
extern aClient *find_name PROTO((char *, aClient *));
extern aClient *find_nickserv PROTO((char *, aClient *));
extern aClient *find_person PROTO((char *, aClient *));
extern aClient *find_server PROTO((char *, aClient *));
extern aClient *find_service PROTO((char *, aClient *));
#ifndef DMALLOC
extern char *MyMalloc PROTO((int)), *MyRealloc PROTO((char *, int));
#endif
extern char *debugmode, *configfile, *sbrk0;
extern char *getfield PROTO((char *));
extern void get_sockhost PROTO((aClient *, char *));
extern char *strerror PROTO((int));
extern int dgets PROTO((int, char *, int));
extern char *inetntoa PROTO((char *));
extern char *find_or_add PROTO((char *));
extern int attach_conf PROTO((aClient *, aConfItem *));
extern aConfItem *attach_confs PROTO((aClient*, char *, int));
extern aConfItem *attach_confs_host PROTO((aClient*, char *, int));
extern int attach_Iline PROTO((aClient *, struct hostent *, char *));
extern aConfItem *conf, *find_me PROTO(()), *find_admin PROTO(());
extern aConfItem *count_cnlines PROTO((Link *));
extern aSqlineItem *sqline;
extern void det_confs_butmask PROTO((aClient *, int));
extern int detach_conf PROTO((aClient *, aConfItem *));
extern aSqlineItem *find_sqline_nick PROTO((char *));
extern aSqlineItem *find_sqline_match PROTO((char *));
extern aConfItem *det_confs_butone PROTO((aClient *, aConfItem *));
extern char *find_diepass();
extern char *find_restartpass();
extern aConfItem *find_conf PROTO((Link *, char*, int));
extern aConfItem *find_conf_exact PROTO((char *, char *, char *, int));
extern aConfItem *find_conf_host PROTO((Link *, char *, int));
extern aConfItem *find_conf_ip PROTO((Link *, char *, char *, int));
extern aConfItem *find_conf_name PROTO((char *, int));
extern aConfItem *find_temp_conf_entry PROTO((aConfItem *, u_int));
extern aConfItem *find_conf_servern PROTO((char *));
extern int find_kill PROTO((aClient *));
extern char *find_zap PROTO((aClient *, int));
extern int find_restrict PROTO((aClient *));
extern int rehash PROTO((aClient *, aClient *, int));
extern int initconf PROTO((int));
extern void add_temp_conf();
extern void inittoken PROTO(());
extern void reset_help PROTO(());
extern int find_exception(char *); /* hidden host */
extern char *MyMalloc PROTO((int)), *MyRealloc PROTO((char *, int));
extern char *debugmode, *configfile, *sbrk0;
extern char *getfield PROTO((char *));
extern void get_sockhost PROTO((aClient *, char *));
extern char *rpl_str PROTO((int)), *err_str PROTO((int));
extern char *strerror PROTO((int));
extern int dgets PROTO((int, char *, int));
extern char *inetntoa PROTO((char *));
#ifdef _WIN32
extern int dbufalloc, dbufblocks, debuglevel;
extern int dbufalloc, dbufblocks, debuglevel;
#else
extern int dbufalloc, dbufblocks, debuglevel, errno, h_errno;
extern int dbufalloc, dbufblocks, debuglevel, errno, h_errno;
#endif
extern int highest_fd, debuglevel, portnum, debugtty, maxusersperchannel;
extern int readcalls, udpfd, resfd;
extern aClient *add_connection PROTO((aClient *, int));
extern int add_listener PROTO((aConfItem *));
extern void add_local_domain PROTO((char *, int));
extern int check_client PROTO((aClient *));
extern int check_server PROTO((aClient *, struct hostent *, aConfItem *,
aConfItem *, int));
extern int check_server_init PROTO((aClient *));
extern void close_connection PROTO((aClient *));
extern void close_listeners PROTO(());
extern int connect_server PROTO((aConfItem *, aClient *, struct hostent *));
extern void get_my_name PROTO((aClient *, char *, int));
extern int get_sockerr PROTO((aClient *));
extern int inetport PROTO((aClient *, char *, int));
extern void init_sys PROTO(());
extern int highest_fd, debuglevel, portnum, debugtty, maxusersperchannel;
extern int readcalls, udpfd, resfd;
extern aClient *add_connection PROTO((aClient *, int));
extern int add_listener PROTO((aConfItem *));
extern void add_local_domain PROTO((char *, int));
extern int check_client PROTO((aClient *));
extern int check_server PROTO((aClient *, struct hostent *, \
aConfItem *, aConfItem *, int));
extern int check_server_init PROTO((aClient *));
extern void close_connection PROTO((aClient *));
extern void close_listeners PROTO(());
extern int connect_server PROTO((aConfItem *, aClient *, struct hostent *));
extern void get_my_name PROTO((aClient *, char *, int));
extern int get_sockerr PROTO((aClient *));
extern int inetport PROTO((aClient *, char *, int));
extern void init_sys PROTO(());
#ifdef NO_FDLIST
extern int read_message PROTO((TS));
extern int read_message PROTO((time_t));
#else
extern int read_message PROTO((TS, fdlist *));
extern int read_message PROTO((time_t, fdlist *));
#endif
extern void report_error PROTO((char *, aClient *));
extern void set_non_blocking PROTO((int, aClient *));
extern int setup_ping PROTO(());
extern void report_error PROTO((char *, aClient *));
extern void set_non_blocking PROTO((int, aClient *));
extern int setup_ping PROTO(());
extern void summon PROTO((aClient *, char *, char *, char *));
extern int unixport PROTO((aClient *, char *, int));
extern int utmp_open PROTO(());
extern int utmp_read PROTO((int, char *, char *, char *, int));
extern int utmp_close PROTO((int));
extern void start_auth PROTO((aClient *));
extern void read_authports PROTO((aClient *));
extern void send_authports PROTO((aClient *));
extern void start_auth PROTO((aClient *));
extern void read_authports PROTO((aClient *));
extern void send_authports PROTO((aClient *));
#ifdef SOCKSPORT
extern void init_socks PROTO((aClient *));
extern void start_socks PROTO((aClient *));
extern void send_socksquery PROTO((aClient *));
extern void read_socks PROTO((aClient *));
extern void init_socks PROTO((aClient *));
extern void start_socks PROTO((aClient *));
extern void send_socksquery PROTO((aClient *));
extern void read_socks PROTO((aClient *));
#endif
extern void restart PROTO((char *));
extern void send_channel_modes PROTO((aClient *, aChannel *));
extern void server_reboot PROTO((char *));
extern void terminate PROTO(()), write_pidfile PROTO(());
extern void restart PROTO((char *));
extern void send_channel_modes PROTO((aClient *, aChannel *));
extern void server_reboot PROTO((char *));
extern void terminate PROTO(()), write_pidfile PROTO(());
extern int send_queued PROTO((aClient *));
extern int send_queued PROTO((aClient *));
/*VARARGS2*/
// extern void sendto_one(char *, ...);
// extern void sendto_one(char *, ...);
/*VARARGS4*/
/* i know this is naughty but :P --stskeeps */
extern void sendto_channel_butone(aClient *, aClient *, aChannel *, char *,
...);
extern void sendto_channelops_butone(aClient *, aClient *, aChannel *,
char *, ...);
extern void sendto_channelvoice_butone(aClient *, aClient *, aChannel *,
char *, ...);
extern void sendto_channel_butone(aClient *, aClient *, aChannel *, char *, ...);
extern void sendto_channelops_butone(aClient *, aClient *, aChannel *, char *, ...);
extern void sendto_channelvoice_butone(aClient *, aClient *, aChannel *, char *, ...);
/*VARARGS2*/
extern void sendto_serv_butone(aClient *, char *, ...);
extern void sendto_serv_butone(aClient *, char *, ...);
/*VARARGS2*/
extern void sendto_serv_butone_quit(aClient *, char *, ...);
extern void sendto_serv_butone_sjoin(aClient *, char *, ...);
extern void sendto_serv_sjoin(aClient *, char *, ...);
extern void sendto_serv_butone_quit(aClient *, char *, ...);
extern void sendto_serv_butone_sjoin(aClient *, char *, ...);
extern void sendto_serv_sjoin(aClient *, char *, ...);
/*VARARGS2*/
extern void sendto_common_channels(aClient *, char *, ...);
extern void sendto_common_channels(aClient *, char *, ...);
/*VARARGS3*/
extern void sendto_channel_butserv(aChannel *, aClient *, char *, ...);
extern void sendto_channel_butserv(aChannel *, aClient *, char *, ...);
/*VARARGS3*/
extern void sendto_match_servs(aChannel *, aClient *, char *, ...);
extern void sendto_match_servs(aChannel *, aClient *, char *, ...);
/*VARARGS5*/
extern void sendto_match_butone(aClient *, aClient *, char *, int,
char *pattern, ...);
extern void sendto_match_butone(aClient *, aClient *, char *, int, char *pattern, ...);
/*VARARGS3*/
extern void sendto_all_butone(aClient *, aClient *, char *, ...);
extern void sendto_all_butone(aClient *, aClient *, char *, ...);
/*VARARGS1*/
extern void sendto_ops(char *, ...);
extern void sendto_ops(char *, ...);
/*VARARGS3*/
extern void sendto_ops_butone(aClient *, aClient *, char *, ...);
extern void sendto_ops_butone(aClient *, aClient *, char *, ...);
/*VARARGS3*/
extern void sendto_ops_butme(aClient *, char *, ...);
extern void sendto_ops_butme(aClient *, char *, ...);
/*VARARGS3*/
extern void sendto_prefix_one(aClient *, aClient *, const char *, ...);
extern void sendto_prefix_one(aClient *, aClient *, const char *, ...);
/*VARARGS3*/
extern void sendto_failops_whoare_opers(char *, ...);
extern void sendto_failops_whoare_opers(char *, ...);
/*VARARGS3*/
extern void sendto_failops(char *, ...);
extern void sendto_failops(char *, ...);
/*VARARGS3*/
extern void sendto_opers(char *, ...);
extern void sendto_opers(char *, ...);
/*VARARGS?*/
extern void sendto_umode(int, char *, ...);
extern void sendto_conn_hcn(char *, ...);
extern int writecalls, writeb[];
extern int deliver_it PROTO((aClient *, char *, int));
extern void sendto_umode(int, char *, ...);
extern void sendto_conn_hcn(char *, ...);
extern int writecalls, writeb[];
extern int deliver_it PROTO((aClient *, char *, int));
extern int check_registered PROTO((aClient *));
extern int check_registered_user PROTO((aClient *));
extern char *get_client_name PROTO((aClient *, int));
extern char *get_client_host PROTO((aClient *));
extern char *my_name_for_link PROTO((char *, aConfItem *));
extern char *myctime PROTO((TS)), *date PROTO((TS));
extern int exit_client PROTO((aClient *, aClient *, aClient *, char *));
extern void initstats PROTO(()), tstats PROTO((aClient *, char *));
extern char *check_string PROTO((char *));
extern char *make_nick_user_host PROTO((char *, char *, char *));
extern int check_registered PROTO((aClient *));
extern int check_registered_user PROTO((aClient *));
extern char *get_client_name PROTO((aClient *, int));
extern char *get_client_host PROTO((aClient *));
extern char *my_name_for_link PROTO((char *, aConfItem *));
extern char *myctime PROTO((time_t)), *date PROTO((time_t));
extern int exit_client PROTO((aClient *, aClient *, aClient *, char *));
extern void initstats PROTO(()), tstats PROTO((aClient *, char *));
extern char *check_string PROTO((char *));
extern char *make_nick_user_host PROTO((char *, char *, char *));
extern int parse PROTO((aClient *, char *, char *, struct Message *));
extern int do_numeric PROTO((int, aClient *, aClient *, int, char **));
extern int hunt_server PROTO((aClient *, aClient *, char *, int, int, char **));
extern aClient *next_client PROTO((aClient *, char *));
extern int m_umode PROTO((aClient *, aClient *, int, char **));
extern int m_names PROTO((aClient *, aClient *, int, char **));
extern int m_server_estab PROTO((aClient *));
extern void send_umode PROTO((aClient *, aClient *, long, long, char *));
extern void send_umode_out PROTO((aClient *, aClient *, long));
extern int parse PROTO((aClient *, char *, char *, struct Message *));
extern int do_numeric PROTO((int, aClient *, aClient *, int, char **));
extern int hunt_server PROTO((aClient *,aClient *,char *,int,int,char **));
extern aClient *next_client PROTO((aClient *, char *));
extern int m_umode PROTO((aClient *, aClient *, int, char **));
extern int m_names PROTO((aClient *, aClient *, int, char **));
extern int m_server_estab PROTO((aClient *));
extern void send_umode PROTO((aClient *, aClient *, int, int, char *));
extern void send_umode_out PROTO((aClient*, aClient *, int));
extern void free_client PROTO((aClient *));
extern void free_link PROTO((Link *));
extern void free_ban PROTO((Ban *));
extern void free_conf PROTO((aConfItem *));
extern void free_class PROTO((aClass *));
extern void free_user PROTO((anUser *, aClient *));
extern int find_str_match_link PROTO((Link *, char *));
extern void free_str_list PROTO((Link *));
extern Link *make_link PROTO(());
extern Ban *make_ban PROTO(());
extern anUser *make_user PROTO((aClient *));
extern aSqlineItem *make_sqline PROTO(());
extern aConfItem *make_conf PROTO(());
extern aClass *make_class PROTO(());
extern aServer *make_server PROTO(());
extern aClient *make_client PROTO((aClient *, aClient *));
extern Link *find_user_link PROTO((Link *, aClient *));
extern Link *find_channel_link PROTO((Link *, aChannel *));
extern char *pretty_mask PROTO((char *));
extern void add_client_to_list PROTO((aClient *));
extern void checklist PROTO(());
extern void remove_client_from_list PROTO((aClient *));
extern void initlists PROTO(());
extern void free_client PROTO((aClient *));
extern void free_link PROTO((Link *));
extern void free_ban PROTO((Ban *));
extern void free_conf PROTO((aConfItem *));
extern void free_class PROTO((aClass *));
extern void free_user PROTO((anUser *, aClient *));
extern int find_str_match_link PROTO((Link **, char *));
extern void free_str_list PROTO ((Link *));
extern Link *make_link PROTO(());
extern Ban *make_ban PROTO(());
extern anUser *make_user PROTO((aClient *));
extern aSqlineItem *make_sqline PROTO(());
extern aConfItem *make_conf PROTO(());
extern aClass *make_class PROTO(());
extern aServer *make_server PROTO(());
extern aClient *make_client PROTO((aClient *, aClient *));
extern Link *find_user_link PROTO((Link *, aClient *));
extern Link *find_channel_link PROTO((Link *, aChannel *));
extern char *pretty_mask PROTO((char *));
extern void add_client_to_list PROTO((aClient *));
extern void checklist PROTO(());
extern void remove_client_from_list PROTO((aClient *));
extern void initlists PROTO(());
extern void add_class PROTO((int, int, int, int, long));
extern void fix_class PROTO((aConfItem *, aConfItem *));
extern long get_sendq PROTO((aClient *));
extern int get_con_freq PROTO((aClass *));
extern int get_client_ping PROTO((aClient *));
extern int get_client_class PROTO((aClient *));
extern int get_conf_class PROTO((aConfItem *));
extern void report_classes PROTO((aClient *));
extern void add_class PROTO((int, int, int, int, long));
extern void fix_class PROTO((aConfItem *, aConfItem *));
extern long get_sendq PROTO((aClient *));
extern int get_con_freq PROTO((aClass *));
extern int get_client_ping PROTO((aClient *));
extern int get_client_class PROTO((aClient *));
extern int get_conf_class PROTO((aConfItem *));
extern void report_classes PROTO((aClient *));
extern struct hostent *get_res PROTO((char *));
extern struct hostent *gethost_byaddr PROTO((char *, Link *));
extern struct hostent *gethost_byname PROTO((char *, Link *));
extern void flush_cache PROTO(());
extern int init_resolver PROTO((int));
extern TS timeout_query_list PROTO((TS));
extern TS expire_cache PROTO((TS));
extern void del_queries PROTO((char *));
extern struct hostent *get_res PROTO((char *));
extern struct hostent *gethost_byaddr PROTO((char *, Link *));
extern struct hostent *gethost_byname PROTO((char *, Link *));
extern void flush_cache PROTO(());
extern int init_resolver PROTO((int));
extern time_t timeout_query_list PROTO((time_t));
extern time_t expire_cache PROTO((time_t));
extern void del_queries PROTO((char *));
extern void clear_channel_hash_table PROTO(());
extern void clear_client_hash_table PROTO(());
extern void clear_notify_hash_table PROTO(());
extern int add_to_client_hash_table PROTO((char *, aClient *));
extern int del_from_client_hash_table PROTO((char *, aClient *));
extern int add_to_channel_hash_table PROTO((char *, aChannel *));
extern int del_from_channel_hash_table PROTO((char *, aChannel *));
extern int add_to_notify_hash_table PROTO((char *, aClient *));
extern int del_from_notify_hash_table PROTO((char *, aClient *));
extern int hash_check_notify PROTO((aClient *, int));
extern int hash_del_notify_list PROTO((aClient *));
extern void count_watch_memory PROTO((int *, u_long *));
extern aNotify *hash_get_notify PROTO((char *));
extern aChannel *hash_get_chan_bucket PROTO((int));
extern aClient *hash_find_client PROTO((char *, aClient *));
extern aClient *hash_find_nickserver PROTO((char *, aClient *));
extern aClient *hash_find_server PROTO((char *, aClient *));
extern char *find_by_aln PROTO((char *));
extern char *convert2aln PROTO((int));
extern int convertfromaln PROTO((char *));
extern char *find_server_aln PROTO((char *));
extern atime(char *xtime);
extern int dopacket PROTO((aClient *, char *, int));
extern void clear_channel_hash_table PROTO(());
extern void clear_client_hash_table PROTO(());
extern void clear_notify_hash_table PROTO(());
extern int add_to_client_hash_table PROTO((char *, aClient *));
extern int del_from_client_hash_table PROTO((char *, aClient *));
extern int add_to_channel_hash_table PROTO((char *, aChannel *));
extern int del_from_channel_hash_table PROTO((char *, aChannel *));
extern int add_to_notify_hash_table PROTO((char *, aClient *));
extern int del_from_notify_hash_table PROTO((char *, aClient *));
extern int hash_check_notify PROTO((aClient *, int));
extern int hash_del_notify_list PROTO((aClient *));
extern void count_watch_memory PROTO((int *, u_long *));
extern aNotify *hash_get_notify PROTO((char *));
extern aChannel *hash_get_chan_bucket PROTO((int));
extern aClient *hash_find_client PROTO((char *, aClient *));
extern aClient *hash_find_nickserver PROTO((char *, aClient *));
extern aClient *hash_find_server PROTO((char *, aClient *));
extern char *find_by_aln PROTO((char *));
extern char *convert2aln PROTO((int));
extern int convertfromaln PROTO((char *));
extern char *find_server_aln PROTO((char *));
extern int dopacket PROTO((aClient *, char *, int));
/*VARARGS2*/
extern void debug();
extern void debug();
#if defined(DEBUGMODE)
extern void send_usage PROTO((aClient *, char *));
extern void send_listinfo PROTO((aClient *, char *));
extern void count_memory PROTO((aClient *, char *));
extern void send_usage PROTO((aClient *, char *));
extern void send_listinfo PROTO((aClient *, char *));
extern void count_memory PROTO((aClient *, char *));
#endif
#ifdef INET6
extern char *inetntop(int af, const void *in, char *local_dummy,
size_t the_size);
extern char *inetntop(int af, const void *in, char *local_dummy, size_t the_size);
#endif
char *crule_parse PROTO((char *));
+6 -6
View File
@@ -23,9 +23,9 @@
#define __hash_include__
typedef struct hashentry {
int hits;
int links;
void *list;
int hits;
int links;
void *list;
} aHashEntry;
/* Taner had BITS_PER_COL 4 BITS_PER_COL_MASK 0xF - Dianora */
@@ -38,7 +38,7 @@ typedef struct hashentry {
* used in hash.c
*/
#define U_MAX_INITIAL 2048
#define U_MAX_INITIAL 8192
#define U_MAX_INITIAL_MASK (U_MAX_INITIAL-1)
#define U_MAX (U_MAX_INITIAL*MAX_SUB)
@@ -58,9 +58,9 @@ typedef struct hashentry {
#define WW_MAX_INITIAL_MASK (WW_MAX_INITIAL-1)
#define WW_MAX (WW_MAX_INITIAL*MAX_SUB)
#define NOTIFYHASHSIZE 10007 /* prime number */
#define NOTIFYHASHSIZE 10007 /* prime number */
#define NullChn ((aChannel *)0)
#define find_channel hash_find_channel
#endif /* __hash_include__ */
#endif /* __hash_include__ */
+2 -2
View File
@@ -22,7 +22,7 @@
*/
/* External definitions for functions in inet(3) */
#include "config.h" /* for system definitions */
#include "config.h" /* for system definitions */
#ifdef __alpha
#define __u_l unsigned int
@@ -35,7 +35,7 @@
extern __u_l inet_addr(char *);
extern char *inet_ntoa(char *);
# endif
extern __u_l inet_makeaddr(int, int);
extern __u_l inet_makeaddr(int , int);
extern __u_l inet_network(char *);
extern __u_l inet_lnaof(struct in_addr);
#else
-24
View File
@@ -1,24 +0,0 @@
/*
* sprintf_irc.h
*
* $Id$
*/
#ifndef IRCSPRINTF_H
#define IRCSPRINTF_H
#include <stdarg.h>
#include <stdio.h>
/*
* Proto types
*/
/* You do want it to work in debug mode yes ? --DrBin */
extern char *ircvsprintf(char *str, const char *format, va_list);
extern char *ircsprintf(char *str, const char *format, ...);
extern const char atoi_tab[4000];
#endif
+26 -26
View File
@@ -28,32 +28,32 @@
*/
static char *Statement[] = {
" * This file may not be removed from the IRCd package.",
" * It will be a violation of copyright. This program must always",
" * stay free and not be charged for, being sold commercially or privately",
" * Only charge may be for the transport medium like one CD-ROM, floppy",
" * or other kinds.",
0
};
" * This file may not be removed from the IRCd package.",
" * It will be a violation of copyright. This program must always",
" * stay free and not be charged for, being sold commercially or privately",
" * Only charge may be for the transport medium like one CD-ROM, floppy",
" * or other kinds.",
0};
char *gnulicense[] = {
" \2UnrealIRCd License\2",
"This program is free software; you can redistribute it and/or modify",
"it under the terms of the GNU General Public License as published by",
"the Free Software Foundation; either version 1, or (at your option)",
"any later version.",
"",
"This program is distributed in the hope that it will be useful,",
"but WITHOUT ANY WARRANTY; without even the implied warranty of",
"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the",
"GNU General Public License for more details.",
"",
"You should have received a copy of the GNU General Public License",
"along with this program; if not, write to the Free Software",
"Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.",
"",
"To see the UnrealIRCd License, please point your browser",
"at http://www.gnu.org/copyleft/gpl.html or look in the",
"file LICENSE in the UnrealIRCd dist",
0
" \2UnrealIRCd License\2",
"This program is free software; you can redistribute it and/or modify",
"it under the terms of the GNU General Public License as published by",
"the Free Software Foundation; either version 1, or (at your option)",
"any later version.",
"",
"This program is distributed in the hope that it will be useful,",
"but WITHOUT ANY WARRANTY; without even the implied warranty of",
"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the",
"GNU General Public License for more details.",
"",
"You should have received a copy of the GNU General Public License",
"along with this program; if not, write to the Free Software",
"Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.",
"",
"To see the UnrealIRCd License, please point your browser",
"at http://www.gnu.org/copyleft/gpl.html or look in the",
"file LICENSE in the UnrealIRCd dist",
0
};
+289 -316
View File
@@ -1,4 +1,3 @@
/************************************************************************
* Unreal Internet Relay Chat Daemon, include/msg.h
* Copyright (C) 1990 Jarkko Oikarinen and
@@ -46,204 +45,204 @@
* knowing it, I'm considering that reserved, and TRACE/A is now 'b'.
* The normal msgtab should probably process this as special. -Donwulff
*/
/* 12/05/1999 - I was wrong - I didnt see the token[2] in struct Message
okie 60*60 commands more :P - Sowwy!!! -sts
*/
#define MSG_PRIVATE "PRIVMSG" /* PRIV */
#define TOK_PRIVATE "!" /* 33 */
#define MSG_WHO "WHO" /* WHO -> WHOC */
#define TOK_WHO "\"" /* 34 */
#define MSG_WHOIS "WHOIS" /* WHOI */
#define TOK_WHOIS "#" /* 35 */
#define TOK_PRIVATE "!" /* 33 */
#define MSG_WHO "WHO" /* WHO -> WHOC */
#define TOK_WHO "\"" /* 34 */
#define MSG_WHOIS "WHOIS" /* WHOI */
#define TOK_WHOIS "#" /* 35 */
#define MSG_WHOWAS "WHOWAS" /* WHOW */
#define TOK_WHOWAS "$" /* 36 */
#define MSG_USER "USER" /* USER */
#define TOK_USER "%" /* 37 */
#define MSG_NICK "NICK" /* NICK */
#define TOK_NICK "&" /* 38 */
#define TOK_WHOWAS "$" /* 36 */
#define MSG_USER "USER" /* USER */
#define TOK_USER "%" /* 37 */
#define MSG_NICK "NICK" /* NICK */
#define TOK_NICK "&" /* 38 */
#define MSG_SERVER "SERVER" /* SERV */
#define TOK_SERVER "'" /* 39 */
#define MSG_LIST "LIST" /* LIST */
#define TOK_LIST "(" /* 40 */
#define MSG_TOPIC "TOPIC" /* TOPI */
#define TOK_TOPIC ")" /* 41 */
#define TOK_SERVER "'" /* 39 */
#define MSG_LIST "LIST" /* LIST */
#define TOK_LIST "(" /* 40 */
#define MSG_TOPIC "TOPIC" /* TOPI */
#define TOK_TOPIC ")" /* 41 */
#define MSG_INVITE "INVITE" /* INVI */
#define TOK_INVITE "*" /* 42 */
#define TOK_INVITE "*" /* 42 */
#define MSG_VERSION "VERSION" /* VERS */
#define TOK_VERSION "+" /* 43 */
#define MSG_QUIT "QUIT" /* QUIT */
#define TOK_QUIT "," /* 44 */
#define MSG_SQUIT "SQUIT" /* SQUI */
#define TOK_SQUIT "-" /* 45 */
#define MSG_KILL "KILL" /* KILL */
#define TOK_KILL "." /* 46 */
#define MSG_INFO "INFO" /* INFO */
#define TOK_INFO "/" /* 47 */
#define MSG_LINKS "LINKS" /* LINK */
#define TOK_LINKS "0" /* 48 */
#define TOK_VERSION "+" /* 43 */
#define MSG_QUIT "QUIT" /* QUIT */
#define TOK_QUIT "," /* 44 */
#define MSG_SQUIT "SQUIT" /* SQUI */
#define TOK_SQUIT "-" /* 45 */
#define MSG_KILL "KILL" /* KILL */
#define TOK_KILL "." /* 46 */
#define MSG_INFO "INFO" /* INFO */
#define TOK_INFO "/" /* 47 */
#define MSG_LINKS "LINKS" /* LINK */
#define TOK_LINKS "0" /* 48 */
#define MSG_SUMMON "SUMMON" /* SUMM */
#define TOK_SUMMON "1" /* 49 */
#define MSG_STATS "STATS" /* STAT */
#define TOK_STATS "2" /* 50 */
#define MSG_USERS "USERS" /* USER -> USRS */
#define TOK_USERS "3" /* 51 */
#define MSG_HELP "HELP" /* HELP */
#define TOK_SUMMON "1" /* 49 */
#define MSG_STATS "STATS" /* STAT */
#define TOK_STATS "2" /* 50 */
#define MSG_USERS "USERS" /* USER -> USRS */
#define TOK_USERS "3" /* 51 */
#define MSG_HELP "HELP" /* HELP */
#define MSG_HELPOP "HELPOP" /* HELP */
#define TOK_HELP "4" /* 52 */
#define MSG_ERROR "ERROR" /* ERRO */
#define TOK_ERROR "5" /* 53 */
#define MSG_AWAY "AWAY" /* AWAY */
#define TOK_AWAY "6" /* 54 */
#define TOK_HELP "4" /* 52 */
#define MSG_ERROR "ERROR" /* ERRO */
#define TOK_ERROR "5" /* 53 */
#define MSG_AWAY "AWAY" /* AWAY */
#define TOK_AWAY "6" /* 54 */
#define MSG_CONNECT "CONNECT" /* CONN */
#define TOK_CONNECT "7" /* 55 */
#define MSG_PING "PING" /* PING */
#define TOK_PING "8" /* 56 */
#define MSG_PONG "PONG" /* PONG */
#define TOK_PONG "9" /* 57 */
#define MSG_OPER "OPER" /* OPER */
#define TOK_OPER ";" /* 59 */
#define MSG_PASS "PASS" /* PASS */
#define TOK_PASS "<" /* 60 */
#define TOK_CONNECT "7" /* 55 */
#define MSG_PING "PING" /* PING */
#define TOK_PING "8" /* 56 */
#define MSG_PONG "PONG" /* PONG */
#define TOK_PONG "9" /* 57 */
#define MSG_OPER "OPER" /* OPER */
#define TOK_OPER ";" /* 59 */
#define MSG_PASS "PASS" /* PASS */
#define TOK_PASS "<" /* 60 */
#define MSG_WALLOPS "WALLOPS" /* WALL */
#define TOK_WALLOPS "=" /* 61 */
#define MSG_TIME "TIME" /* TIME */
#define TOK_TIME ">" /* 62 */
#define MSG_NAMES "NAMES" /* NAME */
#define TOK_NAMES "?" /* 63 */
#define MSG_ADMIN "ADMIN" /* ADMI */
#define TOK_ADMIN "@" /* 64 */
#define TOK_WALLOPS "=" /* 61 */
#define MSG_TIME "TIME" /* TIME */
#define TOK_TIME ">" /* 62 */
#define MSG_NAMES "NAMES" /* NAME */
#define TOK_NAMES "?" /* 63 */
#define MSG_ADMIN "ADMIN" /* ADMI */
#define TOK_ADMIN "@" /* 64 */
#define MSG_NOTICE "NOTICE" /* NOTI */
#define TOK_NOTICE "B" /* 66 */
#define MSG_JOIN "JOIN" /* JOIN */
#define TOK_JOIN "C" /* 67 */
#define MSG_PART "PART" /* PART */
#define TOK_PART "D" /* 68 */
#define TOK_NOTICE "B" /* 66 */
#define MSG_JOIN "JOIN" /* JOIN */
#define TOK_JOIN "C" /* 67 */
#define MSG_PART "PART" /* PART */
#define TOK_PART "D" /* 68 */
#define MSG_LUSERS "LUSERS" /* LUSE */
#define TOK_LUSERS "E" /* 69 */
#define MSG_MOTD "MOTD" /* MOTD */
#define TOK_MOTD "F" /* 70 */
#define MSG_MODE "MODE" /* MODE */
#define TOK_MODE "G" /* 71 */
#define MSG_KICK "KICK" /* KICK */
#define TOK_KICK "H" /* 72 */
#define TOK_LUSERS "E" /* 69 */
#define MSG_MOTD "MOTD" /* MOTD */
#define TOK_MOTD "F" /* 70 */
#define MSG_MODE "MODE" /* MODE */
#define TOK_MODE "G" /* 71 */
#define MSG_KICK "KICK" /* KICK */
#define TOK_KICK "H" /* 72 */
#define MSG_SERVICE "SERVICE" /* SERV -> SRVI */
#define TOK_SERVICE "I" /* 73 */
#define TOK_SERVICE "I" /* 73 */
#define MSG_USERHOST "USERHOST" /* USER -> USRH */
#define TOK_USERHOST "J" /* 74 */
#define MSG_ISON "ISON" /* ISON */
#define TOK_ISON "K" /* 75 */
#define TOK_USERHOST "J" /* 74 */
#define MSG_ISON "ISON" /* ISON */
#define TOK_ISON "K" /* 75 */
#define MSG_REHASH "REHASH" /* REHA */
#define TOK_REHASH "O" /* 79 */
#define TOK_REHASH "O" /* 79 */
#define MSG_RESTART "RESTART" /* REST */
#define TOK_RESTART "P" /* 80 */
#define MSG_CLOSE "CLOSE" /* CLOS */
#define TOK_CLOSE "Q" /* 81 */
#define MSG_DIE "DIE" /* DIE */
#define TOK_DIE "R" /* 82 */
#define MSG_HASH "HASH" /* HASH */
#define TOK_HASH "S" /* 83 */
#define MSG_DNS "DNS" /* DNS -> DNSS */
#define TOK_DNS "T" /* 84 */
#define TOK_RESTART "P" /* 80 */
#define MSG_CLOSE "CLOSE" /* CLOS */
#define TOK_CLOSE "Q" /* 81 */
#define MSG_DIE "DIE" /* DIE */
#define TOK_DIE "R" /* 82 */
#define MSG_HASH "HASH" /* HASH */
#define TOK_HASH "S" /* 83 */
#define MSG_DNS "DNS" /* DNS -> DNSS */
#define TOK_DNS "T" /* 84 */
#define MSG_SILENCE "SILENCE" /* SILE */
#define TOK_SILENCE "U" /* 85 */
#define MSG_AKILL "AKILL" /* AKILL */
#define TOK_AKILL "V" /* 86 */
#define MSG_KLINE "KLINE" /* KLINE */
#define TOK_KLINE "W" /* 87 */
#define MSG_UNKLINE "UNKLINE" /* UNKLINE */
#define TOK_UNKLINE "X" /* 88 */
#define TOK_SILENCE "U" /* 85 */
#define MSG_AKILL "AKILL" /* AKILL */
#define TOK_AKILL "V" /* 86 */
#define MSG_KLINE "KLINE" /* KLINE */
#define TOK_KLINE "W" /* 87 */
#define MSG_UNKLINE "UNKLINE" /* UNKLINE */
#define TOK_UNKLINE "X" /* 88 */
#define MSG_RAKILL "RAKILL" /* RAKILL */
#define TOK_RAKILL "Y" /* 89 */
#define TOK_RAKILL "Y" /* 89 */
#define MSG_GNOTICE "GNOTICE" /* GNOTICE */
#define TOK_GNOTICE "Z" /* 90 */
#define MSG_GOPER "GOPER" /* GOPER */
#define TOK_GOPER "[" /* 91 */
#define TOK_GNOTICE "Z" /* 90 */
#define MSG_GOPER "GOPER" /* GOPER */
#define TOK_GOPER "[" /* 91 */
#define MSG_GLOBOPS "GLOBOPS" /* GLOBOPS */
#define TOK_GLOBOPS "]" /* 93 */
#define TOK_GLOBOPS "]" /* 93 */
#define MSG_LOCOPS "LOCOPS" /* LOCOPS */
#define TOK_LOCOPS "^" /* 94 */
#define TOK_LOCOPS "^" /* 94 */
#define MSG_PROTOCTL "PROTOCTL" /* PROTOCTL */
#define TOK_PROTOCTL "_" /* 95 */
#define MSG_WATCH "WATCH" /* WATCH */
#define TOK_WATCH "`" /* 96 */
#define MSG_TRACE "TRACE" /* TRAC */
#define TOK_TRACE "b" /* 97 */
#define TOK_PROTOCTL "_" /* 95 */
#define MSG_WATCH "WATCH" /* WATCH */
#define TOK_WATCH "`" /* 96 */
#define MSG_TRACE "TRACE" /* TRAC */
#define TOK_TRACE "b" /* 97 */
#define MSG_SQLINE "SQLINE" /* SQLINE */
#define TOK_SQLINE "c" /* 98 */
#define TOK_SQLINE "c" /* 98 */
#define MSG_UNSQLINE "UNSQLINE" /* UNSQLINE */
#define TOK_UNSQLINE "d" /* 99 */
#define TOK_UNSQLINE "d" /* 99 */
#define MSG_SVSNICK "SVSNICK" /* SVSNICK */
#define TOK_SVSNICK "e" /* 100 */
#define TOK_SVSNICK "e" /* 100 */
#define MSG_SVSNOOP "SVSNOOP" /* SVSNOOP */
#define TOK_SVSNOOP "f" /* 101 */
#define TOK_SVSNOOP "f" /* 101 */
#define MSG_IDENTIFY "IDENTIFY" /* IDENTIFY */
#define TOK_IDENTIFY "g" /* 102 */
#define TOK_IDENTIFY "g" /* 102 */
#define MSG_SVSKILL "SVSKILL" /* SVSKILL */
#define TOK_SVSKILL "h" /* 103 */
#define TOK_SVSKILL "h" /* 103 */
#define MSG_NICKSERV "NICKSERV" /* NICKSERV */
#define MSG_NS "NS"
#define TOK_NICKSERV "i" /* 104 */
#define TOK_NICKSERV "i" /* 104 */
#define MSG_CHANSERV "CHANSERV" /* CHANSERV */
#define MSG_CS "CS"
#define TOK_CHANSERV "j" /* 105 */
#define TOK_CHANSERV "j" /* 105 */
#define MSG_OPERSERV "OPERSERV" /* OPERSERV */
#define MSG_OS "OS"
#define TOK_OPERSERV "k" /* 106 */
#define TOK_OPERSERV "k" /* 106 */
#define MSG_MEMOSERV "MEMOSERV" /* MEMOSERV */
#define MSG_MS "MS"
#define TOK_MEMOSERV "l" /* 107 */
#define TOK_MEMOSERV "l" /* 107 */
#define MSG_SERVICES "SERVICES" /* SERVICES */
#define TOK_SERVICES "m" /* 108 */
#define TOK_SERVICES "m" /* 108 */
#define MSG_SVSMODE "SVSMODE" /* SVSMODE */
#define TOK_SVSMODE "n" /* 109 */
#define TOK_SVSMODE "n" /* 109 */
#define MSG_SAMODE "SAMODE" /* SAMODE */
#define TOK_SAMODE "o" /* 110 */
#define TOK_SAMODE "o" /* 110 */
#define MSG_CHATOPS "CHATOPS" /* CHATOPS */
#define TOK_CHATOPS "p" /* 111 */
#define MSG_ZLINE "ZLINE" /* ZLINE */
#define TOK_ZLINE "q" /* 112 */
#define MSG_UNZLINE "UNZLINE" /* UNZLINE */
#define TOK_UNZLINE "r" /* 113 */
#define MSG_HELPSERV "HELPSERV" /* HELPSERV */
#define TOK_CHATOPS "p" /* 111 */
#define MSG_ZLINE "ZLINE" /* ZLINE */
#define TOK_ZLINE "q" /* 112 */
#define MSG_UNZLINE "UNZLINE" /* UNZLINE */
#define TOK_UNZLINE "r" /* 113 */
#define MSG_HELPSERV "HELPSERV" /* HELPSERV */
#define MSG_HS "HS"
#define TOK_HELPSERV "s" /* 114 */
#define MSG_RULES "RULES" /* RULES */
#define TOK_RULES "t" /* 115 */
#define MSG_MAP "MAP" /* MAP */
#define TOK_MAP "u" /* 117 */
#define MSG_SVS2MODE "SVS2MODE" /* SVS2MODE */
#define TOK_SVS2MODE "v" /* 118 */
#define MSG_DALINFO "DALINFO" /* dalinfo */
#define TOK_DALINFO "w" /* 119 */
#define MSG_ADMINCHAT "ADCHAT" /* Admin chat */
#define TOK_ADMINCHAT "x" /* 120 */
#define TOK_HELPSERV "s" /* 114 */
#define MSG_RULES "RULES" /* RULES */
#define TOK_RULES "t" /* 115 */
#define MSG_MAP "MAP" /* MAP */
#define TOK_MAP "u" /* 117 */
#define MSG_SVS2MODE "SVS2MODE" /* SVS2MODE */
#define TOK_SVS2MODE "v" /* 118 */
#define MSG_DALINFO "DALINFO" /* dalinfo */
#define TOK_DALINFO "w" /* 119 */
#define MSG_ADMINCHAT "ADCHAT" /* Admin chat */
#define TOK_ADMINCHAT "x" /* 120 */
#define MSG_MKPASSWD "MKPASSWD" /* MKPASSWD */
#define TOK_MKPASSWD "y" /* 121 */
#define MSG_ADDLINE "ADDLINE" /* ADDLINE */
#define TOK_ADDLINE "z" /* 122 */
#define MSG_GLINE "GLINE" /* The awesome g-line */
#define TOK_GLINE "}" /* 125 */
#define MSG_GZLINE "GZLINE" /* Teh awesome global z-line */
#define TOK_GZLINE "{" /* ahem? */
#define TOK_MKPASSWD "y" /* 121 */
#define MSG_ADDLINE "ADDLINE" /* ADDLINE */
#define TOK_ADDLINE "z" /* 122 */
#define MSG_GLINE "GLINE" /* The awesome g-line */
#define TOK_GLINE "}" /* 125 */
#define MSG_SJOIN "SJOIN"
#define TOK_SJOIN "~"
#define MSG_SETHOST "SETHOST" /* sethost */
#define TOK_SETHOST "AA" /* 127 4ever !;) */
#define MSG_NACHAT "NACHAT" /* netadmin chat */
#define TOK_NACHAT "AC" /* *beep* */
#define MSG_SETIDENT "SETIDENT" /* set ident */
#define TOK_SETIDENT "AD" /* good old BASIC ;P */
#define MSG_SETNAME "SETNAME" /* set GECOS */
#define TOK_SETNAME "AE" /* its almost unreeaaall... */
#define MSG_LAG "LAG" /* Lag detect */
#define TOK_LAG "AF" /* a or ? */
#define MSG_SDESC "SDESC" /* set description */
#define MSG_SETHOST "SETHOST" /* sethost */
#define TOK_SETHOST "AA" /* 127 4ever !;) */
#define MSG_TECHAT "TECHAT" /* techadmin chat */
#define TOK_TECHAT "AB" /* questionmark? */
#define MSG_NACHAT "NACHAT" /* netadmin chat */
#define TOK_NACHAT "AC" /* *beep* */
#define MSG_SETIDENT "SETIDENT" /* set ident */
#define TOK_SETIDENT "AD" /* good old BASIC ;P */
#define MSG_SETNAME "SETNAME" /* set GECOS */
#define TOK_SETNAME "AE" /* its almost unreeaaall... */
#define MSG_LAG "LAG" /* Lag detect */
#define TOK_LAG "AF" /* a or ? */
#define MSG_SDESC "SDESC" /* set description */
#define TOK_SDESC "AG"
#define MSG_STATSERV "STATSERV" /* alias */
#define TOK_STATSERV "AH"
#define MSG_STATSERV "STATSERV" /* alias */
#define TOK_STATSERV "AH"
#define MSG_KNOCK "KNOCK"
#define TOK_KNOCK "AI"
#define MSG_CREDITS "CREDITS"
@@ -295,9 +294,7 @@
#define MSG_BOTMOTD "BOTMOTD"
#define TOK_BOTMOTD "BF"
#define MSG_REMGLINE "REMGLINE" /* remove g-line */
#define TOK_REMGLINE "BG"
#define MSG_REMGZLINE "REMGZLINE" /* remove global z-line */
#define TOK_REMGZLINE "BP"
#define TOK_REMGLINE "BG"
#define MSG_HTM "HTM"
#define TOK_HTM "BH"
#define MSG_UMODE2 "UMODE2"
@@ -309,19 +306,8 @@
#define MSG_CHGNAME "CHGNAME"
#define MSG_SVSNAME "SVSNAME"
#define TOK_CHGNAME "BK"
#define MSG_SHUN "SHUN"
#define TOK_SHUN "BL"
#define MSG_NEWJOIN "NEWJOIN" /* For CR Java Chat */
#define MSG_POST "POST"
#define TOK_POST "BN"
#define MSG_INFOSERV "INFOSERV"
#define MSG_IS "IS"
#define TOK_INFOSERV "BO"
#define MSG_BOTSERV "BOTSERV"
#define TOK_BOTSERV "BS"
#define MAXPARA 15
#define MAXPARA 15
extern int m_private(), m_topic(), m_join(), m_part(), m_mode(), m_svsmode();
extern int m_ping(), m_pong(), m_wallops(), m_kick(), m_svsnick();
@@ -329,14 +315,12 @@ extern int m_nick(), m_error(), m_notice(), m_samode(), m_svsnoop();
extern int m_invite(), m_quit(), m_kill(), m_svskill(), m_identify();
extern int m_akill(), m_kline(), m_unkline(), m_rakill(), m_sqline();
extern int m_zline(), m_unzline();
extern int m_gnotice(), m_goper(), m_globops(), m_locops(), m_unsqline(),
m_chatops();
extern int m_gnotice(), m_goper(), m_globops(), m_locops(), m_unsqline(), m_chatops();
extern int m_protoctl();
extern int m_motd(), m_who(), m_whois(), m_user(), m_list();
extern int m_server(), m_info(), m_links(), m_summon(), m_stats();
extern int m_users(), m_version(), m_help();
extern int m_nickserv(), m_operserv(), m_chanserv(), m_memoserv();
extern int m_infoserv(), m_helpserv(), m_botserv(), m_services(), m_identify();
extern int m_nickserv(), m_operserv(), m_chanserv(), m_memoserv(), m_helpserv(), m_services(), m_identify();
extern int m_statserv();
extern int m_squit(), m_away(), m_connect();
extern int m_oper(), m_pass(), m_trace();
@@ -347,165 +331,154 @@ extern int m_service(), m_userhost(), m_ison(), m_watch();
extern int m_service(), m_servset(), m_servlist(), m_squery();
extern int m_rehash(), m_restart(), m_die(), m_dns(), m_hash();
/*extern int m_noshortn(),m_noshortc(),m_noshortm(),m_noshorto(),m_noshorth();*/
extern int m_gzline(), m_remgzline();
extern int m_gline(), m_remgline(), m_map(), m_svs2mode(), m_admins(),
m_dalinfo();
extern int m_gline(), m_remgline(), m_map(), m_svs2mode(), m_admins(), m_dalinfo();
extern int m_addline(), m_rules(), m_mkpasswd();
extern int m_sethost(), m_nachat(), m_setident(), m_setname();
extern int m_sethost(), m_nachat(), m_techat(), m_setident(), m_setname();
extern int m_lag(), m_sdesc(), m_knock(), m_credits();
extern int m_license(), m_chghost(), m_rping(), m_rpong();
extern int m_netinfo(), m_sendumode(), m_addmotd(), m_addomotd();
extern int m_svsmotd(), m_opermotd(), m_tsctl();
extern int m_svsmotd(), m_opermotd(), m_tsctl();
extern int m_svsjoin(), m_sajoin(), m_svspart(), m_sapart();
extern int m_chgident(), m_swhois(), m_svso(), m_svsfline();
extern int m_tkl(), m_vhost(), m_botmotd(), m_sjoin(), m_htm();
extern int m_umode2(), m_dccdeny(), m_undccdeny();
extern int m_chgname(), m_shun(), m_post();
#ifdef GUEST
extern int m_guest();
#endif
extern int m_chgname();
#ifdef MSGTAB
struct Message *msgmap[256];
struct Message msgtab[] = {
{MSG_PRIVATE, m_private, 0, MAXPARA, TOK_PRIVATE, 0L},
{MSG_NOTICE, m_notice, 0, MAXPARA, TOK_NOTICE, 0L},
{MSG_MODE, m_mode, 0, MAXPARA, TOK_MODE, 0L},
{MSG_NICK, m_nick, 0, MAXPARA, TOK_NICK, 0L},
{MSG_JOIN, m_join, 0, MAXPARA, TOK_JOIN, 0L},
{MSG_PING, m_ping, 0, MAXPARA, TOK_PING, 0L},
{MSG_WHOIS, m_whois, 0, MAXPARA, TOK_WHOIS, 0L},
{MSG_ISON, m_ison, 0, 1, TOK_ISON, 0L},
{MSG_USER, m_user, 0, MAXPARA, TOK_USER, 0L},
{MSG_PONG, m_pong, 0, MAXPARA, TOK_PONG, 0L},
{MSG_PART, m_part, 0, MAXPARA, TOK_PART, 0L},
{MSG_QUIT, m_quit, 0, MAXPARA, TOK_QUIT, 0L},
{MSG_WATCH, m_watch, 0, 1, TOK_WATCH, 0L},
{MSG_USERHOST, m_userhost, 0, 1, TOK_USERHOST, 0L},
{MSG_SVSNICK, m_svsnick, 0, MAXPARA, TOK_SVSNICK, 0L},
{MSG_SVSMODE, m_svsmode, 0, MAXPARA, TOK_SVSMODE, 0L},
{MSG_LUSERS, m_lusers, 0, MAXPARA, TOK_LUSERS, 0L},
{MSG_IDENTIFY, m_identify, 0, 1, TOK_IDENTIFY, 0L},
{MSG_CHANSERV, m_chanserv, 0, 1, TOK_CHANSERV, 0L},
{MSG_TOPIC, m_topic, 0, MAXPARA, TOK_TOPIC, 0L},
{MSG_INVITE, m_invite, 0, MAXPARA, TOK_INVITE, 0L},
{MSG_KICK, m_kick, 0, MAXPARA, TOK_KICK, 0L},
{MSG_WALLOPS, m_wallops, 0, 1, TOK_WALLOPS, 0L},
{MSG_ERROR, m_error, 0, MAXPARA, TOK_ERROR, 0L},
{MSG_KILL, m_kill, 0, MAXPARA, TOK_KILL, 0L},
{MSG_PROTOCTL, m_protoctl, 0, MAXPARA, TOK_PROTOCTL, 0L},
{MSG_AWAY, m_away, 0, MAXPARA, TOK_AWAY, 0L},
{MSG_SERVER, m_server, 0, MAXPARA, TOK_SERVER, 0L},
{MSG_SQUIT, m_squit, 0, MAXPARA, TOK_SQUIT, 0L},
{MSG_WHO, m_who, 0, MAXPARA, TOK_WHO, 0L},
{MSG_WHOWAS, m_whowas, 0, MAXPARA, TOK_WHOWAS, 0L},
{MSG_LIST, m_list, 0, MAXPARA, TOK_LIST, 0L},
{MSG_NAMES, m_names, 0, MAXPARA, TOK_NAMES, 0L},
{MSG_TRACE, m_trace, 0, MAXPARA, TOK_TRACE, 0L},
{MSG_PASS, m_pass, 0, MAXPARA, TOK_PASS, 0L},
{MSG_TIME, m_time, 0, MAXPARA, TOK_TIME, 0L},
{MSG_OPER, m_oper, 0, MAXPARA, TOK_OPER, 0L},
{MSG_CONNECT, m_connect, 0, MAXPARA, TOK_CONNECT, 0L},
{MSG_VERSION, m_version, 0, MAXPARA, TOK_VERSION, 0L},
{MSG_STATS, m_stats, 0, MAXPARA, TOK_STATS, 0L},
{MSG_LINKS, m_links, 0, MAXPARA, TOK_LINKS, 0L},
{MSG_ADMIN, m_admin, 0, MAXPARA, TOK_ADMIN, 0L},
{MSG_SUMMON, m_summon, 0, 1, TOK_SUMMON, 0L},
{MSG_USERS, m_users, 0, MAXPARA, TOK_USERS, 0L},
{MSG_SAMODE, m_samode, 0, MAXPARA, TOK_SAMODE, 0L},
{MSG_SVSKILL, m_svskill, 0, MAXPARA, TOK_SVSKILL, 0L},
{MSG_SVSNOOP, m_svsnoop, 0, MAXPARA, TOK_SVSNOOP, 0L},
{MSG_CS, m_chanserv, 0, 1, TOK_CHANSERV, 0L},
{MSG_NICKSERV, m_nickserv, 0, 1, TOK_NICKSERV, 0L},
{MSG_NS, m_nickserv, 0, 1, TOK_NICKSERV, 0L},
{MSG_INFOSERV, m_infoserv, 0, 1, TOK_INFOSERV, 0L},
{MSG_IS, m_infoserv, 0, 1, TOK_INFOSERV, 0L},
{MSG_OPERSERV, m_operserv, 0, 1, TOK_OPERSERV, 0L},
{MSG_OS, m_operserv, 0, 1, TOK_OPERSERV, 0L},
{MSG_MEMOSERV, m_memoserv, 0, 1, TOK_MEMOSERV, 0L},
{MSG_MS, m_memoserv, 0, 1, TOK_MEMOSERV, 0L},
{MSG_HELPSERV, m_helpserv, 0, 1, TOK_HELPSERV, 0L},
{MSG_HS, m_helpserv, 0, 1, TOK_HELPSERV, 0L},
{MSG_SERVICES, m_services, 0, 1, TOK_SERVICES, 0L},
{MSG_HELP, m_help, 0, 1, TOK_HELP, 0L},
{MSG_HELPOP, m_help, 0, 1, TOK_HELP, 0L},
{MSG_INFO, m_info, 0, MAXPARA, TOK_INFO, 0L},
{MSG_MOTD, m_motd, 0, MAXPARA, TOK_MOTD, 0L},
{MSG_CLOSE, m_close, 0, MAXPARA, TOK_CLOSE, 0L},
{MSG_SILENCE, m_silence, 0, MAXPARA, TOK_SILENCE, 0L},
{MSG_AKILL, m_akill, 0, MAXPARA, TOK_AKILL, 0L},
{MSG_SQLINE, m_sqline, 0, MAXPARA, TOK_SQLINE, 0L},
{MSG_UNSQLINE, m_unsqline, 0, MAXPARA, TOK_UNSQLINE, 0L},
{MSG_KLINE, m_kline, 0, MAXPARA, TOK_KLINE, 0L},
{MSG_UNKLINE, m_unkline, 0, MAXPARA, TOK_UNKLINE, 0L},
{MSG_ZLINE, m_zline, 0, MAXPARA, TOK_ZLINE, 0L},
{MSG_UNZLINE, m_unzline, 0, MAXPARA, TOK_UNZLINE, 0L},
{MSG_RAKILL, m_rakill, 0, MAXPARA, TOK_RAKILL, 0L},
{MSG_GNOTICE, m_gnotice, 0, MAXPARA, TOK_GNOTICE, 0L},
{MSG_GOPER, m_goper, 0, MAXPARA, TOK_GOPER, 0L},
{MSG_GLOBOPS, m_globops, 0, MAXPARA, TOK_GLOBOPS, 0L},
{MSG_CHATOPS, m_chatops, 0, 1, TOK_CHATOPS, 0L},
{MSG_LOCOPS, m_locops, 0, 1, TOK_LOCOPS, 0L},
{MSG_HASH, m_hash, 0, MAXPARA, TOK_HASH, 0L},
{MSG_DNS, m_dns, 0, MAXPARA, TOK_DNS, 0L},
{MSG_REHASH, m_rehash, 0, MAXPARA, TOK_REHASH, 0L},
{MSG_RESTART, m_restart, 0, MAXPARA, TOK_RESTART, 0L},
{MSG_DIE, m_die, 0, MAXPARA, TOK_DIE, 0L},
{MSG_RULES, m_rules, 0, MAXPARA, TOK_RULES, 0L},
{MSG_MAP, m_map, 0, MAXPARA, TOK_MAP, 0L},
{MSG_GLINE, m_gline, 0, MAXPARA, TOK_GLINE, 0L},
{MSG_REMGLINE, m_remgline, 0, MAXPARA, TOK_REMGLINE, 0L},
{MSG_GZLINE, m_gzline, 0, MAXPARA, TOK_GZLINE, 0L},
{MSG_REMGZLINE, m_remgzline, 0, MAXPARA, TOK_REMGZLINE, 0L},
{MSG_DALINFO, m_dalinfo, 0, MAXPARA, TOK_DALINFO, 0L},
{MSG_SVS2MODE, m_svs2mode, 0, MAXPARA, TOK_SVS2MODE, 0L},
{MSG_MKPASSWD, m_mkpasswd, 0, MAXPARA, TOK_MKPASSWD, 0L},
{MSG_ADDLINE, m_addline, 0, 1, TOK_ADDLINE, 0L},
{MSG_ADMINCHAT, m_admins, 0, 1, TOK_ADMINCHAT, 0L},
{MSG_SETHOST, m_sethost, 0, MAXPARA, TOK_SETHOST, 0L},
{MSG_NACHAT, m_nachat, 0, 1, TOK_NACHAT, 0L},
{MSG_SETIDENT, m_setident, 0, MAXPARA, TOK_SETIDENT, 0L},
{MSG_SETNAME, m_setname, 0, 1, TOK_SETNAME, 0L},
{MSG_LAG, m_lag, 0, MAXPARA, TOK_LAG, 0L},
{MSG_SDESC, m_sdesc, 0, 1, TOK_SDESC, 0L},
{MSG_STATSERV, m_statserv, 0, 1, TOK_STATSERV, 0L},
{MSG_KNOCK, m_knock, 0, 2, TOK_KNOCK, 0L},
{MSG_CREDITS, m_credits, 0, MAXPARA, TOK_CREDITS, 0L},
{MSG_LICENSE, m_license, 0, MAXPARA, TOK_LICENSE, 0L},
{MSG_CHGHOST, m_chghost, 0, MAXPARA, TOK_CHGHOST, 0L},
{MSG_RPING, m_rping, 0, MAXPARA, TOK_RPING, 0L},
{MSG_RPONG, m_rpong, 0, MAXPARA, TOK_RPONG, 0L},
{MSG_NETINFO, m_netinfo, 0, MAXPARA, TOK_NETINFO, 0L},
{MSG_SENDUMODE, m_sendumode, 0, MAXPARA, TOK_SENDUMODE, 0L},
{MSG_SMO, m_sendumode, 0, MAXPARA, TOK_SMO, 0L},
{MSG_ADDMOTD, m_addmotd, 0, 1, TOK_ADDMOTD, 0L},
{MSG_ADDOMOTD, m_addomotd, 0, 1, TOK_ADDOMOTD, 0L},
{MSG_SVSMOTD, m_svsmotd, 0, MAXPARA, TOK_SVSMOTD, 0L},
{MSG_OPERMOTD, m_opermotd, 0, MAXPARA, TOK_OPERMOTD, 0L},
{MSG_TSCTL, m_tsctl, 0, MAXPARA, TOK_TSCTL, 0L},
{MSG_SVSJOIN, m_svsjoin, 0, MAXPARA, TOK_SVSJOIN, 0L},
{MSG_SAJOIN, m_sajoin, 0, MAXPARA, TOK_SAJOIN, 0L},
{MSG_SVSPART, m_svspart, 0, MAXPARA, TOK_SVSPART, 0L},
{MSG_SAPART, m_sapart, 0, MAXPARA, TOK_SAPART, 0L},
{MSG_CHGIDENT, m_chgident, 0, MAXPARA, TOK_CHGIDENT, 0L},
{MSG_SWHOIS, m_swhois, 0, MAXPARA, TOK_SWHOIS, 0L},
{MSG_SVSO, m_svso, 0, MAXPARA, TOK_SVSO, 0L},
{MSG_SVSFLINE, m_svsfline, 0, MAXPARA, TOK_SVSFLINE, 0L},
{MSG_TKL, m_tkl, 0, MAXPARA, TOK_TKL, 0L},
{MSG_VHOST, m_vhost, 0, MAXPARA, TOK_VHOST, 0L},
{MSG_BOTMOTD, m_botmotd, 0, MAXPARA, TOK_BOTMOTD, 0L},
{MSG_SJOIN, m_sjoin, 0, MAXPARA, TOK_SJOIN, 0L},
{MSG_HTM, m_htm, 0, MAXPARA, TOK_HTM, 0L},
{MSG_UMODE2, m_umode2, 0, MAXPARA, TOK_UMODE2, 0L},
{MSG_DCCDENY, m_dccdeny, 0, 2, TOK_DCCDENY, 0L},
{MSG_UNDCCDENY, m_undccdeny, 0, MAXPARA, TOK_UNDCCDENY, 0L},
{MSG_CHGNAME, m_chgname, 0, MAXPARA, TOK_CHGNAME, 0L},
{MSG_SVSNAME, m_chgname, 0, MAXPARA, TOK_CHGNAME, 0L},
{MSG_SHUN, m_shun, 0, MAXPARA, TOK_SHUN, 0L},
{MSG_NEWJOIN, m_join, 0, MAXPARA, TOK_JOIN, 0L},
{MSG_BOTSERV, m_botserv, 0, MAXPARA, TOK_BOTSERV,0L},
{TOK_BOTSERV, m_botserv, 0, MAXPARA, TOK_BOTSERV,0L},
{(char *)0, (int (*)())0, 0, 0, 0, 0L}
{ MSG_PRIVATE, m_private, 0, MAXPARA, 1, TOK_PRIVATE, 0L },
{ MSG_NOTICE, m_notice, 0, MAXPARA, 1, TOK_NOTICE, 0L },
{ MSG_MODE, m_mode, 0, MAXPARA, 1, TOK_MODE, 0L },
{ MSG_NICK, m_nick, 0, MAXPARA, 1, TOK_NICK, 0L },
{ MSG_JOIN, m_join, 0, MAXPARA, 1, TOK_JOIN, 0L },
{ MSG_PING, m_ping, 0, MAXPARA, 1, TOK_PING, 0L },
{ MSG_WHOIS, m_whois, 0, MAXPARA, 1, TOK_WHOIS, 0L },
{ MSG_ISON, m_ison, 0, 1, 1, TOK_ISON, 0L },
{ MSG_USER, m_user, 0, MAXPARA, 1, TOK_USER, 0L },
{ MSG_PONG, m_pong, 0, MAXPARA, 1, TOK_PONG, 0L },
{ MSG_PART, m_part, 0, MAXPARA, 1, TOK_PART, 0L },
{ MSG_QUIT, m_quit, 0, MAXPARA, 1, TOK_QUIT, 0L },
{ MSG_WATCH, m_watch, 0, 1, 1, TOK_WATCH, 0L },
{ MSG_USERHOST,m_userhost, 0, 1, 1, TOK_USERHOST,0L },
{ MSG_SVSNICK, m_svsnick, 0, MAXPARA, 1, TOK_SVSNICK, 0L },
{ MSG_SVSMODE, m_svsmode, 0, MAXPARA, 1, TOK_SVSMODE, 0L },
{ MSG_LUSERS, m_lusers, 0, MAXPARA, 1, TOK_LUSERS, 0L },
{ MSG_IDENTIFY,m_identify, 0, 1, 1, TOK_IDENTIFY,0L },
{ MSG_CHANSERV,m_chanserv, 0, 1, 1, TOK_CHANSERV,0L },
{ MSG_TOPIC, m_topic, 0, MAXPARA, 1, TOK_TOPIC, 0L },
{ MSG_INVITE, m_invite, 0, MAXPARA, 1, TOK_INVITE, 0L },
{ MSG_KICK, m_kick, 0, MAXPARA, 1, TOK_KICK, 0L },
{ MSG_WALLOPS, m_wallops, 0, 1, 1, TOK_WALLOPS, 0L },
{ MSG_ERROR, m_error, 0, MAXPARA, 1, TOK_ERROR, 0L },
{ MSG_KILL, m_kill, 0, MAXPARA, 1, TOK_KILL, 0L },
{ MSG_PROTOCTL,m_protoctl, 0, MAXPARA, 1, TOK_PROTOCTL,0L },
{ MSG_AWAY, m_away, 0, MAXPARA, 1, TOK_AWAY, 0L },
{ MSG_SERVER, m_server, 0, MAXPARA, 1, TOK_SERVER, 0L },
{ MSG_SQUIT, m_squit, 0, MAXPARA, 1, TOK_SQUIT, 0L },
{ MSG_WHO, m_who, 0, MAXPARA, 1, TOK_WHO, 0L },
{ MSG_WHOWAS, m_whowas, 0, MAXPARA, 1, TOK_WHOWAS, 0L },
{ MSG_LIST, m_list, 0, MAXPARA, 1, TOK_LIST, 0L },
{ MSG_NAMES, m_names, 0, MAXPARA, 1, TOK_NAMES, 0L },
{ MSG_TRACE, m_trace, 0, MAXPARA, 1, TOK_TRACE, 0L },
{ MSG_PASS, m_pass, 0, MAXPARA, 1, TOK_PASS, 0L },
{ MSG_TIME, m_time, 0, MAXPARA, 1, TOK_TIME, 0L },
{ MSG_OPER, m_oper, 0, MAXPARA, 1, TOK_OPER, 0L },
{ MSG_CONNECT, m_connect, 0, MAXPARA, 1, TOK_CONNECT, 0L },
{ MSG_VERSION, m_version, 0, MAXPARA, 1, TOK_VERSION, 0L },
{ MSG_STATS, m_stats, 0, MAXPARA, 1, TOK_STATS, 0L },
{ MSG_LINKS, m_links, 0, MAXPARA, 1, TOK_LINKS, 0L },
{ MSG_ADMIN, m_admin, 0, MAXPARA, 1, TOK_ADMIN, 0L },
{ MSG_USERS, m_users, 0, MAXPARA, 1, TOK_USERS, 0L },
{ MSG_SAMODE, m_samode, 0, MAXPARA, 1, TOK_SAMODE, 0L },
{ MSG_SVSKILL, m_svskill, 0, MAXPARA, 1, TOK_SVSKILL, 0L },
{ MSG_SVSNOOP, m_svsnoop, 0, MAXPARA, 1, TOK_SVSNOOP, 0L },
{ MSG_CS, m_chanserv, 0, 1, 1, TOK_CHANSERV,0L },
{ MSG_NICKSERV,m_nickserv, 0, 1, 1, TOK_NICKSERV,0L },
{ MSG_NS, m_nickserv, 0, 1, 1, TOK_NICKSERV,0L },
{ MSG_OPERSERV,m_operserv, 0, 1, 1, TOK_OPERSERV,0L },
{ MSG_OS, m_operserv, 0, 1, 1, TOK_OPERSERV,0L },
{ MSG_MEMOSERV,m_memoserv, 0, 1, 1, TOK_MEMOSERV,0L },
{ MSG_MS, m_memoserv, 0, 1, 1, TOK_MEMOSERV,0L },
{ MSG_HELPSERV,m_helpserv, 0, 1, 1, TOK_HELPSERV,0L },
{ MSG_HS, m_helpserv, 0, 1, 1, TOK_HELPSERV,0L },
{ MSG_SERVICES,m_services, 0, 1, 1, TOK_SERVICES,0L },
{ MSG_SUMMON, m_summon, 0, MAXPARA, 1, TOK_SUMMON, 0L },
{ MSG_HELP, m_help, 0, 1, 1, TOK_HELP, 0L },
{ MSG_HELPOP, m_help, 0, 1, 1, TOK_HELP, 0L },
{ MSG_INFO, m_info, 0, MAXPARA, 1, TOK_INFO, 0L },
{ MSG_MOTD, m_motd, 0, MAXPARA, 1, TOK_MOTD, 0L },
{ MSG_CLOSE, m_close, 0, MAXPARA, 1, TOK_CLOSE, 0L },
{ MSG_SILENCE, m_silence, 0, MAXPARA, 1, TOK_SILENCE, 0L },
{ MSG_AKILL, m_akill, 0, MAXPARA, 1, TOK_AKILL, 0L },
{ MSG_SQLINE, m_sqline, 0, MAXPARA, 1, TOK_SQLINE, 0L },
{ MSG_UNSQLINE,m_unsqline, 0, MAXPARA, 1, TOK_UNSQLINE,0L },
{ MSG_KLINE, m_kline, 0, MAXPARA, 1, TOK_KLINE, 0L },
{ MSG_UNKLINE, m_unkline, 0, MAXPARA, 1, TOK_UNKLINE, 0L },
{ MSG_ZLINE, m_zline, 0, MAXPARA, 1, TOK_ZLINE, 0L },
{ MSG_UNZLINE, m_unzline, 0, MAXPARA, 1, TOK_UNZLINE, 0L },
{ MSG_RAKILL, m_rakill, 0, MAXPARA, 1, TOK_RAKILL, 0L },
{ MSG_GNOTICE, m_gnotice, 0, MAXPARA, 1, TOK_GNOTICE, 0L },
{ MSG_GOPER, m_goper, 0, MAXPARA, 1, TOK_GOPER, 0L },
{ MSG_GLOBOPS, m_globops, 0, MAXPARA, 1, TOK_GLOBOPS, 0L },
{ MSG_CHATOPS, m_chatops, 0, 1, 1, TOK_CHATOPS, 0L },
{ MSG_LOCOPS, m_locops, 0, 1, 1, TOK_LOCOPS, 0L },
{ MSG_HASH, m_hash, 0, MAXPARA, 1, TOK_HASH, 0L },
{ MSG_DNS, m_dns, 0, MAXPARA, 1, TOK_DNS, 0L },
{ MSG_REHASH, m_rehash, 0, MAXPARA, 1, TOK_REHASH, 0L },
{ MSG_RESTART, m_restart, 0, MAXPARA, 1, TOK_RESTART, 0L },
{ MSG_DIE, m_die, 0, MAXPARA, 1, TOK_DIE, 0L },
{ MSG_RULES, m_rules, 0, MAXPARA, 1, TOK_RULES, 0L },
{ MSG_MAP, m_map, 0, MAXPARA, 1, TOK_MAP, 0L },
{ MSG_GLINE, m_gline, 0, MAXPARA, 1, TOK_GLINE, 0L },
{ MSG_REMGLINE,m_remgline, 0, MAXPARA, 1, TOK_REMGLINE,0L },
{ MSG_DALINFO, m_dalinfo, 0, MAXPARA, 1, TOK_DALINFO, 0L },
{ MSG_SVS2MODE,m_svs2mode, 0, MAXPARA, 1, TOK_SVS2MODE,0L },
{ MSG_MKPASSWD, m_mkpasswd, 0, MAXPARA, 1, TOK_MKPASSWD, 0L },
{ MSG_ADDLINE, m_addline, 0, 1, 1, TOK_ADDLINE, 0L },
{ MSG_ADMINCHAT, m_admins, 0, 1, 1, TOK_ADMINCHAT, 0L },
{ MSG_SETHOST, m_sethost, 0, MAXPARA, 1, TOK_SETHOST, 0L },
{ MSG_TECHAT, m_techat, 0, 1, 1, TOK_TECHAT, 0L },
{ MSG_NACHAT, m_nachat, 0, 1, 1, TOK_NACHAT, 0L },
{ MSG_SETIDENT, m_setident,0, MAXPARA, 1, TOK_SETIDENT, 0L },
{ MSG_SETNAME, m_setname, 0, 1, 1, TOK_SETNAME, 0L },
{ MSG_LAG, m_lag, 0, MAXPARA, 1, TOK_LAG, 0L },
{ MSG_SDESC, m_sdesc, 0, 1, 1, TOK_SDESC, 0L },
{ MSG_STATSERV,m_statserv, 0, 1, 1, TOK_STATSERV,0L },
{ MSG_KNOCK, m_knock, 0, 2, 1, TOK_KNOCK, 0L },
{ MSG_CREDITS, m_credits, 0, MAXPARA, 1, TOK_CREDITS, 0L },
{ MSG_LICENSE, m_license, 0, MAXPARA, 1, TOK_LICENSE, 0L },
{ MSG_CHGHOST, m_chghost, 0, MAXPARA, 1, TOK_CHGHOST, 0L },
{ MSG_RPING, m_rping, 0, MAXPARA, 1, TOK_RPING, 0L },
{ MSG_RPONG, m_rpong, 0, MAXPARA, 1, TOK_RPONG, 0L },
{ MSG_NETINFO, m_netinfo, 0, MAXPARA, 1, TOK_NETINFO, 0L},
{ MSG_SENDUMODE, m_sendumode, 0, MAXPARA, 1, TOK_SENDUMODE, 0L},
{ MSG_SMO, m_sendumode, 0, MAXPARA, 1, TOK_SMO, 0L},
{ MSG_ADDMOTD, m_addmotd, 0, 1, 1, TOK_ADDMOTD, 0L},
{ MSG_ADDOMOTD, m_addomotd, 0, 1, 1, TOK_ADDOMOTD, 0L},
{ MSG_SVSMOTD, m_svsmotd, 0, MAXPARA, 1, TOK_SVSMOTD, 0L},
{ MSG_OPERMOTD, m_opermotd, 0, MAXPARA, 1, TOK_OPERMOTD, 0L},
{ MSG_TSCTL, m_tsctl, 0, MAXPARA, 1, TOK_TSCTL, 0L},
{ MSG_SVSJOIN, m_svsjoin, 0, MAXPARA, 1, TOK_SVSJOIN, 0L},
{ MSG_SAJOIN, m_sajoin, 0, MAXPARA, 1, TOK_SAJOIN,0L},
{ MSG_SVSPART, m_svspart, 0, MAXPARA, 1, TOK_SVSPART, 0L},
{ MSG_SAPART, m_sapart, 0, MAXPARA, 1, TOK_SAPART,0L},
{ MSG_CHGIDENT, m_chgident,0, MAXPARA, 1, TOK_CHGIDENT,0L},
{ MSG_SWHOIS, m_swhois, 0, MAXPARA, 1, TOK_SWHOIS, 0L},
{ MSG_SVSO, m_svso, 0, MAXPARA, 1, TOK_SVSO, 0L},
{ MSG_SVSFLINE, m_svsfline, 0, MAXPARA,1,TOK_SVSFLINE,0L},
{ MSG_TKL, m_tkl, 0, MAXPARA,1,TOK_TKL,0L},
{ MSG_VHOST, m_vhost, 0, MAXPARA,1,TOK_VHOST,0L},
{ MSG_BOTMOTD, m_botmotd, 0, MAXPARA,1,TOK_BOTMOTD,0L},
{ MSG_SJOIN, m_sjoin, 0, MAXPARA, 1, TOK_SJOIN,0L},
{ MSG_HTM, m_htm, 0, MAXPARA, 1, TOK_HTM, 0L},
{ MSG_UMODE2, m_umode2, 0, MAXPARA, 1, TOK_UMODE2, 0L},
{ MSG_DCCDENY,m_dccdeny, 0, 2, 1, TOK_DCCDENY,0L },
{ MSG_UNDCCDENY,m_undccdeny, 0, MAXPARA, 1, TOK_UNDCCDENY,0L },
{ MSG_CHGNAME, m_chgname, 0, MAXPARA, 1, TOK_CHGNAME, 0L},
{ MSG_SVSNAME, m_chgname, 0, MAXPARA, 1, TOK_CHGNAME, 0L},
{ (char *) 0, (int (*)()) 0 , 0, 0, 0, 0, 0L}
};
#else
+109 -109
View File
@@ -23,10 +23,10 @@
/*
* Define constants based on rfc883
*/
#define PACKETSZ 512 /* maximum packet size */
#define MAXDNAME 256 /* maximum domain name */
#define MAXCDNAME 255 /* maximum compressed domain name */
#define MAXLABEL 63 /* maximum length of domain label */
#define PACKETSZ 512 /* maximum packet size */
#define MAXDNAME 256 /* maximum domain name */
#define MAXCDNAME 255 /* maximum compressed domain name */
#define MAXLABEL 63 /* maximum length of domain label */
/* Number of bytes of fixed size data in query structure */
#define QFIXEDSZ 4
/* number of bytes of fixed size data in resource record */
@@ -40,94 +40,94 @@
/*
* Currently defined opcodes
*/
#define QUERY 0x0 /* standard query */
#define IQUERY 0x1 /* inverse query */
#define STATUS 0x2 /* nameserver status query */
#define QUERY 0x0 /* standard query */
#define IQUERY 0x1 /* inverse query */
#define STATUS 0x2 /* nameserver status query */
/*#define xxx 0x3 /* 0x3 reserved */
/* non standard */
#define UPDATEA 0x9 /* add resource record */
#define UPDATED 0xa /* delete a specific resource record */
#define UPDATEDA 0xb /* delete all nemed resource record */
#define UPDATEM 0xc /* modify a specific resource record */
#define UPDATEMA 0xd /* modify all named resource record */
#define UPDATEA 0x9 /* add resource record */
#define UPDATED 0xa /* delete a specific resource record */
#define UPDATEDA 0xb /* delete all nemed resource record */
#define UPDATEM 0xc /* modify a specific resource record */
#define UPDATEMA 0xd /* modify all named resource record */
#define ZONEINIT 0xe /* initial zone transfer */
#define ZONEREF 0xf /* incremental zone referesh */
#define ZONEINIT 0xe /* initial zone transfer */
#define ZONEREF 0xf /* incremental zone referesh */
/*
* Currently defined response codes
*/
#ifdef NOERROR /* defined by solaris2 in */
#undef NOERROR /* <sys/stream.h> to be -1 */
#ifdef NOERROR /* defined by solaris2 in */
#undef NOERROR /* <sys/stream.h> to be -1 */
#endif
#define NOERROR 0 /* no error */
#define FORMERR 1 /* format error */
#define SERVFAIL 2 /* server failure */
#define NXDOMAIN 3 /* non existent domain */
#define NOTIMP 4 /* not implemented */
#define REFUSED 5 /* query refused */
#define NOERROR 0 /* no error */
#define FORMERR 1 /* format error */
#define SERVFAIL 2 /* server failure */
#define NXDOMAIN 3 /* non existent domain */
#define NOTIMP 4 /* not implemented */
#define REFUSED 5 /* query refused */
/* non standard */
#define NOCHANGE 0xf /* update failed to change db */
#define NOCHANGE 0xf /* update failed to change db */
/*
* Type values for resources and queries
*/
#define T_A 1 /* host address */
#define T_NS 2 /* authoritative server */
#define T_MD 3 /* mail destination */
#define T_MF 4 /* mail forwarder */
#define T_CNAME 5 /* connonical name */
#define T_SOA 6 /* start of authority zone */
#define T_MB 7 /* mailbox domain name */
#define T_MG 8 /* mail group member */
#define T_MR 9 /* mail rename name */
#define T_NULL 10 /* null resource record */
#define T_WKS 11 /* well known service */
#define T_PTR 12 /* domain name pointer */
#define T_HINFO 13 /* host information */
#define T_MINFO 14 /* mailbox information */
#define T_MX 15 /* mail routing information */
#define T_TXT 16 /* text strings */
#define T_RP 17 /* responsible person */
#define T_AFSDB 18 /* AFS cell database */
#define T_X25 19 /* X_25 calling address */
#define T_ISDN 20 /* ISDN calling address */
#define T_RT 21 /* router */
#define T_NSAP 22 /* NSAP address */
#define T_NSAP_PTR 23 /* reverse NSAP lookup (deprecated) */
#define T_SIG 24 /* security signature */
#define T_KEY 25 /* security key */
#define T_PX 26 /* X.400 mail mapping */
#define T_GPOS 27 /* geographical position (withdrawn) */
#define T_AAAA 28 /* IP6 Address */
#define T_LOC 29 /* Location Information */
#define T_NXT 30 /* Next Valid Name in Zone */
#define T_EID 31 /* Endpoint identifier */
#define T_NIMLOC 32 /* Nimrod locator */
#define T_SRV 33 /* Server selection */
#define T_ATMA 34 /* ATM Address */
#define T_NAPTR 35 /* Naming Authority PoinTeR */
#define T_A 1 /* host address */
#define T_NS 2 /* authoritative server */
#define T_MD 3 /* mail destination */
#define T_MF 4 /* mail forwarder */
#define T_CNAME 5 /* connonical name */
#define T_SOA 6 /* start of authority zone */
#define T_MB 7 /* mailbox domain name */
#define T_MG 8 /* mail group member */
#define T_MR 9 /* mail rename name */
#define T_NULL 10 /* null resource record */
#define T_WKS 11 /* well known service */
#define T_PTR 12 /* domain name pointer */
#define T_HINFO 13 /* host information */
#define T_MINFO 14 /* mailbox information */
#define T_MX 15 /* mail routing information */
#define T_TXT 16 /* text strings */
#define T_RP 17 /* responsible person */
#define T_AFSDB 18 /* AFS cell database */
#define T_X25 19 /* X_25 calling address */
#define T_ISDN 20 /* ISDN calling address */
#define T_RT 21 /* router */
#define T_NSAP 22 /* NSAP address */
#define T_NSAP_PTR 23 /* reverse NSAP lookup (deprecated) */
#define T_SIG 24 /* security signature */
#define T_KEY 25 /* security key */
#define T_PX 26 /* X.400 mail mapping */
#define T_GPOS 27 /* geographical position (withdrawn) */
#define T_AAAA 28 /* IP6 Address */
#define T_LOC 29 /* Location Information */
#define T_NXT 30 /* Next Valid Name in Zone */
#define T_EID 31 /* Endpoint identifier */
#define T_NIMLOC 32 /* Nimrod locator */
#define T_SRV 33 /* Server selection */
#define T_ATMA 34 /* ATM Address */
#define T_NAPTR 35 /* Naming Authority PoinTeR */
/* non standard */
#define T_UINFO 100 /* user (finger) information */
#define T_UID 101 /* user ID */
#define T_GID 102 /* group ID */
#define T_UNSPEC 103 /* Unspecified format (binary data) */
#define T_UINFO 100 /* user (finger) information */
#define T_UID 101 /* user ID */
#define T_GID 102 /* group ID */
#define T_UNSPEC 103 /* Unspecified format (binary data) */
/* Query type values which do not appear in resource records */
#define T_AXFR 252 /* transfer zone of authority */
#define T_MAILB 253 /* transfer mailbox records */
#define T_MAILA 254 /* transfer mail agent records */
#define T_ANY 255 /* wildcard match */
#define T_AXFR 252 /* transfer zone of authority */
#define T_MAILB 253 /* transfer mailbox records */
#define T_MAILA 254 /* transfer mail agent records */
#define T_ANY 255 /* wildcard match */
/*
* Values for class field
*/
#define C_IN 1 /* the arpa internet */
#define C_CHAOS 3 /* for chaos net at MIT */
#define C_HS 4 /* for Hesiod name server at MIT */
#define C_IN 1 /* the arpa internet */
#define C_CHAOS 3 /* for chaos net at MIT */
#define C_HS 4 /* for Hesiod name server at MIT */
/* Query class values which do not appear in resource records */
#define C_ANY 255 /* wildcard match */
#define C_ANY 255 /* wildcard match */
/*
* Status return codes for T_UNSPEC conversion routines
@@ -161,7 +161,7 @@
#ifndef BYTE_ORDER
/* you must determine what the correct bit order is for your compiler */
UNDEFINED_BIT_ORDER;
UNDEFINED_BIT_ORDER;
#endif
/*
* Structure for query header, the order of the fields is machine and
@@ -171,38 +171,38 @@ UNDEFINED_BIT_ORDER;
*/
typedef struct {
u_short id; /* query identification number */
u_short id; /* query identification number */
#if BYTE_ORDER == BIG_ENDIAN
/* fields in third byte */
u_char qr:1; /* response flag */
u_char opcode:4; /* purpose of message */
u_char aa:1; /* authoritive answer */
u_char tc:1; /* truncated message */
u_char rd:1; /* recursion desired */
/* fields in fourth byte */
u_char ra:1; /* recursion available */
u_char pr:1; /* primary server required (non standard) */
u_char unused:2; /* unused bits */
u_char rcode:4; /* response code */
/* fields in third byte */
u_char qr:1; /* response flag */
u_char opcode:4; /* purpose of message */
u_char aa:1; /* authoritive answer */
u_char tc:1; /* truncated message */
u_char rd:1; /* recursion desired */
/* fields in fourth byte */
u_char ra:1; /* recursion available */
u_char pr:1; /* primary server required (non standard) */
u_char unused:2; /* unused bits */
u_char rcode:4; /* response code */
#endif
#if BYTE_ORDER == LITTLE_ENDIAN || BYTE_ORDER == PDP_ENDIAN
/* fields in third byte */
u_char rd:1; /* recursion desired */
u_char tc:1; /* truncated message */
u_char aa:1; /* authoritive answer */
u_char opcode:4; /* purpose of message */
u_char qr:1; /* response flag */
/* fields in fourth byte */
u_char rcode:4; /* response code */
u_char unused:2; /* unused bits */
u_char pr:1; /* primary server required (non standard) */
u_char ra:1; /* recursion available */
/* fields in third byte */
u_char rd:1; /* recursion desired */
u_char tc:1; /* truncated message */
u_char aa:1; /* authoritive answer */
u_char opcode:4; /* purpose of message */
u_char qr:1; /* response flag */
/* fields in fourth byte */
u_char rcode:4; /* response code */
u_char unused:2; /* unused bits */
u_char pr:1; /* primary server required (non standard) */
u_char ra:1; /* recursion available */
#endif
/* remaining bytes */
u_short qdcount; /* number of question entries */
u_short ancount; /* number of answer entries */
u_short nscount; /* number of authority entries */
u_short arcount; /* number of resource entries */
/* remaining bytes */
u_short qdcount; /* number of question entries */
u_short ancount; /* number of answer entries */
u_short nscount; /* number of authority entries */
u_short arcount; /* number of resource entries */
} HEADER;
/*
@@ -214,23 +214,23 @@ typedef struct {
* Structure for passing resource records around.
*/
struct rrec {
short r_zone; /* zone number */
short r_class; /* class number */
short r_type; /* type number */
short r_zone; /* zone number */
short r_class; /* class number */
short r_type; /* type number */
#ifdef __alpha
u_int r_ttl; /* time to live */
u_int r_ttl; /* time to live */
#else
u_long r_ttl; /* time to live */
u_long r_ttl; /* time to live */
#endif
int r_size; /* size of data area */
char *r_data; /* pointer to data */
int r_size; /* size of data area */
char *r_data; /* pointer to data */
};
extern u_short _getshort();
extern u_short _getshort();
#ifdef __alpha
extern u_int _getlong();
extern u_int _getlong();
#else
extern u_long _getlong();
extern u_long _getlong();
#endif
/*
+6 -13
View File
@@ -20,6 +20,8 @@
*/
/*
* -- Potvin -- Feb 20/98
*
* Added numerics 600-799 as numeric_replies2[], we ran out
*/
@@ -76,16 +78,12 @@
#define ERR_NOLOGIN 444
#define ERR_SUMMONDISABLED 445
#define ERR_USERSDISABLED 446
#define ERR_NONICKCHANGE 447
#define ERR_NOTREGISTERED 451
#define ERR_HOSTILENAME 455
#ifdef ENABLE_INVISOPER
#define ERR_NOHIDING 459
#endif
#define ERR_NOHIDING 459
#define ERR_NOTFORHALFOPS 460
#define ERR_NEEDMOREPARAMS 461
#define ERR_ALREADYREGISTRED 462
@@ -145,7 +143,7 @@
#define RPL_WHOISREGNICK 307
#define RPL_RULESSTART 308
#define RPL_ENDOFRULES 309
#define RPL_WHOISHELPOP 310 /* -Donwulff */
#define RPL_WHOISHELPOP 310 /* -Donwulff */
#define RPL_WHOISUSER 311
#define RPL_WHOISSERVER 312
@@ -155,7 +153,7 @@
/* rpl_endofwho below (315) */
#define RPL_ENDOFWHOWAS 369
#define RPL_WHOISCHANOP 316 /* redundant and not needed but reserved */
#define RPL_WHOISCHANOP 316 /* redundant and not needed but reserved */
#define RPL_WHOISIDLE 317
#define RPL_ENDOFWHOIS 318
@@ -236,8 +234,6 @@
#define RPL_STATSLINKINFO 211
#define RPL_STATSCOMMANDS 212
#define RPL_STATSCLINE 213
#define RPL_STATSOLDNLINE 214
#define RPL_STATSILINE 215
#define RPL_STATSKLINE 216
#define RPL_STATSQLINE 217
@@ -252,7 +248,6 @@
#define RPL_STATSTLINE 224
#define RPL_STATSELINE 225
#define RPL_STATSNLINE 226
#define RPL_STATSVLINE 227
#define RPL_SERVICEINFO 231
#define RPL_RULES 232
#define RPL_SERVICE 233
@@ -265,7 +260,7 @@
#define RPL_STATSHLINE 244
#define RPL_STATSSLINE 245
#define RPL_STATSXLINE 247
#define RPL_STATSULINE 248
#define RPL_STATSULINE 248
#define RPL_STATSDEBUG 249
#define RPL_STATSCONN 250
@@ -317,5 +312,3 @@
#define RPL_DUMPING 640
#define RPL_DUMPRPL 641
#define RPL_EODUMP 642
#define ERR_NUMERICERR 999
-99
View File
@@ -1,99 +0,0 @@
/************************************************************************
* Unreal Internet Relay Chat Daemon, include/proto.h
* (C) Dominick Meglio <codemastr@unrealircd.com> 2000
*
* See file AUTHORS in IRC package for additional names of
* the programmers.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 1, or (at your option)
* any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
#ifndef proto_h
#define proto_h
/* badwords.c */
int loadbadwords_message PROTO((char *wordfile));
int loadbadwords_channel PROTO((char *wordfile));
/* channel.c */
int sendmodeto_one PROTO((aClient *cptr, char *from, char *name, char *mode, char *param, TS creationtime));
void make_cmodestr PROTO((void));
/* dynconf.c */
int load_conf PROTO((char *filename, int type));
int load_conf2 PROTO((FILE * conf, char *filename, int type));
int load_conf3 PROTO((FILE * conf, char *filename, int type));
void init_dynconf PROTO((void));
void doneconf PROTO((int type));
/* lusers.c */
void init_ircstats PROTO((void));
/* match.c */
char *collapse PROTO((char *pattern));
/* scache.c */
void clear_scache_hash_table PROTO((void));
/* send.c */
void sendto_one PROTO((aClient *, char *, ...));
void sendto_chanops_butone PROTO((aClient *one, aChannel *chptr, char *pattern, ...));
void sendto_realops PROTO((char *pattern, ...));
void sendto_serv_butone_token PROTO((aClient *one, char *prefix, char *command, char *token, char *pattern, ...));
void sendto_serv_butone_token_opt PROTO((aClient *one, int opt, char *prefix, char *command, char *token, char *pattern, ...));
void sendto_channel_ntadmins PROTO((aClient *from, aChannel *chptr, char *pattern, ...));
/* support.c */
char *my_itoa PROTO((int i));
/* s_conf.c */
int find_nline PROTO((aClient *cptr));
/* s_extra.c */
int channel_canjoin PROTO((aClient *sptr, char *name));
int dcc_loadconf PROTO((void));
int cr_loadconf PROTO((void));
int vhost_loadconf PROTO((void));
/* s_kline.c */
int find_tkline_match PROTO((aClient *cptr, int xx));
void tkl_check_expire PROTO((void));
int tkl_sweep PROTO((void));
/* s_serv.c */
void load_tunefile PROTO((void));
void save_tunefile PROTO((void));
aMotd *read_botmotd PROTO((char *filename));
aMotd *read_rules PROTO((char *filename));
aMotd *read_opermotd PROTO((char *filename));
aMotd *read_motd PROTO((char *filename));
aMotd *read_svsmotd PROTO((char *filename));
void read_tlines PROTO((void));
/* s_unreal.c */
void unrealmanual PROTO((void));
/* s_user.c */
int check_for_target_limit PROTO((aClient *sptr, void *target, const char *name));
void make_umodestr PROTO((void));
/* webtv.c */
int is_halfop PROTO((aClient *cptr, aChannel *chptr));
int is_chanprot PROTO((aClient *cptr, aChannel *chptr));
char *convert_time PROTO((time_t ltime));
char *get_mode_str PROTO((aClient *acptr));
/* whowas.c */
void initwhowas PROTO((void));
#endif /* proto_h */
-14
View File
@@ -1,14 +0,0 @@
/*
* Relinfo.h
*
* If anyone makes another release or a hybrid of Unreal
* PLEASE CHANGE RELEASEID2 to the current time(NULL) (date +%s)
* if another hybrid please change releaseprefix
* if a unreal special edtion please select an IDTAG for it
* - Stskeeps -
*/
#include "stamp.h"
#define RELEASEPREFIX "unrealircd"
#define RELEASEIDTAG "000"
#define RELEASEID RELEASEPREFIX "[" RELEASESTUFF "(" RELEASEID2 "/" RELEASEIDTAG ")]"
+36 -36
View File
@@ -17,54 +17,54 @@
#define AR_TTL 600 /* TTL in seconds for dns cache entries */
struct hent {
char *h_name; /* official name of host */
char *h_aliases[MAXALIASES]; /* alias list */
int h_addrtype; /* host address type */
int h_length; /* length of address */
struct hent {
char *h_name; /* official name of host */
char *h_aliases[MAXALIASES]; /* alias list */
int h_addrtype; /* host address type */
int h_length; /* length of address */
/* list of addresses from name server */
struct IN_ADDR h_addr_list[MAXADDRS];
struct IN_ADDR h_addr_list[MAXADDRS];
#define h_addr h_addr_list[0] /* address, for backward compatiblity */
};
typedef struct reslist {
int id;
int sent; /* number of requests sent */
int srch;
time_t ttl;
char type;
char retries; /* retry counter */
char sends; /* number of sends (>1 means resent) */
char resend; /* send flag. 0 == dont resend */
time_t sentat;
time_t timeout;
struct IN_ADDR addr;
char *name;
struct reslist *next;
Link cinfo;
typedef struct reslist {
int id;
int sent; /* number of requests sent */
int srch;
time_t ttl;
char type;
char retries; /* retry counter */
char sends; /* number of sends (>1 means resent) */
char resend; /* send flag. 0 == dont resend */
time_t sentat;
time_t timeout;
struct IN_ADDR addr;
char *name;
struct reslist *next;
Link cinfo;
#ifndef _WIN32
struct hent he;
struct hent he;
#else
struct hostent *he;
char locked;
struct hostent *he;
char locked;
#endif
} ResRQ;
} ResRQ;
typedef struct cache {
time_t expireat;
time_t ttl;
typedef struct cache {
time_t expireat;
time_t ttl;
#ifndef _WIN32
struct hostent he;
struct hostent he;
#else
struct hostent *he;
struct hostent *he;
#endif
struct cache *hname_next, *hnum_next, *list_next;
} aCache;
struct cache *hname_next, *hnum_next, *list_next;
} aCache;
typedef struct cachetable {
aCache *num_list;
aCache *name_list;
} CacheTable;
typedef struct cachetable {
aCache *num_list;
aCache *name_list;
} CacheTable;
#define ARES_CACSIZE 101
+27 -30
View File
@@ -33,25 +33,25 @@
/*
* Global defines and variables for resolver stub.
*/
#define MAXNS 3 /* max # name servers we'll track */
#define MAXDFLSRCH 3 /* # default domain levels to try */
#define MAXDNSRCH 6 /* max # domains in search path */
#define LOCALDOMAINPARTS 2 /* min levels in name that is "local" */
#define MAXSERVICES 2 /* max # of services to search */
#define MAXNS 3 /* max # name servers we'll track */
#define MAXDFLSRCH 3 /* # default domain levels to try */
#define MAXDNSRCH 6 /* max # domains in search path */
#define LOCALDOMAINPARTS 2 /* min levels in name that is "local" */
#define MAXSERVICES 2 /* max # of services to search */
#define RES_TIMEOUT 5 /* min. seconds between retries */
#define RES_TIMEOUT 5 /* min. seconds between retries */
struct state {
int retrans; /* retransmition time interval */
int retry; /* number of times to retransmit */
long options; /* option flags - see below. */
int nscount; /* number of name servers */
struct SOCKADDR_IN nsaddr_list[MAXNS]; /* address of name server */
#define nsaddr nsaddr_list[0] /* for backward compatibility */
unsigned short id; /* current packet id */
char defdname[MAXDNAME]; /* default domain */
char *dnsrch[MAXDNSRCH + 1]; /* components of domain to search */
unsigned short order[MAXSERVICES + 1]; /* search service order */
int retrans; /* retransmition time interval */
int retry; /* number of times to retransmit */
long options; /* option flags - see below. */
int nscount; /* number of name servers */
struct SOCKADDR_IN nsaddr_list[MAXNS]; /* address of name server */
#define nsaddr nsaddr_list[0] /* for backward compatibility */
unsigned short id; /* current packet id */
char defdname[MAXDNAME]; /* default domain */
char *dnsrch[MAXDNSRCH+1]; /* components of domain to search */
unsigned short order[MAXSERVICES+1]; /* search service order */
};
#define RES_SERVICE_NONE 0
@@ -61,22 +61,19 @@ struct state {
/*
* Resolver options
*/
#define RES_INIT 0x0001 /* address initialized */
#define RES_DEBUG 0x0002 /* print debug messages */
#define RES_AAONLY 0x0004 /* authoritative answers only */
#define RES_USEVC 0x0008 /* use virtual circuit */
#define RES_PRIMARY 0x0010 /* query primary server only */
#define RES_IGNTC 0x0020 /* ignore trucation errors */
#define RES_RECURSE 0x0040 /* recursion desired */
#define RES_DEFNAMES 0x0080 /* use default domain name */
#define RES_STAYOPEN 0x0100 /* Keep TCP socket open */
#define RES_DNSRCH 0x0200 /* search up local domain tree */
#define RES_INIT 0x0001 /* address initialized */
#define RES_DEBUG 0x0002 /* print debug messages */
#define RES_AAONLY 0x0004 /* authoritative answers only */
#define RES_USEVC 0x0008 /* use virtual circuit */
#define RES_PRIMARY 0x0010 /* query primary server only */
#define RES_IGNTC 0x0020 /* ignore trucation errors */
#define RES_RECURSE 0x0040 /* recursion desired */
#define RES_DEFNAMES 0x0080 /* use default domain name */
#define RES_STAYOPEN 0x0100 /* Keep TCP socket open */
#define RES_DNSRCH 0x0200 /* search up local domain tree */
#define RES_DEFAULT (RES_RECURSE | RES_DEFNAMES | RES_DNSRCH)
#if ((__GNU_LIBRARY__ == 6) && (__GLIBC__ >=2) && (__GLIBC_MINOR__ >= 2))
#define res_init __res_init
#endif
extern struct state _res;
extern char *p_cdname(), *p_rr(), *p_type(), *p_class(), *p_time();
+26 -12
View File
@@ -21,31 +21,45 @@
*/
typedef struct SynchList aSynchList;
typedef struct SynchList aSynchList;
/* SJOIN synch structure */
struct SynchList {
aClient *cptr;
long setflags;
aSynchList *next, *prev;
char nick[NICKLEN];
int deop;
int devoice;
int dehalf;
int deown;
int deprot;
int op;
int voice;
int half;
int own;
int prot;
aSynchList *next, *prev;
};
aSynchList *SJSynchList = NULL;
aSynchList *make_synchlist()
{
Reg1 aSynchList *synchptr;
Reg1 aSynchList *synchptr;
synchptr = (aSynchList *) MyMalloc(sizeof(aSynchList));
synchptr->cptr = NULL;
synchptr->setflags = 0;
synchptr->prev = synchptr->next = NULL;
synchptr = (aSynchList *) MyMalloc(sizeof(aSynchList));
return synchptr;
synchptr->nick[0] = 0;
synchptr->deop = synchptr->dehalf = synchptr->deown = synchptr->deprot = 0;
synchptr->devoice = 0;
synchptr->op = 0;
synchptr->voice = synchptr->half = synchptr->own = synchptr->prot = 0;
synchptr->prev = synchptr->next = NULL;
return synchptr;
}
void free_synchlist(synchptr)
aSynchList *synchptr;
aSynchList *synchptr;
{
MyFree((char *)synchptr);
MyFree((char *) synchptr);
}
+2 -5
View File
@@ -1,4 +1,3 @@
/************************************************************************
* Unreal Internet Relay Chat Daemon, include/sock.h
* Copyright (C) 1990 Jarkko Oikarinen and
@@ -23,9 +22,6 @@
* $Id$
*
* $Log$
* Revision 1.1.1.1.6.1 2000/05/28 08:55:24 cmunk
* Import of Unreal3.1-beta3
*
* Revision 1.2 2000/03/02 21:22:37 stskeeps
* ...........
*
@@ -77,5 +73,6 @@
#endif
#ifdef RCVTIMEO
#define SO_RCVTIMEO 0x1006 /* receive timeout */
#define SO_RCVTIMEO 0x1006 /* receive timeout */
#endif
-10
View File
@@ -1,10 +0,0 @@
/* Make these what you want for cert & key files */
#define CERTF "server.cert.pem"
#define KEYF "server.key.pem"
extern SSL_CTX * ctx;
extern SSL_METHOD *meth;
extern void init_ssl();
extern int ssl_handshake(aClient *); /* Handshake the accpeted con.*/
extern int ssl_client_handshake(aClient *); /* and the initiated con.*/
+2 -1
View File
@@ -1,3 +1,4 @@
/* Auto created release stamping */
#define RELEASEID2 "961323751"
#define RELEASEID2 "959378517"
#define RELEASESTUFF "draconic"
+443 -482
View File
File diff suppressed because it is too large Load Diff
+25 -26
View File
@@ -53,9 +53,7 @@
# include <string.h>
# endif
#endif
#ifdef SSL
#include <openssl/ssl.h>
#endif
#ifndef GOT_STRCASECMP
#define strcasecmp mycmp
#define strncasecmp myncmp
@@ -86,8 +84,7 @@ extern char *rindex PROTO((char *, char));
#else
#include <sys/time.h>
#endif
#ifndef DMALLOC
#if !defined(DEBUGMODE)
#if !defined(DEBUGMODE)
# ifndef _WIN32
# define MyFree(x) if ((x) != NULL) free(x)
# else
@@ -96,15 +93,14 @@ extern char *rindex PROTO((char *, char));
#else
#define free(x) MyFree(x)
#endif
#endif
#ifdef NEXT
#define VOIDSIG int /* whether signal() returns int of void */
#define VOIDSIG int /* whether signal() returns int of void */
#else
#define VOIDSIG void /* whether signal() returns int of void */
#define VOIDSIG void /* whether signal() returns int of void */
#endif
#ifdef _SOLARIS
#define OPT_TYPE char /* opt type for get/setsockopt */
#define OPT_TYPE char /* opt type for get/setsockopt */
#else
#define OPT_TYPE void
#endif
@@ -117,22 +113,30 @@ extern char *rindex PROTO((char *, char));
#endif
#ifndef _WIN32
extern VOIDSIG dummy();
extern VOIDSIG dummy();
#endif
#ifdef DYNIXPTX
#define NO_U_TYPES
typedef unsigned short n_short; /* short as received from the net */
typedef unsigned long n_long; /* long as received from the net */
typedef unsigned long n_time; /* ms since 00:00 GMT, byte rev */
#define _NETINET_IN_SYSTM_INCLUDED
#endif
#ifdef NO_U_TYPES
typedef unsigned char u_char;
typedef unsigned short u_short;
typedef unsigned long u_long;
typedef unsigned int u_int;
typedef unsigned char u_char;
typedef unsigned short u_short;
typedef unsigned long u_long;
typedef unsigned int u_int;
#endif
#ifdef _WIN32
#define MYOSNAME "Win32"
#endif
#ifdef DEBUGMODE
// #define ircsprintf sprintf
//#define ircvsprintf vsprintf
#define ircsprintf sprintf
#define ircvsprintf vsprintf
#endif
@@ -143,11 +147,8 @@ typedef unsigned int u_int;
#ifdef INET6
# define AND16(x) ((x)[0]&(x)[1]&(x)[2]&(x)[3]&(x)[4]&(x)[5]&(x)[6]&(x)[7]&(x)[8]&(x)[9]&(x)[10]&(x)[11]&(x)[12]&(x)[13]&(x)[14]&(x)[15])
static unsigned char minus_one[] =
{ 255, 255, 255, 255, 255, 255, 255, 255, 255,
255, 255, 255, 255, 255, 255, 255, 0
};
static unsigned char minus_one[]={ 255, 255, 255, 255, 255, 255, 255, 255, 255,
255, 255, 255, 255, 255, 255, 255, 0};
# define WHOSTENTP(x) ((x)[0]|(x)[1]|(x)[2]|(x)[3]|(x)[4]|(x)[5]|(x)[6]|(x)[7]|(x)[8]|(x)[9]|(x)[10]|(x)[11]|(x)[12]|(x)[13]|(x)[14]|(x)[15])
# define AFINET AF_INET6
@@ -174,10 +175,8 @@ char mydummy2[MYDUMMY_SIZE];
# endif
# if defined(linux)
static const struct in6_addr in6addr_any = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0
};
static const struct in6_addr in6addr_any={ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0};
# endif
# define IRCDCONF_DELIMITER '%'
@@ -195,5 +194,5 @@ static const struct in6_addr in6addr_any = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
# define WHOSTENTP(x) (x)
# define IRCDCONF_DELIMITER ':'
#endif
#endif /* __sys_include__ */
+11 -11
View File
@@ -30,25 +30,25 @@
#endif
struct current_load_struct {
u_short client_count, local_count, conn_count;
u_long entries;
};
u_short client_count, local_count, conn_count;
u_long entries;
};
extern struct current_load_struct current_load_data;
struct load_entry {
struct load_entry *prev;
u_short client_count, local_count, conn_count;
struct load_entry *prev;
u_short client_count, local_count, conn_count;
#ifdef DEBUGMODE
u_short cpu_usage;
u_short cpu_usage;
#endif
long time_incr;
long time_incr;
};
extern struct load_entry *load_list_head, *load_list_tail,
*load_free_head, *load_free_tail;
*load_free_head, *load_free_tail;
extern void initload PROTO((void));
extern void update_load PROTO((void));
extern void calc_load PROTO((aClient *, char *));
extern void initload PROTO ((void));
extern void update_load PROTO ((void));
extern void calc_load PROTO ((aClient *, char *));
+16 -14
View File
@@ -16,32 +16,34 @@
#else
#define DEBUGMODESET ""
#endif
/**/
/**/
#ifdef DEBUG
#define DEBUGSET "(Debug)"
#else
#define DEBUGSET ""
#endif
/**/
#endif
/**/
#define COMPILEINFO DEBUGMODESET DEBUGSET
/*
* Version Unreal3.1.4-Meadows
* Version Unreal3.1
*/
#define UnrealProtocol 2302
#define UnrealProtocol 2301
#define PATCH1 "3"
#define PATCH2 ".1"
#define PATCH3 ".4"
#define PATCH4 "-Meadows"
#define PATCH5 "[beta3]"
#define PATCH3 "-Silverheart"
#define PATCH4 "(beta3)"
#define PATCH5 ""
#define PATCH6 ""
#define PATCH7 ""
#define PATCH8 COMPILEINFO
#ifdef _WIN32
#define PATCH9 "+win32"
#else
#define PATCH9 ""
#ifndef _WIN32
#define BASE_VERSION "Unreal"
#else
#define BASE_VERSION "UnrealIRCd/32 v"
#endif
/* release header */
#define Rh BASE_VERSION
#define VERSIONONLY PATCH1 PATCH2 PATCH3 PATCH4 PATCH5 PATCH6 PATCH7
#endif /* __versioninclude */
#endif /* __versioninclude */
+11 -11
View File
@@ -39,12 +39,12 @@
** WHOWAS structure moved here from whowas.c
*/
typedef struct aname {
anUser *ww_user;
aClient *ww_online;
time_t ww_logout;
long ww_umodes;
char ww_nick[NICKLEN + 1];
char ww_info[REALLEN + 1];
anUser *ww_user;
aClient *ww_online;
time_t ww_logout;
long ww_umodes;
char ww_nick[NICKLEN+1];
char ww_info[REALLEN+1];
} aName;
@@ -55,7 +55,7 @@ typedef struct aname {
** Client must be a fully registered user (specifically,
** the user structure must have been allocated).
*/
void add_history(aClient *, int);
void add_history (aClient *, int);
/*
** off_history
@@ -64,7 +64,7 @@ void add_history(aClient *, int);
** structures and it must know when they cease to exist. This
** also implicitly calls AddHistory.
*/
void off_history(aClient *);
void off_history (aClient *);
/*
** get_history
@@ -72,15 +72,15 @@ void off_history(aClient *);
** nickname within the timelimit. Returns NULL, if no
** one found...
*/
aClient *get_history(char *, time_t);
aClient *get_history (char *, time_t);
/* Nick name */
/* Time limit in seconds */
int m_whowas(aClient *, aClient *, int, char *[]);
int m_whowas (aClient *, aClient *, int, char *[]);
/*
** for debugging...counts related structures stored in whowas array.
*/
void count_whowas_memory(int *, u_long *);
void count_whowas_memory (int *, u_long *);
#endif /* __whowas_include__ */
-25
View File
@@ -1,25 +0,0 @@
/*
* VERSION: Unreal3.1.4 Meadows
* DATE: Sat Jun 15 13:43:51 EST 2002
* OS: Win-32
*
*/
#define DPATH "."
#define SPATH "."
#define DOMAINNAME "irc.net"
#define LISTEN_SIZE 5
#define MAXSENDQLENGTH 3000000
#define BUFFERPOOL (9 * MAXSENDQLENGTH)
#define MAXCONNECTIONS 1024
#define NICKNAMEHISTORYLENGTH 2000
#undef CRYPT_OPER_PASSWORD
#undef USE_SSL
#undef CRYPT_LINK_PASSWORD
#undef CRYPT_ILINE_PASSWORD
#undef CRYPT_XLINE_PASSWORD
#undef ENABLE_INVISOPER
#define HUB 1
#define HAVE_REGEX 1
#define NOSPOOF 1
#define GLIBC2_x
-81
View File
@@ -1,81 +0,0 @@
#!/bin/sh
# IRCD Script v3.0
# $Id$
#
DIR=`pwd`
DATE=`date +"%a, %b %e %Y"`
TIME=`date +"%H:%M:%S %Z"`
IRCDPID="ircd.pid"
BACKUP="ircd.bak"
if [ -r $IRCDPID ]; then
mv -f $IRCDPID $BACKUP
src/ircd
sleep 1
if [ ! -r $IRCDPID ]; then
mv -f $BACKUP $IRCDPID
echo "|--------------------------------------------|"
echo "| **** ERROR **** |"
echo "| Possible problems: |"
echo "| (1) IRCd already running. |"
echo "| (2) The correct IP was not placed in the |"
echo "| M:line of the ircd.conf. |"
echo "| (3) DPATH or SPATH's are incorrect. Run |"
echo "| ./Config to correct that. |"
echo "| (4) Someone else is running an ircd on the |"
echo "| default port you chose in ircd.conf. |"
echo "| |"
echo "| see ircd.log for more information |"
echo "|********************************************|"
echo "| If you can't get Unreal IRCd to work - go |"
echo "| to /server irc.flirt.org and join |"
echo "| #UnrealIRCd or mail us at |"
echo "| unreal-support@lists.sourceforge.net |"
echo "| |"
echo "|--------------------------------------------|"
exit
else
echo "|----------------------------------------"
echo "| UnrealIRCD successfully loaded."
echo "| Directory: $DIR"
echo "| Date: $DATE"
echo "| Time: $TIME"
PID=`cat ircd.pid`
echo "| Process ID: $PID"
echo "|----------------------------------------"
rm -f $BACKUP
fi
else
src/ircd
sleep 2
if [ ! -r $IRCDPID ]; then
echo "|--------------------------------------------|"
echo "| **** ERROR **** |"
echo "| Possible problems: |"
echo "| (1) IRCd already running. |"
echo "| (2) The correct IP was not placed in the |"
echo "| M:line of the ircd.conf. |"
echo "| (3) DPATH or SPATH's are incorrect. Run |"
echo "| ./Config to correct that. |"
echo "| (4) Someone else is running an ircd on the |"
echo "| default port you chose in ircd.conf. |"
echo "|********************************************|"
echo "| If you can't get Unreal IRCd to work - go |"
echo "| to /server irc.flirt.org and join |"
echo "| #UnrealIRCd or mail us at |"
echo "| unreal-support@lists.sourceforge.net |"
echo "| |"
echo "|--------------------------------------------|"
exit
else
echo "|----------------------------------------"
echo "| UnrealIRCD successfully loaded."
echo "| Directory: $DIR"
echo "| Date: $DATE"
echo "| Time: $TIME"
PID=`cat ircd.pid`
echo "| Process ID: $PID"
echo "|----------------------------------------"
fi
fi
-1
View File
@@ -1 +0,0 @@
0,10,20,30,40,50 * * * * /home/mydir-to/ircdcron/ircdchk >/dev/null 2>&1
-29
View File
@@ -1,29 +0,0 @@
#!/bin/sh
# Kill Script v2.0
# Created by Potvin
# $Id$
DIR=`pwd`
DATE=`date +"%a, %b %e %Y"`
TIME=`date +"%H:%M:%S %Z"`
IRCDPID="ircd.pid"
if [ ! -r $IRCDPID ]; then
clear
echo "|--------------------------------------------|"
echo "| **** ERROR **** |"
echo "| Possible problems: |"
echo "| (1) $IRCDPID not found |"
echo "| (2) The IRCd is not running |"
echo "|--------------------------------------------|"
else
PID=`cat $IRCDPID`
kill -9 $PID >/dev/null 2>&1
rm -f $IRCDPID
echo "|----------------------------------------"
echo "| UnrealIRCD successfully shutdown."
echo "| Directory: $DIR"
echo "| Date: $DATE"
echo "| Time: $TIME"
echo "| Process ID: $PID"
echo "|----------------------------------------"
fi
-552
View File
@@ -1,552 +0,0 @@
#!/bin/sh
# $Id$
# Defaults
#
TIME=`date +"%H:%M:%S %Z"`
DATE=`date +"%a, %b %e %Y"`
IRCDCONF="ircd.conf"
SERVNAME="Server.IRC.net"
COMMENT="IRC server!"
ADMIN="Admin-name"
ADMNICK="Admin"
ADMADDR="admin@no.where.com"
OPERNAME="admin"
OPERADDR="*@*"
OPERPASS="password"
NUMERIC=""
PORT="6667"
OPRT="default"
LINKPASS="linkpass"
VIRTUAL="1.2.3.4"
ENCRYPT="Yes"
FLAGS="OAZHWe"
RESTARTPASS="restartpass"
DIEPASS="diepass"
SERVICES="Services.IRC-Net.Org"
# these are so I can use stuff like $1 without it replacing it...like by
# using $dlrsgn$uno for $1
dlrsgn="$"
uno="1"
dos="2"
# remove the temp file if it exists
rm -f mkconf.tmp
# make a quick script for replacing one line with another
cat > repl_str << __EOF__
sed -e "s@^$dlrsgn$uno\(.*\)@$dlrsgn$dos" $IRCDCONF > mkconf.tmp
cp mkconf.tmp $IRCDCONF
rm mkconf.tmp
__EOF__
# mark repl_str as an executable
chmod +x repl_str
rm -f repl_str
# Checking out how to specify not to make a new line with the current OS
c=''
n=''
2>/dev/null
if [ "`eval echo -n 'a'`" = "-n a" ]; then
c='\c'
else
n='-n'
fi
# If Settings exist, load the info, otherwise tell them to run Config.
if [ -r Settings ]; then
. Settings
else
echo "Hmm, you need to run Config first!"
echo "Type ./Config"
echo "If you have run Config, make sure you are in the directory"
echo "you ran it from."
exit 1
fi
CONF=$IRCDCONF
if [ -r "$CONF" ]; then
echo "$IRCDCONF found"
echo " "
echo " I don't suggest running this with the conf file already"
echo "existing, since you will lose all the data in your conf file."
echo "This script is just for creating one. If you want to recreate"
echo "a conf file, type 'recreate'."
echo $n " [exit] -> $c"
read cc
if [ "$cc" != "recreate" ]; then
echo " "
echo " OK, do you want to edit $IRCDCONF using an editor?"
echo "If so, specify the editor you want to use. Otherwise,"
echo "type 'exit'."
EDITFND="not found"
if [ -r /usr/bin/pico ]; then
EDITFND="pico"
fi
if [ -r /usr/bin/joe ]; then
EDITFND="joe"
fi
if [ -r /usr/bin/vi ]; then
EDITFND="vi"
fi
if [ -r /usr/bin/vim ]; then
EDITFND="vim"
fi
while [ "c" = "c" ]; do
echo $n " [$EDITFND] -> $c"
read EDITOR
if [ -z "$EDITOR" ]; then
EDITOR="$EDITFND"
fi
if [ "$EDITOR" = "exit" ]; then
echo "Have a nice day."
exit 1
fi
if [ -f $EDITOR ]; then
$EDITOR $CONF
exit 1
fi
if [ -f /usr/bin/$EDITOR ]; then
/usr/bin/$EDITOR $CONF
exit 1
fi
echo " Editor not found. Specify a valid editor or"
echo "type 'exit' to quit this script."
done
fi
mv $CONF "$CONF.saved"
rm $CONF
echo "$IRCDCONF has been renamed to ircd.conf.saved"
else
echo "$IRCDCONF is not found. (good)"
fi
clear
echo "|=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=|"
echo "| Welcome to the $IRCDCONF generator. |"
echo "|=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=|"
echo " "
echo "What will your server name be? (ie: $SERVNAME)"
echo $n " [$SERVNAME] -> $c"
read cc
if [ ! -z "$cc" ]; then
SERVNAME="$cc"
fi
echo " "
echo "What is your IRC server's IP? (ie: $VIRTUAL)"
echo "Use * to bind to all interfaces"
echo $n " [$VIRTUAL] -> $c"
read cc
if [ ! -z "$cc" ]; then
VIRTUAL="$cc"
fi
echo " "
echo "Server comment? (ie: Main Hub Server)"
echo $n " [$COMMENT] -> $c"
read cc
if [ ! -z "$cc" ]; then
COMMENT="$cc"
fi
echo " "
echo "Main port? (ie: 6667)"
echo $n " [$PORT] -> $c"
read cc
if [ ! -z "$cc" ]; then
PORT="$cc"
fi
echo " "
echo "What server numeric does the server have (range = 1..256)"
echo "Must NOT be the same as other servers you link with"
echo $n " [] -> $c"
read cc
if [ ! -z "$cc" ]; then
NUMERIC="$cc"
fi
echo " "
echo "What is your real name? (ie: John Doe)"
echo $n " [$ADMIN] -> $c"
read cc
if [ ! -z "$cc" ]; then
ADMIN="$cc"
fi
echo " "
echo "What is your IRC nickname? (ie: JD)"
echo $n " [$ADMNICK] -> $c"
read cc
if [ ! -z "$cc" ]; then
ADMNICK="$cc"
fi
echo " "
echo "What is your e-mail address? (ie: john@doe.com)"
echo $n " [$ADMADDR] -> $c"
read cc
if [ ! -z "$cc" ]; then
ADMADDR="$cc"
fi
echo " "
OPERNAME="$ADMNICK"
echo "What will your opername be for your O:line? (ie: johndoe)"
echo $n " [$OPERNAME] -> $c"
read cc
if [ ! -z "$cc" ]; then
OPERNAME="$cc"
fi
echo " "
echo "What oper flags do you want to have? (ie: OAWZ)"
echo "Some flags to choose from:"
echo " o = local oper"
echo " O = global oper"
echo " N = network administrator"
echo " A = server administrator"
echo " C = co administrator"
echo " read unrealircd.doc for more info about O:line flags)"
echo $n " [$FLAGS] -> $c"
read cc
if [ ! -z "$cc" ]; then
FLAGS="$cc"
fi
echo " "
ENCRYPT=""
ENCRYPT="bad"
while [ "$ENCRYPT" = "bad" ]; do
echo "Do you use encrypted oper passwords?"
echo $n " [Yes] -> $c"
read cc
if [ -z "$cc" ]; then
cc="Yes"
fi
case "$cc" in
[Yy]*)
ENCRYPT="Yes"
;;
[Nn]*)
ENCRYPT="No"
;;
*)
echo "Please specify yes or no."
ENCRYPT="bad"
;;
esac
done
if [ "$ENCRYPT" = "Yes" ] ; then
echo "Compile the file called mkpasswd.c in the 'crypt' directory"
echo "Then run it (./mkpasswd) and input the passwd to be encrypted"
echo "Then copy the output into the passwd slot in the O:line"
echo "NOTE: You can encrypt on irc via /mkpasswd <passwd>"
fi
echo " "
echo "What will your /oper password be? (ie: snoopy67)"
echo $n " [$OPERPASS] -> $c"
read cc
if [ ! -z "$cc" ]; then
OPERPASS="$cc"
fi
echo " "
echo "What is your user@host mask on IRC? (ie: *@*.toronto.globalserve.net)"
echo $n " [$OPERADDR] -> $c"
read cc
if [ ! -z "$cc" ]; then
OPERADDR="$cc"
fi
echo " "
echo "What do you want your die password to be?"
echo $n " [$DIEPASS] -> $c"
read cc
if [ ! -z "$cc" ]; then
DIEPASS="$cc"
fi
echo " "
echo "What do you want your restart password to be?"
echo $n " [$RESTARTPASS] -> $c"
read cc
if [ ! -z "$cc" ]; then
RESTARTPASS="$cc"
fi
echo " "
echo "If your running services, or linking to a network that has"
echo "services, please state the services servername."
echo "If you are running a non-services network, just type 'next'"
echo $n " [$SERVICES] -> $c"
read cc
#if [ ! -z "$cc" ]; then
# SERVICES="$cc"
#fi
if [ "$cc" = "next" ]; then
SERVICES="No.Services.Selected"
elif [ ! -z "$cc" ]; then
SERVICES="$cc"
fi
cat > $CONF << __EOF__
########################
#
# Filename: $IRCDCONF
# Created: $DATE - $TIME
#
########################
############ Server Info ############
M:$SERVNAME:$VIRTUAL:$COMMENT:$PORT:$NUMERIC
#####################################
############ Administrator Information #############
A:$ADMIN:$ADMNICK:$ADMADDR
####################################################
############ Y-lines #############
# Client Y:lines
Y:1:90:0:245:100000
# Server Y:lines
Y:50:300:600:1:1000000
##################################
############ I/Access Lines #############
I:*@*::*@*::1
#########################################
############ X:LINE Die/Restart Password ############
X:$DIEPASS:$RESTARTPASS
#####################################################
## O-line (O:hostmask:password:opername:flags:1) ##
O:$OPERADDR:$OPERPASS:$OPERNAME:$FLAGS:1
###################################################
__EOF__
echo " "
echo " Would you like to configure any servers for linking?"
echo "Type the servername, or type 'done' when finished."
echo $n " [done] -> $c"
read cc
if [ -z "$cc" ]; then
cc="done"
fi
while [ "$cc" != "done" ]; do
THESERV="$cc"
SHOST="none"
while [ "$SHOST" = "none" ]; do
echo " "
echo "Hostname or ip for the other server? Must be specified."
echo $n " [] -> $c"
read SHOST
done
echo " "
echo "Password to send to the other server?"
echo $n " [$LINKPASS] -> $c"
read CLP
if [ -z "$CLP" ]; then
CLP="$LINKPASS"
fi
echo " "
AUTOPORT=""
AUTOCONN="bad"
while [ "$AUTOCONN" = "bad" ]; do
echo " "
echo "Should we autconnect to this server?"
echo $n " [Yes] -> $c"
read cc
if [ -z "$cc" ]; then
cc="Yes"
fi
case "$cc" in
[Yy]*)
AUTOCONN="yes"
echo "What port should we autoconnect to?"
echo $n " [7029] -> $c"
read AUTOPORT
if [ -z "$AUTOPORT" ]; then
AUTOPORT="7029"
fi
;;
[Nn]*)
AUTOCONN="no"
;;
*)
echo "Please specify yes or no."
AUTOCONN="bad"
;;
esac
done
echo " "
HUB="bad"
while [ "$HUB" = "bad" ]; do
echo " "
echo "Will this server be a hub?"
echo $n " [Yes] -> $c"
read cc
if [ -z "$cc" ]; then
cc="Yes"
fi
case "$cc" in
[Yy]*)
HUB="Yes"
;;
[Nn]*)
HUB="no"
;;
*)
echo "Please specify yes or no."
HUB="bad"
;;
esac
done
if [ "$HUB" = "Yes" ]; then
echo "############ HUB LINES #############" >> $CONF
echo "H:*:*:$THESERV" >> $CONF
echo "####################################" >> $CONF
echo "" >> $CONF
fi
echo "############ C/N LINES #############" >> $CONF
echo "C:$SHOST:$CLP:$THESERV:$AUTOPORT:50" >> $CONF
echo "N:$SHOST:$CLP:$THESERV::50" >> $CONF
echo "####################################" >> $CONF
echo "" >> $CONF
echo " "
echo "Type the servername, or type 'done' when finished."
echo $n " [done] -> $c"
read cc
if [ -z "$cc" ]; then
cc="done"
fi
done
cat >> $CONF << __EOF__
############ Uline for Services ############
U:$SERVICES:*:*
############################################
############ Q-Lined NickNames ############
Q::Reserved for services:*C*h*a*n*S*e*r*v*
Q::Reserved for services:*N*i*c*k*S*e*r*v*
Q::Reserved for services:*M*e*m*o*S*e*r*v*
Q::Reserved for services:*H*e*l*p*S*e*r*v*
Q::Reserved for services:*O*p*e*r*S*e*r*v*
Q::Reserved for services:*I*n*f*o*S*e*r*v*
Q::Reserved for Administrator:*Admin*
Q::Reserved for ircops:*IRC*op*
Q::Reserved for ircops:*Oper*
Q::Bug in mIRC:Status
###########################################
############ PORT LINES #############
__EOF__
cc="blank"
echo " "
echo " "
echo " Would you like any extra ports, other than 6667? Enter them here."
echo "Type 'done' when you are finished. Type 'default' to use 6665-6669/7000."
while [ "$cc" != "done" ]; do
echo $n " [$OPRT] -> $c"
read cc
if [ -z "$cc" ]; then
cc="$OPRT"
fi
if [ "$cc" = "default" ]; then
echo "P:$VIRTUAL:*:*:6660" >> $CONF
echo "P:$VIRTUAL:*:*:6661" >> $CONF
echo "P:$VIRTUAL:*:*:6662" >> $CONF
echo "P:$VIRTUAL:*:*:6663" >> $CONF
echo "P:$VIRTUAL:*:*:6664" >> $CONF
echo "P:$VIRTUAL:*:*:6665" >> $CONF
echo "P:$VIRTUAL:*:*:6666" >> $CONF
echo "P:$VIRTUAL:*:*:6668" >> $CONF
echo "P:$VIRTUAL:*:*:6669" >> $CONF
echo "P:$VIRTUAL:*:*:7000" >> $CONF
echo "P:$VIRTUAL:*:*:7029" >> $CONF
echo "#####################################" >> $CONF
cc="done"
fi
if [ "$cc" != "done" ]; then
if [ $cc = "$PORT" ]; then
echo " No, $PORT is already defined in the M:line,"
echo "please use a port other than $PORT."
else
echo "P:$VIRTUAL:*:*:$cc" >> $CONF
fi
fi
case "$OPRT" in
6660) OPRT="done"
;;
6661) OPRT="6660"
;;
6662) OPRT="6661"
;;
6663) OPRT="6662"
;;
6664) OPRT="6663"
;;
6665) OPRT="6664"
;;
6666) OPRT="6665"
;;
6669) OPRT="6666"
;;
6668) OPRT="6669"
;;
6667) OPRT="6668"
;;
*) OPRT="done"
;;
esac
done
# Make it so ONLY the one who created the conf can read or write.
chmod 700 $IRCDCONF
cat << __EOF__
OK, $IRCDCONF has been generated according to what you specified.
Make sure you double check for errors in $IRCDCONF. We recommend that
you take a look at your $IRCDCONF right now. Thanks for using UnrealIRCd
__EOF__
echo "Have a nice day."
echo ""
exit 1
-243
View File
@@ -1,243 +0,0 @@
#
# Win32Gui Config File .. By DrBin
# Modified by Zogg for 3.1.x
CC=cl
COMPILERHELP=compilerhelp.exe
# Here you put your settings
FD_SETSIZE=/D FD_SETSIZE=16384
NS_ADDRESS=/D NS_ADDRESS="\"nospoof@dal.net\""
!IFNDEF DEBUG
!IFNDEF DISTDEBUG
CFLAGS=/MT /O2 /G5 /I ./INCLUDE /Fosrc/ /nologo $(FD_SETSIZE) $(NS_ADDRESS) /D _WIN32GUI /D NOSPOOF=1 /c
LFLAGS=kernel32.lib user32.lib gdi32.lib shell32.lib wsock32.lib \
oldnames.lib libcmt.lib comctl32.lib /nodefaultlib /nologo /out:WIRCD2.EXE
!ELSE
CFLAGS= /MTd /Zi /I ./INCLUDE /Fosrc/ /nologo $(FD_SETSIZE) $(NS_ADDRESS) /D _WIN32GUI /D NOSPOOF=1 /c
#/Od /Yd /G5
LFLAGS=kernel32.lib user32.lib gdi32.lib shell32.lib wsock32.lib \
oldnames.lib libcmt.lib comctl32.lib /nodefaultlib /nologo /debug /debugtype:BOTH /OUT:WIRCD.EXE
!ENDIF
!ELSE
CFLAGS= /MTd /Zi /I ./INCLUDE /Fosrc/ /nologo $(FD_SETSIZE) $(NS_ADDRESS) /D DEBUG /D DEBUGMODE /D _DEBUG /D _WIN32GUI /D NOSPOOF=1 /c
#/Od /Yd /G5
LFLAGS=kernel32.lib user32.lib gdi32.lib shell32.lib wsock32.lib \
oldnames.lib libcmt.lib comctl32.lib /nodefaultlib /nologo /debug /debugtype:BOTH /OUT:WIRCD.EXE
!ENDIF
INCLUDES=./include/struct.h ./include/config.h ./include/sys.h \
./include/common.h ./include/version.h ./include/h.h ./include/numeric.h \
./include/msg.h ./include/setup.h ./include/dynconf.h
LINK=link.exe
OBJ_FILES=SRC/CHANNEL.OBJ SRC/USERLOAD.OBJ SRC/SEND.OBJ SRC/BSD.OBJ \
SRC/S_CONF.OBJ SRC/FDLIST.OBJ SRC/DBUF.OBJ \
SRC/CLOAK.OBJ SRC/HASH.OBJ SRC/PARSE.OBJ SRC/IRCD.OBJ \
SRC/S_NUMERIC.OBJ SRC/WHOWAS.OBJ SRC/S_AUTH.OBJ \
SRC/HELP.OBJ SRC/S_MISC.OBJ SRC/MATCH.OBJ SRC/CRULE.OBJ \
SRC/S_DEBUG.OBJ SRC/SUPPORT.OBJ SRC/LIST.OBJ \
SRC/S_ERR.OBJ SRC/PACKET.OBJ SRC/CLASS.OBJ SRC/S_BSD.OBJ \
SRC/S_SERV.OBJ SRC/S_USER.OBJ SRC/WIN32GUI.OBJ \
SRC/VERSION.OBJ SRC/S_UNREAL.OBJ SRC/DYNCONF.OBJ \
SRC/S_SOCKS.OBJ SRC/S_KLINE.OBJ SRC/S_EXTRA.OBJ SRC/IRCSPRINTF.OBJ SRC/LUSERS.OBJ \
SRC/SCACHE.OBJ SRC/ALN.OBJ SRC/BADWORDS.OBJ SRC/WEBTV.OBJ \
SRC/RES.OBJ SRC/RES_INIT.OBJ SRC/RES_COMP.OBJ
RC=rc.exe
ALL: COMPILERHELP.EXE WIRCD.EXE
CLEAN:
-@erase src\*.exe 2>NUL
-@erase src\*.obj 2>NUL
-@erase src\win32.res 2>NUL
-@erase src\version.c 2>NUL
-@erase src\win32\*.obj 2>NUL
-@erase .\*.exe 2>NUL
#include/setup.h:
# @echo Hmm...doesn't look like you've run Config...
# @echo Doing so now.
# @config.exe
#src/version.c: dummy
# @config.exe -v
./COMPILERHELP.EXE:
cl src/win32/compilerhelp.c /link /out:compilerhelp.exe
./WIRCD.EXE: $(OBJ_FILES) SRC/win32/WIN32.RES
$(LINK) $(LFLAGS) $(OBJ_FILES) SRC/win32/WIN32.RES SRC/WIN32/GNU_REGEX.LIB SRC/WIN32/DEBUG/STACKTRACE.LIB /MAPINFO:LINES /MAP
-@erase src\win32\win32.res
!IFNDEF DEBUG
!IFNDEF DISTDEBUG
@echo Non Debug version built
!ELSE
@echo Distribution DEBUG Version Built
!ENDIF
!ELSE
@echo Debug version built ...
!ENDIF
./CHKCONF.EXE: ./include/struct.h ./include/config.h ./include/sys.h \
./include/common.h ./src/crule.c ./src/match.c ./src/chkconf.c
$(CC) /nologo /I ./include /D CR_CHKCONF /Fosrc/chkcrule.obj /c src/crule.c
$(CC) /nologo /I ./include /D CR_CHKCONF /Fosrc/chkmatch.obj /c src/match.c
$(CC) /nologo /I ./include /D CR_CHKCONF /Fosrc/chkconf.obj /c src/chkconf.c
$(LINK) /nologo /out:./chkconf.exe src/chkconf.obj src/chkmatch.obj \
src/chkcrule.obj
src/version.obj: src/win32/version.c
$(CC) $(CFLAGS) src/win32/version.c
src/parse.obj: src/parse.c $(INCLUDES)
$(CC) $(CFLAGS) src/parse.c
src/badwords.obj: src/badwords.c $(INCLUDES)
$(CC) $(CFLAGS) src/badwords.c
src/webtv.obj: src/webtv.c $(INCLUDES)
$(CC) $(CFLAGS) src/webtv.c
src/bsd.obj: src/bsd.c $(INCLUDES)
$(CC) $(CFLAGS) src/bsd.c
src/dbuf.obj: src/dbuf.c $(INCLUDES) ./include/dbuf.h
$(CC) $(CFLAGS) src/dbuf.c
src/ircsprintf.obj: src/ircsprintf.c $(INCLUDES)
$(CC) $(CFLAGS) src/ircsprintf.c
src/packet.obj: src/packet.c $(INCLUDES)
$(CC) $(CFLAGS) src/packet.c
src/fdlist.obj: src/fdlist.c $(INCLUDES)
$(CC) $(CFLAGS) src/fdlist.c
src/dynconf.obj: src/dynconf.c $(INCLUDES) ./include/dbuf.h \
./include/channel.h ./include/whowas.h
$(CC) $(CFLAGS) src/dynconf.c
src/send.obj: src/send.c $(INCLUDES)
$(CC) $(CFLAGS) src/send.c
src/match.obj: src/match.c $(INCLUDES)
$(CC) $(CFLAGS) src/match.c
src/support.obj: src/support.c $(INCLUDES)
$(CC) $(CFLAGS) src/support.c
src/channel.obj: src/channel.c $(INCLUDES) ./include/channel.h
$(CC) $(CFLAGS) src/channel.c
src/class.obj: src/class.c $(INCLUDES) ./include/class.h
$(CC) $(CFLAGS) src/class.c
src/lusers.obj: src/lusers.c $(INCLUDES)
$(CC) $(CFLAGS) src/lusers.c
src/aln.obj: src/aln.c $(INCLUDES)
$(CC) $(CFLAGS) src/aln.c
src/ircd.obj: src/ircd.c $(INCLUDES)
$(CC) $(CFLAGS) src/ircd.c
src/list.obj: src/list.c $(INCLUDES)
$(CC) $(CFLAGS) src/list.c
src/res.obj: src/res.c $(INCLUDES)
$(CC) $(CFLAGS) src/res.c
src/s_bsd.obj: src/s_bsd.c $(INCLUDES)
$(CC) $(CFLAGS) src/s_bsd.c
src/s_auth.obj: src/s_auth.c $(INCLUDES)
$(CC) $(CFLAGS) src/s_auth.c
src/s_conf.obj: src/s_conf.c $(INCLUDES)
$(CC) $(CFLAGS) src/s_conf.c
src/s_debug.obj: src/s_debug.c $(INCLUDES)
$(CC) $(CFLAGS) src/s_debug.c
src/s_err.obj: src/s_err.c $(INCLUDES)
$(CC) $(CFLAGS) src/s_err.c
src/s_kline.obj: src/s_kline.c $(INCLUDES)
$(CC) $(CFLAGS) src/s_kline.c
src/s_misc.obj: src/s_misc.c $(INCLUDES) ./include/dbuf.h
$(CC) $(CFLAGS) src/s_misc.c
src/scache.obj: src/scache.c $(INCLUDES) ./include/dbuf.h
$(CC) $(CFLAGS) src/scache.c
src/s_socks.obj: src/s_socks.c $(INCLUDES)
$(CC) $(CFLAGS) src/s_socks.c
src/s_user.obj: src/s_user.c $(INCLUDES) ./include/dbuf.h \
./include/channel.h ./include/whowas.h
$(CC) $(CFLAGS) src/s_user.c
src/s_extra.obj: src/s_extra.c $(INCLUDES) ./include/dbuf.h \
./include/channel.h ./include/whowas.h
$(CC) $(CFLAGS) src/s_extra.c
src/s_unreal.obj: src/s_unreal.c $(INCLUDES) ./include/dbuf.h \
./include/channel.h ./include/whowas.h
$(CC) $(CFLAGS) src/s_unreal.c
src/s_serv.obj: src/s_serv.c $(INCLUDES) ./include/dbuf.h ./include/whowas.h
$(CC) $(CFLAGS) src/s_serv.c
src/s_numeric.obj: src/s_numeric.c $(INCLUDES) ./include/dbuf.h
$(CC) $(CFLAGS) src/s_numeric.c
src/whowas.obj: src/whowas.c $(INCLUDES) ./include/dbuf.h ./include/whowas.h
$(CC) $(CFLAGS) src/whowas.c
src/hash.obj: src/hash.c $(INCLUDES) ./include/hash.h
$(CC) $(CFLAGS) src/hash.c
src/crule.obj: src/crule.c $(INCLUDES)
$(CC) $(CFLAGS) src/crule.c
src/win32gui.obj: src/win32/win32gui.c $(INCLUDES) ./src/win32/resource.h
#./include/resource.h
$(CC) $(CFLAGS) src/win32/win32gui.c
src/res_comp.obj: src/res_comp.c $(INCLUDES)
$(CC) $(CFLAGS) src/res_comp.c
src/res_init.obj: src/res_init.c $(INCLUDES)
$(CC) $(CFLAGS) src/res_init.c
src/help.obj: src/help.c $(INCLUDES)
$(CC) $(CFLAGS) src/help.c
src/md5.obj: src/md5.c $(INCLUDES)
$(CC) $(CFLAGS) src/md5.c
src/win32/win32.res: src/win32/win32gui.rc
!IFNDEF DISTDEBUG
$(COMPILERHELP) src/win32/leavealone.h
!ELSE
$(COMPILERHELP) src/win32/leavealone.h 0
!ENDIF
$(RC) /l 0x409 /fosrc/win32/win32.res /i ./include /i ./src \
/d NDEBUG src/win32/win32gui.rc
dummy:
+71
View File
@@ -0,0 +1,71 @@
ver2^2
#
# Network Configuration File Template
# -----------------------------------------
# Added-at: <day> <month> <year> <hh:dd> GMT
# Author: <nick> (<real name>)
# E-Mail: <email>
# $Id$
# -----------------------------------------
# This is a template so you can create your own network configuration files
# Just follow the instructions and it will prolly work ;)
# 0 = No 1 = Yes
# -------------------------------------------------------
#
# These two specify the name of the IRC network, set the same in both fields
Network >..........: 972-Scripterz
Set ircnetwork ....: 972-Scripterz
# This is where your DNS pool is (like irc.dal.net)
Set defserv .......: irc.972-Scripterz.org
# This is the name of your Services Server
Set SERVICES_NAME .: services.972-Scripterz.org
# This is the virtual hostname IRCops will get if iNAH option is enabled
# on oper up
Set oper_host .....: ircop.972-Scripterz.org
# This is the virtual hostname Server Admins will get if iNAH option is enabled
# on oper up
Set admin_host ....: admin.972-Scripterz.org
# This is the virtual hostname Local IRCops will get if iNAH option is enabled
# on oper up
Set locop_host ....: locop.972-Scripterz.org
# This is the virtual hostname Services Operators/Admins will get
# if iNAH option is enabled on oper up
Set sadmin_host ...: serviceop.972-Scripterz.org
# This is the virtual hostname NetAdmins will get
# if iNAH option is enabled on oper up
Set netadmin_host .: netadmin.972-Scripterz.org
# This is the virtual hostname CoAdmins will get
# if iNAH option is enabled on oper up
Set coadmin_host ..: coadmin.972-Scripterz.org
# This is the virtual hostname TechAdmins will get
# if iNAH option is enabled on oper up
Set techadmin_host : techadmin.972-Scripterz.org
# This is the prefix of the hidden host (cloaking) hostname
Set hidden_host ...: sz
# This is the domain of the IRC network
Set netdomain .....: 972-Scripterz.org
# This is where people can go for help
Set helpchan ......: #972-Scripterz
# This is the name of the stats server
Set STATS_SERVER ..: stats.972-Scripters.org
# -- Not in use--
Set HUB ...........: 0
# This enables the auto-setting of f.x @netadmin.network.net
# on oper up
Set iNAH ..........: 0
# -- Not in use but still here --
Set net_quit ......: sz
+71
View File
@@ -0,0 +1,71 @@
ver^2.2
#
# Network Configuration File Template
# -----------------------------------------
# Added-at: <11> <09> <1999> <14:32> GMT
# Author: <Kerjin> Steve>)
# E-Mail: <kerjin@alternativenet.org>
# $Id$
# -----------------------------------------
# This is a template so you can create your own network configuration files
# Just follow the instructions and it will prolly work ;)
# 0 = No 1 = Yes
# -------------------------------------------------------
#
# These two specify the name of the IRC network, set the same in both fields
Network >..........: AltNet IRC
Set ircnetwork ....: AltNet IRC
# This is where your DNS pool is (like irc.dal.net)
Set defserv .......: irc.alternativenet.org
# This is the name of your Services Server
Set SERVICES_NAME .: services.alternativenet.org
# This is the virtual hostname IRCops will get if iNAH option is enabled
# on oper up
Set oper_host .....: ircop.alternativenet.org
# This is the virtual hostname Server Admins will get if iNAH option is enabled
# on oper up
Set admin_host ....: admin.alternativenet.org
# This is the virtual hostname Local IRCops will get if iNAH option is enabled
# on oper up
Set locop_host ....: locop.alternativenet.org
# This is the virtual hostname Services Operators/Admins will get
# if iNAH option is enabled on oper up
Set sadmin_host ...: serviceop.alternativenet.org
# This is the virtual hostname NetAdmins will get
# if iNAH option is enabled on oper up
Set netadmin_host .: netadmin.alternativenet.org
# This is the virtual hostname CoAdmins will get
# if iNAH option is enabled on oper up
Set coadmin_host ..: coadmin.alternativenet.org
# This is the virtual hostname TechAdmins will get
# if iNAH option is enabled on oper up
Set techadmin_host : techadmin.alternativenet.org
# This is the prefix of the hidden host (cloaking) hostname
Set hidden_host ...: altirc
# This is the domain of the IRC network
Set netdomain .....: alternativenet.org
# This is where people can go for help
Set helpchan ......: #AltNetHelp
# This is the name of the stats server
Set STATS_SERVER ..: statistics.alternativenet.org
# -- Not in use--
Set HUB ...........: 1
# This enables the auto-setting of f.x @netadmin.network.net
# on oper up
Set iNAH ..........: 1
# -- Not in use but still here --
Set net_quit ......: alt
+29
View File
@@ -0,0 +1,29 @@
ver^2.2
#
# Bunker7.net Network Configuration File
# -----------------------------------------
# Added-at: 17 August 1999 12:34 CT
# Author: Rogue
# E-Mail: rogue@bunker7.net
# $Id$
# -----------------------------------------
#
Network >..........: bunker7
Set ircnetwork ....: bunker7
Set defserv .......: irc.bunker7.net
Set SERVICES_NAME .: services.bunker7.net
Set oper_host .....: global.bunker7.net
Set admin_host ....: admin.bunker7.net
Set locop_host ....: local.bunker7.net
Set sadmin_host ...: sadm.bunker7.net
Set netadmin_host .: netadmin.bunker7.net
Set coadmin_host ..: coadmin.bunker7.net
Set techadmin_host : techadmin.bunker7.net
Set hidden_host ...: bunker7
Set netdomain .....: bunker7.net
Set helpchan ......: #bunker7
Set STATS_SERVER ..: stats.bunker7.net
Set HUB ...........: 1
Set iNAH ..........: 0
Set net_quit ......: B7
+65
View File
@@ -0,0 +1,65 @@
#
# Network Configuration File Template
# -----------------------------------------
# Added-at: <day> <month> <year> <hh:dd> GMT
# Author: Curt|s
# E-Mail: <email>
# $Id$
#
# These two specify the name of the IRC network, set the same in both fields
Network >..........: DigitalIRC.Net
Set ircnetwork ....: DigitalIRC.Net
# This is where your DNS pool is (like irc.dal.net)
Set defserv .......: irc.digitalirc.net
# This is the name of your Services Server
Set SERVICES_NAME .: Services.DigitalIRC.Net
# This is the virtual hostname IRCops will get if iNAH option is enabled
# on oper up
Set oper_host .....: Oper.DigitalIRC.Net
# This is the virtual hostname Server Admins will get if iNAH option is enabled
# on oper up
Set admin_host ....: Admin.DigitalIRC.Net
# This is the virtual hostname Local IRCops will get if iNAH option is enabled
# on oper up
Set locop_host ....: LocOper.DigitalIRC.Net
# This is the virtual hostname Services Operators/Admins will get
# if iNAH option is enabled on oper up
Set sadmin_host ...: ServicesOp.DigitalIRC.Net
# This is the virtual hostname NetAdmins will get
# if iNAH option is enabled on oper up
Set netadmin_host .: NetAdmin.DigitalIRC.Net
# This is the virtual hostname CoAdmins will get
# if iNAH option is enabled on oper up
Set coadmin_host ..: NetAdmin.DigitalIRC.Net
# This is the virtual hostname TechAdmins will get
# if iNAH option is enabled on oper up
Set techadmin_host : Tech.DigitalIRC.Net
# This is the prefix of the hidden host (cloaking) hostname
Set hidden_host ...: NN
# This is the domain of the IRC network
Set netdomain .....: DigtialIRC.Net
#This is where people can go for help
Set helpchan ......: #Digitalirc
# This is the name of the stats server
Set STATS_SERVER ..: Statistics.DigitalIRC.com
# -- Not in use--
Set HUB ...........: 1
# This enables the auto-setting of f.x @netadmin.network.net
# on oper up
Set iNAH ..........: 0
# -- Not in use but still here --
Set net_quit ......: ic
+29
View File
@@ -0,0 +1,29 @@
ver^2.2
#
# DragonWings.org Network Configuration File
# -----------------------------------------
# Added-at: 14 July 1999 00:00 GMT
# Author: Stskeeps (Carsten Munk)
# E-Mail: stskeeps@global-irc.net
# $Id$
# -----------------------------------------
#
Network >..........: DragonWings
Set ircnetwork ....: DragonWings
Set defserv .......: irc.dragonwings.org
Set SERVICES_NAME .: saturn.dragonwings.org
Set oper_host .....: ircop.dragonwings.org
Set admin_host ....: admin.dragonwings.org
Set locop_host ....: locop.dragonwings.org
Set sadmin_host ...: serviceop.dragonwings.org
Set netadmin_host .: netadmin.dragonwings.org
Set coadmin_host ..: coadmin.dragonwings.org
Set techadmin_host : techadmin.dragonwings.org
Set hidden_host ...: dw
Set netdomain .....: dragonwings.org
Set helpchan ......: #DragonWings
Set STATS_SERVER ..: stats.dragonwings.org
Set HUB ...........: 1
Set iNAH ..........: 0
Set net_quit ......: DW
+29
View File
@@ -0,0 +1,29 @@
ver^2.2
#
# Global-IRC.net Network Configuration File
# -----------------------------------------
# Added-at: 14 July 1999 00:00 GMT
# Author: Stskeeps (Carsten Munk)
# E-Mail: stskeeps@global-irc.net
# $Id$
# -----------------------------------------
#
Network >..........: Global-IRC
Set ircnetwork ....: Global-IRC
Set defserv .......: irc.global-irc.net
Set SERVICES_NAME .: services.global-irc.net
Set oper_host .....: ircop.global-irc.net
Set admin_host ....: admin.global-irc.net
Set locop_host ....: locop.global-irc.net
Set sadmin_host ...: serviceop.global-irc.net
Set netadmin_host .: netadmin.global-irc.net
Set coadmin_host ..: coadmin.global-irc.net
Set techadmin_host : techadmin.global-irc.net
Set hidden_host ...: global
Set netdomain .....: global-irc.net
Set helpchan ......: #Global
Set STATS_SERVER ..: stats.global-irc.net
Set HUB ...........: 1
Set iNAH ..........: 0
Set net_quit ......: GI
+29
View File
@@ -0,0 +1,29 @@
ver^2.2
#
# Global-IRC.net Network Configuration File
# -----------------------------------------
# Added-at: 14 July 1999 00:00 GMT
# Author: Stskeeps (Carsten Munk)
# E-Mail: stskeeps@global-irc.net
# $Id$
# -----------------------------------------
#
Network >..........: Infinity-IRC.org
Set ircnetwork ....: Infinity-IRC.org
Set defserv .......: irc.infinity-irc.org
Set SERVICES_NAME .: services.infinity-irc.org
Set oper_host .....: IRCop.Infinity-IRC.org
Set admin_host ....: IRCop-Admin.Infinity-IRC.org
Set locop_host ....: LOCop.Infinity-IRC.org
Set sadmin_host ...: IRCop-ServiceAdmin.Infinity-IRC.org
Set netadmin_host .: IRCop-NetAdmin.Infinity-IRC.org
Set coadmin_host ..: IRCop-CoAdmin.Infinity-IRC.org
Set techadmin_host : IRCop-TechAdmin.Infinity-IRC.org
Set hidden_host ...: Infinity
Set netdomain .....: Infinity-IRC.org
Set helpchan ......: #Infinity
Set STATS_SERVER ..: stats.infinity-irc.org
Set HUB ...........: 1
Set iNAH ..........: 1
Set net_quit ......: IN
-277
View File
@@ -1,277 +0,0 @@
#!/bin/sh
# makenet v1.0 - generates a network file for UnrealIRCd
#
# you may freely use this file with any other program as
# long as the credits remain intact
#
# (c) 2000 codemastr (Dominick Meglio) and the UnrealIRCd Team
VERSION="2.3"
DATE=`date "+%d %B %Y %H:%M"`
FILE="mynet.network"
EXISTS="y"
NICK="MyNick"
EMAIL="me@mynet.org"
NETWORK="My IRC Network"
DEFSERV="irc.mynet.org"
SERVICES_NAME="services.mynet.org"
OPER_HOST="oper.mynet.org"
ADMIN_HOST="admin.mynet.org"
LOCOP_HOST="locop.mynet.org"
CSOP_HOST="csop.mynet.org"
NETADMIN_HOST="netadmin.mynet.org"
COADMIN_HOST="coadmin.mynet.org"
HIDDEN_HOST="hide"
NETDOMAIN="mynet.org"
HELPCHAN="#help"
STATS_SERVER="stats.mynet.org"
INAH="1"
SUBMIT="y"
# Checking out how to specify not to make a new line with the current OS
c=''
n=''
2>/dev/null
if [ "`eval echo -n 'a'`" = "-n a" ]; then
c='\c'
else
n='-n'
fi
clear
echo "Welcome to the UnrealIRCd network file generator"
echo "If you need help to set the IRCd up,"
echo "mail unreal-support@lists.sourceforge.net or ask"
echo "at IRC: /server irc.ircsystems.net, /join #unrealircd"
echo ""
echo "For any sake, read Unreal.nfo and read doc/faq before asking"
echo "questions"
echo "[Enter to Begin]"
read cc
echo ""
echo "What do you want your network file to be called?"
echo $n "[$FILE] -> $c"
read cc
if [ ! -z $cc ]; then
FILE="$cc"
fi
if [ -f $FILE ]; then
echo ""
echo "$FILE already exists do you want to override it?"
echo $n "[$EXISTS] -> $c"
read cc
if [ ! -z $cc ]; then
EXISTS="$cc"
fi
case "$EXISTS" in
[Nn]*)
exit
;;
*)
;;
esac
fi
echo ""
echo "What is your IRC nickname?"
echo $n "[$NICK] -> $c"
read cc
if [ ! -z $cc ]; then
NICK="$cc"
fi
echo ""
echo "What is your email address?"
echo $n "[$EMAIL] -> $c"
read cc
if [ ! -z $cc ]; then
EMAIL="$cc"
fi
echo ""
echo "What is the name of your IRC network?"
echo $n "[$NETWORK] -> $c"
read cc
if [ ! -z $cc ]; then
NETWORK="$cc"
fi
echo ""
echo "What is the default server for your network?"
echo $n "[$DEFSERV] -> $c"
read cc
if [ ! -z $cc ]; then
DEFSERV="$cc"
fi
echo ""
echo "What is the name of your services server?"
echo $n "[$SERVICES_NAME] -> $c"
read cc
if [ ! -z $cc ]; then
SERVICES_NAME="$cc"
fi
echo ""
echo "What is the virtual host opers will get when they oper up?"
echo $n "[$OPER_HOST] -> $c"
read cc
if [ ! -z $cc ]; then
OPER_HOST="$cc"
fi
echo ""
echo "What is the virtual host services opers will get when they oper up?"
echo $n "[$CSOP_HOST] -> $c"
read cc
if [ ! -z $cc ]; then
CSOP_HOST="$cc"
fi
echo ""
echo "What is the virtual host admins will get when they oper up?"
echo $n "[$ADMIN_HOST] -> $c"
read cc
if [ ! -z $cc ]; then
ADMIN_HOST="$cc"
fi
echo ""
echo "What is the virtual host local opers will get when they oper up?"
echo $n "[$LOCOP_HOST] -> $c"
read cc
if [ ! -z $cc ]; then
LOCOP_HOST="$cc"
fi
echo ""
echo "What is the virtual host coadmins will get when they oper up?"
echo $n "[$COADMIN_HOST] -> $c"
read cc
if [ ! -z $cc ]; then
COADMIN_HOST="$cc"
fi
echo ""
echo "What is the virtual host netadmins will get when they oper up?"
echo $n "[$NETADMIN_HOST] -> $c"
read cc
if [ ! -z $cc ]; then
NETADMIN_HOST="$cc"
fi
echo ""
echo "What do you want the prefix for the hidden hosts to be?"
echo $n "[$HIDDEN_HOST] -> $c"
read cc
if [ ! -z $cc ]; then
HIDDEN_HOST="$cc"
fi
echo ""
echo "What is your network's domain name?"
echo $n "[$NETDOMAIN] -> $c"
read cc
if [ ! -z $cc ]; then
NETDOMAIN="$cc"
fi
echo ""
echo "What is your network's help channel?"
echo $n "[$HELPCHAN] -> $c"
read cc
if [ ! -z $cc ]; then
HELPCHAN="$cc"
fi
echo ""
echo "What is the name of your stats server?"
echo $n "[$STATS_SERVER] -> $c"
read cc
if [ ! -z $cc ]; then
STATS_SERVER="$cc"
fi
echo ""
echo "Do you want oper's hosts to be changed on /oper?"
echo "1 = yes 0 = no"
echo $n "[$INAH] -> $c"
read cc
if [ ! -z $cc ]; then
INAH="$cc"
fi
# write the actual conf
cat > $FILE << __EOF__
ver^$VERSION
#
# $NETWORK ($DEFSERV) Network Configuration File
# --------------------------------------------------
# Added-at: $DATE
# Author: $NICK
# Email: $EMAIL
# -----------------------------------------
#
Network >..........: $NETWORK
Set ircnetwork ....: $NETWORK
Set defserv .......: $DEFSERV
Set SERVICES_NAME .: $SERVICES_NAME
Set oper_host .....: $OPER_HOST
Set admin_host ....: $ADMIN_HOST
Set locop_host ....: $LOCOP_HOST
Set sadmin_host ...: $CSOP_HOST
Set netadmin_host .: $NETADMIN_HOST
Set coadmin_host ..: $COADMIN_HOST
Set hidden_host ...: $HIDDEN_HOST
Set netdomain .....: $NETDOMAIN
Set helpchan ......: $HELPCHAN
Set STATS_SERVER ..: $STATS_SERVER
Set HUB ...........: not_in_use
Set iNAH ..........: $INAH
Set net_quit ......: not_in_use
__EOF__
echo ""
echo "Would you like to submit the your network file to be included with future releases of unreal?"
echo $n "[$SUBMIT] -> $c"
read cc
if [ ! -z $cc ]; then
SUBMIT="$cc"
fi
case "$SUBMIT" in
[Nn]*)
echo "Ok all done, all you have to do is,"
echo "Change the Include line in unrealircd.conf to:"
echo "Include .................: networks/$FILE"
echo "Thank your for choosing UnrealIRCd"
exit
;;
*)
;;
esac
if [ "$NETWORK" == "My IRC Network" ] ; then
echo ""
echo "You may not submit a network file that uses default values"
exit
fi
cat |sendmail -t << __EOF__&
To: unreal-networks@lists.sourceforge.net
From: $EMAIL
Subject: Network file submission for $NETWORK
`cat $FILE`
.
__EOF__
echo ""
echo "Ok all done, all you have to do is,"
echo "Change the Include line in unrealircd.conf to:"
echo "Include .................: networks/$FILE"
echo "Thank your for choosing UnrealIRCd"
exit
+31
View File
@@ -0,0 +1,31 @@
ver^2.2
#
# MegaIRC.net Network Configuration File
# -----------------------------------------
# Added-at: 1 August 1999 00:00 GMT
# Author: NonMortal (Luke Slotwinski)
# E-Mail: NonMortal@MegaIRC.Com
# $Id$
# -----------------------------------------
#
Network >..........: MegaIRC
Set ircnetwork ....: MegaIRC
Set defserv .......: irc.MegaIRC.Net
Set SERVICES_NAME .: Services.MegaIRC.Net
Set oper_host .....: Ircop.MegaIRC.Net
Set admin_host ....: Server-Admin.MegaIRC.Net
Set locop_host ....: Local-Ircop.MegaIRC.Net
Set sadmin_host ...: SOP.MegaIRC.Net
Set netadmin_host .: NetAdmin.MegaIRC.Net
Set coadmin_host ..: Server-CoAdmin.MegaIRC.Net
Set techadmin_host : TechAdmin.MegaIRC.Net
Set hidden_host ...: mega
Set netdomain .....: MegaIRC.Net
Set helpchan ......: #helpdesk
Set STATS_SERVER ..: Stats.MegaIRC.Net
Set HUB ...........: 1
Set iNAH ..........: 1
Set net_quit ......: MI
# To protect people from using normal edition Unreal to link to MegaIRC
Set STOPSE ........: 1
+29
View File
@@ -0,0 +1,29 @@
ver^2.2
#
# Mp3Fans.net Network Configuration File
# -----------------------------------------
# Added-at: 14 July 1999 00:00 GMT
# Author: Stskeeps (Carsten Munk)
# E-Mail: stskeeps@global-irc.net
# $Id$
# -----------------------------------------
#
Network >..........: Mp3FansNet
Set ircnetwork ....: Mp3FansNet
Set defserv .......: irc.mp3fans.net
Set SERVICES_NAME .: services.mp3fans.net
Set oper_host .....: ircop.mp3fans.net
Set admin_host ....: admin.mp3fans.net
Set locop_host ....: locop.mp3fans.net
Set sadmin_host ...: serviceop.mp3fans.net
Set netadmin_host .: netadmin.mp3fans.net
Set coadmin_host ..: coadmin.mp3fans.net
Set techadmin_host : techadmin.mp3fans.net
Set hidden_host ...: mpx
Set netdomain .....: mp3fans.net
Set helpchan ......: #Mp3Fans
Set STATS_SERVER ..: stats.mp3fans.net
Set HUB ...........: 1
Set iNAH ..........: 0
Set net_quit ......: m3
+70
View File
@@ -0,0 +1,70 @@
ver^2.2
#
# Network Configuration File Template
# -----------------------------------------
# Added-at: 23 August 1999 <18:00> GMT
# Author: codemastr <codemastr@elite-hacker.cx>
# $Id$
# -----------------------------------------
# This is a template so you can create your own network configuration files
# Just follow the instructions and it will prolly work ;)
# 0 = No 1 = Yes
# -------------------------------------------------------
#
# These two specify the name of the IRC network, set the same in both fields
Network >..........: NeoHorizon
Set ircnetwork ....: NeoHorizon
# This is where your DNS pool is (like irc.dal.net)
Set defserv .......: irc.nhn.net
# This is the name of your Services Server
Set SERVICES_NAME .: services.nhn.net
# This is the virtual hostname IRCops will get if iNAH option is enabled
# on oper up
Set oper_host .....: IRCop.nhn.net
# This is the virtual hostname Server Admins will get if iNAH option is enabled
# on oper up
Set admin_host ....: Admin.nhn.net
# This is the virtual hostname Local IRCops will get if iNAH option is enabled
# on oper up
Set locop_host ....: Locop.nhn.net
# This is the virtual hostname Services Operators/Admins will get
# if iNAH option is enabled on oper up
Set sadmin_host ...: ServicesOP.nhn.net
# This is the virtual hostname NetAdmins will get
# if iNAH option is enabled on oper up
Set netadmin_host .: NetAdmin.nhn.net
# This is the virtual hostname CoAdmins will get
# if iNAH option is enabled on oper up
Set coadmin_host ..: Co-Admin.nhn.net
# This is the virtual hostname TechAdmins will get
# if iNAH option is enabled on oper up
Set techadmin_host : techadmin.nhn.net
# This is the prefix of the hidden host (cloaking) hostname
Set hidden_host ...: Neo
# This is the domain of the IRC network
Set netdomain .....: nhn.net
# This is where people can go for help
Set helpchan ......: #neohorizon
# This is the name of the stats server
Set STATS_SERVER ..: stats.nhn.net
# -- Not in use--
Set HUB ...........: 1
# This enables the auto-setting of f.x @netadmin.network.net
# on oper up
Set iNAH ..........: 1
# -- Not in use but still here --
Set net_quit ......: NH
+34
View File
@@ -0,0 +1,34 @@
# Networks index file - do not touch please
networks/global-irc.network ......: Global-IRC (http://www.global-irc.net)
networks/mp3fans.network .........: Mp3Fans.Net (http://www.mp3fans.net)
networks/roxnet.network ..........: ROXnet (http://www.rox.za.net)
networks/dragonwings.network .....: DragonWings (http://www.dragonwings.org)
networks/megairc.network .........: MegaIRC (http://www.megairc.net)
networks/neohorizon.network ......: NeoHorizon (http://www.nhn.net)
networks/spynet.network ..........: SpyNet (http://www.spynet.org)
networks/nevernet.network ........: NeverNET (http://www.nevernet.net)
networks/altirc.network ..........: AlternativeNet IRC (http://www.
networks/bunker7.network .........: Bunker7 (http://www.bunker7.net)
networks/realchat.network ........: RealChat.org (http://www.realchat.org)
networks/newmilennium.network ....: NewMilennium (http://www.newmilennium.net)
networks/solarxtreme.network .....: SolarXTreme (http://www.solarxtreme.net)
networks/ss.network ..............: StarSpace (http://www.starspace.net)
networks/uzaynet.network .........: UzayNet (http://www.uzaynet.nu)
networks/infinity.network ........: Infinity-IRC.org (http://www.infinity-irc.org)
networks/tspre.network ...........: TSpre (http://www.tspre.org)
networks/solargalaxy.network .....: SolarGalaxy (http://www.solargalaxy.net)
networks/digitalirc.network ......: DigitalIRC (http://www.digitalirc.net)
networks/fireirc.network .........: FireIRC (http://www.fireirc.net)
networks/stormdancing.network ....: StormDancing (http://www.stormdancing.net)
networks/972-scripterz.network ...: 972-scripterz
networks/v64net.network ..........: v64
networks/treklink.network ........: Treklink (http://www.treklink.net)
networks/axenet.network ..........: AXEnet
networks/kammtech.network ........: KammTecH
networks/linuxactive.network .....: Linuxactive (http://www.linuxactive.net)
networks/ircthai.network .........: IRCThai.com (http://www.ircthai.com)
networks/chatplace.network .......: ChatPlace (http://www.chatplace.net)
networks/interturk.network .......: InterTurk (http://www.interturk.net)
networks/cc2.network .............: CC2 (http://www.cc2.org)
networks/kissland.network ........: Kissland (http://www.kissland.com)
networks/digital-irc.network .....: Digital-IRC (http://www.digital-irc.net)
+72
View File
@@ -0,0 +1,72 @@
ver^2.2
#
# Network Configuration File Template
# -----------------------------------------
# Added-at: <day> <month> <year> <hh:dd> GMT
# Author: <nick> (<real name>)
# E-Mail: <email>
# $Id$
# -----------------------------------------
# This is a template so you can create your own network configuration files
# Just follow the instructions and it will prolly work ;)
# 0 = No 1 = Yes
# -------------------------------------------------------
#
# These two specify the name of the IRC network, set the same in both fields
Network >..........: NeverNET
Set ircnetwork ....: NeverNET
# This is where your DNS pool is (like irc.dal.net)
Set defserv .......: IRC.NeverNET.Net
# This is the name of your Services Server
Set SERVICES_NAME .: Services.NeverNET.Net
# This is the virtual hostname IRCops will get if iNAH option is enabled
# on oper up
Set oper_host .....: Opers.NeverNET.Net
# This is the virtual hostname Server Admins will get if iNAH option is enabled
# on oper up
Set admin_host ....: Admins.NeverNET.Net
# This is the virtual hostname Local IRCops will get if iNAH option is enabled
# on oper up
Set locop_host ....: Opers.NeverNET.Net
# This is the virtual hostname Services Operators/Admins will get
# if iNAH option is enabled on oper up
Set sadmin_host ...: Services.NeverNET.Net
# This is the virtual hostname NetAdmins will get
# if iNAH option is enabled on oper up
Set netadmin_host .: Nevermore.NeverNET.Net
# This is the virtual hostname CoAdmins will get
# if iNAH option is enabled on oper up
Set coadmin_host ..: NetAdmins.NeverNET.Net
# This is the virtual hostname TechAdmins will get
# if iNAH option is enabled on oper up
Set techadmin_host : Tech.NeverNET.Net
# This is the prefix of the hidden host (cloaking) hostname
Set hidden_host ...: NN
# This is the domain of the IRC network
Set netdomain .....: NeverNET.Net
#This is where people can go for help
Set helpchan ......: #NeverNET
# This is the name of the stats server
Set STATS_SERVER ..: Stats.NeverNET.Net
# -- Not in use--
Set HUB ...........: 1
# This enables the auto-setting of f.x @netadmin.network.net
# on oper up
Set iNAH ..........: 0
# -- Not in use but still here --
Set net_quit ......: ic

Some files were not shown because too many files have changed in this diff Show More