Skip to content

Commit 204c4b8

Browse files
author
drscholl
committed
Initial import of the opennap-0.05 work in progress.
0 parents  commit 204c4b8

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

69 files changed

+9395
-0
lines changed

.indent.pro

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
--indent-level4 --brace-indent0 --blank-lines-after-declarations

AUTHORS

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
Anonymous.

COPYING

+340
Large diffs are not rendered by default.

ChangeLog

+44
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
Changes from 0.04
2+
=================
3+
4+
added support for resume searches (215, 216-217)
5+
6+
Changes from 0.03
7+
=================
8+
added support for channel user list (825/830).
9+
10+
added support for ping/pong (751/752).
11+
12+
fixed broken channel list (618) message
13+
14+
added channel list terminator message (617)
15+
16+
Changes from 0.02
17+
=================
18+
added hotlist support. clients can add entries with 207, and are notified
19+
about users logging in or out (209/210).
20+
21+
added channel listing support (617/618)
22+
23+
added generic array maniuplation routines arrary_add/array_remove
24+
25+
Changes from 0.01
26+
=================
27+
send_cmd() modified to take the CONNECTION struct instead of a file descriptor
28+
29+
modified send_cmd() and pass_message() to call new function queue_data()
30+
instead of write(). to avoid blocking on write() calls, the server now
31+
queues all messages it has to send for one pass on the event loop. after all
32+
input has been processed, queued data is sent. send_queued_data() takes note
33+
of how much data was actually sent and saves the rest for the next event
34+
loop.
35+
36+
the server now requires mutual authentication for establishing a
37+
server<->server link.
38+
39+
changed authentication such that the server passwords never travel over the net
40+
in the clear. this will prevent bogus servers from trying to steal a server's
41+
password. instead, we use a scheme similar to apop where one server issues
42+
a challenge for which the other use will hash their password with and send
43+
back the hash value. except in this case both parties generate a random
44+
"nonce" value which seeds the hash.

FAQ

+20
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
Frequently Asked Questions (FAQ) about opennap
2+
==============================================
3+
Last updated on Dec 14, 1999.
4+
5+
Q: What is opennap?
6+
A: opennap is an open source server which speaks the napster protocol
7+
8+
Q: What is napster?
9+
A: See www.napster.com for information.
10+
11+
Q: Is this project associated with napster.com?
12+
A: No, this server was developed without any communication with napster.com
13+
14+
Q: Why isn't nick registration supported?
15+
16+
A: It is next to impossible to keep a group of distributed servers which
17+
may connect/disconnect at will in sync with eachother. Nick registration
18+
needs to be handled as a centralized service ala NickServ on many
19+
IRC networks.
20+

INSTALL

+182
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,182 @@
1+
Basic Installation
2+
==================
3+
4+
These are generic installation instructions.
5+
6+
The `configure' shell script attempts to guess correct values for
7+
various system-dependent variables used during compilation. It uses
8+
those values to create a `Makefile' in each directory of the package.
9+
It may also create one or more `.h' files containing system-dependent
10+
definitions. Finally, it creates a shell script `config.status' that
11+
you can run in the future to recreate the current configuration, a file
12+
`config.cache' that saves the results of its tests to speed up
13+
reconfiguring, and a file `config.log' containing compiler output
14+
(useful mainly for debugging `configure').
15+
16+
If you need to do unusual things to compile the package, please try
17+
to figure out how `configure' could check whether to do them, and mail
18+
diffs or instructions to the address given in the `README' so they can
19+
be considered for the next release. If at some point `config.cache'
20+
contains results you don't want to keep, you may remove or edit it.
21+
22+
The file `configure.in' is used to create `configure' by a program
23+
called `autoconf'. You only need `configure.in' if you want to change
24+
it or regenerate `configure' using a newer version of `autoconf'.
25+
26+
The simplest way to compile this package is:
27+
28+
1. `cd' to the directory containing the package's source code and type
29+
`./configure' to configure the package for your system. If you're
30+
using `csh' on an old version of System V, you might need to type
31+
`sh ./configure' instead to prevent `csh' from trying to execute
32+
`configure' itself.
33+
34+
Running `configure' takes awhile. While running, it prints some
35+
messages telling which features it is checking for.
36+
37+
2. Type `make' to compile the package.
38+
39+
3. Optionally, type `make check' to run any self-tests that come with
40+
the package.
41+
42+
4. Type `make install' to install the programs and any data files and
43+
documentation.
44+
45+
5. You can remove the program binaries and object files from the
46+
source code directory by typing `make clean'. To also remove the
47+
files that `configure' created (so you can compile the package for
48+
a different kind of computer), type `make distclean'. There is
49+
also a `make maintainer-clean' target, but that is intended mainly
50+
for the package's developers. If you use it, you may have to get
51+
all sorts of other programs in order to regenerate files that came
52+
with the distribution.
53+
54+
Compilers and Options
55+
=====================
56+
57+
Some systems require unusual options for compilation or linking that
58+
the `configure' script does not know about. You can give `configure'
59+
initial values for variables by setting them in the environment. Using
60+
a Bourne-compatible shell, you can do that on the command line like
61+
this:
62+
CC=c89 CFLAGS=-O2 LIBS=-lposix ./configure
63+
64+
Or on systems that have the `env' program, you can do it like this:
65+
env CPPFLAGS=-I/usr/local/include LDFLAGS=-s ./configure
66+
67+
Compiling For Multiple Architectures
68+
====================================
69+
70+
You can compile the package for more than one kind of computer at the
71+
same time, by placing the object files for each architecture in their
72+
own directory. To do this, you must use a version of `make' that
73+
supports the `VPATH' variable, such as GNU `make'. `cd' to the
74+
directory where you want the object files and executables to go and run
75+
the `configure' script. `configure' automatically checks for the
76+
source code in the directory that `configure' is in and in `..'.
77+
78+
If you have to use a `make' that does not supports the `VPATH'
79+
variable, you have to compile the package for one architecture at a time
80+
in the source code directory. After you have installed the package for
81+
one architecture, use `make distclean' before reconfiguring for another
82+
architecture.
83+
84+
Installation Names
85+
==================
86+
87+
By default, `make install' will install the package's files in
88+
`/usr/local/bin', `/usr/local/man', etc. You can specify an
89+
installation prefix other than `/usr/local' by giving `configure' the
90+
option `--prefix=PATH'.
91+
92+
You can specify separate installation prefixes for
93+
architecture-specific files and architecture-independent files. If you
94+
give `configure' the option `--exec-prefix=PATH', the package will use
95+
PATH as the prefix for installing programs and libraries.
96+
Documentation and other data files will still use the regular prefix.
97+
98+
In addition, if you use an unusual directory layout you can give
99+
options like `--bindir=PATH' to specify different values for particular
100+
kinds of files. Run `configure --help' for a list of the directories
101+
you can set and what kinds of files go in them.
102+
103+
If the package supports it, you can cause programs to be installed
104+
with an extra prefix or suffix on their names by giving `configure' the
105+
option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'.
106+
107+
Optional Features
108+
=================
109+
110+
Some packages pay attention to `--enable-FEATURE' options to
111+
`configure', where FEATURE indicates an optional part of the package.
112+
They may also pay attention to `--with-PACKAGE' options, where PACKAGE
113+
is something like `gnu-as' or `x' (for the X Window System). The
114+
`README' should mention any `--enable-' and `--with-' options that the
115+
package recognizes.
116+
117+
For packages that use the X Window System, `configure' can usually
118+
find the X include and library files automatically, but if it doesn't,
119+
you can use the `configure' options `--x-includes=DIR' and
120+
`--x-libraries=DIR' to specify their locations.
121+
122+
Specifying the System Type
123+
==========================
124+
125+
There may be some features `configure' can not figure out
126+
automatically, but needs to determine by the type of host the package
127+
will run on. Usually `configure' can figure that out, but if it prints
128+
a message saying it can not guess the host type, give it the
129+
`--host=TYPE' option. TYPE can either be a short name for the system
130+
type, such as `sun4', or a canonical name with three fields:
131+
CPU-COMPANY-SYSTEM
132+
133+
See the file `config.sub' for the possible values of each field. If
134+
`config.sub' isn't included in this package, then this package doesn't
135+
need to know the host type.
136+
137+
If you are building compiler tools for cross-compiling, you can also
138+
use the `--target=TYPE' option to select the type of system they will
139+
produce code for and the `--build=TYPE' option to select the type of
140+
system on which you are compiling the package.
141+
142+
Sharing Defaults
143+
================
144+
145+
If you want to set default values for `configure' scripts to share,
146+
you can create a site shell script called `config.site' that gives
147+
default values for variables like `CC', `cache_file', and `prefix'.
148+
`configure' looks for `PREFIX/share/config.site' if it exists, then
149+
`PREFIX/etc/config.site' if it exists. Or, you can set the
150+
`CONFIG_SITE' environment variable to the location of the site script.
151+
A warning: not all `configure' scripts look for a site script.
152+
153+
Operation Controls
154+
==================
155+
156+
`configure' recognizes the following options to control how it
157+
operates.
158+
159+
`--cache-file=FILE'
160+
Use and save the results of the tests in FILE instead of
161+
`./config.cache'. Set FILE to `/dev/null' to disable caching, for
162+
debugging `configure'.
163+
164+
`--help'
165+
Print a summary of the options to `configure', and exit.
166+
167+
`--quiet'
168+
`--silent'
169+
`-q'
170+
Do not print messages saying which checks are being made. To
171+
suppress all normal output, redirect it to `/dev/null' (any error
172+
messages will still be shown).
173+
174+
`--srcdir=DIR'
175+
Look for the package's source code in directory DIR. Usually
176+
`configure' can determine that directory automatically.
177+
178+
`--version'
179+
Print the version of Autoconf used to generate the `configure'
180+
script, and exit.
181+
182+
`configure' also accepts some other, not widely useful, options.

Makefile.am

+16
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
bin_PROGRAMS=opennap metaserver spyserv spynap
2+
opennap_SOURCES=opennap.h main.c add_file.c db.c search.c \
3+
motd.c hash.h hash.c privmsg.c browse.c \
4+
debug.c debug.h login.c whois.c close_db.c free_user.c \
5+
join.c part.c public.c part_channel.c \
6+
announce.c kill_user.c remove_connection.c config.c download.c \
7+
download_ack.c upload_complete.c topic.c muzzle.c unmuzzle.c \
8+
level.c client_quit.c server_login.c server_connect.c synch.c util.c \
9+
md5c.c md5.h global.h hotlist.c remove_file.c list_channels.c \
10+
list_users.c ping.c resume.c
11+
metaserver_SOURCES=metaserver.c
12+
spyserv_SOURCES=spyserv.c
13+
spynap_SOURCES=spynap.c
14+
spynap_LDADD=-lreadline
15+
EXTRA_DIST=sample.conf sample.motd napster.txt .indent.pro create_db.sql FAQ
16+
INCLUDES=-I/usr/include/mysql -DSHAREDIR=\"$(pkgdatadir)\"

0 commit comments

Comments
 (0)