feedServ Framework... now lets code

This commit is contained in:
Fish 2006-07-12 09:19:26 +00:00
parent a9da9caeaa
commit 97c7b64fdb
19 changed files with 31003 additions and 0 deletions

18
.gitattributes vendored
View file

@ -1 +1,19 @@
* text=auto !eol
/ChangeLog -text
/LICENSE -text
/Makefile.am -text
/Makefile.in -text
/README.feedserv -text
/README.feedserv.html -text
/README.feedserv.xml -text
/RELNOTES -text
/aclocal.m4 -text
/configure -text
/configure.in -text
/feed.c -text
/feed.h -text
/feed_help.c -text
/html.css -text
/install-sh -text
/modconfig.h.in -text
/modconfigwin32.h -text

4
ChangeLog Normal file
View file

@ -0,0 +1,4 @@
FeedServ Module for NeoStats Changelog.
==============================================================================
1.0 - Fish (F)
- Initial Release

341
LICENSE Normal file
View file

@ -0,0 +1,341 @@
# $Id: LICENSE,v 1.1 2002/09/04 08:52:34 fishwaldo Exp $
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) 19yy <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) 19yy 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.

15
Makefile.am Normal file
View file

@ -0,0 +1,15 @@
AUTOMAKE_OPTIONS = foreign
ACLOCAL_AMFLAGS = -I autotools
AM_MAKEFLAGS = -s
pkglib_LTLIBRARIES = libfeedserv.la
libfeedserv_la_SOURCES = feed.c feed_help.c
noinst_HEADERS = feed.h
libfeedserv_la_LDFLAGS = -module -avoid-version
EXTRA_DIST = autotools/ccdv.c autotools/shtool RELNOTES
dist_doc_DATA = README.feed README.feed.html
include $(top_srcdir)/autotools/rules.mk

722
Makefile.in Normal file
View file

@ -0,0 +1,722 @@
# Makefile.in generated by automake 1.9.6 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
# 2003, 2004, 2005 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
# PARTICULAR PURPOSE.
@SET_MAKE@
srcdir = @srcdir@
top_srcdir = @top_srcdir@
VPATH = @srcdir@
pkgdatadir = $(datadir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
top_builddir = .
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
INSTALL = @INSTALL@
install_sh_DATA = $(install_sh) -c -m 644
install_sh_PROGRAM = $(install_sh) -c
install_sh_SCRIPT = $(install_sh) -c
INSTALL_HEADER = $(INSTALL_DATA)
transform = $(program_transform_name)
NORMAL_INSTALL = :
PRE_INSTALL = :
POST_INSTALL = :
NORMAL_UNINSTALL = :
PRE_UNINSTALL = :
POST_UNINSTALL = :
build_triplet = @build@
host_triplet = @host@
DIST_COMMON = $(am__configure_deps) $(dist_doc_DATA) $(noinst_HEADERS) \
$(srcdir)/Makefile.am $(srcdir)/Makefile.in \
$(srcdir)/modconfig.h.in $(top_srcdir)/autotools/rules.mk \
$(top_srcdir)/configure ChangeLog autotools/compile \
autotools/config.guess autotools/config.sub autotools/depcomp \
autotools/install-sh autotools/ltmain.sh autotools/missing \
autotools/mkinstalldirs install-sh
subdir = .
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = \
$(top_srcdir)/autotools/ax_maintainer_mode_auto_silent.m4 \
$(top_srcdir)/autotools/ccdv.m4 $(top_srcdir)/configure.in
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \
configure.lineno configure.status.lineno
mkinstalldirs = $(SHELL) $(top_srcdir)/autotools/mkinstalldirs
CONFIG_HEADER = modconfig.h
CONFIG_CLEAN_FILES =
am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
am__vpath_adj = case $$p in \
$(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
*) f=$$p;; \
esac;
am__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
am__installdirs = "$(DESTDIR)$(pkglibdir)" "$(DESTDIR)$(docdir)"
pkglibLTLIBRARIES_INSTALL = $(INSTALL)
LTLIBRARIES = $(pkglib_LTLIBRARIES)
libfeedserv_la_LIBADD =
am_libfeedserv_la_OBJECTS = feed.lo feed_help.lo
libfeedserv_la_OBJECTS = $(am_libfeedserv_la_OBJECTS)
DEFAULT_INCLUDES = -I. -I$(srcdir) -I.
depcomp = $(SHELL) $(top_srcdir)/autotools/depcomp
am__depfiles_maybe = depfiles
COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
LTCOMPILE = $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) \
$(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
$(AM_CFLAGS) $(CFLAGS)
CCLD = $(CC)
SOURCES = $(libfeedserv_la_SOURCES)
DIST_SOURCES = $(libfeedserv_la_SOURCES)
dist_docDATA_INSTALL = $(INSTALL_DATA)
DATA = $(dist_doc_DATA)
HEADERS = $(noinst_HEADERS)
ETAGS = etags
CTAGS = ctags
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
distdir = $(PACKAGE)-$(VERSION)
top_distdir = $(distdir)
am__remove_distdir = \
{ test ! -d $(distdir) \
|| { find $(distdir) -type d ! -perm -200 -exec chmod u+w {} ';' \
&& rm -fr $(distdir); }; }
DIST_ARCHIVES = $(distdir).tar.gz
GZIP_ENV = --best
distuninstallcheck_listfiles = find . -type f -print
distcleancheck_listfiles = find . -type f -print
pkglibdir = $(prefix)/modules
ACLOCAL = @ACLOCAL@
AMDEP_FALSE = @AMDEP_FALSE@
AMDEP_TRUE = @AMDEP_TRUE@
AMTAR = @AMTAR@
AR = @AR@
AUTOCONF = @AUTOCONF@
AUTOHEADER = @AUTOHEADER@
AUTOMAKE = @AUTOMAKE@
AWK = @AWK@
CC = @CC@
CCDEPMODE = @CCDEPMODE@
CCDV = @CCDV@
CFLAGS = @CFLAGS@
CPP = @CPP@
CPPFLAGS = @CPPFLAGS@
CXX = @CXX@
CXXCPP = @CXXCPP@
CXXDEPMODE = @CXXDEPMODE@
CXXFLAGS = @CXXFLAGS@
CYGPATH_W = @CYGPATH_W@
DEFS = @DEFS@
DEPDIR = @DEPDIR@
DIRINST = @DIRINST@
ECHO = @ECHO@
ECHO_C = @ECHO_C@
ECHO_N = @ECHO_N@
ECHO_T = @ECHO_T@
EGREP = @EGREP@
EXEEXT = @EXEEXT@
F77 = @F77@
FFLAGS = @FFLAGS@
INSTALL_DATA = @INSTALL_DATA@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
LDFLAGS = @LDFLAGS@
LIBOBJS = @LIBOBJS@
LIBS = @LIBS@
LIBTOOL = @LIBTOOL@
LN_S = @LN_S@
LTLIBOBJS = @LTLIBOBJS@
MAINT = @MAINT@
MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@
MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@
MAKEINFO = @MAKEINFO@
OBJEXT = @OBJEXT@
PACKAGE = @PACKAGE@
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
PACKAGE_NAME = @PACKAGE_NAME@
PACKAGE_STRING = @PACKAGE_STRING@
PACKAGE_TARNAME = @PACKAGE_TARNAME@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
RANLIB = @RANLIB@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
STRIP = @STRIP@
USECCDV = @USECCDV@
VERSION = @VERSION@
ac_ct_AR = @ac_ct_AR@
ac_ct_CC = @ac_ct_CC@
ac_ct_CXX = @ac_ct_CXX@
ac_ct_F77 = @ac_ct_F77@
ac_ct_RANLIB = @ac_ct_RANLIB@
ac_ct_STRIP = @ac_ct_STRIP@
am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@
am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@
am__include = @am__include@
am__leading_dot = @am__leading_dot@
am__quote = @am__quote@
am__tar = @am__tar@
am__untar = @am__untar@
bindir = @bindir@
build = @build@
build_alias = @build_alias@
build_cpu = @build_cpu@
build_os = @build_os@
build_vendor = @build_vendor@
datadir = $(prefix)/data
exec_prefix = @exec_prefix@
host = @host@
host_alias = @host_alias@
host_cpu = @host_cpu@
host_os = @host_os@
host_vendor = @host_vendor@
includedir = @includedir@
infodir = @infodir@
install_sh = @install_sh@
libdir = @libdir@
libexecdir = @libexecdir@
localstatedir = @localstatedir@
mandir = @mandir@
mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@
prefix = @prefix@
program_transform_name = @program_transform_name@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
sysconfdir = @sysconfdir@
target_alias = @target_alias@
wi_PWD = @wi_PWD@
AUTOMAKE_OPTIONS = foreign
ACLOCAL_AMFLAGS = -I autotools
AM_MAKEFLAGS = -s
pkglib_LTLIBRARIES = libfeedserv.la
libfeedserv_la_SOURCES = feed.c feed_help.c
noinst_HEADERS = feed.h
libfeedserv_la_LDFLAGS = -module -avoid-version
EXTRA_DIST = autotools/ccdv.c autotools/shtool RELNOTES
dist_doc_DATA = README.feed README.feed.html
LINK = $(LIBTOOL) --tag=CXX --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
$(AM_LDFLAGS) $(LDFLAGS) -o $@
docdir = $(prefix)/doc
all: modconfig.h
$(MAKE) $(AM_MAKEFLAGS) all-am
.SUFFIXES:
.SUFFIXES: .c .lo .o .obj
am--refresh:
@:
$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(top_srcdir)/autotools/rules.mk $(am__configure_deps)
@for dep in $?; do \
case '$(am__configure_deps)' in \
*$$dep*) \
echo ' cd $(srcdir) && $(AUTOMAKE) --foreign '; \
cd $(srcdir) && $(AUTOMAKE) --foreign \
&& exit 0; \
exit 1;; \
esac; \
done; \
echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign Makefile'; \
cd $(top_srcdir) && \
$(AUTOMAKE) --foreign Makefile
.PRECIOUS: Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@case '$?' in \
*config.status*) \
echo ' $(SHELL) ./config.status'; \
$(SHELL) ./config.status;; \
*) \
echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \
cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \
esac;
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
$(SHELL) ./config.status --recheck
$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
cd $(srcdir) && $(AUTOCONF)
$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
cd $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS)
modconfig.h: stamp-h1
@if test ! -f $@; then \
rm -f stamp-h1; \
$(MAKE) stamp-h1; \
else :; fi
stamp-h1: $(srcdir)/modconfig.h.in $(top_builddir)/config.status
@rm -f stamp-h1
cd $(top_builddir) && $(SHELL) ./config.status modconfig.h
$(srcdir)/modconfig.h.in: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
cd $(top_srcdir) && $(AUTOHEADER)
rm -f stamp-h1
touch $@
distclean-hdr:
-rm -f modconfig.h stamp-h1
uninstall-pkglibLTLIBRARIES:
@$(NORMAL_UNINSTALL)
@set -x; list='$(pkglib_LTLIBRARIES)'; for p in $$list; do \
p=$(am__strip_dir) \
echo " $(LIBTOOL) --mode=uninstall rm -f '$(DESTDIR)$(pkglibdir)/$$p'"; \
$(LIBTOOL) --mode=uninstall rm -f "$(DESTDIR)$(pkglibdir)/$$p"; \
done
clean-pkglibLTLIBRARIES:
-test -z "$(pkglib_LTLIBRARIES)" || rm -f $(pkglib_LTLIBRARIES)
@list='$(pkglib_LTLIBRARIES)'; for p in $$list; do \
dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
test "$$dir" != "$$p" || dir=.; \
echo "rm -f \"$${dir}/so_locations\""; \
rm -f "$${dir}/so_locations"; \
done
libfeedserv.la: $(libfeedserv_la_OBJECTS) $(libfeedserv_la_DEPENDENCIES)
$(LINK) -rpath $(pkglibdir) $(libfeedserv_la_LDFLAGS) $(libfeedserv_la_OBJECTS) $(libfeedserv_la_LIBADD) $(LIBS)
mostlyclean-compile:
-rm -f *.$(OBJEXT)
distclean-compile:
-rm -f *.tab.c
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/feed.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/feed_help.Plo@am__quote@
mostlyclean-libtool:
-rm -f *.lo
clean-libtool:
-rm -rf .libs _libs
distclean-libtool:
-rm -f libtool
uninstall-info-am:
uninstall-dist_docDATA:
@$(NORMAL_UNINSTALL)
@list='$(dist_doc_DATA)'; for p in $$list; do \
f=$(am__strip_dir) \
echo " rm -f '$(DESTDIR)$(docdir)/$$f'"; \
rm -f "$(DESTDIR)$(docdir)/$$f"; \
done
ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
$(AWK) ' { files[$$0] = 1; } \
END { for (i in files) print i; }'`; \
mkid -fID $$unique
tags: TAGS
TAGS: $(HEADERS) $(SOURCES) modconfig.h.in $(TAGS_DEPENDENCIES) \
$(TAGS_FILES) $(LISP)
tags=; \
here=`pwd`; \
list='$(SOURCES) $(HEADERS) modconfig.h.in $(LISP) $(TAGS_FILES)'; \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
$(AWK) ' { files[$$0] = 1; } \
END { for (i in files) print i; }'`; \
if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
test -n "$$unique" || unique=$$empty_fix; \
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
$$tags $$unique; \
fi
ctags: CTAGS
CTAGS: $(HEADERS) $(SOURCES) modconfig.h.in $(TAGS_DEPENDENCIES) \
$(TAGS_FILES) $(LISP)
tags=; \
here=`pwd`; \
list='$(SOURCES) $(HEADERS) modconfig.h.in $(LISP) $(TAGS_FILES)'; \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
$(AWK) ' { files[$$0] = 1; } \
END { for (i in files) print i; }'`; \
test -z "$(CTAGS_ARGS)$$tags$$unique" \
|| $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
$$tags $$unique
GTAGS:
here=`$(am__cd) $(top_builddir) && pwd` \
&& cd $(top_srcdir) \
&& gtags -i $(GTAGS_ARGS) $$here
distclean-tags:
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
distdir: $(DISTFILES)
$(am__remove_distdir)
mkdir $(distdir)
$(mkdir_p) $(distdir)/autotools
@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
list='$(DISTFILES)'; for file in $$list; do \
case $$file in \
$(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
$(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
esac; \
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
if test "$$dir" != "$$file" && test "$$dir" != "."; then \
dir="/$$dir"; \
$(mkdir_p) "$(distdir)$$dir"; \
else \
dir=''; \
fi; \
if test -d $$d/$$file; then \
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
fi; \
cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
else \
test -f $(distdir)/$$file \
|| cp -p $$d/$$file $(distdir)/$$file \
|| exit 1; \
fi; \
done
-find $(distdir) -type d ! -perm -777 -exec chmod a+rwx {} \; -o \
! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \
! -type d ! -perm -400 -exec chmod a+r {} \; -o \
! -type d ! -perm -444 -exec $(SHELL) $(install_sh) -c -m a+r {} {} \; \
|| chmod -R a+r $(distdir)
dist-gzip: distdir
tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
$(am__remove_distdir)
dist-bzip2: distdir
tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2
$(am__remove_distdir)
dist-tarZ: distdir
tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z
$(am__remove_distdir)
dist-shar: distdir
shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz
$(am__remove_distdir)
dist-zip: distdir
-rm -f $(distdir).zip
zip -rq $(distdir).zip $(distdir)
$(am__remove_distdir)
dist dist-all: distdir
tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
$(am__remove_distdir)
# This target untars the dist file and tries a VPATH configuration. Then
# it guarantees that the distribution is self-contained by making another
# tarfile.
distcheck: dist
case '$(DIST_ARCHIVES)' in \
*.tar.gz*) \
GZIP=$(GZIP_ENV) gunzip -c $(distdir).tar.gz | $(am__untar) ;;\
*.tar.bz2*) \
bunzip2 -c $(distdir).tar.bz2 | $(am__untar) ;;\
*.tar.Z*) \
uncompress -c $(distdir).tar.Z | $(am__untar) ;;\
*.shar.gz*) \
GZIP=$(GZIP_ENV) gunzip -c $(distdir).shar.gz | unshar ;;\
*.zip*) \
unzip $(distdir).zip ;;\
esac
chmod -R a-w $(distdir); chmod a+w $(distdir)
mkdir $(distdir)/_build
mkdir $(distdir)/_inst
chmod a-w $(distdir)
dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \
&& dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \
&& cd $(distdir)/_build \
&& ../configure --srcdir=.. --prefix="$$dc_install_base" \
$(DISTCHECK_CONFIGURE_FLAGS) \
&& $(MAKE) $(AM_MAKEFLAGS) \
&& $(MAKE) $(AM_MAKEFLAGS) dvi \
&& $(MAKE) $(AM_MAKEFLAGS) check \
&& $(MAKE) $(AM_MAKEFLAGS) install \
&& $(MAKE) $(AM_MAKEFLAGS) installcheck \
&& $(MAKE) $(AM_MAKEFLAGS) uninstall \
&& $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \
distuninstallcheck \
&& chmod -R a-w "$$dc_install_base" \
&& ({ \
(cd ../.. && umask 077 && mkdir "$$dc_destdir") \
&& $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \
&& $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \
&& $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \
distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \
} || { rm -rf "$$dc_destdir"; exit 1; }) \
&& rm -rf "$$dc_destdir" \
&& $(MAKE) $(AM_MAKEFLAGS) dist \
&& rm -rf $(DIST_ARCHIVES) \
&& $(MAKE) $(AM_MAKEFLAGS) distcleancheck
$(am__remove_distdir)
@(echo "$(distdir) archives ready for distribution: "; \
list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \
sed -e '1{h;s/./=/g;p;x;}' -e '$${p;x;}'
distuninstallcheck:
@cd $(distuninstallcheck_dir) \
&& test `$(distuninstallcheck_listfiles) | wc -l` -le 1 \
|| { echo "ERROR: files left after uninstall:" ; \
if test -n "$(DESTDIR)"; then \
echo " (check DESTDIR support)"; \
fi ; \
$(distuninstallcheck_listfiles) ; \
exit 1; } >&2
distcleancheck: distclean
@if test '$(srcdir)' = . ; then \
echo "ERROR: distcleancheck can only run from a VPATH build" ; \
exit 1 ; \
fi
@test `$(distcleancheck_listfiles) | wc -l` -eq 0 \
|| { echo "ERROR: files left in build directory after distclean:" ; \
$(distcleancheck_listfiles) ; \
exit 1; } >&2
check-am: all-am
check: check-am
all-am: Makefile $(LTLIBRARIES) $(DATA) $(HEADERS) modconfig.h
installdirs:
for dir in "$(DESTDIR)$(pkglibdir)" "$(DESTDIR)$(docdir)"; do \
test -z "$$dir" || $(mkdir_p) "$$dir"; \
done
install: install-am
install-exec: install-exec-am
install-data: install-data-am
uninstall: uninstall-am
install-am: all-am
@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
installcheck: installcheck-am
install-strip:
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
`test -z '$(STRIP)' || \
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
mostlyclean-generic:
clean-generic:
distclean-generic:
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
maintainer-clean-generic:
@echo "This command is intended for maintainers to use"
@echo "it deletes files that may require special tools to rebuild."
clean: clean-am
clean-am: clean-generic clean-libtool clean-pkglibLTLIBRARIES \
mostlyclean-am
distclean: distclean-am
-rm -f $(am__CONFIG_DISTCLEAN_FILES)
-rm -rf ./$(DEPDIR)
-rm -f Makefile
distclean-am: clean-am distclean-compile distclean-generic \
distclean-hdr distclean-libtool distclean-tags
dvi: dvi-am
dvi-am:
html: html-am
info: info-am
info-am:
install-data-am: install-dist_docDATA
install-exec-am: install-pkglibLTLIBRARIES
install-info: install-info-am
install-man:
installcheck-am:
maintainer-clean: maintainer-clean-am
-rm -f $(am__CONFIG_DISTCLEAN_FILES)
-rm -rf $(top_srcdir)/autom4te.cache
-rm -rf ./$(DEPDIR)
-rm -f Makefile
maintainer-clean-am: distclean-am maintainer-clean-generic
mostlyclean: mostlyclean-am
mostlyclean-am: mostlyclean-compile mostlyclean-generic \
mostlyclean-libtool
pdf: pdf-am
pdf-am:
ps: ps-am
ps-am:
uninstall-am: uninstall-dist_docDATA uninstall-info-am \
uninstall-pkglibLTLIBRARIES
.PHONY: CTAGS GTAGS all all-am am--refresh check check-am clean \
clean-generic clean-libtool clean-pkglibLTLIBRARIES ctags dist \
dist-all dist-bzip2 dist-gzip dist-shar dist-tarZ dist-zip \
distcheck distclean distclean-compile distclean-generic \
distclean-hdr distclean-libtool distclean-tags distcleancheck \
distdir distuninstallcheck dvi dvi-am html html-am info \
info-am install install-am install-data install-data-am \
install-dist_docDATA install-exec install-exec-am install-info \
install-info-am install-man install-pkglibLTLIBRARIES \
install-strip installcheck installcheck-am installdirs \
maintainer-clean maintainer-clean-generic mostlyclean \
mostlyclean-compile mostlyclean-generic mostlyclean-libtool \
pdf pdf-am ps ps-am tags uninstall uninstall-am \
uninstall-dist_docDATA uninstall-info-am \
uninstall-pkglibLTLIBRARIES
.c.o:
@USECCDV@ @echo "Building $@"
@am__fastdepCC_TRUE@ @if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" \
@am__fastdepCC_TRUE@ -c -o $@ `test -f '$<' || echo '$(srcdir)/'`$<; \
@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; \
@am__fastdepCC_TRUE@ else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; \
@am__fastdepCC_TRUE@ fi
@AMDEP_TRUE@@am__fastdepCC_FALSE@ @source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(COMPILE) -c `test -f '$<' || echo '$(srcdir)/'`$<
.c.obj:
@USECCDV@ @echo "Building $@"
@am__fastdepCC_TRUE@ @if $(LTCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" \
@am__fastdepCC_TRUE@ -c -o $@ `if test -f '$<'; then $(CYGPATH_W) '$<'; else $(CYGPATH_W) '$(srcdir)/$<'; fi`; \
@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; \
@am__fastdepCC_TRUE@ else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; \
@am__fastdepCC_TRUE@ fi
@AMDEP_TRUE@@am__fastdepCC_FALSE@ @source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(LTCOMPILE) -c `if test -f '$<'; then $(CYGPATH_W) '$<'; else $(CYGPATH_W) '$(srcdir)/$<'; fi`
.c.lo:
@USECCDV@ @echo "Building $@"
@am__fastdepCC_TRUE@ @if $(LTCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" \
@am__fastdepCC_TRUE@ -c -o $@ `test -f '$<' || echo '$(srcdir)/'`$<; \
@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Plo"; \
@am__fastdepCC_TRUE@ else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; \
@am__fastdepCC_TRUE@ fi
@AMDEP_TRUE@@am__fastdepCC_FALSE@ @source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/$*.Plo' tmpdepfile='$(DEPDIR)/$*.TPlo' @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ `test -f '$<' || echo '$(srcdir)/'`$<
install-pkglibLTLIBRARIES: $(pkglib_LTLIBRARIES)
@$(NORMAL_INSTALL)
$(mkinstalldirs) $(DESTDIR)$(pkglibdir)
@list='ls .libs/*.so'; for p in $$list; do \
if test -f $$p; then \
f="`echo $$p | sed -e 's|^.*/||'`"; \
$(CCDV) $(LIBTOOL) --mode=install $(pkglibLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) $$p $(DESTDIR)$(pkglibdir)/$$f; \
if test "x#" != "x@USECCDV@"; then echo "Installing $$f"; fi; \
else :; fi; \
done
install-binSCRIPTS: $(bin_SCRIPTS)
@$(NORMAL_INSTALL)
test -z "$(bindir)" || $(mkdir_p) "$(DESTDIR)$(bindir)"
@list='$(bin_SCRIPTS)'; for p in $$list; do \
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
if test -f $$d$$p; then \
f=`echo "$$p" | sed 's|^.*/||;$(transform)'`; \
$(CCDV) $(binSCRIPT_INSTALL) "$$d$$p" "$(DESTDIR)$(bindir)/$$f"; \
if test "x#" != "x@USECCDV@"; then echo "Installing $$f"; fi; \
else :; fi; \
done
install-dist_binSCRIPTS: $(dist_bin_SCRIPTS)
@$(NORMAL_INSTALL)
test -z "$(bindir)" || $(mkdir_p) "$(DESTDIR)$(bindir)"
@list='$(dist_bin_SCRIPTS)'; for p in $$list; do \
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
if test -f $$d$$p; then \
f=`echo "$$p" | sed 's|^.*/||;$(transform)'`; \
$(CCDV) $(dist_binSCRIPT_INSTALL) "$$d$$p" "$(DESTDIR)$(bindir)/$$f"; \
if test "x#" != "x@USECCDV@"; then echo "Installing $$f"; fi; \
else :; fi; \
done
install-dist_dataDATA: $(dist_data_DATA)
@$(NORMAL_INSTALL)
test -z "$(datadir)" || $(mkdir_p) "$(DESTDIR)$(datadir)"
@list='$(dist_data_DATA)'; for p in $$list; do \
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
f=$(am__strip_dir) \
$(CCDV) $(dist_dataDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(datadir)/$$f"; \
if test "x#" != "x@USECCDV@"; then echo "Installing $$f"; fi; \
done
install-dist_docDATA: $(dist_doc_DATA)
@$(NORMAL_INSTALL)
test -z "$(docdir)" || $(mkdir_p) "$(DESTDIR)$(docdir)"
@list='$(dist_doc_DATA)'; for p in $$list; do \
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
f=$(am__strip_dir) \
$(CCDV) $(dist_docDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(docdir)/$$f"; \
if test "x#" != "x@USECCDV@"; then echo "Installing $$f"; fi; \
done
install-includeHEADERS: $(include_HEADERS)
@$(NORMAL_INSTALL)
test -z "$(includedir)" || $(mkdir_p) "$(DESTDIR)$(includedir)"
@list='$(include_HEADERS)'; for p in $$list; do \
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
f=$(am__strip_dir) \
$(CCDV) $(includeHEADERS_INSTALL) "$$d$$p" "$(DESTDIR)$(includedir)/$$f"; \
if test "x#" != "x@USECCDV@"; then echo "Installing $$f"; fi; \
done
install-binPROGRAMS: $(bin_PROGRAMS)
@$(NORMAL_INSTALL)
test -z "$(bindir)" || $(mkdir_p) "$(DESTDIR)$(bindir)"
@list='$(bin_PROGRAMS)'; for p in $$list; do \
p1=`echo $$p|sed 's/$(EXEEXT)$$//'`; \
if test -f $$p \
|| test -f $$p1 \
; then \
f=`echo "$$p1" | sed 's,^.*/,,;$(transform);s/$$/$(EXEEXT)/'`; \
$(CCDV) $(INSTALL_PROGRAM_ENV) $(LIBTOOL) --mode=install $(binPROGRAMS_INSTALL) "$$p" "$(DESTDIR)$(bindir)/$$f" || exit 1; \
if test "x#" != "x@USECCDV@"; then echo "Installing $$f"; fi; \
else :; fi; \
done
install-libLTLIBRARIES: $(lib_LTLIBRARIES)
@$(NORMAL_INSTALL)
test -z "$(libdir)" || $(mkdir_p) "$(DESTDIR)$(libdir)"
@list='$(lib_LTLIBRARIES)'; for p in $$list; do \
if test -f $$p; then \
f=$(am__strip_dir) \
$(CCDV) $(LIBTOOL) --mode=install $(libLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) "$$p" "$(DESTDIR)$(libdir)/$$f"; \
if test "x#" != "x@USECCDV@"; then echo "Installing $$f"; fi; \
else :; fi; \
done
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:

680
README.feedserv Normal file
View file

@ -0,0 +1,680 @@
OPSB Manual
_________________________________________________________________
1. Prerequisites and Installation.
1.1. Compiling and Installation
2. Basic Configuration
2.1. Exclusion Lists
2.2. TARGET IP and TARGET PORT
2.3. BanTime
3. Detailed Configuration
3.1. CACHETIME Setting
3.2. SCAN Setting
3.3. AKILL Setting
3.4. OPMDOMAIN Setting
3.5. MAXBYTES Setting
3.6. TIMEOUT
3.7. OPENSTRING
3.8. SPLITTIME
3.9. SCANMSG Setting
3.10. PORTS Setting
3.10.1. Listing Ports/Protocols
3.10.2. Adding Ports
3.10.3. Deleting Ports
4. Operational Commands
4.1. LOOKUP Command
4.2. INFO Command
4.3. CHECK Command
4.4. STATUS Command
Welcome to the Open Proxy Scanning Bot (OPSB) Manual. This document
will aid you in setting up and running OPSB on your IRC network.
OPSB is a Proxy Scanning Service that scans connecting clients for
Open Proxies. These Open Proxies are often used by malicious users and
trojans to connect to your network and attack the network, users, or
channels that you host. It bases its scanning engine on the BOPM proxy
scanning library available at http://www.blitzed.org, but unlike the
BOPM software, it has native support to scan all clients network wide,
rather than via individual servers. This means that you only need one
OPSB service running on your network to protect your entire IRC
network.
Additionally, OPSB makes use of Open Proxy lists. These lists often
contain IP addresses of verified Open Proxies, and OPSB can ban these
users without even scanning. By default, OPSB uses the blitzed open
proxy list (More details available at http://opm.blitzed.org)
OPSB is flexible in that it has many advanced configuration options
available to IRC administrators, including the ability to easily
modify the protocols and ports to scan of connecting users, as well as
exclude certian users or servers from scanning. This allows you maxium
flexibility without the overhead of running multiple copies of proxy
scanning software. In addition, it has the ability to Queue up scans,
so during periods of peak usage, OPSB will not consume all bandwidth
or file descriptors, but still scan users in a timely manor.
Proxy Scanning is only one defence against Trojans and Malicious
users, and can not detect all types of open Proxies. We therefore
recomend that the IRC administrators run other software such as
SecureServ, and familiarize themselves with the OperServ functionality
found in most traditional IRC services packages.
By Default, OPSB scans the following protocols and ports (But this can
be easily customized)
* HTTP Proxies on Port 80, 3128, 8000, 8080
* HTTP Post Proxies on Port 80, 3128, 8000, 8080
* Wingate Servers on Port 23
* Insecure Cisco Routers on port 23
* SOCKS4 Servers on 1080
* SOCKS5 Servers on 1080
These ports are some of the more common ports, but administrators
might find other ports that are often associated with open proxies. In
these cases, the administrator can simple add the new port to be
scanning without restarting OPSB.
Warning
When picking a host to run OPSB from, make sure you check with your
Shell or ISP provider to ensure that there are no Transparent HTTP
proxies enabled on that network. Transparent proxies are often used to
speed up HTTP downloads for users without requiring the user to update
their browser configuration. If you often get false positive scans on
users on port 80, then most likely your hosting provider has
implemented a Transparent Proxy. See if they can disable this
transparent proxy for you, or alternativly, find a new hosting
provider that does not run a transparent proxy. THERE IS NO WAY FOR
OPSB TO DETECT IT IS BEHIND A TRANSPARENT PROXY.
OPSB is written and maintained by Justin Hammond. It requires the
NeoStats software. More information about OPSB, or NeoStats, can be
found at http://www.neostats.net/
OPSB is Copyright, 2004 by Justin Hammond.
1. Prerequisites and Installation.
OPSB is designed to run on Top of NeoStats. The Following requirements
at the time of writting are required for NeoStats:
* A Linux or BSD based Server or Shell.
* A supported IRCd. Currently, Hybrid7, Unreal, Ultimate2.x,
Ultimate3.x, NeoIRCd, Bahumat
* Some basic Unix administration Skill
* Of Course, a IRC network to connect it all together.
Please refer to the NeoStats website for more information on the
requirements
OPSB itself requires the following:
* NeoStats 2.5.8 or Higher correctly installed and Running
* The time to read this entire document.
Warning
OPSB has the potential to Akill/Gline your entire network. Its
strongly suggested that you read this entire document before even
attempting to compile OPSB, as I'm just going to laugh, if you
didn't read, and it AKILL's your entire network. This is Beta
Software, there are BUGS. beware.
1.1. Compiling and Installation
As long as you have successfully setup NeoStats, and installed it
correctly, Compiling OPSB is very simple and straight forward. First
you must extract the files from the download package. This is as
simple as:
bash$ tar -xzf OPSB-<ver>.tar.gz
This should then create a directory called OPSB-<version> where
<version> is the Version of OPSB. Then Proceed to Change into the OPSB
directory, and run Configure as follows:
bash$./configure [--enable-debug | --with-neostats=<dir>]
--enable-debug is only usefull for diagnostics purposes when used in
conjuction with debugging tools. There should be no need to use this
option on a day to day basis
--with-neostats=<dir> should be used if your neostats directory is not
in a standard location (~/NeoStats/). Replace <dir> with the full path
to your NeoStats installation directory (NOT SOURCE DIRECTORY)
Configuring OPSB will look something like the following screen:
[Fish@fish-dt]$ ./configure
checking for gcc... gcc
checking for C compiler default output... a.out
checking whether the C compiler works... yes
checking whether we are cross compiling... no
checking for suffix of executables...
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ANSI C... none needed
checking for a BSD-compatible install... /usr/bin/install -c
checking for pcre_compile in -lpcre... yes
checking Location of NeoStats...... /home/fish/NeoStats/
checking for /home/fish/NeoStats//include/dl.h... yes
checking Version of NeoStats...... Compatible Version
checking Whether to Enable Debuging...... no
configure: creating ./config.status
config.status: creating Makefile
(*----------------------------------------------------------*)
(| To compile your module, please type 'make' |)
(| If make completes without errors, then you |)
(| Must 'make install', but please be sure that NeoStats |)
(| Is not currently running with a module of the same name |)
(| Running, otherwise Make install will not work |)
(| !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! |)
(| If you are running a BSD, make install may produce a |)
(| Error, if that is the case, then please manually copy |)
(| opsb.so to the NeoStats/dl directory |)
(| !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! |)
(*----------------------------------------------------------*)
(| For Support please visit: |)
(| IRC: /server irc.irc-chat.org |)
(| #neostats channel |)
(| WWW: http://www.neostats.net/boards/ |)
(*----------------------------------------------------------*)
(|This Module was written by: |)
(| fish (fish@dynam.ac) |)
(*----------------------------------------------------------*)
If the configuration did not produce a error, you may then move onto
Compiling OPSB. Compiling is simply just issuing the "make" command
(or "gmake" if you are running BSD):
[Fish@fish-dt]$ make
(cd libopm; make libopm.a)
make[1]: Entering directory `/home/fish/opsb/libopm'
gcc -c -O2 -Wall -I. -I.. compat.c
gcc -c -O2 -Wall -I. -I.. config.c
gcc -c -O2 -Wall -I. -I.. inet.c
gcc -c -O2 -Wall -I. -I.. libopm.c
gcc -c -O2 -Wall -I. -I.. list.c
gcc -c -O2 -Wall -I. -I.. malloc.c
gcc -c -O2 -Wall -I. -I.. proxy.c
ar cru libopm.a compat.o config.o inet.o libopm.o list.o malloc.o proxy.o
ranlib libopm.a
make[1]: Leaving directory `/home/fish/opsb/libopm'
gcc -c -O2 -Wall -I/home/fish/NeoStats//include/ -I. -Ilibopm opsb.c
gcc -c -O2 -Wall -I/home/fish/NeoStats//include/ -I. -Ilibopm proxy.c
gcc -c -O2 -Wall -I/home/fish/NeoStats//include/ -I. -Ilibopm opsb_help.c
ld -shared -o opsb.so opsb.o proxy.o opsb_help.o libopm/libop
m.a
[1005|/home/fish/opsb]
[Fish@fish-dt]$
Again, check for Error messages. As long as there are not error
messages, "make install" will install OPSB, this README file, and any
auxiluary files needed into your NeoStats directory:
[Fish@fish-dt]$ make install
(cd libopm; make libopm.a)
make[1]: Entering directory `/home/fish/opsb/libopm'
make[1]: `libopm.a' is up to date.
make[1]: Leaving directory `/home/fish/opsb/libopm'
ld -shared -o opsb.so opsb.o proxy.o opsb_help.o libopm/libop
m.a
/usr/bin/install -c
-m 644 opsb.so
/home/fish/NeoStats//dl/
/usr/bin/install -c
-m 644 README.opsb opsb.S
ettings /home/fish/NeoStats//dl/../doc/
[1006|/home/fish/opsb]
If you recieve *ANY* errors at all during the this process, please
post them on our Support boards, at http//www.neostats.net/boards/
Once Installation is complete, you can either configure NeoStats to
load OPSB when it starts, or load OPSB via IRC.
To Configure NeoStats to automatically load OPSB when it boots, add
the following line to your "neostats.cfg" file in the NeoStats
directory:
LOAD_MODULE OPSB
To load OPSB via IRC, you must make sure you have the appropriate
permissions and issue the following command:
/msg neostats load OPSB
Thats it. OPSB is now loaded and ready for use (in fact, it will
already be running now, but read on for futher information.
2. Basic Configuration
OPSB is completly configured online via IRC. When you first start up
OPSB, it attempts some "Sane" defaults for you to get started with,
but you should always review these settings as soon as you install.
Additionally, while its in this "Default" state, it will warn you
every so often via a global message as well as messages to the
services channel that it is still "unconfigured". Some of the settings
that you may want to review right away are:
* Exclusion Lists - You should setup a Exclude list for your IRC
Services server (NickServ etc)
* Target IP address and Ports that OPSB tries to get the proxies to
connect to.
* Default Ban Time when OPSB finds a open Proxy.
These are outlined below:
2.1. Exclusion Lists
Exclusion lists allow you to specify certian Hostmasks or Servers that
should be excluded from monitoring by OPSB. This exclusion list would
allow a administrator to say, allow users on that are matched against
a open proxy, when the administrator has verified that the trojan does
not in fact exist on the users host.
Caution
Exclusions should be setup for your Services Server, so that OPSB does
not try to scan ChanServ, or NickServ, or any of the bots relating to
Nickname protection.
Adding a Entry
To add a entry to the Exclusion list, use the following format:
/msg OPSB exclude add <1/0> <type> <reason>
Where:
<host> = The HostName/Server or Channel name. WildCards ? and * are
permitted.
<type> = The type of exclusion. 0 is for HostNames, 1 is for Servers
<reason> = a short description of the exclusion, for operator
reference only.
The output is as follows:
>OPSB< exclude add services.irc-chat.net 1 Blah is my reason
-OPSB- Added services.irc-chat.net (Server) exception to list
Listing an Entry
To list the Exclusions simple type:
/msg OPSB exclude list
And all the current exclusions are listed. Additionaly, a Position
number is provided for use with the delete command. The output is as
follows:
>OPSB< exclude list
-OPSB- Exception List:
-OPSB- 1) *.blah.com (Server) Added by Fish for Blah is my reason
-OPSB- 2) is.blah.com (HostName) Added by Fish for can by high
-OPSB- End of List.
Deleting an Entry
To delete a entry, you should first lookup the Position of the entry
that you wish to delete. The format of the command is as follows:
/msg OPSB exclude del <num>
Where:
<num> is the position of the entry you wish to delete in the list
The output of the command is as follows:
>OPSB< exclude del 1
-OPSB- Deleted services.irc-chat.net server out of exception list
2.2. TARGET IP and TARGET PORT
By default, OPSB sets up each proxy scan to attempt to connect back to
the IP address and port of the server that NeoStats connects to. This
may not always be what you wish, as it can help a attacker map our how
your network is structured. Ideally, you should pick the IP address of
a IRC server you host that is stable and on a fast connection, and
enter its IP address and port numbers into OPSB.
Changing the TargetIP
To add a entry to the Helper list, use the following format:
/msg OPSB set targetip <newipaddress>
Where:
<newipaddress> = The ip address to attempt to get proxies to connect
to
The output is as follows:
-> *opsb* set targetip 203.208.228.144
=opsb= Target IP set to 203.208.228.144
Changing the Target Port
To list the helpers simple type:
/msg OPSB set targetport <newport>
Where:
<newport> = the new port to attempt to get proxies to connect to
The output is as follows:
-> *opsb* set targetport 6667
=opsb= Target PORT set to 6667
2.3. BanTime
OPSB by default bans the IP/Hostname of a Open Proxy for 1 day (86400
seconds). Some networks may wish to increase or decrease this time
value.
Changing the Ban Time
To change the akilltime, type:
-> *opsb* set akilltime 86400
=opsb= Ban time changed to 86400
3. Detailed Configuration
OPSB attempts to be as configurable as possible in order to cater for
each individual networks requirements. This in turn though makes the
configuration very complex. There are many many settings with OPSB
that affect how it operates, how it responds and even, how affects the
performance of NeoStats Overall. Out of the box, OPSB provides
sensible defaults for these settings, but you may wish to read this
section for details on exactly what each option does, and its affect
on how OPSB operates.
The following list summaries the available Options you can set in OPSB
* CACHETIME
* SCAN
* AKILL
* OPMDOMAIN
* MAXBYTES
* TIMEOUT
* OPENSTRING
* SPLITTIME
* SCANMSG
* PORTS
To change any of these settings, you use the Set Interface in OPSB.
Eg:
/msg OPSB set <option> <params>
To view the current settings, issue the following command:
/msg OPSB set list
The following Sections describes the different options, their params,
and the effect on OPSB in detail.
3.1. CACHETIME Setting
In order to improve performance, OPSB caches the results of scans it
has performed so if a user disconnects and reconnects, they are not
scanned again, and thus this saves bandwidth and improves the
performance of OPSB. By default, OPSB saves previous scans for 1 hour.
Smaller IRC networks may wish to increase this value, while larger IRC
networks that are concerned about performance or memory usage of OPSB
may with to leave this setting as it is. Setting the cache time to 0
disables the use of caching, and forces OPSB to scan every user
connecting every time.
To Change the setting, issue the following Command:
/msg OPSB set CACHETIME <seconds>
3.2. SCAN Setting
Sometimes a IRC administrator may wish to only make use of the Open
Proxy list lookup, and not actually perform a scan on users.
SCAN forces OPSB to only perform a lookup of the IP address in
the configured OPMDOMAIN.
If you wish to turn off Proxy checks, issue the following command
/msg OPSB set SCAN <ON/OFF>
3.3. AKILL Setting
Often, when setting up OPSB for the first time, or making changes to
the ports that are to be scanning, you may wish to test OPSB without
it actually performing a AKILL. Turning AKILL off disables the
placement of a AKILL on open Proxy hosts.
To Change the setting, issue the following Command:
/msg OPSB set AKILL <ON/OFF>
3.4. OPMDOMAIN Setting
This setting changes with domain OPSB should consult for a positive
match on a particular IP address. By Default, OPSB checks
opm.blizted.org. Another list may be substituted instead of the
default on. At this time, we have not tested any other open proxy
list, although most lists should work with no problems. Please report
success/failure to our boards
To Change this Setting, issue the following Command:
/msg OPSB set OPMDOMAIN <newdomain>
3.5. MAXBYTES Setting
Maxbytes controls how much data to read from a open connection before
determining that the host in question does not contain a Open Proxy.
As we check ports that are common with legitimate applications such as
webservers, we don't need to download the entire webpage to determine
that it is not a open proxy. By default, we only read 500 bytes which
should be sufficient for most networks.
To Change this Setting, issue the following Command:
/msg OPSB set MAXBYTES <bytelimit>
3.6. TIMEOUT
It is very common for users to now use personal firewall software on
their PC. This often leads to probes the the users ip address that
never actually get rejected or are successfull, but just hang trying
to connect. the Timeout value controls how long to wait before
assuming that the host is not operating a proxy. By default, we wait
30 seconds
To Change this setting, issue the following command:
/msg OPSB set TIMEOUT <seconds>
3.7. OPENSTRING
This setting controls what strings to look for that indicate a Open
Proxy. By default, we look for the standard string "*** Looking up
your hostname..." which is one of the first messages sent to
connecting IRC clients. There should be no need to change this
setting. Internally, OPSB also scans for common Trottle or akill
messages.
To Change this setting, issue the following command:
/msg OPSB set OPENSTRING <newstring>
3.8. SPLITTIME
OPSB is very sensitive to timedrifts on the IRC network. In order to
not scan users that might be part of a Netjoin (When two IRC servers
reconnect after a Netsplit) we only scan users who's signon time is
less than this setting. If your IRC network times are not in sync, you
might experience issues where users connecting to one "lagged" out
server are not scanning. In this case, you should fix the time on the
affected server. A last resort is to increase this time value. By
default, we only scan users that connected in the last 300 seconds
To Change this setting, issue the following command:
/msg OPSB set SPLITTIME <seconds>
3.9. SCANMSG Setting
This setting changes the default message that is sent to users when
they sign on the IRC network. You can customise this message to point
to a webpage giving more details, or customize to your local language.
To Change the setting, issue the following Command:
/msg OPSB set SCANMSG <msg>
3.10. PORTS Setting
The ports setting allows you to customize what ports and protocols are
scanned when users connect to your IRC network. This can be used to
detect proxies that are running on additional ports that OPSB does not
scan by default.
3.10.1. Listing Ports/Protocols
To list the current protocols and the assocated ports, issue the
following command:
/msg OPSB ports list
And the following is displayed:
>opsb< ports list
-opsb- Port List:
-opsb- 1) HTTP Port: 80
-opsb- 2) HTTP Port: 8080
-opsb- 3) HTTP Port: 8000
-opsb- 4) HTTP Port: 3128
-opsb- 5) SOCKS4 Port: 1080
-opsb- 6) SOCKS5 Port: 1080
-opsb- 7) WINGATE Port: 23
-opsb- 8) ROUTER Port: 23
-opsb- 9) HTTPPOST Port: 80
-opsb- 10) HTTPPOST Port: 8080
-opsb- 11) HTTPPOST Port: 8000
-opsb- 12) HTTPPOST Port: 3128
-opsb- End of List.
3.10.2. Adding Ports
To add a additional port to scan with a particular protocol, use the
following command:
/msg opsb ports add <type> <port>
Where:
<type> is the type of Protocol to use. Either:
HTTP
HTTPPOST
SOCKS4
SOCKS5
WINGATE
ROUTER
<port> is any valid port number between 1 and 65535
The change is imediate, and new users will have these ports scanned
when they connect.
3.10.3. Deleting Ports
If you wish to delete a port to be scanned, issue the following
command:
/msg opsb ports del <id>
Where <id> is the ID number of the port/Protocol you wish to delete.
ID can be obtained from a port listing command described above.
OPSB requires a restart when deleting a port, so you should either
restart NeoStats, or Reload the OPSB module.
4. Operational Commands
OPSB has a number of commands that you can issue it in order to
perform checks or operations on your IRC network. These commands aid
Administrators in keeping their network secure, and keeping OPSB upto
date.
The following list summerizes these commands:
* LOOKUP
* INFO
* CHECK
* STATUS
* REMOVE
The following Sections Describe these commands in detail
4.1. LOOKUP Command
The lookup comand can perform DNS lookups for you. You can specify
what information you wish to retrive. This command is open to all
users by default.
The format of the command is as follows:
/msg OPSB lookup <ip|hostname> <flag>
Where:
<ip|hostname> is the item you wish to lookup.
<flag> is optional, and specified what type of data you wish to
lookup. Available options include:
txt - Lookup Text Records rp - Lookup the Responsible Person for this
record ns - Lookup the Name Servers for this record soa - Lookup the
SOA for this Record
If no flag is given, we attempt to lookup the A record.
The output of the command is as follows:
-> *opsb* lookup irc.irc-chat.net
=opsb= irc.irc-chat.net resolves to 202.181.4.129
=opsb= irc.irc-chat.net resolves to 203.208.228.144
=opsb= irc.irc-chat.net resolves to 216.218.235.254
=opsb= irc.irc-chat.net resolves to 66.227.101.55
4.2. INFO Command
This command provides users with information about what functions OPSB
performs. Its intended to just provide directions to users for more
information
The format of the command is as follows:
/msg OPSB info
4.3. CHECK Command
This command forces OPSB to perform a full scan on the specified
nickname, ip adress or hostname.
The format of the command is as follows:
/msg OPSB check <nick|host>
The output is as follows:
=opsb= Checking fish for open Proxies
<opsb> Starting proxy scan on Fish (XXXX.singnet.com.sg) by Request of Fish
=opsb= Negitiation failed for protocol HTTP(80)
=opsb= Negitiation failed for protocol HTTP(8000)
=opsb= Negitiation failed for protocol HTTP(3128)
=opsb= Negitiation failed for protocol SOCKS4(1080)
=opsb= Negitiation failed for protocol SOCKS5(1080)
=opsb= Negitiation failed for protocol WINGATE(23)
=opsb= Negitiation failed for protocol ROUTER(23)
=opsb= Negitiation failed for protocol HTTPPOST(80)
=opsb= Negitiation failed for protocol HTTPPOST(8000)
=opsb= Negitiation failed for protocol HTTPPOST(3128)
=opsb= Closed Proxy on Protocol HTTP (8080)
=opsb= Closed Proxy on Protocol HTTPPOST (8080)
=opsb= scan finished on Fish
=opsb= XXXX.singnet.com.sg does not appear in DNS black list
4.4. STATUS Command
This command gives the Administrator statistics on the how OPSB is
performing, how many checks it has conducted, and other information
relating to the performance of OPSB.
The format of the command is as follows:
-> *opsb* status
=opsb= Proxy Results:
=opsb= Hosts Scanned: 5831 Hosts found Open: 1 Exceptions 0
=opsb= Cache Entries: 128
=opsb= Cache Hits: 5523
=opsb= Blacklist Hits: 4
=opsb= Currently Scanning 0 Proxies (0 in queue):

49
README.feedserv.html Normal file

File diff suppressed because one or more lines are too long

629
README.feedserv.xml Normal file
View file

@ -0,0 +1,629 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
<article>
<title>ModuleName 3.0 Manual</title>
<para>Welcome to the ModuleName Manual. This document will aid you in
setting up and running ModuleName on your IRC network.</para>
<para>&lt;add module introduction&gt;</para>
<para>ModuleName is Copyright, 2006 by Justin Hammond.</para>
<sect1>
<title>Prerequisites and Installation.</title>
<para>ModuleName is designed to run on Top of NeoStats. The Following
requirements at the time of writing are required for
NeoStats:<itemizedlist>
<listitem>
<para>A Linux or BSD based Server or Shell.</para>
</listitem>
<listitem>
<para>A IRCd supported by NeoStats. See the <link
linkend="???">NeoStats</link> website.</para>
</listitem>
<listitem>
<para>Some basic Unix administration Skill</para>
</listitem>
<listitem>
<para>Of Course, a IRC network to connect it all together.</para>
</listitem>
</itemizedlist></para>
<para>Please refer to the NeoStats website for more information on the
requirements</para>
<para>ModuleName itself requires the following:<itemizedlist>
<listitem>
<para>NeoStats 3.0 or Higher correctly installed and Running</para>
</listitem>
<listitem>
<para>The time to read this entire document. </para>
</listitem>
</itemizedlist></para>
<sect2>
<title>Compiling and Installation</title>
<para>As long as you have successfully setup NeoStats, and installed it
correctly, Compiling ModuleName is very simple and straight forward.
First you must extract the files from the download package. This is as
simple as:</para>
<screen>bash$<command> tar -xzf ModuleName-&lt;ver&gt;.tar.gz</command></screen>
<para>This should then create a directory called
ModuleName-&lt;version&gt; where &lt;version&gt; is the Version of
ModuleName. Then Proceed to Change into the ModuleName directory, and
run Configure as follows:<screen>bash$<command>./configure [--enable-debug | --with-neostats=&lt;dir&gt;]</command></screen></para>
<para>--enable-debug is only useful for diagnostics purposes when used
in conjunction with debugging tools. There should be no need to use this
option on a day to day basis</para>
<para>--with-neostats=&lt;dir&gt; should be used if your neostats
directory is not in a standard location (~/NeoStats/). Replace
&lt;dir&gt; with the full path to your NeoStats installation directory
(NOT SOURCE DIRECTORY)</para>
<para>Configuring ModuleName will look something like the following
screen:</para>
<screen>Fishs-Mac:~/Documents/Dev/ModuleName justin$ ./configure
checking whether to enable maintainer-specific portions of Makefiles... no
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for gawk... no
checking for mawk... no
checking for nawk... no
&lt;snip&gt;
checking To Enable AutoTools Debug Mode?... no
checking silent building of source files... Enabled
configure: creating ./config.status
config.status: creating Makefile
config.status: creating modconfig.h
config.status: modconfig.h is unchanged
config.status: executing depfiles commands
Configuration complete.
Press Enter key to read the release notes</screen>
<para>The Configure process will then prompt you to read the release
notes. You are encouraged to read this document throughly as it might
contain important information about the current version of ModuleName
that isn't covered in the manual.</para>
<para>If the configuration did not produce a error, you may then move
onto Compiling ModuleName. Compiling is simply just issuing the "make"
command (or "gmake" if you are running BSD):</para>
<screen>Fishs-Mac:~/Documents/Dev/ModuleName justin$ make
make -s all-am
Compiling Helpers.c: [OK]
Compiling ModuleName.c: [OK]
Compiling scan.c: [OK]
Compiling OnJoinBot.c: [OK]
Compiling ModuleName_help.c: [OK]
Compiling update.c: [OK] </screen>
<para>Again, check for Error messages. As long as there are not error
messages, "make install" will install ModuleName, this README file, and
any auxiliary files needed into your NeoStats directory:</para>
<screen>Fishs-Mac:~/Documents/Dev/ModuleName justin$ make install
Installing ModuleName.so: [OK]
Installing viri.dat: [OK]
Installing README.ModuleName: [OK]
Installing README.ModuleName.html: [OK] </screen>
<para>If you receive *ANY* errors at all during the this process, please
post them on our Support boards, at
http//www.neostats.net/boards/</para>
<para>Once Installation is complete, you can either configure NeoStats
to load ModuleName when it starts, or load ModuleName via IRC.</para>
<para>To Configure NeoStats to automatically load ModuleName when it
boots, modify the neostats.conf file and add ModuleName to the list of
modules to load:</para>
<screen>MODULENAME = {
"statserv",
"hostserv",
"ModuleName",
} </screen>
<para>To load ModuleName via IRC, you must make sure you have the
appropriate permissions and issue the following command:</para>
<para><command>/msg neostats load ModuleName</command></para>
<para>Thats it. ModuleName is now loaded and ready for use (in fact, it
will already be running now, but read on for further
information.)</para>
</sect2>
</sect1>
<sect1>
<title>Basic Configuration</title>
<para>ModuleName is completely configured online via IRC. When you first
start up ModuleName, it attempts some "Sane" defaults for you get started
with, but you should always review these settings as soon as you install.
There are a few important settings you may want to review right away. They
are:</para>
<itemizedlist>
<listitem>
<para>blah blah</para>
</listitem>
<listitem>
<para>blah blah</para>
</listitem>
<listitem>
<para>blah blah</para>
</listitem>
</itemizedlist>
<para>These are outlined below:</para>
<sect2>
<title>Blah Blah</title>
<para>Blah Blah</para>
</sect2>
<sect2>
<title>Blah Blah</title>
<para>BLAH BLAH</para>
</sect2>
</sect1>
<sect1>
<title>Detailed Configuration</title>
<para>ModuleName attempts to be as configurable as possible in order to
cater for each individual networks requirements. This in turn though makes
the configuration very complex. There are many many settings with
ModuleName that affect how it operates, how it responds and even, how
affects the performance of NeoStats Overall. Out of the box, ModuleName
provides sensible defaults for these settings, but you may wish to read
this section for details on exactly what each option does, and its affect
on how ModuleName operates.</para>
<para>The following list summaries the available options you can set in
ModuleName</para>
<itemizedlist>
<listitem>
<para>NICK</para>
</listitem>
<listitem>
<para>ALTNICK</para>
</listitem>
<listitem>
<para>USER</para>
</listitem>
<listitem>
<para>HOST</para>
</listitem>
<listitem>
<para>REALNAME</para>
</listitem>
<listitem>
<para>EXCLUSIONS</para>
</listitem>
<listitem>
<para>BLAHBLAH</para>
</listitem>
</itemizedlist>
<para>To change any of these settings, you use the Set Interface in
ModuleName. Eg:</para>
<screen>/msg ModuleName set &lt;option&gt; &lt;params&gt;</screen>
<para>To view the current settings, issue the following command:</para>
<screen>/msg ModuleName set list</screen>
<para>The following Sections describes the different options, their
params, and the effect on ModuleName in detail.</para>
<sect2>
<title>NICK Setting</title>
<para>This setting allows you to change the Nickname that ModuleName
uses when it connects to your network. If you change this setting make
sure you update your NeoNet account, otherwise you might loose access to
the Secure IRC-Chat site if we perform a check on your network and can't
find "ModuleName" running.</para>
<warning>
<para>This option requires you to reload ModuleName or restart
NeoStats to take effect.</para>
</warning>
<screen>/msg ModuleName set NICK &lt;nickname&gt;</screen>
</sect2>
<sect2>
<title>ALTNICK Setting</title>
<para>This setting allows you to set a "Backup" nickname used for
ModuleName. If the primary Nickname in the NICK Setting is not
available, ModuleName will use this nickname, and if that is not
available, it will use a automatically generated nickname</para>
<warning>
<para>This option requires you to reload ModuleName or restart
NeoStats to take effect</para>
</warning>
<screen>/msg ModuleName set ALTNICK &lt;nickname&gt;</screen>
</sect2>
<sect2>
<title>USER Setting</title>
<para>This option allows you to customize the "user" or ident portion of
the ModuleName Bot. </para>
<warning>
<para>This option requires you to reload ModuleName or restart
NeoStats to take effect</para>
</warning>
<screen>/msg ModuleName set USER &lt;user&gt;</screen>
</sect2>
<sect2>
<title>HOST Setting</title>
<para>This option allows you to customize the Hostname that ModuleName
uses when it signs onto your Network. It defaults to the Standard
Hostname specified in your NeoStats configuration.</para>
<warning>
<para>This option requires you to reload ModuleName or restart
NeoStats to take effect</para>
</warning>
<screen>/msg ModuleName set HOST &lt;host&gt;</screen>
</sect2>
<sect2>
<title>REALNAME Setting</title>
<para>This option allows you to customize the realname (or Gecos) that
ModuleName uses when it signs onto your Network. </para>
<warning>
<para>This option requires you to reload ModuleName or restart
NeoStats to take effect</para>
</warning>
<screen>/msg ModuleName set REALNAME &lt;realname&gt;</screen>
</sect2>
<sect2>
<title>EXCLUSIONS Setting</title>
<para>This option enables ModuleName to use the Global Exclusions list
that is control by the main NeoStats bot. This allows you to maintain a
"global" exclusion list that is applicable to all modules in NeoStats,
and then only apply individual exclusions to ModuleName. </para>
<warning>
<para>This option only becomes effective on new users joining your
Network. Existing users that are already connected when you enable
this option will not be rescanned for exclusions, as the Global
Exclusions are only effected when a new user signs onto the Network.
In order to make the global exclusions list effective straight away,
you should restart NeoStats.</para>
</warning>
<para>If you wish to enable or disable the Global Exclusions lists,
issue the following command</para>
<screen>/msg ModuleName set EXCLUSIONS &lt;ON/OFF&gt;</screen>
</sect2>
<sect2>
<title>BLAH Blah Setting</title>
<para>blah blah description</para>
<para>To Change the setting, issue the following Command:</para>
<screen>/msg ModuleName set blahblah &lt;blah&gt; </screen>
</sect2>
</sect1>
<sect1>
<title>Operational Commands</title>
<para>ModuleName has a number of commands that you can issue it in order
to perform checks or operations on your IRC network. These commands aid
Administrators in keeping their network secure, and keeping ModuleName
upto date.</para>
<para>The following list summarizes these commands:</para>
<itemizedlist>
<listitem>
<para>HELP</para>
</listitem>
<listitem>
<para>VERSION</para>
</listitem>
<listitem>
<para>ABOUT</para>
</listitem>
<listitem>
<para>CREDITS</para>
</listitem>
<listitem>
<para>LEVELS</para>
</listitem>
<listitem>
<para>SET</para>
</listitem>
<listitem>
<para>EXCLUDE</para>
</listitem>
<listitem>
<para>BLAHBLAH</para>
</listitem>
</itemizedlist>
<para>The following Sections Describe these commands in detail</para>
<sect2>
<title>HELP Command</title>
<para>The help command allows the users to access the online help for
the different commands available. You can get general help about the
available commands, or can access more specific information about a
command.</para>
<para>To see the help pages, use the following format:</para>
<screen>/msg ModuleName help [command]
</screen>
<para>command is optional and only required if you want more specific
information about a particular command</para>
</sect2>
<sect2>
<title>VERSION Command</title>
<para>This command displays the Version of ModuleName, and the dat
files. </para>
<para>The format of the command is as follows:</para>
<screen>/msg ModuleName version
</screen>
</sect2>
<sect2>
<title>ABOUT Command</title>
<para>The about command shows a brief description of the Bot and its
purpose.</para>
<para>The format of the command is as follows:</para>
<screen>/msg ModuleName about
</screen>
</sect2>
<sect2>
<title>CREDITS Command</title>
<para>The credits command shows details about the authors or
contributors of to the Module</para>
<para>The format of the command is as follows:</para>
<screen>/msg ModuleName credits
</screen>
</sect2>
<sect2>
<title>LEVELS Command</title>
<para>The levels command allows you to adjust the security of each
command available in this module. You can make certian commands only
available to higher "level" users in NeoStats. </para>
<para>For more information about NeoStats Levels and Security, please
consult the NeoStats Manual</para>
<para>To list the currently configured levels, issue the following
command:</para>
<screen>/msg ModuleName levels list
</screen>
<para>To change the minimum level required to execute a command, issue
the following command:</para>
<screen>/msg ModuleName levels &lt;command&gt; &lt;level&gt;</screen>
<para>Where:</para>
<para>command = is the actual command name you wish to modify</para>
<para>level = a number between 0 and 200 that specifies the new
level.</para>
</sect2>
<sect2>
<title>SET Command</title>
<para>The set command allows you to modify settings applicable to this
module. For a complete description of the available set options, please
consult the Detailed Configuration Section of this manual.</para>
</sect2>
<sect2>
<title>EXCLUDE Command</title>
<para>Exclusion lists allow you to specify certain Hostmasks, Servers,
or Channels that should be excluded from monitoring by ModuleName. This
exclusion list would allow a administrator to say, allow users on that
are matched against Trojans, when the administrator has verified that
the Trojan does not in fact exist on the users host.</para>
<caution>
<para>Exclusions should be setup for your Services Server, so that
ModuleName does not try to scan ChanServ, or NickServ, or any of the
bots relating to Nickname protection.</para>
</caution>
<para>With NeoStats 3.0, you should also be aware that there are two
types of Exclusion Lists. There are "Global" exclusion lists that all
modules may optionally use, and there is module specific exclusion
lists. ModuleName defaults to not using the Global Exclusion lists. You
can enable it by the following command:<screen>/msg ModuleName set exclusions on</screen></para>
<para><emphasis role="bold">Adding a Entry</emphasis></para>
<para>To add a entry to the Exclusion list, use the following
format:</para>
<screen>/msg ModuleName exclude add &lt;host/Server/Channel/UserHost&gt; &lt;pattern&gt; &lt;reason&gt;</screen>
<para>Where:</para>
<para>&lt;Host/Server/Channel/UserHost&gt; = The type of exclusion you
are adding. The different types are:<itemizedlist>
<listitem>
<para>Host - The Users real (Internet) Hostname</para>
</listitem>
<listitem>
<para>Server - The Users server they are connecting to. You should
ensure you add a exclusion for your Services Server</para>
</listitem>
<listitem>
<para>Channel - A specific channel on your IRC Network</para>
</listitem>
<listitem>
<para>UserHost - The users Virtual Hostname (IRC)</para>
</listitem>
</itemizedlist></para>
<para>&lt;pattern&gt; = The pattern you wish to match on. May include
wildcard charactors such as * and ?</para>
<para>&lt;reason&gt; = a short description of the exclusion, for
operator reference only.</para>
<para>The output is as follows:</para>
<screen>[13:20] -ModuleName- Added *.blah.com (userhost) to exclusion list
[13:20] ModuleName Fish added *.blah.com (userhost) to the exclusion list</screen>
<para><emphasis role="bold">Listing an Entry</emphasis></para>
<para>To list the Exclusions simple type:</para>
<screen>/msg ModuleName exclude list</screen>
<para>And all the current exclusions are listed. Additionally, a
Position number is provided for use with the delete command. The output
is as follows:</para>
<screen>[13:21] -ModuleName- Exclusion list:
[13:21] -ModuleName- #bothouse (Channel) Added by Fish on Sat Aug 13 2005 01:20 AM SGT for Requested
[13:21] -ModuleName- #ircop (Channel) Added by Fish on Sat Aug 13 2005 07:40 PM SGT for IRCop channel
[13:21] -ModuleName- *irc-chat.net (Host) Added by Fish on Tue Aug 09 2005 10:13 PM SGT for Services Exclusion
[13:21] -ModuleName- chieftess!*@* (Userhost) Added by Fish on Tue Aug 09 2005 10:14 PM SGT for buggy client
[13:21] -ModuleName- *.blah.com (Userhost) Added by Fish on Sun Jan 15 2006 01:20 PM SGT for Cause Blah.com is cool
[13:21] -ModuleName- End of list.</screen>
<para><emphasis role="bold">Deleting an Entry</emphasis></para>
<para>To delete a entry, you should first lookup the Position of the
entry that you wish to delete. The format of the command is as
follows:</para>
<screen>/msg ModuleName exclude del &lt;pattern&gt;</screen>
<para>Where:</para>
<para>&lt;pattern&gt; is the pattern of the entry you wish to delete in
the list</para>
<para>The output of the command is as follows:</para>
<screen>[13:22] ModuleName Fish used EXCLUDE
[13:22] -ModuleName- *.blah.com delete from exclusion list</screen>
</sect2>
<sect2>
<title>BLAHBLAH Command</title>
<para>That command forces ModuleName to check the Dat File version at
<link linkend="???">http://secure.irc-chat.net/</link> and download the
latest version if required.</para>
<warning>
<para>Repeated use of this command in a short period of time will
result in your account at secure.irc-chat.net being suspended for
abuse. Use with CARE</para>
</warning>
<para>The format of the command is as follows:</para>
<screen>/msg ModuleName update</screen>
</sect2>
</sect1>
<sect1>
<title>Optional Chapter</title>
<para>use this to write any optional information etc etc etc</para>
<sect2>
<title>Optional Sub Heading</title>
<para>Subheading</para>
<sect3>
<title>Minor heading</title>
<para>minor heading</para>
</sect3>
</sect2>
</sect1>
</article>

28
RELNOTES Executable file
View file

@ -0,0 +1,28 @@
* FeedServ * Version 1.0
==============================================================================
Important information you should know: (READ THIS!)
==============================================================================
This is an alpha release. Not all features will work and there may be major
bugs in the software. This release is purely for us to get feedback on the new
version of NeoStats and should not be run on production networks. This release
is ideal for users with test networks or those that want an opportunity to
help us develop the new version with feedback and suggestions.
No support is provided for this release so if you have problems and are unable
to resolve them using the provided documentation, you should use the supported
stable 2.5 series instead until NeoStats 3.0 is further along.
Bugs, requests and suggestions should be reported using the bug tracking
system. You must provide all information required as listed in the README
section on support or your entry will be removed.
Settings and data files from 2.5.x will not work with 3.0.
Settings and data files for previous 3.0 alpha versions may not be compatible
with this version. You should delete all files with "gdbm" in the filename
from the directory ~/NeoStats 3.0/data before using this version.
Known issues that we are aware of and should not be reported:
* None at present

7275
aclocal.m4 vendored Normal file

File diff suppressed because it is too large Load diff

20501
configure vendored Executable file

File diff suppressed because it is too large Load diff

105
configure.in Normal file
View file

@ -0,0 +1,105 @@
dnl Process this file with autoconf to produce a configure script.
AC_INIT(feed.c)
AC_CONFIG_AUX_DIR(autotools)
AC_CONFIG_HEADER(modconfig.h)
AM_MAINTAINER_MODE
MODPACKAGE=FEEDServ
MODULE_MAJOR=1
MODULE_MINOR=0
MODULE_REV=0
VERSION=$MODULE_MAJOR.$MODULE_MINOR.$MODULE_REV
AC_DEFINE_UNQUOTED(MODULE_VERSION, "$VERSION")
AC_DEFINE_UNQUOTED(MODULE_MAJOR, "$MODULE_MAJOR")
AC_DEFINE_UNQUOTED(MODULE_MINOR, "$MODULE_MINOR")
AC_DEFINE_UNQUOTED(MODULE_REV, "$MODULE_REV")
DIRINST=~/NeoStats3.0/
AC_PREFIX_DEFAULT(~/NeoStats3.0/)
CFLAGS="$CFLAGS -O2 -Wall -fno-strict-aliasing -g"
LIBS="$LIBS -g"
AM_INIT_AUTOMAKE($MODPACKAGE, $VERSION)
AC_PROG_CC
AC_PROG_INSTALL
AC_DISABLE_STATIC
AC_PROG_LIBTOOL
wi_ARG_DISABLE_CCDV
wi_PROG_CCDV
AC_MSG_CHECKING(Location of NeoStats...)
AC_ARG_WITH(neostats,
[ --with-neostats=DIR Location of NeoStats installation],
[DIRINST=$withval])
AC_MSG_RESULT($DIRINST)
AC_CHECK_FILE($DIRINST/include/neostats.h,
[INCLUDEDIR="$DIRINST/include/"],
[AC_MSG_ERROR(Can't find existing NeoStats Installation please supply with --with-neostats option)])
CPPFLAGS="$CPPFLAGS -I$INCLUDEDIR"
AC_MSG_CHECKING(Version of NeoStats...)
AC_TRY_RUN(
[
#include <config.h>
#include <stdlib.h>
int main(void) {
if (MAJOR >= 3) {
if (MINOR >= 0) {
exit(0)
; }
}
exit(1);
}
], ns_version_ok='yes',
ns_version_ok='no',
ns_version_ok='no')
if test "$ns_version_ok" = "yes"; then
AC_MSG_RESULT(Compatible version);
prefix=$DIRINST
else
AC_MSG_ERROR(This module requires NeoStats 3.0.a2 or higher)
fi
dnl check if we are running with debug....
AC_MSG_CHECKING(Whether to enable debug...)
AC_ARG_ENABLE(debug,
[ --enable-debug - enable debug],
[ case "$enableval" in
yes)
CFLAGS="$CFLAGS -Wall -ggdb"
AC_DEFINE(DEBUG,1)
AC_MSG_RESULT(yes)
;;
*)
AC_MSG_RESULT(no)
;;
esac],
AC_MSG_RESULT(no)
)
AC_MSG_CHECKING(To Enable AutoTools Debug Mode?)
AC_ARG_ENABLE(autodebug, [ --enable-autodebug - Enable AutoTools Debug],
[ case "$enableval" in
yes)
AC_MSG_RESULT(yes)
;;
*)
AC_MSG_RESULT(no)
AX_MAINTAINER_MODE_AUTO_SILENT
;;
esac],
AC_MSG_RESULT(no)
AX_MAINTAINER_MODE_AUTO_SILENT
)
AC_SUBST(DIRINST)
AC_SUBST(CFLAGS)
AC_SUBST(PACKAGE)
AC_SUBST(VERSION)
AC_SUBST(CCDV)
AC_OUTPUT(Makefile)
echo "Configuration complete."
read -p "Press Enter key to read the release notes"
clear
more RELNOTES
echo "Run 'make' (or 'gmake' on some systems) to compile NeoStats."
echo "If you require support, see the README file."

209
feed.c Normal file
View file

@ -0,0 +1,209 @@
/* NeoStats - IRC Statistical Services
** Copyright (c) 1999-2006 Adam Rutter, Justin Hammond, Mark Hetherington
** http://www.neostats.net/
**
** 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
**
** NeoStats CVS Identification
** $Id: feed.c 210 2006-01-26 15:35:09Z Fish $
*/
#include "neostats.h"
#include "feed.h"
static int feed_cmd_list( const CmdParams *cmdparams );
static int feed_cmd_add( const CmdParams *cmdparams );
static int feed_cmd_del( const CmdParams *cmdparams );
static int feed_set_exclusions_cb( const CmdParams *cmdparams, SET_REASON reason );
Bot *feed_bot;
/** Copyright info */
static const char *feed_copyright[] = {
"Copyright (c) 1999-2006, NeoStats",
"http://www.neostats.net/",
NULL
};
/** Module Info definition
* version information about our module
* This structure is required for your module to load and run on NeoStats
*/
ModuleInfo module_info = {
"FeedServ",
"a RSS Scrapping Bot",
feed_copyright,
feed_about,
NEOSTATS_VERSION,
MODULE_VERSION,
__DATE__,
__TIME__,
MODULE_FLAG_LOCAL_EXCLUDES,
0,
0,
};
static bot_cmd feed_commands[]=
{
{"ADD", feed_cmd_add, 2, NS_ULEVEL_ADMIN, feed_help_add, 0, NULL, NULL},
{"DEL", feed_cmd_del, 1, NS_ULEVEL_ADMIN, feed_help_del, 0, NULL, NULL},
{"LIST", feed_cmd_list, 0, NS_ULEVEL_ADMIN, feed_help_list, 0, NULL, NULL},
NS_CMD_END()
};
static bot_setting feed_settings[]=
{
{"VERBOSE", &feed.verbose, SET_TYPE_BOOLEAN, 0, 0, NS_ULEVEL_ADMIN, NULL, feed_help_set_verbose, feed_set_cb, (void*)1 },
{"EXCLUSIONS", &feed.exclusions, SET_TYPE_BOOLEAN, 0, 0, NS_ULEVEL_ADMIN, NULL, feed_help_set_exclusions, feed_set_exclusions_cb, (void *)0 },
NS_SETTING_END()
};
/** BotInfo */
static BotInfo feed_botinfo =
{
"FeedServ",
"RSSServ",
"news",
BOT_COMMON_HOST,
"RSS Scrapping/news Bot",
BOT_FLAG_SERVICEBOT|BOT_FLAG_RESTRICT_OPERS|BOT_FLAG_DEAF,
feed_commands,
feed_settings,
};
ModuleEvent module_events[] =
{
NS_EVENT_END()
};
/** @brief feed_cmd_list
*
* LIST command handler
*
* @param cmdparam struct
*
* @return NS_SUCCESS if suceeds else result of command
*/
int feed_cmd_list (const CmdParams *cmdparams)
{
SET_SEGV_LOCATION();
return NS_SUCCESS;
}
/** @brief feed_cmd_add
*
* ADD command handler
*
* @param cmdparam struct
*
* @return NS_SUCCESS if suceeds else result of command
*/
int feed_cmd_add (const CmdParams *cmdparams)
{
SET_SEGV_LOCATION();
return NS_SUCCESS;
}
/** @brief feed_cmd_del
*
* DEL command handler
*
* @param cmdparam struct
*
* @return NS_SUCCESS if suceeds else result of command
*/
int feed_cmd_del (const CmdParams *cmdparams)
{
SET_SEGV_LOCATION();
return NS_SUCCESS;
}
/** @brief feed_set_exclusions_cb
*
* Set callback for exclusions
* Enable or disable exclude event flag
*
* @cmdparams pointer to commands param struct
* @cmdparams reason for SET
*
* @return NS_SUCCESS if suceeds else NS_FAILURE
*/
static int feed_set_exclusions_cb( const CmdParams *cmdparams, SET_REASON reason )
{
SET_SEGV_LOCATION();
if( reason == SET_LOAD || reason == SET_CHANGE )
{
SetAllEventFlags( EVENT_FLAG_USE_EXCLUDE, feed.exclusions );
}
return NS_SUCCESS;
}
/** @brief ModInit
*
* Init handler
*
* @param none
*
* @return NS_SUCCESS if suceeds else NS_FAILURE
*/
int ModInit( void )
{
SET_SEGV_LOCATION();
return NS_SUCCESS;
}
/** @brief ModSynch
*
* Startup handler
*
* @param none
*
* @return NS_SUCCESS if suceeds else NS_FAILURE
*/
int ModSynch (void)
{
SET_SEGV_LOCATION();
feed_bot = AddBot (&feed_botinfo);
return NS_SUCCESS;
}
/** @brief ModFini
*
* Fini handler
*
* @param none
*
* @return NS_SUCCESS if suceeds else NS_FAILURE
*/
int ModFini( void )
{
return NS_SUCCESS;
}

39
feed.h Normal file
View file

@ -0,0 +1,39 @@
/* NeoStats - IRC Statistical Services
** Copyright (c) 1999-2006 Adam Rutter, Justin Hammond, Mark Hetherington
** http://www.neostats.net/
**
** 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
**
** NetStats CVS Identification
** $Id: feed.h 210 2006-01-26 15:35:09Z Fish $
*/
#ifndef FEED_H
#define FEED_H
#include MODULECONFIG
extern Bot *feed_bot;
/* help text */
extern const char *feed_about[];
extern const char *feed_help_add[];
extern const char *feed_help_del[];
extern const char *feed_help_list[];
extern const char *feed_help_set_exclusions[];
#endif /* FEED_H */

74
feed_help.c Normal file
View file

@ -0,0 +1,74 @@
/* NeoStats - IRC Statistical Services
** Copyright (c) 1999-2006 Adam Rutter, Justin Hammond, Mark Hetherington
** http://www.neostats.net/
**
** 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
**
** NeoStats CVS Identification
** $Id: opsb_help.c 210 2006-01-26 15:35:09Z Fish $
*/
#include "neostats.h"
const char *opsb_about[] = {
"\2Open Proxy Scanning Bot Information\2",
"",
"This service scans clients connecting to this network for",
"insecure proxies. Insecure proxies are often used to attack",
"networks or channels with clone bots. If you have a firewall,",
"or IDS software, please ignore any errors that this scan",
"may generate.",
"",
"If you have any further questions, please contact network",
"administration.",
NULL
};
const char *opsb_help_add[] = {
"Add a port to scanning",
"Syntax: \2ADD <type> <port>\2",
"",
"Add an entry to the port scan list.",
"<type> must be one of:",
" HTTP, HTTPPOST, SOCKS4, SOCKS5, WINGATE, ROUTER",
"<port> must be a valid port number.",
"The new port is scanned straight away",
NULL
};
const char *opsb_help_del[] = {
"Delete a port from scanning",
"Syntax: \2DEL <index>\2",
"",
"Delete entry <index> from the list of ports. ",
"Requires a restart of OPSB to become effective.",
NULL
};
const char *opsb_help_list[] = {
"List protocols and ports scanned",
"Syntax: \2LIST\2",
"",
"List the current ports and protocols scanned",
"and a ID number for use in removing entries.",
NULL
};
const char *opsb_help_set_exclusions[] = {
"\2EXCLUSIONS <ON|OFF>\2",
"Use global exclusion list in addition to local exclusion list",
NULL
};

27
html.css Normal file
View file

@ -0,0 +1,27 @@
body {
background: #FFFFFF;
}
h1, h2, h3, h4, h5 {
color: #800000;
font-family: sans-serif;
}
span.term {
font-weight: bold;
}
div.sidebar {
background: #F0F0F0;
border: 1px solid gray;
padding: 5px;
margin: 20px;
}
pre.programlisting {
background: #F0F0F0;
border: 1px solid gray;
padding: 2px;
font-size: 10pt;
white-space: pre;
}

251
install-sh Executable file
View file

@ -0,0 +1,251 @@
#!/bin/sh
#
# install - install a program, script, or datafile
# This comes from X11R5 (mit/util/scripts/install.sh).
#
# Copyright 1991 by the Massachusetts Institute of Technology
#
# Permission to use, copy, modify, distribute, and sell this software and its
# documentation for any purpose is hereby granted without fee, provided that
# the above copyright notice appear in all copies and that both that
# copyright notice and this permission notice appear in supporting
# documentation, and that the name of M.I.T. not be used in advertising or
# publicity pertaining to distribution of the software without specific,
# written prior permission. M.I.T. makes no representations about the
# suitability of this software for any purpose. It is provided "as is"
# without express or implied warranty.
#
# Calling this script install-sh is preferred over install.sh, to prevent
# `make' implicit rules from creating a file called install from it
# when there is no Makefile.
#
# This script is compatible with the BSD install script, but was written
# from scratch. It can only install one file at a time, a restriction
# shared with many OS's install programs.
# set DOITPROG to echo to test this script
# Don't use :- since 4.3BSD and earlier shells don't like it.
doit="${DOITPROG-}"
# put in absolute paths if you don't have them in your path; or use env. vars.
mvprog="${MVPROG-mv}"
cpprog="${CPPROG-cp}"
chmodprog="${CHMODPROG-chmod}"
chownprog="${CHOWNPROG-chown}"
chgrpprog="${CHGRPPROG-chgrp}"
stripprog="${STRIPPROG-strip}"
rmprog="${RMPROG-rm}"
mkdirprog="${MKDIRPROG-mkdir}"
transformbasename=""
transform_arg=""
instcmd="$mvprog"
chmodcmd="$chmodprog 0755"
chowncmd=""
chgrpcmd=""
stripcmd=""
rmcmd="$rmprog -f"
mvcmd="$mvprog"
src=""
dst=""
dir_arg=""
while [ x"$1" != x ]; do
case $1 in
-c) instcmd="$cpprog"
shift
continue;;
-d) dir_arg=true
shift
continue;;
-m) chmodcmd="$chmodprog $2"
shift
shift
continue;;
-o) chowncmd="$chownprog $2"
shift
shift
continue;;
-g) chgrpcmd="$chgrpprog $2"
shift
shift
continue;;
-s) stripcmd="$stripprog"
shift
continue;;
-t=*) transformarg=`echo $1 | sed 's/-t=//'`
shift
continue;;
-b=*) transformbasename=`echo $1 | sed 's/-b=//'`
shift
continue;;
*) if [ x"$src" = x ]
then
src=$1
else
# this colon is to work around a 386BSD /bin/sh bug
:
dst=$1
fi
shift
continue;;
esac
done
if [ x"$src" = x ]
then
echo "install: no input file specified"
exit 1
else
true
fi
if [ x"$dir_arg" != x ]; then
dst=$src
src=""
if [ -d $dst ]; then
instcmd=:
chmodcmd=""
else
instcmd=mkdir
fi
else
# Waiting for this to be detected by the "$instcmd $src $dsttmp" command
# might cause directories to be created, which would be especially bad
# if $src (and thus $dsttmp) contains '*'.
if [ -f $src -o -d $src ]
then
true
else
echo "install: $src does not exist"
exit 1
fi
if [ x"$dst" = x ]
then
echo "install: no destination specified"
exit 1
else
true
fi
# If destination is a directory, append the input filename; if your system
# does not like double slashes in filenames, you may need to add some logic
if [ -d $dst ]
then
dst="$dst"/`basename $src`
else
true
fi
fi
## this sed command emulates the dirname command
dstdir=`echo $dst | sed -e 's,[^/]*$,,;s,/$,,;s,^$,.,'`
# Make sure that the destination directory exists.
# this part is taken from Noah Friedman's mkinstalldirs script
# Skip lots of stat calls in the usual case.
if [ ! -d "$dstdir" ]; then
defaultIFS='
'
IFS="${IFS-${defaultIFS}}"
oIFS="${IFS}"
# Some sh's can't handle IFS=/ for some reason.
IFS='%'
set - `echo ${dstdir} | sed -e 's@/@%@g' -e 's@^%@/@'`
IFS="${oIFS}"
pathcomp=''
while [ $# -ne 0 ] ; do
pathcomp="${pathcomp}${1}"
shift
if [ ! -d "${pathcomp}" ] ;
then
$mkdirprog "${pathcomp}"
else
true
fi
pathcomp="${pathcomp}/"
done
fi
if [ x"$dir_arg" != x ]
then
$doit $instcmd $dst &&
if [ x"$chowncmd" != x ]; then $doit $chowncmd $dst; else true ; fi &&
if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dst; else true ; fi &&
if [ x"$stripcmd" != x ]; then $doit $stripcmd $dst; else true ; fi &&
if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dst; else true ; fi
else
# If we're going to rename the final executable, determine the name now.
if [ x"$transformarg" = x ]
then
dstfile=`basename $dst`
else
dstfile=`basename $dst $transformbasename |
sed $transformarg`$transformbasename
fi
# don't allow the sed command to completely eliminate the filename
if [ x"$dstfile" = x ]
then
dstfile=`basename $dst`
else
true
fi
# Make a temp file name in the proper directory.
dsttmp=$dstdir/#inst.$$#
# Move or copy the file name to the temp name
$doit $instcmd $src $dsttmp &&
trap "rm -f ${dsttmp}" 0 &&
# and set any options; do chmod last to preserve setuid bits
# If any of these fail, we abort the whole thing. If we want to
# ignore errors from any of these, just make sure not to ignore
# errors from the above "$doit $instcmd $src $dsttmp" command.
if [ x"$chowncmd" != x ]; then $doit $chowncmd $dsttmp; else true;fi &&
if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dsttmp; else true;fi &&
if [ x"$stripcmd" != x ]; then $doit $stripcmd $dsttmp; else true;fi &&
if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dsttmp; else true;fi &&
# Now rename the file to the real destination.
$doit $rmcmd -f $dstdir/$dstfile &&
$doit $mvcmd $dsttmp $dstdir/$dstfile
fi &&
exit 0

16
modconfig.h.in Normal file
View file

@ -0,0 +1,16 @@
/* modconfig.h.in. Generated from configure.in by autoheader. */
/* Enable Debugging */
#undef DEBUG
/* Version number of package */
#undef MODULE_VERSION
/* Major Version */
#undef MODULE_MAJOR
/* Minor Version */
#undef MODULE_MINOR
/* Revision */
#undef MODULE_REV

20
modconfigwin32.h Executable file
View file

@ -0,0 +1,20 @@
#ifndef _MODCONFIGWIN32_H_
#define _MODCONFIGWIN32_H_
/* modconfig.h. Generated by configure. */
/* define this to enable debug code for this module */
/* #undef DEBUG */
/* Version number of package */
#define MODULE_VERSION "3.0.a3-dev"
/* Major Version */
#define MODULE_MAJOR "3"
/* Minor Version */
#define MODULE_MINOR "0"
/* Revision */
#define MODULE_REV "a3-dev"
#endif /* _MODCONFIGWIN32_H_ */