diff options
author | Bruce A. Locke <blocke@gentoo.org> | 2002-07-12 05:53:44 +0000 |
---|---|---|
committer | Bruce A. Locke <blocke@gentoo.org> | 2002-07-12 05:53:44 +0000 |
commit | 95c1ece7d0016d931591b5de3ebdbb901d240e14 (patch) | |
tree | 5ce7f7e042e3252584ef9583bc726b0aee37f9a3 /net-irc/cyclone | |
parent | trivial dep fix (diff) | |
download | gentoo-2-95c1ece7d0016d931591b5de3ebdbb901d240e14.tar.gz gentoo-2-95c1ece7d0016d931591b5de3ebdbb901d240e14.tar.bz2 gentoo-2-95c1ece7d0016d931591b5de3ebdbb901d240e14.zip |
cyclone 0.3.1.1: initial version
Diffstat (limited to 'net-irc/cyclone')
-rw-r--r-- | net-irc/cyclone/ChangeLog | 11 | ||||
-rw-r--r-- | net-irc/cyclone/cyclone-0.3.1.1.ebuild | 134 | ||||
-rw-r--r-- | net-irc/cyclone/files/digest-cyclone-0.3.1.1 | 1 | ||||
-rw-r--r-- | net-irc/cyclone/files/res_init.c | 215 |
4 files changed, 361 insertions, 0 deletions
diff --git a/net-irc/cyclone/ChangeLog b/net-irc/cyclone/ChangeLog new file mode 100644 index 000000000000..72f3725cc0de --- /dev/null +++ b/net-irc/cyclone/ChangeLog @@ -0,0 +1,11 @@ +# ChangeLog for net-irc/cyclone +# Copyright 2002 Gentoo Technologies, Inc.; Distributed under the GPL v2 +# $Header: /var/cvsroot/gentoo-x86/net-irc/cyclone/ChangeLog,v 1.1 2002/07/12 05:53:44 blocke Exp $ + +*cyclone-0.3.1.1 (12 Jul 2002) + + 12 Jul 2002; Bruce A. Locke <blocke@shivan.org> cyclone-0.3.1.1.ebuild: + + Initial ebuild version. + + diff --git a/net-irc/cyclone/cyclone-0.3.1.1.ebuild b/net-irc/cyclone/cyclone-0.3.1.1.ebuild new file mode 100644 index 000000000000..23336da5bb24 --- /dev/null +++ b/net-irc/cyclone/cyclone-0.3.1.1.ebuild @@ -0,0 +1,134 @@ +# Copyright 1999-2002 Gentoo Technologies, Inc. +# Distributed under the terms of the GNU General Public License, v2 or later +# $Header: /var/cvsroot/gentoo-x86/net-irc/cyclone/cyclone-0.3.1.1.ebuild,v 1.1 2002/07/12 05:53:44 blocke Exp $ + +S=${WORKDIR}/${P} +DESCRIPTION="IRC daemon with hostname cloaking, SOCKS proxy checking and other advanced features" +SRC_URI="ftp://ftp.slashnet.org/pub/cyclone/server/${P}.tar.gz" +HOMEPAGE="http://www.slashnet.org" +SLOT="0" +KEYWORDS="*" +LICENSE="GPL & BSD" +DEPEND="virtual/glibc" + +src_unpack() { + + unpack ${P}.tar.gz + cp ${FILESDIR}/res_init.c ${S}/src + +} + +src_compile() { + + # Server administrators are encouraged to customize the following + # variables if actually deploying cyclone in an IRC network. Upon + # merging of this package a config file is created in /etc/cyclone + # which is reused whenever this package is upgraded. + + # If you wish to modify this configuration in the future, you can + # either edit this ebuild or edit the created /etc/cyclone/config and + # remerge this ebuild. + + if [ -f /etc/cyclone/config ] + then + einfo Reusing compile time configuration stored in /etc/cyclone/config... + einfo To reset the configuration delete the config file and remerge. + + cp /etc/cyclone/config ${S}/.config + else + einfo No previous configuration found... using defaults defined in ebuild... + + cat << END_OF_CONFIG > ${S}/.config +# +# VERSION: cyclone0.3.1.1 +# DATE: `date` +# GENERATED BY: Gentoo - ${P}.ebuild +# +# +# This file was automatically generated by Portage using ${P}.ebuild and +# stored in /etc/cyclone/config for future reuse and modification +# + +LAST_VERSION="cyclone0.3.1.1" +NOSPOOF_SEED01="0x12345678" +NOSPOOF_SEED02="0x9abcdef0" +CONTACT_URL="" +CONTACT_EMAIL="" +SERVICES_NAME="" +KLINE_ADDRESS="ADMIN@DID.NOT.READ.MANUAL.OR.EBUILD" +DPATH="/etc/cyclone" +SPATH="/usr/bin" +CRYPT_OPER_PASSWORD="1" +CRYPT_LINK_PASSWORD="" +LISTEN_SIZE="5" +SOCKSPORT="6013" +MAXSENDQLENGTH="3000000" +BUFFERPOOL="(9 * MAXSENDQLENGTH)" +MAXCONNECTIONS="256" +DOMAINNAME="foo" +NICKNAMEHISTORYLENGTH="2000" +SERVICES_NAME="none" + +END_OF_CONFIG + + fi + + # Now we run ./Config which generates the makefiles... This is a + # nasty hack that will probably need to be changed from version to + # version... + + mv Config Config.orig + sed -e 's|DEFOPT="-O2"|DEFOPT="${CFLAGS}"|' \ + -e 's|more ChangeLog||' Config.orig > Config + chmod +x Config + yes "" | ./Config -n + + # compile it + emake RES="res_init.o" || die + +} + +src_install () { + + # store generated .config file + dodir /etc/cyclone + cp ${S}/.config ${D}/etc/cyclone/config + + # make install + dodir /usr/bin + make DPATH="${D}/etc/cyclone" SPATH="${D}/usr/bin" install || die + + # renamed ircd binary to avoid conflicts with other packages + mv ${D}/usr/bin/ircd ${D}/usr/bin/cyclone-ircd + + # documentation files + dodoc AUTHORS ChangeLog COPYING INSTALL README {doc/*:-history} + + # install sample configuration file + cp ${S}/doc/example.conf ${D}/etc/cyclone/ircd.conf + + # Generate sample motd file + echo "Gentoo Linux - Cyclone ${PV}" > ${D}/etc/cyclone/ircd.motd + + # fix permissions + chmod 755 ${D}/usr/bin/cyclone-ircd + chmod 755 ${D}/etc/cyclone/chkconf ${D}/etc/cyclone/encrypt + chmod 644 ${D}/etc/cyclone/example.conf ${D}/etc/cyclone/ircd.motd + chmod 600 ${D}/etc/cyclone/ircd.conf ${D}/etc/cyclone/config + +} + + +src_postinst() +{ + + einfo Please read the documentation. The default /etc/cyclone/ircd.conf + einfo will need to be edited and file permissions changed so only root + einfo and the account under which the ircd will run can read the plaintext + einfo passwords stored in that file. + einfo + einfo Failure to modify the ircd.conf will result in cyclone-ircd + einfo quietly refusing to run. Read the documentation and config file. + +} + diff --git a/net-irc/cyclone/files/digest-cyclone-0.3.1.1 b/net-irc/cyclone/files/digest-cyclone-0.3.1.1 new file mode 100644 index 000000000000..66009f17804e --- /dev/null +++ b/net-irc/cyclone/files/digest-cyclone-0.3.1.1 @@ -0,0 +1 @@ +MD5 89835f40f0f727b8c037dad7fe8bcdb8 cyclone-0.3.1.1.tar.gz 478063 diff --git a/net-irc/cyclone/files/res_init.c b/net-irc/cyclone/files/res_init.c new file mode 100644 index 000000000000..029e8a611ec9 --- /dev/null +++ b/net-irc/cyclone/files/res_init.c @@ -0,0 +1,215 @@ +/*- + * Copyright (c) 1985, 1989 Regents of the University of California. + * All rights reserved. + * + * Redistribution and use in source and binary forms are permitted provided + * that: (1) source distributions retain this entire copyright notice and + * comment, and (2) distributions including binaries display the following + * acknowledgement: ``This product includes software developed by the + * University of California, Berkeley and its contributors'' in the + * documentation or other materials provided with the distribution and in + * all advertising materials mentioning features or use of this software. + * Neither the name of the University nor the names of its contributors may + * be used to endorse or promote products derived from this software without + * specific prior written permission. + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. + */ + +#include <sys/types.h> +#include <sys/socket.h> +#include <netinet/in.h> +#include <stdio.h> +#include "config.h" /* To get #define SOL20 Vesa */ +#include "sys.h" +#include "common.h" +#include "nameser.h" +#include "resolv.h" + +CVSID("$Id: res_init.c,v 1.1 2002/07/12 05:53:44 blocke Exp $"); + +/* + * Resolver state default settings + */ + +struct state _res = { + RES_TIMEOUT, /* retransmition time interval */ + 4, /* number of times to retransmit */ + RES_DEFAULT, /* options flags */ + 1, /* number of name servers */ +}; + +/* + * Set up default settings. If the configuration file exist, the values + * there will have precedence. Otherwise, the server address is set to + * INADDR_ANY and the default domain name comes from the gethostname(). + * + * The configuration file should only be used if you want to redefine your + * domain or run without a server on your machine. + * + * Return 0 if completes successfully, -1 on error + */ +res_init() +{ + register FILE *fp; + register char *cp, *dp, **pp; + extern u_long inet_addr(); + register int n; + char buf[BUFSIZ]; + extern char *getenv(); + int nserv = 0; /* number of nameserver records read from file */ + int norder = 0; + int haveenv = 0; + int havesearch = 0; + + _res.nsaddr.sin_addr.s_addr = INADDR_ANY; + _res.nsaddr.sin_family = AF_INET; + _res.nsaddr.sin_port = htons(NAMESERVER_PORT); + _res.nscount = 1; + + /* Allow user to override the local domain definition */ + if ((cp = getenv("LOCALDOMAIN")) != NULL) { + (void)strncpy(_res.defdname, cp, sizeof(_res.defdname)); + haveenv++; + } + + if ((fp = fopen(_PATH_RESCONF, "r")) != NULL) { + /* read the config file */ + while (fgets(buf, sizeof(buf), fp) != NULL) { + /* read default domain name */ + if (!strncmp(buf, "domain", sizeof("domain") - 1)) { + if (haveenv) /* skip if have from environ */ + continue; + cp = buf + sizeof("domain") - 1; + while (*cp == ' ' || *cp == '\t') + cp++; + if ((*cp == '\0') || (*cp == '\n')) + continue; + (void)strncpy(_res.defdname, cp, sizeof(_res.defdname) - 1); + if ((cp = index(_res.defdname, '\n')) != NULL) + *cp = '\0'; + havesearch = 0; + continue; + } + /* set search list */ + if (!strncmp(buf, "search", sizeof("search") - 1)) { + if (haveenv) /* skip if have from environ */ + continue; + cp = buf + sizeof("search") - 1; + while (*cp == ' ' || *cp == '\t') + cp++; + if ((*cp == '\0') || (*cp == '\n')) + continue; + (void)strncpy(_res.defdname, cp, sizeof(_res.defdname) - 1); + if ((cp = index(_res.defdname, '\n')) != NULL) + *cp = '\0'; + /* + * Set search list to be blank-separated strings + * on rest of line. + */ + cp = _res.defdname; + pp = _res.dnsrch; + *pp++ = cp; + for (n = 0; *cp && pp < _res.dnsrch + MAXDNSRCH; cp++) { + if (*cp == ' ' || *cp == '\t') { + *cp = 0; + n = 1; + } else if (n) { + *pp++ = cp; + n = 0; + } + } + /* null terminate last domain if there are excess */ + while (*cp != '\0' && *cp != ' ' && *cp != '\t') + cp++; + *cp = '\0'; + *pp++ = 0; + havesearch = 1; + continue; + } + /* read nameservers to query */ + if (!strncmp(buf, "nameserver", sizeof("nameserver") - 1) && + nserv < MAXNS) { + cp = buf + sizeof("nameserver") - 1; + while (*cp == ' ' || *cp == '\t') + cp++; + if ((*cp == '\0') || (*cp == '\n')) + continue; + if ((_res.nsaddr_list[nserv].sin_addr.s_addr = + inet_addr(cp)) == (unsigned)-1) { + _res.nsaddr_list[nserv].sin_addr.s_addr + = INADDR_ANY; + continue; + } + _res.nsaddr_list[nserv].sin_family = AF_INET; + _res.nsaddr_list[nserv].sin_port = htons(NAMESERVER_PORT); + nserv++; + continue; + } + /* read service order */ + if (!strncmp(buf, "order", sizeof("order") - 1)) { + cp = buf + sizeof("order") - 1; + while (*cp == ' ' || *cp == '\t') + cp++; + if ((*cp == '\0') || (*cp == '\n')) + continue; + norder = 0; + do { + if ((dp = index(cp, ',')) != NULL) + *dp = '\0'; + if (norder >= MAXSERVICES) + continue; + if (!strncmp(cp, "bind", sizeof("bind") - 1)) + _res.order[norder++] = RES_SERVICE_BIND; + else if (!strncmp(cp, "local", sizeof("local") - 1)) + _res.order[norder++] = RES_SERVICE_LOCAL; + cp = dp + 1; + } while (dp != NULL); + _res.order[norder] = RES_SERVICE_NONE; + continue; + } + } + if (nserv > 1) + _res.nscount = nserv; + (void) fclose(fp); + } + if (_res.defdname[0] == 0) { + if (gethostname(buf, sizeof(_res.defdname)) == 0 && + (cp = index(buf, '.'))) + (void)strcpy(_res.defdname, cp + 1); + } + + /* find components of local domain that might be searched */ + if (havesearch == 0) { + pp = _res.dnsrch; + *pp++ = _res.defdname; + for (cp = _res.defdname, n = 0; *cp; cp++) + if (*cp == '.') + n++; + cp = _res.defdname; + for (; n >= LOCALDOMAINPARTS && pp < _res.dnsrch + MAXDFLSRCH; + n--) { + cp = index(cp, '.'); + *pp++ = ++cp; + } + *pp++ = 0; + } + /* default search order to bind only */ + if (norder == 0) { + _res.order[0] = RES_SERVICE_BIND; + _res.order[1] = RES_SERVICE_NONE; + } + _res.options |= RES_INIT; + return (0); +} + +/* + * $Log: res_init.c,v $ + * Revision 1.1 2002/07/12 05:53:44 blocke + * cyclone 0.3.1.1: initial version + * + * Revision 1.4 2001/03/02 20:52:18 smkelly + * Added changelog to res_init.c + * + */ |