--- ircd-hybrid-7.2.2.dfsg.2.orig/debian/ircd-hybrid.preinst.nossl +++ ircd-hybrid-7.2.2.dfsg.2/debian/ircd-hybrid.preinst.nossl @@ -0,0 +1,23 @@ +#!/bin/sh + +. /usr/share/debconf/confmodule +set -e + +# Upgraders and people in remove config-files state +# are the most at risk here +if ( [ "$1" = upgrade ] && dpkg --compare-versions "$2" le "1:7.0-6" ) \ + || ( [ "$1" = install ] && [ -n "$2" ] ); then + db_input high ircd-hybrid/no-more-ssl || true + db_go || true + db_get ircd-hybrid/no-more-ssl + + if [ "$RET" = false ]; then + exit 1 # Bail! + fi +fi + +db_stop + +#DEBHELPER# + +exit 0 --- ircd-hybrid-7.2.2.dfsg.2.orig/debian/ircd-hybrid.templates +++ ircd-hybrid-7.2.2.dfsg.2/debian/ircd-hybrid.templates @@ -0,0 +1,26 @@ +Template: ircd-hybrid/no-more-ssl +Type: boolean +Default: true +_Description: All OpenSSL support is now disabled by default; continue? + Due to licensing issues ircd-hybrid is no longer built by default with + OpenSSL. This will be addressed in a future release, pending a rewrite + of the SSL layer with GNUTLS. + . + If any of your existing server links take advantage of cryptlinks, refer + to /usr/share/doc/ircd-hybrid/CRYPTLINKS.txt to find out how to build + ircd-hybrid with SSL support (easily.) + +Template: ircd-hybrid/restart_on_upgrade +Type: boolean +Default: true +_Description: Restart ircd-hybrid on each upgrade? + You may choose whether or not you want to restart the ircd-hybrid + daemon every time you install a new version of this package. + . + Sometimes, you do not want to do this. For instance, if you are doing + the upgrade and loading IRCd modules at runtime. Failing to restart + the daemon would probably lead you to problems. + . + If you refuse, you have to restart ircd-hybrid yourself if you + upgraded, by typing `invoke-rc.d ircd-hybrid restart' whenever it + suits you. --- ircd-hybrid-7.2.2.dfsg.2.orig/debian/ircd-hybrid.prerm +++ ircd-hybrid-7.2.2.dfsg.2/debian/ircd-hybrid.prerm @@ -0,0 +1,21 @@ +#!/bin/sh + +set -e + +# Automatically added by dh_installinit, edited for use with debconf +# Not added anymore due to dh_installinit -n, so we manage it manually. +if [ -x "/etc/init.d/ircd-hybrid" ]; then + if [ -e /usr/share/debconf/confmodule ]; then + . /usr/share/debconf/confmodule + db_get ircd-hybrid/restart_on_upgrade + if [ "$RET" = "true" ]; then + invoke-rc.d ircd-hybrid stop || exit $? + fi + db_stop + else + invoke-rc.d ircd-hybrid stop || exit $? + fi +fi +# End automatically added section + +#DEBHELPER# --- ircd-hybrid-7.2.2.dfsg.2.orig/debian/mbuild-hybrid +++ ircd-hybrid-7.2.2.dfsg.2/debian/mbuild-hybrid @@ -0,0 +1,48 @@ +#!/bin/bash +# Shell script to assist with building ircd-hybrid modules and installing +# them into the correct dirs so they can be modloaded. +# (c) 2003 by Joshua Kwan. Licensed under the GNU GPL, +# see /usr/share/common-licenses/GPL on Debian systems. +# +# Syntax: mbuild-hybrid [-s m_modsource.c] [-p outputpath] [-o misc-cflags] + +OUTPATH=/usr/lib/ircd-hybrid/modules +CFLAGS="-O2 -g -Wall " +until [ -z "$1" ] +do + case "$1" in + -s) MODSOURCE=$2; shift; shift;; + -p) OUTPATH=$2; shift; shift;; + -o) CFLAGS+=$2; shift; shift;; + --help) + echo "usage: mbuild-hybrid [-s m_modsource.c] [-p outputpath] [-o misc-cflags]" + exit 0 + ;; + esac +done + +if [ -z $MODSOURCE ]; then + echo "error: no source file specified" + exit 1 +fi + +if [ ! -d "/usr/include/ircd-hybrid-7" ]; then + echo "error: where are the hybrid includes? did you delete them?" + exit 1 +fi + +MODSOURCE_SO=`echo $MODSOURCE | sed 's/\.c/\.so/'` +echo "Module source file: $MODSOURCE" +echo "Install path: $OUTPATH" +echo "Additional compile flags: $CFLAGS" +echo "--> Compiling: gcc -I/usr/include/ircd-hybrid-7 -fPIC -DPIC -shared $CFLAGS $MODSOURCE -o $MODSOURCE_SO" +gcc -I/usr/include/ircd-hybrid-7 -fPIC -DPIC -shared $CFLAGS $MODSOURCE -o $MODSOURCE_SO || BUILD_FAILED=1 + +if [ "$BUILD_FAILED" = "1" ]; then echo "build FAILED, exiting!"; exit 1; fi + +echo "--> Installing into $OUTPATH" +mv $MODSOURCE_SO $OUTPATH || INSTALL_FAILED=1 + +if [ "$INSTALL_FAILED" = "1" ]; then echo "install FAILED, exiting"; exit 1; fi + +echo "--> Done!" --- ircd-hybrid-7.2.2.dfsg.2.orig/debian/ircd-hybrid.postinst.in +++ ircd-hybrid-7.2.2.dfsg.2/debian/ircd-hybrid.postinst.in @@ -0,0 +1,49 @@ +#!/bin/sh + +set -e + +. /usr/share/debconf/confmodule + +# Automatically added by dh_installinit, edited for use with debconf +# Not added anymore due to dh_installinit -n, so we manage it manually. +if [ -x "/etc/init.d/ircd-hybrid" ]; then + update-rc.d ircd-hybrid defaults >/dev/null + + if [ "$1" = "configure" ]; then + if dpkg --compare-versions "$2" le "1:7.2.2-1"; then + RET="true" + else + if [ -e /usr/share/debconf/confmodule ]; then + . /usr/share/debconf/confmodule + db_get ircd-hybrid/restart_on_upgrade + db_stop + else + RET="true" + fi + fi + fi +fi +# End automatically added section + +if [ "$1" = configure ]; then + +@SSL_WORK@ + +# These directories may have been created before, but we need to make them +# owned by irc. Or the initscript will get owned. If it's already this +# way, this operation makes no difference. + + chown irc:irc /var/log/ircd /etc/ircd-hybrid + chmod 770 /etc/ircd-hybrid + + if [ "$RET" = "true" ]; then + invoke-rc.d ircd-hybrid start || exit $? + else + echo "I have not stopped or restarted the ircd-hybrid daemon." + echo "You should do this yourself whenever you're ready." + echo "Type \`\`invoke-rc.d ircd-hybrid restart''." + fi + +fi + +#DEBHELPER# --- ircd-hybrid-7.2.2.dfsg.2.orig/debian/watch +++ ircd-hybrid-7.2.2.dfsg.2/debian/watch @@ -0,0 +1,3 @@ +version=3 +opts=dversionmangle=s/\.dfsg\.\d+$// \ +http://sf.net/ircd-hybrid/ircd-hybrid-(.*)\.tgz --- ircd-hybrid-7.2.2.dfsg.2.orig/debian/ircd.conf.nossl +++ ircd-hybrid-7.2.2.dfsg.2/debian/ircd.conf.nossl @@ -0,0 +1,771 @@ +# ircd-hybrid configuration file [ircd.conf] +# customized for Debian by Joshua Kwan +# modified for Debian by Aurélien GÉRÔME + + /* serverinfo {}: Contains information about the server. (OLD M:) */ +serverinfo { + /* name: the name of our server */ + name = "hybrid7.debian.local"; + + /* description: the description of our server. '[' and ']' may not + * be used here for compatibility with older servers. + */ + description = "ircd-hybrid 7.2-debian"; + + /* network info: the name and description of the network this server + * is on. Shown in the 005 reply and used with serverhiding. + */ + network_name = "debian"; + network_desc = "i am a network short and stout"; + + /* hub: allow this server to act as a hub and have multiple servers + * connected to it. This may not be changed if there are active + * LazyLink servers. + */ + hub = yes; + + /* vhost: the IP to bind to when we connect outward to ipv4 servers. + * This should be an ipv4 IP only. + */ + #vhost = "192.169.0.1"; + + /* vhost6: the IP to bind to when we connect outward to ipv6 servers. + * This should be an ipv6 IP only. + */ + #vhost6 = "3ffe:80e8:546::2"; + + /* max clients: the maximum number of clients allowed to connect */ + max_clients = 512; +}; + +/* admin {}: contains admin information about the server. (OLD A:) */ +admin { + name = "S. Ysadmin"; + description = "Main Server Administrator"; + email = ""; +}; + +/* + * log {}: contains information about logfiles. + */ +log { + /* Do you want to enable logging to ircd.log? */ + use_logging = yes; + + /* + * logfiles: the logfiles to use for user connects, /oper uses, + * and failed /oper. These files must exist for logging to be used. + */ + fname_userlog = "logs/userlog"; + fname_operlog = "logs/operlog"; + fname_killlog = "logs/kill"; + fname_klinelog = "logs/kline"; + fname_glinelog = "logs/gline"; + + /* + * log_level: the amount of detail to log in ircd.log. The + * higher, the more information is logged. May be changed + * once the server is running via /quote SET LOG. Either: + * L_CRIT, L_ERROR, L_WARN, L_NOTICE, L_TRACE, L_INFO or L_DEBUG + */ + log_level = L_INFO; +}; + +/* class {}: contain information about classes for users (OLD Y:) */ +class { + /* name: the name of the class. classes are text now */ + name = "users"; + + /* ping time: how often a client must reply to a PING from the + * server before they are dropped. + */ + ping_time = 2 minutes; + + /* number per ip: the number of users per host allowed to connect */ + number_per_ip = 2; + + /* max number: the maximum number of users allowed in this class */ + max_number = 100; + + /* sendq: the amount of data allowed in a clients queue before + * they are dropped. + */ + sendq = 100 kbytes; +}; + +class { + name = "restricted"; + ping_time = 1 minute 30 seconds; + number_per_ip = 1; + max_number = 100; + sendq = 60kb; +}; + +class { + name = "opers"; + ping_time = 5 minutes; + number_per_ip = 10; + max_number = 100; + sendq = 100kbytes; +}; + +class { + name = "server"; + ping_time = 5 minutes; + + /* connectfreq: only used in server classes. specifies the delay + * between autoconnecting to servers. + */ + connectfreq = 5 minutes; + + /* max number: the amount of servers to autoconnect to */ + max_number = 1; + + /* sendq: servers need a higher sendq as they send more data */ + sendq=2 megabytes; +}; + +/* listen {}: contain information about the ports ircd listens on (OLD P:) */ +listen { + /* port: the specific port to listen on. if no host is specified + * before, it will listen on all available IPs. + * + * ports are seperated via a comma, a range may be specified using ".." + */ + + /* port: listen on all available IPs, ports 6665 to 6669 */ + host = "127.0.0.1"; # change this! + port = 6665 .. 6669; +}; + +/* auth {}: allow users to connect to the ircd (OLD I:) */ +auth { + /* user: the user@host allowed to connect. multiple IPv4/IPv6 user + * lines are permitted per auth block. + */ + user = "*@127.0.0.1"; + + /* password: an optional password that is required to use this block */ + + /* spoof: fake the users host to be be this. This is free-form, + * just do everyone a favour and dont abuse it. (OLD I: = flag) + */ + spoof = "i.love.debian.org"; + + /* spoof notice: enable spoofing notification to admins (default yes) */ + spoof_notice = yes; + + /* exceed limit: allow a user to exceed class limits (OLD I: > flag) */ + exceed_limit = yes; + + /* kline exempt: exempt this user from k/glines (OLD I: ^ flag) */ + kline_exempt = yes; + + /* gline exempt: exempt this user from glines (OLD I: _ flag) */ + gline_exempt = yes; + + /* no tilde: remove ~ from a user with no ident (OLD I: - flag) */ + no_tilde = yes; + + /* class: the class the user is placed in */ + class = "opers"; +}; + +#auth { +# # redirect: the server and port to redirect a user to. A user does +# # not have to obey the redirection, the ircd just suggests to them +# # an alternative server. +# redirserv = "irc.at.the.edge.of.earth"; +# redirport = 6667; + +# /* hostmask user has to match to receive redirection */ +# user = "*.on.mars"; +# +# /* class: a class is required even though it is not used */ +# class = "users"; +#}; + +auth { + user = "*@*"; + class = "users"; + + /* restricted: stop the client sending mode changes */ + #restricted = yes; + + /* have ident: require the user has identd to connect (OLD I: + flag) */ + have_ident = no; +}; + +/* operator {}: defines ircd operators. (OLD O:) + * ircd-hybrid no longer supports local operators, privileges are + * controlled via flags. + */ +operator { + /* name: the name of the oper */ + name = "root"; + + /* user: the user@host required for this operator. CIDR is not + * supported. multiple user="" lines are supported. + */ + user = "root@127.0.0.1"; + + /* password: the password required to oper. By default this will + * need to be encrypted using '/usr/bin/mkpasswd'. + * WARNING: Please do not mix up the 'mkpasswd' program from + * /usr/sbin with this one. If you are root, typing 'mkpasswd' + * will run that one instead and you will receive a strange error. + * + * MD5 is supported. If you want to use it, use mkpasswd -Hmd5. + */ + password = "ToJx.IEPqjiVg"; + #password = "$1$9PTzrFkW$yh3ablZ5DnHeU9yjhj..U/"; + + /* class: the class the oper joins when they successfully /oper */ + class = "opers"; + + /* privileges: controls the activities and commands an oper are + * allowed to do on the server. All options default to no. + * Available options: + * + * global_kill: allows remote users to be /KILL'd (OLD 'O' flag) + * remote: allows remote SQUIT and CONNECT (OLD 'R' flag) + * kline: allows KILL, KLINE and DLINE (OLD 'K' flag) + * unkline: allows UNKLINE and UNDLINE (OLD 'U' flag) + * gline: allows GLINE (OLD 'G' flag) + * nick_changes: allows oper to see nickchanges (OLD 'N' flag) + * via usermode +n + * rehash: allows oper to REHASH config (OLD 'H' flag) + * die: allows DIE and RESTART (OLD 'D' flag) + * admin: gives admin privileges. admins + * may (un)load modules and see the + * real IPs of servers. + */ + global_kill = yes; + remote = yes; + kline = yes; + unkline = yes; + gline = yes; + die = yes; + rehash = yes; + nick_changes = yes; + admin = yes; +}; + +/* connect {}: controls servers we connect to (OLD C:, N:, H:, L:) */ + +#connect { +# /* name: the name of the server */ +# name = "irc.example.net"; +# +# /* host: the host or IP to connect to. If a hostname is used it +# * must match the reverse dns of the server. +# */ +# host = "192.168.0.1"; +# +# /* passwords: the passwords we send (OLD C:) and accept (OLD N:). +# * The remote server will have these passwords reversed. +# */ +# send_password = "password"; +# accept_password = "anotherpassword"; +# +# /* encrypted: controls whether the accept_password above has been +# * encrypted. (OLD CRYPT_LINK_PASSWORD now optional per connect) +# */ +# encrypted = no; +# +# /* port: the port to connect to this server on */ +# port = 6666; +# +# /* hub mask: the mask of servers that this server may hub. Multiple +# * entries are permitted +# */ +# hub_mask = "*"; +# +# /* leaf mask: the mask of servers this server may not hub. Multiple +# * entries are permitted. Useful for forbidding EU -> US -> EU routes. +# */ +# #leaf_mask = "*.uk"; +# +# /* class: the class this server is in */ +# class = "server"; +# +# /* autoconnect: controls whether we autoconnect to this server or not, +# * dependent on class limits. +# */ +# autoconn = no; +# +# /* compressed: controls whether traffic is compressed via ziplinks. +# * By default this is disabled +# */ +# #compressed = yes; +# +# /* lazylink: controls whether this server is a LazyLink. LazyLink +# * servers may NOT hub. see doc/LazyLinks.as.implemented.txt +# */ +# #lazylink = yes; +# +# /* masking: the servername we pretend to be when we connect */ +# #fakename = "*.arpa"; +#}; + +#connect { +# name = "ipv6.some.server"; +# host = "3ffd:dead:beef::1"; +# send_password = "password"; +# accept_password = "password"; +# port = 6666; +# +# /* aftype: controls whether the connection uses "ipv4" or "ipv6". +# * Default is ipv4. */ +# aftype = ipv6; +# class = "server"; +#}; + +/* shared {}: users that are allowed to remote kline (OLD U:) */ +shared { + /* name: the server the user must be on to set klines. If this is not + * specified, the user will be allowed to kline from all servers. + */ + name = "hybrid7.debian.local"; + + /* user: the user@host mask that is allowed to set klines. If this is + * not specified, all users on the server above will be allowed to set + * a remote kline. + */ + user = "root@localhost"; +}; + +/* kill {}: users that are not allowed to connect (OLD K:) + * Oper issued klines will be added to the specified kline config + */ +#kill { +# user = "bad@*.hacked.edu"; +# reason = "Obviously hacked account"; +#}; + +/* deny {}: IPs that are not allowed to connect (before DNS/ident lookup) + * Oper issued dlines will be added to the specified dline config + */ +deny { + ip = "10.0.1.0/24"; + reason = "Reconnecting vhosted bots"; +}; + +/* exempt {}: IPs that are exempt from deny {} and Dlines. (OLD d:) */ +exempt { + ip = "192.168.0.0/16"; +}; + +/* resv {}: nicks and channels users may not use/join (OLD Q:) */ +resv { + /* reason: the reason for the proceeding resv's */ + reason = "There are no services on this network"; + + /* resv: the nicks and channels users may not join/use */ + nick = "nickserv"; + nick = "chanserv"; + channel = "#services"; + + /* resv: wildcard masks are also supported in nicks only */ + reason = "Clone bots"; + nick = "clone*"; +}; + +/* gecos {}: The X: replacement, used for banning users based on their + * "realname". The action may be either: + * warn: allow client to connect, but send message to opers + * reject: drop clients but also send message to opers. + * silent: silently drop clients who match. + */ +#gecos { +# name = "*sex*"; +# reason = "Possible spambot"; +# action = warn; +#}; + +#gecos { +# name = "sub7server"; +# reason = "Trojan drone"; +# action = reject; +#}; + +#gecos { +# name = "*http*"; +# reason = "Spambot"; +# action = silent; +#}; + +/* The channel block contains options pertaining to channels */ +channel { + /* invex: Enable/disable channel mode +I, a n!u@h list of masks + * that can join a +i channel without an invite. + */ + use_invex = yes; + + /* except: Enable/disable channel mode +e, a n!u@h list of masks + * that can join a channel through a ban (+b). + */ + use_except = yes; + + /* knock: Allows users to request an invite to a channel that + * is locked somehow (+ikl). If the channel is +p or you are banned + * the knock will not be sent. + */ + use_knock = yes; + + /* knock delay: The amount of time a user must wait between issuing + * the knock command. + */ + knock_delay = 5 minutes; + + /* knock channel delay: How often a knock to any specific channel + * is permitted, regardless of the user sending the knock. + */ + knock_delay_channel = 1 minute; + + /* max chans: The maximum number of channels a user can join/be on. */ + max_chans_per_user = 15; + + /* quiet on ban: stop banned people talking in channels. */ + quiet_on_ban = yes; + + /* max bans: maximum number of +b/e/I modes in a channel */ + max_bans = 25; + + /* splitcode: the ircd will check every 60s as to whether splitmode + * should be disabled or not, so there may be a delay between a + * netsplit ending and splitmode ending. + * + * both split users and split servers must be true to enter splitmode + * + * you may force splitmode to be permanent by /quote set splitmode on + */ + + /* split users: when the usercount is lower than this level, consider + * ourselves split. this must be set for automatic splitmode + */ + default_split_user_count = 0; + + /* split servers: when the servercount is lower than this, consider + * ourselves split. this must be set for automatic splitmode + */ + default_split_server_count = 0; + + /* split no create: disallow users creating channels on split. */ + no_create_on_split = no; + + /* split: no join: disallow users joining channels at all on a split */ + no_join_on_split = no; + + /* disable local channels: prevent users from joining &channels. + * This is extreme, but it is still a flaw in serverhide. It will + * however remove far more from users than it will give back in + * security. + */ + disable_local_channels = no; +}; + + +/* The serverhide block contains the options regarding serverhiding */ +serverhide { + /* flatten links: this option will show all servers in /links appear + * that they are linked to this current server + */ + flatten_links = no; + + /* links delay: how often to update the links file when it is + * flattened. + */ + links_delay = 5 minutes; + + /* hidden: hide this server from a /links output on servers that + * support it. this allows hub servers to be hidden etc. + */ + hidden = no; + + /* disable hidden: prevent servers hiding themselves from a + * /links ouput. + */ + disable_hidden = no; + + /* hide servers: hide remote servernames everywhere and instead use + * network_name and network_desc. + */ + hide_servers = no; +}; + +/* The general block contains many of the options that were once compiled + * in options in config.h. The general block is read at start time. + */ +general { + /* oper pass resv: allow opers to over-ride RESVs on nicks/channels */ + oper_pass_resv = yes; + + /* disable remote: disable users doing commands on remote servers */ + disable_remote_commands = no; + + /* floodcount: the default value of floodcount that is configurable + * via /quote set floodcount. This is the amount of lines a user + * may send to any other user/channel in one second. + */ + default_floodcount = 10; + + /* failed oper notice: send a notice to all opers on the server when + * someone tries to OPER and uses the wrong password, host or ident. + */ + failed_oper_notice = yes; + + /* dots in ident: the amount of '.' characters permitted in an ident + * reply before the user is rejected. + */ + dots_in_ident=2; + + /* dot in ipv6: ircd-hybrid-6.0 and earlier will disallow hosts + * without a '.' in them. this will add one to the end. only needed + * for older servers. + */ + dot_in_ip6_addr = yes; + + /* min nonwildcard: the minimum non wildcard characters in k/d/g lines + * placed via the server. klines hand placed are exempt from limits. + * wildcard chars: '.' '*' '?' '@' + */ + min_nonwildcard = 4; + + /* max accept: maximum allowed /accept's for +g usermode */ + max_accept = 20; + + /* nick flood: enable the nickflood control code */ + anti_nick_flood = yes; + + /* nick flood: the nick changes allowed in the specified period */ + max_nick_time = 20 seconds; + max_nick_changes = 5; + + /* anti spam time: the minimum time a user must be connected before + * custom quit messages are allowed. + * + * The upstream default is 2 minutes. + */ + anti_spam_exit_message_time = 0 minutes; + + /* ts delta: the time delta allowed between server clocks before + * a warning is given, or before the link is dropped. all servers + * should run ntpdate/rdate to keep clocks in sync + */ + ts_warn_delta = 30 seconds; + ts_max_delta = 5 minutes; + + /* kline reason: show the user the reason why they are k/d/glined + * on exit. may give away who set k/dline when set via tcm. + */ + kline_with_reason = yes; + + /* kline connection closed: make the users quit message on channels + * to be "Connection closed", instead of the kline reason. + */ +# kline_with_connection_closed = no; + + /* warn no nline: warn opers about servers that try to connect but + * we dont have a connect {} block for. Twits with misconfigured + * servers can get really annoying with this enabled. + */ + warn_no_nline = yes; + + /* stats o oper only: make stats o (opers) oper only */ + stats_o_oper_only=yes; + + /* stats P oper only: make stats P (ports) oper only */ + stats_P_oper_only=no; + + /* stats i oper only: make stats i (auth {}) oper only. set to: + * yes: show users no auth blocks, made oper only. + * masked: show users first matching auth block + * no: show users all auth blocks. + */ + stats_i_oper_only=masked; + + /* stats k/K oper only: make stats k/K (klines) oper only. set to: + * yes: show users no auth blocks, made oper only + * masked: show users first matching auth block + * no: show users all auth blocks. + */ + stats_k_oper_only=masked; + + /* caller id wait: time between notifying a +g user that somebody + * is messaging them. + */ + caller_id_wait = 1 minute; + + /* pace wait simple: time between use of less intensive commands + * (HELP, remote WHOIS, WHOWAS) + */ + pace_wait_simple = 1 second; + + /* pace wait: time between more intensive commands + * (ADMIN, INFO, LIST, LUSERS, MOTD, STATS, VERSION) + */ + pace_wait = 10 seconds; + + /* short motd: send clients a notice telling them to read the motd + * instead of forcing a motd to clients who may simply ignore it. + */ + short_motd = no; + + /* ping cookies: require clients to respond exactly to a ping command, + * can help block certain types of drones and FTP PASV mode spoofing. + */ + ping_cookie = no; + + /* no oper flood: increase flood limits for opers. */ + no_oper_flood = yes; + + /* true no oper flood: completely eliminate flood limits for opers + * and for clients with can_flood = yes in their auth {} blocks + */ + true_no_oper_flood = yes; + + /* idletime: the maximum amount of time a user may idle before + * they are disconnected + */ + idletime = 0; + + /* REMOVE ME. The following line checks you've been reading. */ + # havent_read_conf = 1; + + /* max targets: the maximum amount of targets in a single + * PRIVMSG/NOTICE. set to 999 NOT 0 for unlimited. + */ + max_targets = 4; + + /* client flood: maximum number of lines in a clients queue before + * they are dropped for flooding. + */ + client_flood = 20; + + /* message locale: the default message locale if gettext() is enabled + * and working. + * Use "custom" for the (in)famous Hybrid custom messages. + * Use "standard" for the compiled in defaults. + */ + message_locale = "standard"; + + /* usermodes configurable: a list of usermodes for the options below + * + * +b - bots - See bot and drone flooding notices + * +c - cconn - Client connection/quit notices + * +d - debug - See debugging notices + * +f - full - See I: line full notices + * +g - callerid - Server Side Ignore + * +i - invisible - Not shown in NAMES or WHO unless you share a + * a channel + * +k - skill - See server generated KILL messages + * +l - locops - See LOCOPS messages + * +n - nchange - See client nick changes + * +r - rej - See rejected client notices + * +s - servnotice - See general server notices + * +u - unauth - See unauthorized client notices + * +w - wallop - See server generated WALLOPS + * +x - external - See remote server connection and split notices + * +y - spy - See LINKS, STATS, TRACE notices etc. + * +z - operwall - See oper generated WALLOPS + */ + + /* oper only umodes: usermodes only opers may set */ + oper_only_umodes = bots, cconn, debug, full, skill, nchange, + rej, spy, external, operwall, locops, unauth; + + /* oper umodes: default usermodes opers get when they /oper */ + oper_umodes = locops, servnotice, operwall, wallop; + + /* servlink path: path to 'servlink' program used by ircd to handle + * encrypted/compressed server <-> server links. + * + * unless you move servlink around (???), you shouldn't define this. + */ + #servlink_path = "/usr/lib/ircd-hybrid/servlink"; + + /* default cipher: default cipher to use for cryptlink when none is + * specified in connect block. + */ + default_cipher_preference = "BF/128"; + + /* use egd: if your system does not have *random devices yet you + * want to use OpenSSL and encrypted links, enable this. Beware - + * EGD is *very* CPU intensive when gathering data for its pool + */ + #use_egd = yes; + + /* egdpool path: path to EGD pool. Not necessary for OpenSSL >= 0.9.7 + * which automatically finds the path. + */ + #egdpool_path = "/var/run/egd-pool"; + + + /* compression level: level of compression for compressed links between + * servers. + * + * values are between: 1 (least compression, fastest) + * and: 9 (most compression, slowest). + */ + #compression_level = 6; + + /* throttle time: the minimum amount of time between connections from + * the same ip. exempt {} blocks are excluded from this throttling. + * Offers protection against flooders who reconnect quickly. + * Set to 0 to disable. + */ + throttle_time = 10; +}; + +glines { + /* enable: enable glines, network wide temp klines */ + enable = yes; + + /* + * duration: the amount of time a gline will remain on your + * server before expiring + */ + duration = 1 day; + + /* + * logging: which types of rules you want to log when triggered + * (choose reject or block) + */ + logging = reject, block; + + /* + * NOTE: gline ACLs can cause a desync of glines throughout the + * network, meaning some servers may have a gline triggered, and + * others may not. Also, you only need insert rules for glines + * that you want to block and/or reject. If you want to accept and + * propagate the gline, do NOT put a rule for it. + */ + + /* user@host for rule to apply to */ + user = "god@I.still.hate.packets"; + /* server for rule to apply to */ + name = "hades.arpa"; + + /* + * action: action to take when a matching gline is found. options are: + * reject - do not apply the gline locally + * block - do not propagate the gline + */ + action = reject, block; + + user = "god@*"; + name = "*"; + action = block; +}; + +modules { + /* module path: paths to search for modules specified below and + * in /modload. + */ + path = "/usr/lib/ircd-hybrid/modules"; + path = "/usr/lib/ircd-hybrid/modules/autoload"; + + /* module: the name of a module to load on startup/rehash */ + module = "m_tburst.so"; +}; --- ircd-hybrid-7.2.2.dfsg.2.orig/debian/ircd-hybrid.postinst.ssl +++ ircd-hybrid-7.2.2.dfsg.2/debian/ircd-hybrid.postinst.ssl @@ -0,0 +1,23 @@ +if [ ! -d /etc/ircd-hybrid/key ]; then mkdir /etc/ircd-hybrid/key; fi \ +\ +if [ -f /etc/ircd-hybrid/key/ircd.key ] \&\& [ -f /etc/ircd-hybrid/key/ircd.pub ] \ +then \ + echo "You already have ircd.key and ircd.pub" \ +else \ + echo "ircd.key and ircd.pub not found in /etc/ircd-hybrid!" \ + echo "Generating ircd.key for CRYPTLINK connections..." \ + openssl genrsa -out /etc/ircd-hybrid/key/ircd.key 2048 \ + echo "Generating ircd.pub (public key to give to servers)" \ + openssl rsa -in /etc/ircd-hybrid/key/ircd.key -pubout -out /etc/ircd-hybrid/key/ircd.pub \ + chown -R irc.irc /etc/ircd-hybrid/key \ + echo "Correcting permissions..." \ + chmod 0600 /etc/ircd-hybrid/key/ircd.key \ + chmod 0644 /etc/ircd-hybrid/key/ircd.pub \ + echo "ircd.key and ircd.pub generated in /etc/ircd-hybrid/key/" \ +fi \ +\ +if [ ! -f /etc/ircd-hybrid/key/ircd.pem ]; then \ + echo "Generating ircd.pem for SSL client connections... (365 days)" \ + openssl req -config /etc/ircd-hybrid/cert.cnf -new -x509 -key /etc/ircd-hybrid/key/ircd.key -out /etc/ircd-hybrid/key/ircd.pem -days 365 \ + echo "See README.Debian about personalizing the data in ircd.pem." \ +fi --- ircd-hybrid-7.2.2.dfsg.2.orig/debian/ircd-hybrid.config +++ ircd-hybrid-7.2.2.dfsg.2/debian/ircd-hybrid.config @@ -0,0 +1,13 @@ +#!/bin/sh + +set -e +. /usr/share/debconf/confmodule + +if [ "$1" = "configure" ]; then + if dpkg --compare-versions "$2" ge "1:7.2.2-1"; then + db_input medium ircd-hybrid/restart_on_upgrade || true + fi +fi +db_go + +exit 0 --- ircd-hybrid-7.2.2.dfsg.2.orig/debian/hybrid-dev.README.Debian +++ ircd-hybrid-7.2.2.dfsg.2/debian/hybrid-dev.README.Debian @@ -0,0 +1,19 @@ +hybrid-dev +========== + +To compile a module for ircd-hybrid, make sure this hybrid-dev is the +same version as the ircd-hybrid you're compiling for. + +Then use: + +gcc -I/usr/include/ircd-hybrid-7 -fPIC -DPIC -shared -g m_foo.c -o m_foo.so + +to compile the module. Or you can use the quick shell script +`mbuild-hybrid' that is in this package which essentially does the same +thing. See mbuild-hybrid(1) for further information. Remember that you +may need to link shared libraries to it. + +I have not tried loading modules built with a different version of gcc +than the one the ircd was built with. I believe it should be okay, though. + + -- Joshua Kwan Sun, 30 Mar 2003 00:29:48 -0800 --- ircd-hybrid-7.2.2.dfsg.2.orig/debian/ircd-hybrid.README.Debian +++ ircd-hybrid-7.2.2.dfsg.2/debian/ircd-hybrid.README.Debian @@ -0,0 +1,71 @@ +IRCD-Hybrid +----------- + +SSL Certificate +=============== + +For the sake of simplicity a SSL certificate (for use with client SSL +connections) is generated with rather bogus info during after ircd-hybrid +installs. If you would like to change the info in the certificate, edit +/etc/ircd-hybrid/cert.cnf, and then run as root: + +openssl req -config /etc/ircd-hybrid/cert.cnf -new -x509 -key /etc/ircd-hybrid/key/ircd.key -out /etc/ircd-hybrid/key/ircd.pem -days 365 + +You will probably want to restart the server after this for the changes to take +effect. + +Initial Configuration +===================== + +After installing the package, you can access the IRC server at +localhost:6667. But it will have conservative default settings and the +only people allowed to connect will be local users. So before further +using the server, PLEASE edit ircd.conf in /etc/ircd-hybrid. You will +have a server called hybrid7.debian.local and only bound to localhost +until you do. Then, you may restart it using: + + /etc/init.d/ircd-hybrid restart + +And the server should come back up with your new setup. If not, + + tail /var/log/ircd/ircd-hybrid.log + +and see what went wrong. Remember that all configuration statements must +end with semicolons, even at the ends of blocks (};) - this is the +leading cause of 'syntax errors' :) + +Other Information +================= + +By default, the contrib/ modules in ircd-hybrid are compiled with the +rest of the package. Information on these modules can be found in +/usr/share/doc/ircd-hybrid/README.contrib. If you don't want this to +happen, source ircd-hybrid and simply comment out '$(MAKE) -C contrib' +from debian/rules and rebuild. + +Note that the default behavior of m_opme is to +o any admin in an opless +channel. An experimental patch in debian/patches changes this so that you +only need O flags.. The rationale is that if you're able to /kill +people, channel operator stuff is probably okay, too. This is not part +of the default build; add it to debian/patches/00list if you wish to +enable this, and rebuild. The patch ID is 99_opme_allow_operators. + +A patch enabled in the default build removes the condition that a +channel needs to be opless for m_opme to work, since an oper can use +/ojoin (m_ojoin.so) anyway for this to happen. + +Note concerning servlink_path +============================= + +Your existing ircd.conf that you may wish to import contains a +servlink_path directive. Either change it to: + + servlink_path = "/usr/lib/ircd-hybrid/servlink"; + +or simply remove the entire line as the correct path is hardcoded +into the ircd. + +Have fun! + +-- Joshua Kwan Mon, 26 Dec 2003 21:21:34 -0800 +-- Aurélien GÉRÔME Sun, 8 Oct 2006 18:19:00 +0200 --- ircd-hybrid-7.2.2.dfsg.2.orig/debian/hybrid-dev.install +++ ircd-hybrid-7.2.2.dfsg.2/debian/hybrid-dev.install @@ -0,0 +1 @@ +usr/include/ircd-hybrid-7 --- ircd-hybrid-7.2.2.dfsg.2.orig/debian/ircd.conf.ssl +++ ircd-hybrid-7.2.2.dfsg.2/debian/ircd.conf.ssl @@ -0,0 +1,828 @@ +# ircd-hybrid configuration file [ircd.conf] +# customized for Debian by Joshua Kwan +# modified for Debian by Aurélien GÉRÔME + + /* serverinfo {}: Contains information about the server. (OLD M:) */ +serverinfo { + /* name: the name of our server */ + name = "hybrid7.debian.local"; + + /* description: the description of our server. '[' and ']' may not + * be used here for compatibility with older servers. + */ + description = "ircd-hybrid 7.2-debian"; + + /* network info: the name and description of the network this server + * is on. Shown in the 005 reply and used with serverhiding. + */ + network_name = "debian"; + network_desc = "i am a network short and stout"; + + /* hub: allow this server to act as a hub and have multiple servers + * connected to it. This may not be changed if there are active + * LazyLink servers. + */ + hub = yes; + + /* vhost: the IP to bind to when we connect outward to ipv4 servers. + * This should be an ipv4 IP only. + */ + #vhost = "192.169.0.1"; + + /* vhost6: the IP to bind to when we connect outward to ipv6 servers. + * This should be an ipv6 IP only. + */ + #vhost6 = "3ffe:80e8:546::2"; + + /* max clients: the maximum number of clients allowed to connect */ + max_clients = 512; + + /* postinst of this package already made this key for you */ + rsa_private_key_file = "/etc/ircd-hybrid/key/ircd.key"; + + /* postinst of this package already made this certificate for you */ + ssl_certificate_file = "/etc/ircd-hybrid/key/ircd.pem"; +}; + +/* admin {}: contains admin information about the server. (OLD A:) */ +admin { + name = "S. Ysadmin"; + description = "Main Server Administrator"; + email = ""; +}; + +/* + * log {}: contains information about logfiles. + */ +log { + /* Do you want to enable logging to ircd.log? */ + use_logging = yes; + + /* + * logfiles: the logfiles to use for user connects, /oper uses, + * and failed /oper. These files must exist for logging to be used. + */ + fname_userlog = "logs/userlog"; + fname_operlog = "logs/operlog"; + fname_killlog = "logs/kill"; + fname_klinelog = "logs/kline"; + fname_glinelog = "logs/gline"; + + /* + * log_level: the amount of detail to log in ircd.log. The + * higher, the more information is logged. May be changed + * once the server is running via /quote SET LOG. Either: + * L_CRIT, L_ERROR, L_WARN, L_NOTICE, L_TRACE, L_INFO or L_DEBUG + */ + log_level = L_INFO; +}; + +/* class {}: contain information about classes for users (OLD Y:) */ +class { + /* name: the name of the class. classes are text now */ + name = "users"; + + /* ping time: how often a client must reply to a PING from the + * server before they are dropped. + */ + ping_time = 2 minutes; + + /* number per ip: the number of users per host allowed to connect */ + number_per_ip = 2; + + /* max number: the maximum number of users allowed in this class */ + max_number = 100; + + /* sendq: the amount of data allowed in a clients queue before + * they are dropped. + */ + sendq = 100 kbytes; +}; + +class { + name = "restricted"; + ping_time = 1 minute 30 seconds; + number_per_ip = 1; + max_number = 100; + sendq = 60kb; +}; + +class { + name = "opers"; + ping_time = 5 minutes; + number_per_ip = 10; + max_number = 100; + sendq = 100kbytes; +}; + +class { + name = "server"; + ping_time = 5 minutes; + + /* connectfreq: only used in server classes. specifies the delay + * between autoconnecting to servers. + */ + connectfreq = 5 minutes; + + /* max number: the amount of servers to autoconnect to */ + max_number = 1; + + /* sendq: servers need a higher sendq as they send more data */ + sendq=2 megabytes; +}; + +/* listen {}: contain information about the ports ircd listens on (OLD P:) */ +listen { + /* port: the specific port to listen on. if no host is specified + * before, it will listen on all available IPs. + * + * ports are seperated via a comma, a range may be specified using ".." + */ + + /* port: listen on all available IPs, ports 6665 to 6669 */ + host = "127.0.0.1"; # change this! + port = 6665 .. 6669; + + /* sslport: ports to accept ONLY ssl connections on */ + flags = ssl; + port = 6670; +}; + +/* auth {}: allow users to connect to the ircd (OLD I:) */ +auth { + /* user: the user@host allowed to connect. multiple IPv4/IPv6 user + * lines are permitted per auth block. + */ + user = "*@127.0.0.1"; + + /* password: an optional password that is required to use this block */ + + /* spoof: fake the users host to be be this. This is free-form, + * just do everyone a favour and dont abuse it. (OLD I: = flag) + */ + spoof = "i.love.debian.org"; + + /* spoof notice: enable spoofing notification to admins (default yes) */ + spoof_notice = yes; + + /* exceed limit: allow a user to exceed class limits (OLD I: > flag) */ + exceed_limit = yes; + + /* kline exempt: exempt this user from k/glines (OLD I: ^ flag) */ + kline_exempt = yes; + + /* gline exempt: exempt this user from glines (OLD I: _ flag) */ + gline_exempt = yes; + + /* no tilde: remove ~ from a user with no ident (OLD I: - flag) */ + no_tilde = yes; + + /* class: the class the user is placed in */ + class = "opers"; +}; + +#auth { +# # redirect: the server and port to redirect a user to. A user does +# # not have to obey the redirection, the ircd just suggests to them +# # an alternative server. +# redirserv = "irc.at.the.edge.of.earth"; +# redirport = 6667; + +# /* hostmask user has to match to receive redirection */ +# user = "*.on.mars"; +# +# /* class: a class is required even though it is not used */ +# class = "users"; +#}; + +auth { + user = "*@*"; + class = "users"; + + /* restricted: stop the client sending mode changes */ + #restricted = yes; + + /* have ident: require the user has identd to connect (OLD I: + flag) */ + have_ident = no; +}; + +/* operator {}: defines ircd operators. (OLD O:) + * ircd-hybrid no longer supports local operators, privileges are + * controlled via flags. + */ +operator { + /* name: the name of the oper */ + name = "root"; + + /* user: the user@host required for this operator. CIDR is not + * supported. multiple user="" lines are supported. + */ + user = "root@127.0.0.1"; + + /* password: the password required to oper. By default this will + * need to be encrypted using '/usr/bin/mkpasswd'. + * WARNING: Please do not mix up the 'mkpasswd' program from + * /usr/sbin with this one. If you are root, typing 'mkpasswd' + * will run that one instead and you will receive a strange error. + * + * MD5 is supported. If you want to use it, use mkpasswd -Hmd5. + */ + password = "ToJx.IEPqjiVg"; + #password = "$1$9PTzrFkW$yh3ablZ5DnHeU9yjhj..U/"; + + /* rsa key: the public key for this oper when using Challenge. + * A password should not be defined when this is used, see + * doc/challenge.txt for more information. + */ + #rsa_public_key_file = "/usr/local/ircd/etc/oper.pub"; + + /* class: the class the oper joins when they successfully /oper */ + class = "opers"; + + /* privileges: controls the activities and commands an oper are + * allowed to do on the server. All options default to no. + * Available options: + * + * global_kill: allows remote users to be /KILL'd (OLD 'O' flag) + * remote: allows remote SQUIT and CONNECT (OLD 'R' flag) + * kline: allows KILL, KLINE and DLINE (OLD 'K' flag) + * unkline: allows UNKLINE and UNDLINE (OLD 'U' flag) + * gline: allows GLINE (OLD 'G' flag) + * nick_changes: allows oper to see nickchanges (OLD 'N' flag) + * via usermode +n + * rehash: allows oper to REHASH config (OLD 'H' flag) + * die: allows DIE and RESTART (OLD 'D' flag) + * admin: gives admin privileges. admins + * may (un)load modules and see the + * real IPs of servers. + */ + global_kill = yes; + remote = yes; + kline = yes; + unkline = yes; + gline = yes; + die = yes; + rehash = yes; + nick_changes = yes; + admin = yes; +}; + +/* connect {}: controls servers we connect to (OLD C:, N:, H:, L:) */ + +#connect { +# /* name: the name of the server */ +# name = "irc.example.net"; +# +# /* host: the host or IP to connect to. If a hostname is used it +# * must match the reverse dns of the server. +# */ +# host = "192.168.0.1"; +# +# /* passwords: the passwords we send (OLD C:) and accept (OLD N:). +# * The remote server will have these passwords reversed. +# */ +# send_password = "password"; +# accept_password = "anotherpassword"; +# +# /* encrypted: controls whether the accept_password above has been +# * encrypted. (OLD CRYPT_LINK_PASSWORD now optional per connect) +# */ +# encrypted = no; +# +# /* port: the port to connect to this server on */ +# port = 6666; +# +# /* hub mask: the mask of servers that this server may hub. Multiple +# * entries are permitted +# */ +# hub_mask = "*"; +# +# /* leaf mask: the mask of servers this server may not hub. Multiple +# * entries are permitted. Useful for forbidding EU -> US -> EU routes. +# */ +# #leaf_mask = "*.uk"; +# +# /* class: the class this server is in */ +# class = "server"; +# +# /* autoconnect: controls whether we autoconnect to this server or not, +# * dependent on class limits. +# */ +# autoconn = no; +# +# /* compressed: controls whether traffic is compressed via ziplinks. +# * By default this is disabled +# */ +# #compressed = yes; +# +# /* lazylink: controls whether this server is a LazyLink. LazyLink +# * servers may NOT hub. see doc/LazyLinks.as.implemented.txt +# */ +# #lazylink = yes; +# +# /* masking: the servername we pretend to be when we connect */ +# #fakename = "*.arpa"; +#}; + +/* This build of ircd-hybrid *does* support cryptlinks, so an example + * is provided below. */ + +#connect { +# name = "encrypted.auth.example"; +# host = "some.host.somewhere"; +# port = 6667; +# +# /* cryptlink: enable full encryption for all data passing between our +# * server and this link and rsa authentication. +# */ +# cryptlink = yes; +# +# /* rsa key: the path to the public keyfile of the server. Used instead +# * of passwords. +# */ +# rsa_public_key_file = "/etc/ircd-hybrid/key/remote.pub"; +# +# /* cipher preference: set the preferred cipher for this link +# * +# * Available ciphers are: +# * BF/256 BF/128 CAST/128 IDEA/128 RC5.16/128 +# * RC5.12/128 RC5.8/128 3DES/168 DES/56 +# * +# * NOTE: Some ciphers may not be supported by your OpenSSL. +# * Check the output from 'configure' for available ciphers. +# * +# * NOTE2: To help you decide what cipher to use, tools/encspeed +# * will show you approximately how fast each cipher is. +# * However, blowfish is fast and secure, and is probably +# * a good default for most situations. +# * +# * NOTE3: Default if none is set is BF/128 +# * +# * The cipher *MUST* be the same in both directions. If you +# * set a cipher preference, your uplink must set the same cipher, +# * else it will not link. +# */ +# #cipher_preference = "BF/256"; +#}; + +#connect { +# name = "ipv6.some.server"; +# host = "3ffd:dead:beef::1"; +# send_password = "password"; +# accept_password = "password"; +# port = 6666; +# +# /* aftype: controls whether the connection uses "ipv4" or "ipv6". +# * Default is ipv4. */ +# aftype = ipv6; +# class = "server"; +#}; + +/* shared {}: users that are allowed to remote kline (OLD U:) */ +shared { + /* name: the server the user must be on to set klines. If this is not + * specified, the user will be allowed to kline from all servers. + */ + name = "hybrid7.debian.local"; + + /* user: the user@host mask that is allowed to set klines. If this is + * not specified, all users on the server above will be allowed to set + * a remote kline. + */ + user = "root@localhost"; +}; + +/* kill {}: users that are not allowed to connect (OLD K:) + * Oper issued klines will be added to the specified kline config + */ +#kill { +# user = "bad@*.hacked.edu"; +# reason = "Obviously hacked account"; +#}; + +/* deny {}: IPs that are not allowed to connect (before DNS/ident lookup) + * Oper issued dlines will be added to the specified dline config + */ +deny { + ip = "10.0.1.0/24"; + reason = "Reconnecting vhosted bots"; +}; + +/* exempt {}: IPs that are exempt from deny {} and Dlines. (OLD d:) */ +exempt { + ip = "192.168.0.0/16"; +}; + +/* resv {}: nicks and channels users may not use/join (OLD Q:) */ +resv { + /* reason: the reason for the proceeding resv's */ + reason = "There are no services on this network"; + + /* resv: the nicks and channels users may not join/use */ + nick = "nickserv"; + nick = "chanserv"; + channel = "#services"; + + /* resv: wildcard masks are also supported in nicks only */ + reason = "Clone bots"; + nick = "clone*"; +}; + +/* gecos {}: The X: replacement, used for banning users based on their + * "realname". The action may be either: + * warn: allow client to connect, but send message to opers + * reject: drop clients but also send message to opers. + * silent: silently drop clients who match. + */ +#gecos { +# name = "*sex*"; +# reason = "Possible spambot"; +# action = warn; +#}; + +#gecos { +# name = "sub7server"; +# reason = "Trojan drone"; +# action = reject; +#}; + +#gecos { +# name = "*http*"; +# reason = "Spambot"; +# action = silent; +#}; + +/* The channel block contains options pertaining to channels */ +channel { + /* invex: Enable/disable channel mode +I, a n!u@h list of masks + * that can join a +i channel without an invite. + */ + use_invex = yes; + + /* except: Enable/disable channel mode +e, a n!u@h list of masks + * that can join a channel through a ban (+b). + */ + use_except = yes; + + /* knock: Allows users to request an invite to a channel that + * is locked somehow (+ikl). If the channel is +p or you are banned + * the knock will not be sent. + */ + use_knock = yes; + + /* knock delay: The amount of time a user must wait between issuing + * the knock command. + */ + knock_delay = 5 minutes; + + /* knock channel delay: How often a knock to any specific channel + * is permitted, regardless of the user sending the knock. + */ + knock_delay_channel = 1 minute; + + /* max chans: The maximum number of channels a user can join/be on. */ + max_chans_per_user = 15; + + /* quiet on ban: stop banned people talking in channels. */ + quiet_on_ban = yes; + + /* max bans: maximum number of +b/e/I modes in a channel */ + max_bans = 25; + + /* splitcode: the ircd will check every 60s as to whether splitmode + * should be disabled or not, so there may be a delay between a + * netsplit ending and splitmode ending. + * + * both split users and split servers must be true to enter splitmode + * + * you may force splitmode to be permanent by /quote set splitmode on + */ + + /* split users: when the usercount is lower than this level, consider + * ourselves split. this must be set for automatic splitmode + */ + default_split_user_count = 0; + + /* split servers: when the servercount is lower than this, consider + * ourselves split. this must be set for automatic splitmode + */ + default_split_server_count = 0; + + /* split no create: disallow users creating channels on split. */ + no_create_on_split = no; + + /* split: no join: disallow users joining channels at all on a split */ + no_join_on_split = no; + + /* disable local channels: prevent users from joining &channels. + * This is extreme, but it is still a flaw in serverhide. It will + * however remove far more from users than it will give back in + * security. + */ + disable_local_channels = no; +}; + + +/* The serverhide block contains the options regarding serverhiding */ +serverhide { + /* flatten links: this option will show all servers in /links appear + * that they are linked to this current server + */ + flatten_links = no; + + /* links delay: how often to update the links file when it is + * flattened. + */ + links_delay = 5 minutes; + + /* hidden: hide this server from a /links output on servers that + * support it. this allows hub servers to be hidden etc. + */ + hidden = no; + + /* disable hidden: prevent servers hiding themselves from a + * /links ouput. + */ + disable_hidden = no; + + /* hide servers: hide remote servernames everywhere and instead use + * network_name and network_desc. + */ + hide_servers = no; +}; + +/* The general block contains many of the options that were once compiled + * in options in config.h. The general block is read at start time. + */ +general { + /* oper pass resv: allow opers to over-ride RESVs on nicks/channels */ + oper_pass_resv = yes; + + /* disable remote: disable users doing commands on remote servers */ + disable_remote_commands = no; + + /* floodcount: the default value of floodcount that is configurable + * via /quote set floodcount. This is the amount of lines a user + * may send to any other user/channel in one second. + */ + default_floodcount = 10; + + /* failed oper notice: send a notice to all opers on the server when + * someone tries to OPER and uses the wrong password, host or ident. + */ + failed_oper_notice = yes; + + /* dots in ident: the amount of '.' characters permitted in an ident + * reply before the user is rejected. + */ + dots_in_ident=2; + + /* dot in ipv6: ircd-hybrid-6.0 and earlier will disallow hosts + * without a '.' in them. this will add one to the end. only needed + * for older servers. + */ + dot_in_ip6_addr = yes; + + /* min nonwildcard: the minimum non wildcard characters in k/d/g lines + * placed via the server. klines hand placed are exempt from limits. + * wildcard chars: '.' '*' '?' '@' + */ + min_nonwildcard = 4; + + /* max accept: maximum allowed /accept's for +g usermode */ + max_accept = 20; + + /* nick flood: enable the nickflood control code */ + anti_nick_flood = yes; + + /* nick flood: the nick changes allowed in the specified period */ + max_nick_time = 20 seconds; + max_nick_changes = 5; + + /* anti spam time: the minimum time a user must be connected before + * custom quit messages are allowed. + * + * The upstream default is 2 minutes. + */ + anti_spam_exit_message_time = 0 minutes; + + /* ts delta: the time delta allowed between server clocks before + * a warning is given, or before the link is dropped. all servers + * should run ntpdate/rdate to keep clocks in sync + */ + ts_warn_delta = 30 seconds; + ts_max_delta = 5 minutes; + + /* kline reason: show the user the reason why they are k/d/glined + * on exit. may give away who set k/dline when set via tcm. + */ + kline_with_reason = yes; + + /* kline connection closed: make the users quit message on channels + * to be "Connection closed", instead of the kline reason. + */ +# kline_with_connection_closed = no; + + /* warn no nline: warn opers about servers that try to connect but + * we dont have a connect {} block for. Twits with misconfigured + * servers can get really annoying with this enabled. + */ + warn_no_nline = yes; + + /* stats o oper only: make stats o (opers) oper only */ + stats_o_oper_only=yes; + + /* stats P oper only: make stats P (ports) oper only */ + stats_P_oper_only=no; + + /* stats i oper only: make stats i (auth {}) oper only. set to: + * yes: show users no auth blocks, made oper only. + * masked: show users first matching auth block + * no: show users all auth blocks. + */ + stats_i_oper_only=masked; + + /* stats k/K oper only: make stats k/K (klines) oper only. set to: + * yes: show users no auth blocks, made oper only + * masked: show users first matching auth block + * no: show users all auth blocks. + */ + stats_k_oper_only=masked; + + /* caller id wait: time between notifying a +g user that somebody + * is messaging them. + */ + caller_id_wait = 1 minute; + + /* pace wait simple: time between use of less intensive commands + * (HELP, remote WHOIS, WHOWAS) + */ + pace_wait_simple = 1 second; + + /* pace wait: time between more intensive commands + * (ADMIN, INFO, LIST, LUSERS, MOTD, STATS, VERSION) + */ + pace_wait = 10 seconds; + + /* short motd: send clients a notice telling them to read the motd + * instead of forcing a motd to clients who may simply ignore it. + */ + short_motd = no; + + /* ping cookies: require clients to respond exactly to a ping command, + * can help block certain types of drones and FTP PASV mode spoofing. + */ + ping_cookie = no; + + /* no oper flood: increase flood limits for opers. */ + no_oper_flood = yes; + + /* true no oper flood: completely eliminate flood limits for opers + * and for clients with can_flood = yes in their auth {} blocks + */ + true_no_oper_flood = yes; + + /* idletime: the maximum amount of time a user may idle before + * they are disconnected + */ + idletime = 0; + + /* REMOVE ME. The following line checks you've been reading. */ + # havent_read_conf = 1; + + /* max targets: the maximum amount of targets in a single + * PRIVMSG/NOTICE. set to 999 NOT 0 for unlimited. + */ + max_targets = 4; + + /* client flood: maximum number of lines in a clients queue before + * they are dropped for flooding. + */ + client_flood = 20; + + /* message locale: the default message locale if gettext() is enabled + * and working. + * Use "custom" for the (in)famous Hybrid custom messages. + * Use "standard" for the compiled in defaults. + */ + message_locale = "standard"; + + /* usermodes configurable: a list of usermodes for the options below + * + * +b - bots - See bot and drone flooding notices + * +c - cconn - Client connection/quit notices + * +d - debug - See debugging notices + * +f - full - See I: line full notices + * +g - callerid - Server Side Ignore + * +i - invisible - Not shown in NAMES or WHO unless you share a + * a channel + * +k - skill - See server generated KILL messages + * +l - locops - See LOCOPS messages + * +n - nchange - See client nick changes + * +r - rej - See rejected client notices + * +s - servnotice - See general server notices + * +u - unauth - See unauthorized client notices + * +w - wallop - See server generated WALLOPS + * +x - external - See remote server connection and split notices + * +y - spy - See LINKS, STATS, TRACE notices etc. + * +z - operwall - See oper generated WALLOPS + */ + + /* oper only umodes: usermodes only opers may set */ + oper_only_umodes = bots, cconn, debug, full, skill, nchange, + rej, spy, external, operwall, locops, unauth; + + /* oper umodes: default usermodes opers get when they /oper */ + oper_umodes = locops, servnotice, operwall, wallop; + + /* servlink path: path to 'servlink' program used by ircd to handle + * encrypted/compressed server <-> server links. + * + * unless you move servlink around (???), you shouldn't define this. + */ + #servlink_path = "/usr/lib/ircd-hybrid/servlink"; + + /* default cipher: default cipher to use for cryptlink when none is + * specified in connect block. + */ + default_cipher_preference = "BF/128"; + + /* use egd: if your system does not have *random devices yet you + * want to use OpenSSL and encrypted links, enable this. Beware - + * EGD is *very* CPU intensive when gathering data for its pool + */ + #use_egd = yes; + + /* egdpool path: path to EGD pool. Not necessary for OpenSSL >= 0.9.7 + * which automatically finds the path. + */ + #egdpool_path = "/var/run/egd-pool"; + + + /* compression level: level of compression for compressed links between + * servers. + * + * values are between: 1 (least compression, fastest) + * and: 9 (most compression, slowest). + */ + #compression_level = 6; + + /* throttle time: the minimum amount of time between connections from + * the same ip. exempt {} blocks are excluded from this throttling. + * Offers protection against flooders who reconnect quickly. + * Set to 0 to disable. + */ + throttle_time = 10; +}; + +glines { + /* enable: enable glines, network wide temp klines */ + enable = yes; + + /* + * duration: the amount of time a gline will remain on your + * server before expiring + */ + duration = 1 day; + + /* + * logging: which types of rules you want to log when triggered + * (choose reject or block) + */ + logging = reject, block; + + /* + * NOTE: gline ACLs can cause a desync of glines throughout the + * network, meaning some servers may have a gline triggered, and + * others may not. Also, you only need insert rules for glines + * that you want to block and/or reject. If you want to accept and + * propagate the gline, do NOT put a rule for it. + */ + + /* user@host for rule to apply to */ + user = "god@I.still.hate.packets"; + /* server for rule to apply to */ + name = "hades.arpa"; + + /* + * action: action to take when a matching gline is found. options are: + * reject - do not apply the gline locally + * block - do not propagate the gline + */ + action = reject, block; + + user = "god@*"; + name = "*"; + action = block; +}; + +modules { + /* module path: paths to search for modules specified below and + * in /modload. + */ + path = "/usr/lib/ircd-hybrid/modules"; + path = "/usr/lib/ircd-hybrid/modules/autoload"; + + /* module: the name of a module to load on startup/rehash */ + module = "m_tburst.so"; +}; --- ircd-hybrid-7.2.2.dfsg.2.orig/debian/control.in +++ ircd-hybrid-7.2.2.dfsg.2/debian/control.in @@ -0,0 +1,46 @@ +Source: ircd-hybrid +Section: net +Priority: optional +Build-Depends: debhelper (>= 4.1.16), zlib1g-dev, dpatch, docbook-to-man, flex, bison, libpcre3-dev (>= 6.3) @SSL_BUILD_DEPENDS@ +Maintainer: Ubuntu MOTU Developers +XSBC-Original-Maintainer: Joshua Kwan +Uploaders: Aurélien GÉRÔME +Standards-Version: 3.8.0 +Homepage: http://ircd-hybrid.com/ + +Package: ircd-hybrid +Architecture: any +Conflicts: ircd-ircu, ircd-irc2, dancer-ircd, oftc-hybrid, ircd +Pre-Depends: debconf (>= 0.5) | debconf-2.0 +Depends: ${shlibs:Depends}, ${misc:Depends} @SSL_HYBRID_DEPENDS@ +Provides: ircd +Recommends: whois +Suggests: hybserv +Description: high-performance secure IRC server + ircd-hybrid is a stable, high-performance IRC server that features: + . + * If enabled, SSL client support and server-to-server RSA encryption. + * Alternative connection methods like ziplinks (compressed) + and lazylinks (efficient protocol where not all channels are + synced in the initial burst). + * Channel exceptions (+e) and invitation exceptions (+I). + * New configuration file format. + * Halfops (+h) and anti-spam user mode +g. + * Dynamically loadable modules. + * Channel and nickname RESV's (reservations). + . + It is also the IRC server of choice on the venerable EFnet, although + EFnet also uses the Ratbox, ComStud, and the Hybrid 6 IRCDs. + +Package: hybrid-dev +Section: devel +Architecture: all +Suggests: ircd-hybrid +Description: development files for ircd-hybrid + These are the headers used when writing modules for ircd-hybrid. + For more information on how to write these modules, see the ircd-hybrid + documentation or example_module.c in the source code for ircd-hybrid. + . + It also includes mbuild-hybrid, a shell script that simplifies building + and installation of such modules. This shell script is simplistic and + assumes a lot; if you possess clue, you will know what to do anyway. --- ircd-hybrid-7.2.2.dfsg.2.orig/debian/ircd.motd +++ ircd-hybrid-7.2.2.dfsg.2/debian/ircd.motd @@ -0,0 +1,28 @@ + _,met$$$$$gg. ircd-hybrid 7.2.2 + ,g$$$$$$$$$$$$$$$P. ----------------- + ,g$$P"" """Y$$.". + ,$$P' `$$$. If you are seeing this, you have +',$$P ,ggs. `$$b: installed the ircd-hybrid package and +`d$$' ,$P"' . $$$ you are now connected to your new IRC + $$P d$' , $$P server -- congratulations. + $$: $$. - ,d$$' + $$; Y$b._ _,d$P' Since you have just installed the + Y$$. `.`"Y$$$$P"' package, there are some things you + `$$b "-.__ should do before going any further: + `Y$$b + `Y$$. 1. Edit /etc/ircd-hybrid/ircd.conf to + `$$b. suit your needs. Beware some options have + `Y$$b. been removed or moved into other blocks in + `"Y$b._ the configuration file since + `"""" ircd-hybrid 7.0.3. + + 2. Edit /etc/ircd-hybrid/ircd.motd (this + MOTD) to suit your needs. You are free + to use this Debian swirl under the + Debian Open Use Logo License. :) + + 3. Restart the server using invoke-rc.d + ircd-hybrid restart. + + -- Joshua Kwan + -- Aurélien GÉRÔME --- ircd-hybrid-7.2.2.dfsg.2.orig/debian/control +++ ircd-hybrid-7.2.2.dfsg.2/debian/control @@ -0,0 +1,46 @@ +Source: ircd-hybrid +Section: net +Priority: optional +Build-Depends: debhelper (>= 4.1.16), zlib1g-dev, dpatch, docbook-to-man, flex, bison, libpcre3-dev (>= 6.3) +Maintainer: Ubuntu MOTU Developers +XSBC-Original-Maintainer: Joshua Kwan +Uploaders: Aurélien GÉRÔME +Standards-Version: 3.8.0 +Homepage: http://ircd-hybrid.com/ + +Package: ircd-hybrid +Architecture: any +Conflicts: ircd-ircu, ircd-irc2, dancer-ircd, oftc-hybrid +Pre-Depends: debconf (>= 0.5) | debconf-2.0 +Depends: ${shlibs:Depends}, ${misc:Depends} +Provides: ircd +Recommends: whois +Suggests: hybserv +Description: high-performance secure IRC server + ircd-hybrid is a stable, high-performance IRC server that features: + . + * If enabled, SSL client support and server-to-server RSA encryption. + * Alternative connection methods like ziplinks (compressed) + and lazylinks (efficient protocol where not all channels are + synced in the initial burst). + * Channel exceptions (+e) and invitation exceptions (+I). + * New configuration file format. + * Halfops (+h) and anti-spam user mode +g. + * Dynamically loadable modules. + * Channel and nickname RESV's (reservations). + . + It is also the IRC server of choice on the venerable EFnet, although + EFnet also uses the Ratbox, ComStud, and the Hybrid 6 IRCDs. + +Package: hybrid-dev +Section: devel +Architecture: all +Suggests: ircd-hybrid +Description: development files for ircd-hybrid + These are the headers used when writing modules for ircd-hybrid. + For more information on how to write these modules, see the ircd-hybrid + documentation or example_module.c in the source code for ircd-hybrid. + . + It also includes mbuild-hybrid, a shell script that simplifies building + and installation of such modules. This shell script is simplistic and + assumes a lot; if you possess clue, you will know what to do anyway. --- ircd-hybrid-7.2.2.dfsg.2.orig/debian/ircd-hybrid.logrotate +++ ircd-hybrid-7.2.2.dfsg.2/debian/ircd-hybrid.logrotate @@ -0,0 +1,12 @@ +# ircd-hybrid log rotation + +/var/log/ircd/ircd-hybrid.log { + rotate 3 + weekly + compress + delaycompress + postrotate + invoke-rc.d ircd-hybrid reload > /dev/null + endscript + missingok +} --- ircd-hybrid-7.2.2.dfsg.2.orig/debian/copyright +++ ircd-hybrid-7.2.2.dfsg.2/debian/copyright @@ -0,0 +1,22 @@ +Created on Tue Feb 25 12:18:09 PST 2003 +IRCD-Hybrid: High Performance IRC Server +Version 7.2.2 + +Copyright © 2002-2006 Project of the IRCD-Hybrid Team + + This package 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; version 2 dated June, 1991. + + This package 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 package; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA + 02110-1301 USA + +On Debian systems, the complete text of the GNU General Public License +can be found in `/usr/share/common-licenses/GPL'. --- ircd-hybrid-7.2.2.dfsg.2.orig/debian/hybrid-dev.dirs +++ ircd-hybrid-7.2.2.dfsg.2/debian/hybrid-dev.dirs @@ -0,0 +1 @@ +usr/bin --- ircd-hybrid-7.2.2.dfsg.2.orig/debian/boguschangelog.sh +++ ircd-hybrid-7.2.2.dfsg.2/debian/boguschangelog.sh @@ -0,0 +1,15 @@ +#!/bin/sh + +VERSION="$(dpkg-parsechangelog | grep '^Version' | awk '{print $2}')" +USER="$(getent passwd `whoami` | cut -d: -f5 | cut -d, -f1)" +FAKEEMAIL="$(whoami)@$(hostname --fqdn)" +RFCDATE=$(date -R) + +cat < ${RFCDATE} + +EOF --- ircd-hybrid-7.2.2.dfsg.2.orig/debian/CRYPTLINKS.txt +++ ircd-hybrid-7.2.2.dfsg.2/debian/CRYPTLINKS.txt @@ -0,0 +1,29 @@ +Building ircd-hybrid with cryptlinks support +-------------------------------------------- + +As of 1:7.0-6, cryptlinks support is not included in the default build +of ircd-hybrid. However, because many people find it an absolute necessity, +I have worked the build system to allow it to easily build with OpenSSL. +Instructions follow. ($ prompts can be run as users, # should be run as +root.) + +1. $ apt-get source ircd-hybrid + You'll need to have some deb-src lines in your /etc/apt/sources.list. + +2. # apt-get build-dep ircd-hybrid + # apt-get install libssl-dev fakeroot + This will pull in everything you need to build the package. + +3. $ cd ircd-hybrid-7.0 + $ USE_OPENSSL=1 fakeroot debian/rules binary + + Watch the packages build! + +4. You should now be left with a package with the same version as the Debian + revision, with '.ssl1' appended to it. + + This can be installed like so: + # dpkg -i ircd-hybrid_.ssl1_.deb, + + where VERSION is the Debian version and YOURARCH is one of i386, powerpc, + etc. --- ircd-hybrid-7.2.2.dfsg.2.orig/debian/ircd-hybrid.postrm.in +++ ircd-hybrid-7.2.2.dfsg.2/debian/ircd-hybrid.postrm.in @@ -0,0 +1,34 @@ +#!/bin/sh + +set -e + +if [ "$1" = "purge" ]; then + rm -f /etc/ircd-hybrid/ircd.conf \ + /etc/ircd-hybrid/kline.conf \ + /etc/ircd-hybrid/dline.conf \ + /etc/ircd-hybrid/xline.conf \ + /etc/ircd-hybrid/gline.conf \ + /etc/ircd-hybrid/ircd.motd \ + /etc/ircd-hybrid/links.txt + + @SSL_REMOVE@ + + if [ -d "/etc/ircd-hybrid" ]; then + rmdir --ignore-fail-on-non-empty /etc/ircd-hybrid + fi + + rm -f /var/log/ircd/ircd-hybrid.log* /var/run/ircd/ircd-hybrid.pid + + if [ -d "/var/log/ircd" ]; then + rmdir --ignore-fail-on-non-empty /var/log/ircd + fi + + if [ -d "/var/run/ircd" ]; then + rmdir --ignore-fail-on-non-empty /var/run/ircd + fi + +# Not added anymore with dh_installinit -n, so we manage it manually. + update-rc.d ircd-hybrid remove >/dev/null || exit $? +fi + +#DEBHELPER# --- ircd-hybrid-7.2.2.dfsg.2.orig/debian/ircd-hybrid.docs +++ ircd-hybrid-7.2.2.dfsg.2/debian/ircd-hybrid.docs @@ -0,0 +1,6 @@ +README.FIRST +BUGS +TODO +Hybrid-team +doc/* +debian/CRYPTLINKS.txt --- ircd-hybrid-7.2.2.dfsg.2.orig/debian/ircd-hybrid.dirs +++ ircd-hybrid-7.2.2.dfsg.2/debian/ircd-hybrid.dirs @@ -0,0 +1,2 @@ +var/log/ircd +usr/share/lintian/overrides --- ircd-hybrid-7.2.2.dfsg.2.orig/debian/changelog +++ ircd-hybrid-7.2.2.dfsg.2/debian/changelog @@ -0,0 +1,505 @@ +ircd-hybrid (1:7.2.2.dfsg.2-6ubuntu2) karmic; urgency=low + + * Prevent conflict with other ircds remove Conflicts: ircd. + - inspircd and ircd-ratbox are the only current ircds that + aren't explicitly conflicted with, and there are no file + conflicts with those packages. (LP: #375619) + + -- Matt Arnold Thu, 07 May 2009 21:03:20 -0400 + +ircd-hybrid (1:7.2.2.dfsg.2-6ubuntu1) jaunty; urgency=low + + * Create /var/run/ircd on start/restart rather than relying on the + directory shipped in the package, since /var/run may be a tmpfs + (LP: #337715). + + -- Colin Watson Tue, 10 Mar 2009 14:52:05 +0000 + +ircd-hybrid (1:7.2.2.dfsg.2-6) unstable; urgency=low + + * Add previously forgotten Swedish debconf translation. + (Closes: #492179) + * Update 98_patchlevel_debian.dpatch with a more simple version. + + -- Aurélien GÉRÔME Tue, 16 Sep 2008 18:50:28 +0200 + +ircd-hybrid (1:7.2.2.dfsg.2-5) unstable; urgency=low + + * Bump Standards-Version to 3.8.0. + * Update watch file to mangle version. + * Debconf translation: + + Swedish, thanks to Martin Bagge. (Closes: #492179) + * Update 19_sslonly.dpatch to fix FTBFS when built with + USE_OPENSSL=1. (Closes: #482630) + * Update 98_patchlevel_debian.dpatch as usual. + + -- Aurélien GÉRÔME Tue, 16 Sep 2008 15:22:34 +0200 + +ircd-hybrid (1:7.2.2.dfsg.2-4) unstable; urgency=low + + * Change my email address in the Uploaders field. + * Bump Standards-Version to 3.7.3. + * Add the Homepage field to debian/control. + * Fix copyright notice in debian/copyright. + * Remove linda overrides, as linda is no longer used. + * Fix make distclean targets in debian/rules clean target. + * Reload ircd-hybrid after rotating logs to avoid logging to + deleted files, thanks to Julien Cristau. (Closes: #431132) + * Debconf translations: + + Dutch, thanks to Bart Cornelis. (Closes: #423043) + + Portuguese, thanks to Américo Monteiro. (Closes: #443655) + + Finnish, thanks to Esko Arajärvi. (Closes: #477549) + + Basque, thanks to Piarres Beobide. (Closes: #479383) + + Vietnamese, thanks to Clytie Siddall. (Closes: #479729) + + Galician, thanks to Jacobo Tarrio. (Closes: #479806) + + Russian, thanks to Yuri Kozlov. (Closes: #480257) + * Fix typo in debian/ircd-hybrid.README.Debian, thanks to Wang Chun. + (Closes: #463722) + * Add 19_sslonly.dpatch to allow setting a channel to be only joinable + by SSL-users or people on localhost, thanks to Joshua Kwan. + (Closes: #419934) + * Update 98_patchlevel_debian.dpatch as usual. + + -- Aurélien GÉRÔME Tue, 13 May 2008 02:21:25 +0200 + +ircd-hybrid (1:7.2.2.dfsg.2-3) unstable; urgency=low + + * Add debconf German translation from Helge Kreutzmann. + (Closes: #401427) + + Fix my mistake, because I did not include the template + previously. + * Update 98_patchlevel_debian.dpatch as usual. + + -- Aurélien GÉRÔME Tue, 27 Feb 2007 14:04:42 +0100 + +ircd-hybrid (1:7.2.2.dfsg.2-2) unstable; urgency=low + + * Add debconf German translation from Helge Kreutzmann. + (Closes: #401427) + + That fixes the previous incorrect entry closing #401427, sorry + for this. + + -- Aurélien GÉRÔME Tue, 27 Feb 2007 09:05:00 +0100 + +ircd-hybrid (1:7.2.2.dfsg.2-1) unstable; urgency=high + + * Mention Martin Zobel's previous modification of + debian/control{,.in} files before the upload, replacing + "Pre-Depends: ${misc:Depends}" by + "Pre-Depends: debconf (>= 0.5) | debconf-2.0". + * Remove non-free documentation in upstream tarball. + (Closes: #390667) + * Add debconf Czech translation from Miroslav Kure. (Closes: #401427) + * Update 02_fhs_comply.dpatch: fix broken path for m_spoof contrib + module. (Closes: #410873) + * Use sourceforge generic URL in debian/rules. + * Update 98_patchlevel_debian.dpatch as usual. + + -- Aurélien GÉRÔME Tue, 27 Feb 2007 01:40:55 +0100 + +ircd-hybrid (1:7.2.2.dfsg.1-3) unstable; urgency=high + + * Use rtsigio on all architectures, except alpha, kfreebsd-i386, + kfreebsd-amd64, and hurd-i386. (Closes: #392649) + * Add debconf Japanese translation from Hideki Yamane. + (Closes: #400006) + * Add "Pre-Depends: ${misc:Depends}" in debian/control{.in,} for + ircd-hybrid to solve a lintian warning. + * Add "Suggests: hybserv" in debian/control{.in,} for ircd-hybrid. + * Remove fuzzy markers in debconf translations, since they resulted + from me fixing a typo (s/GNU TLS/GNUTLS/g) in a previous upload. + * Update 98_patchlevel_debian.dpatch as usual. + + -- Aurélien GÉRÔME Wed, 29 Nov 2006 03:53:58 +0100 + +ircd-hybrid (1:7.2.2.dfsg.1-2) unstable; urgency=high + + * Compile with rtsigio on any architectures. (Closes: #393196) + * Update 98_patchlevel_debian.dpatch as usual. + + -- Aurélien GÉRÔME Sun, 15 Oct 2006 16:12:27 +0200 + +ircd-hybrid (1:7.2.2.dfsg.1-1) unstable; urgency=high + + * Fix upgrade path from sarge to etch: if we upgrade from a version + strictly below 1:7.2.2-1, then we do not ask whether or not to + restart ircd-hybrid on each upgrade. (Closes: #389402) + * Move debconf note to ircd-hybrid.README.Debian. (Closes: #389057) + * Remove non-free documentation in upstream tarball. + (Closes: #390667) + * Add debconf Czech translation from Miroslav Kure. + (Closes: #389622) + * Add debconf French translation from Thomas Huriaux. + (Closes: #390906) + * Update 02_fhs_comply.dpatch: create relative symlinks from + /usr/share/ircd-hybrid/help/users/* to ../opers/*. + Thanks to Julien BLACHE for spotting this. + * Update 98_patchlevel_debian.dpatch. + + -- Aurélien GÉRÔME Sun, 8 Oct 2006 22:49:16 +0200 + +ircd-hybrid (1:7.2.2-2) unstable; urgency=high + + * Mention two disregards in the previous changelog: + * Execute the unpatch rule after the clean rule. + * Update or disable several patches which are not applicable + anymore. See details in debian/patches/00list. + * Update description in debian/control, since the documentation is + not present on the homepage anymore. + * Add 18_remove_unused_va_list.dpatch to fix FTBFS on Alpha + architecture and therefore set urgency to high. (Closes: #385695) + * Option --enable-rtsigio does not work on Alpha architecture, + so disable it and use option --enable-epoll instead. + * Add debian/ircd-hybrid.prerm with a debconf setting to allow or to + disallow ircd-hybrid to be stopped before an upgrade. The default + behaviour is to allow it to be stopped. (Closes: #255519) + + Use dh_installinit -n in debian/rules, because we now manage the + init.d debconf part ourselves. + + Accordingly update: + - debian/ircd-hybrid.postinst.in; + - debian/ircd-hybrid.postrm.in; + - debian/ircd-hybrid.templates. + + Add debian/ircd-hybrid.prerm. + + Update and rename debian/ircd-hybrid.config.in to + debian/ircd-hybrid.config. + * Run debconf-updatepo and update the French template. + * Update 98_patchlevel_debian.dpatch. + * Update debian/copyright with current date. + * Clean debian/ircd-hybrid.init and make it LSB-compliant. + + -- Aurélien GÉRÔME Tue, 19 Sep 2006 21:14:57 +0200 + +ircd-hybrid (1:7.2.2-1) unstable; urgency=low + + * New co-maintainer. + * Update to the latest Standards-Version. + * New upstream major version. + * Update upstream URL in debian/rules. + * Fix debian/rules for new upstream build system. + * Repackage original tarball without the following files: + - lib/ => contained the source code of pcre3-6.3; + - src/lex.yy.c => file generated by lex; + - src/y.tab.h => file generated by yacc; + - src/y.tab.c => file generated by yacc. + * Update 02_fhs_comply.dpatch for new upstream FHS compliance. + * Add 15_use_debian_flex_and_bison.dpatch to truly reuse flex and + bison build-dependencies in debian/control which were not used + anymore. + * Add 16_use_debian_pcre.dpatch to remove upstream's unmaintained + built-in pcre3-6.3 and to use Debian's maintained libpcre3-dev + as build-dependency instead. + * Remove manpages of dropped tools convertconf, convertilines, + convertklines, and viconf. + * Remove debian/ircd-hybrid.links for the same reason. + * Update lintian overrides with new files in /etc/ircd-hybrid/. + * Add debian/watch. + * Add debconf Vietnamese translation from Clytie Siddall. + (Closes: #312033) + * Add debconf Czech translation from Miroslav Kure. + (Closes: #314778) + * Add debconf Swedish translation from Daniel Nylander. + (Closes: #338627) + * Add debconf Portuguese translation from Miguel Figueiredo. + (Closes: #362987) + * NMU proposed 14_fix_va_list.dpatch already merged upstream. + (Closes: #300638) + * SSL build failure fixed upstream. (Closes: #337912) + * Add 17_warn_no_ssl_files.dpatch which emits a warning in the log + file when there is not a SSL certificate file and/or a RSA private + key file. (Closes: #283738) + * Remove debian/ircd-hybrid.TODO, as IPv6 support is now enabled + by default and as it does not disable IPv4-only support anymore. + (Closes: #265406) + * Resurrect 98_patchlevel_debian.dpatch. + * Add debian/ircd-hybrid.default which supplies + /etc/default/ircd-hybrid to avoid starting ircd-hybrid when + invoked via init.d shell script. (Closes: #225185) + * Rework default sample configuration in debian/ircd.conf.nossl + and in debian/ircd.conf.ssl, because some options do not exist + anymore and some others are located into other blocks. + * Update default sample message of the day in ircd.motd and move it + from 03_customize_motd to debian/ircd.motd. + + -- Aurélien GÉRÔME Fri, 01 Sep 2006 01:42:53 +0200 + +ircd-hybrid (1:7.0.3-3.1) unstable; urgency=low + + * NMU + * Fix a segfault on ppc and amd64 in va_list (Closes: #300638) + Add 14_fix_va_list.dpatch + * Change $(PWD) to $(CURDIR) in debian/rules + * Remove tools/vimotd and tools/viklines on clean target in debian/rules + * Update FSF address in debian/copyright + + -- Julien Danjou Tue, 16 May 2006 17:22:44 +0200 + +ircd-hybrid (1:7.0.3-3) unstable; urgency=high + + * Patch work: + - 13_client_ssl_multi_read.dpatch: Thanks to Stephen Shirley + , finally fix the SSL lag bug that has driven me + and users loopy for a long time! + + -- Joshua Kwan Thu, 28 Apr 2005 22:32:03 -0700 + +ircd-hybrid (1:7.0.3-2) unstable; urgency=low + + * hybrid-dev Depends on libadns1-dev. closes: #277198 + * Clean up debian/rules a bit. + * Reindent ircd.conf.nossl and ircd.conf.ssl, and comment out more things. + - Default anti_spam_exit_message_time becomes 0 minutes. + - All connect blocks and wildcard RESVs are commented out by default, + except for the NickServ ones. + * Add French translation of debconf templates from Jens Nachtigall. + closes: #263504 + * Add Japanese translation of debconf templates from Hideki Yamane. + closes: #281079 + * Improve CRYPTLINKS.txt a little bit. + * Apply patch from Henrik Persson to allow SSL support to work with + IPv6. + * Apply patch from Andreas Jochens to fix compile with gcc-4.0. + closes: #286445 + * Lowercase some leading letters in short descriptions. + + -- Joshua Kwan Wed, 19 Jan 2005 21:06:41 -0800 + +ircd-hybrid (1:7.0.3-1) unstable; urgency=high + + * New upstream release fixes crashes on /MODLOAD, /MODRESTART, et al. + * Fix misgeneration of postinst script when USE_OPENSSL=1. Thanks + Misha Nasledov . (It would also nuke your cryptlink + key if you already had one. Ouch!) + * Update French translation of debconf templates, by Rémi Pannequin. + (Closes: #256803) + + -- Joshua Kwan Tue, 29 Jun 2004 23:10:43 -0700 + +ircd-hybrid (1:7.0.2-1) unstable; urgency=medium + + * New upstream stable release. + - Fixes a big desync bug in mode checking. + * Patch work: + - 08_dot_lang.dpatch: resynced + * Update lintian override to cover the new xline.conf, cresv.conf, and + nresv.conf. + + -- Joshua Kwan Sat, 19 Jun 2004 17:43:50 -0700 + +ircd-hybrid (1:7.0.1-1) unstable; urgency=low + + * New upstream stable release. + * Patch work: + - 02_fhs_comply.dpatch: resynced + - 06_whois_wildcard.dpatch: merged + - 08_dot_lang.dpatch: resynced + * Install blank xline.conf, cresv.conf and nresv.conf into + /etc/ircd-hybrid. + * Mention USE_OPENSSL in CRYPTLINKS.txt. Very important step. Oops. + Thanks Russell Steicke . (Closes: #249135) + * Use a stamp to prevent rebuilding debian/control and debian/changelog + all the time. Thanks Birzan George Cristian . + (Closes: #250518) + + -- Joshua Kwan Wed, 2 Jun 2004 23:07:32 -0700 + +ircd-hybrid (1:7.0-7) unstable; urgency=medium + + * Brown paper bag release. Finish alternate source building method + and append a bogus changelog entry to debian/changelog so that apt + does not prefer the version in the archive. + + -- Joshua Kwan Sat, 13 Mar 2004 16:52:25 -0800 + +ircd-hybrid (1:7.0-6) unstable; urgency=medium + + * License issues: do not enable SSL by default, but enable it to be + built easily from this source package. + * Include French debconf template translation from + Remi Pannequin (Closes: #235190) + * Change Build-Depends to debhelper (>= 4.1.16) as per po-debconf(7) + * Tweaked hybrid-dev long Description. + + -- Joshua Kwan Fri, 12 Mar 2004 23:00:26 -0800 + +ircd-hybrid (1:7.0-5) unstable; urgency=medium + + * Merge in SSL client code from hybrid7-bg. + * Fix the regexp used in ircd-hybrid.config used to check whether + servlink_path was set. + * Because we only show the debconf note when servlink_path is set, + make the debconf question medium priority. + * Cosmetic change to make manpage generation clearer. + * Relicense all of my manual pages as GPL. I previously used the GFDL + template provided by dh_make. + * Make it clear that mbuild-hybrid is GPL licensed. + * mbuild-hybrid uses -O2 now by default. + * Convert Debconf templates to po-debconf style. + * Refer to the right logfile in README.Debian (closes: #225181) + * config should bail out if it doesn't see an existing ircd.conf + (closes: #225182) + + -- Joshua Kwan Mon, 16 Feb 2004 18:35:55 -0800 + +ircd-hybrid (1:7.0-4) unstable; urgency=high + + * Brown paper bag release. + * Fix postrm, it would usually fail. Especially with no backslashes at the + ends of lines... + * Shut egrep up. + * Bump Standards-Version to 3.6.1.0. No changes needed, it's all debconf + here. + + -- Joshua Kwan Sat, 23 Aug 2003 16:22:49 -0700 + +ircd-hybrid (1:7.0-3) unstable; urgency=low + + * Update to Standards-Version 3.6.0. No changes were necessary. + * Add shell parentheses to some of the backport lines to prevent + some unintended execution. (Closes: #202415) + * Remove docbook-to-man generated PostScript header junk from manpages. + * Don't install RFC 1459 anymore. + * Force /etc/ircd-hybrid ch{mod,own} in postinst to irc:irc, etc. + Some combination of removals and installs somehow got this dir installed + as root:root. I refuse to dwell on it. + * As per discussion on debian-devel, made postrm purge a little less + zealous. + * Remove /var/log/ircd in postrm. + * Fix the init script to support reload (SIGHUP) and make 'restart' work if + the daemon is not already running. + * Don't display the debconf note unless servlink_path is in the + configuration file and uncommented. + * chmod -x /usr/share/doc/ircd-hybrid/examples/simple.conf. + * Use 'export CFLAGS' instead of $(MAKE) CFLAGS=whatever. + + -- Joshua Kwan Sun, 10 Aug 2003 17:32:12 -0700 + +ircd-hybrid (1:7.0-2) unstable; urgency=low + + * Backport the new .lang support! + * Fix the get-orig-source target. + * Use --enable-rtsigio, which is faster than the default of poll. + * Fix a typo (woody backport only) in debian/rules. + * Improve the descriptions. + * Corrected upstream version in debian/copyright. + * Removed debian/watch. + * (From 7.0-1) Change section of hybrid-dev to devel. + * IRCD_PREFIX turns out to be `pwd`/debian/tmp, so make DPATH "/usr". + * Install example_module.c into examples. + * Fix some nasty overlinkages; convertconf and viconf were getting linked + with OpenSSL libraries (it is this way upstream as well...) + + -- Joshua Kwan Thu, 26 Jun 2003 02:00:22 -0700 + +ircd-hybrid (1:7.0-1) unstable; urgency=low + + * New upstream release. (Closes: #197069) + * Don't build mkpasswd-hybrid's manpage anymore because there is + no longer a corresponding binary. + * Apply post-7.0 fix from Bill Jonus to fix a wildcard + user security issue in /whois. + * libc6-dev is in build-essential, remove it from Build-Depends. + + -- Joshua Kwan Wed, 11 Jun 2003 13:11:48 -0700 + +ircd-hybrid (7.0rc10-1) unstable; urgency=low + + * New upstream release. + * If /var/run/ircd and /var/log/ircd existed before, make sure they + get chown'd to irc:irc in the postinst or the init script will mess + up. + * patch work: + + 98_patchlevel_debian.dpatch is no longer part of the default + build. Some people thought it was obnoxious... + * TOPICLEN has a hard max of 390. Any higher value specified in the + configure stage only wastes memory later. Thanks xxjack12xx@doramail.com + * NICKLEN is now set to 15. Why? Take a look at this: (real excerpt) + < yamsyamsyamsyamsyamsyamsy> hahaha i gayed up your client lololololol + Checking on Freenode, most people who exceed the traditional NICKLEN=9 + don't do so by more than 4 or 5 characters. + * Made MAXCLIENTS easily customizable in debian/rules. + * Added a logrotate script. + * Stop shipping a mkpasswd-hybrid binary. The real mkpasswd does everything + it can do! This also removes the manpage, and rectifies the command + for generating the passwords in ircd.conf (mkpasswd [-Hmd5]) + * This also means we Recommends: whois. + * Add a linda override. + * Added a debconf note that talks about what the admin should do + with servlink_path. + + -- Joshua Kwan Wed, 7 May 2003 22:22:44 -0700 + +ircd-hybrid (7.0rc9-4) unstable; urgency=low + + * "Janitor work" release. + * Bump Standards-Version to 3.5.9 and best debhelper practices: + + The following programs now have manpages: + mkpasswd-hybrid encspeed viconf viklines convertconf + convertklines convertilines + + DH_COMPAT=4 becomes echo 4 > debian/compat + * debian/rules general mucking: + + Removed old boilerplate 'package', 'prefix', 'INSTALL_PROGRAM' + vars - they're not needed at all. + + Added 'get-orig-source' target that uses wget. + * new stuff: + + debian/watch + + mbuild-hybrid (hybrid-dev) - painless way to automagically + build and install ircd-hybrid modules, and mbuild-hybrid.1, + and mention it in hybrid-dev.README + + contrib/README -> /u/s/d/i/README.contrib.gz + + RELNOTES -> /u/s/d/i/changelog.gz. This means remove the entry + from debian/ircd-hybrid.docs. Upstream's `ChangeLog' is way too + big and really is a more long-winded RELNOTES, so it is not + included. + * patch work: + + 02_fhs_comply.dpatch: servlink shouldn't be run by any user, + make it in /usr/lib/ircd-hybrid. experimental for now; should + not cause problems at all. Can be backed out later if it causes + problems, but hasn't yet on a production box connected to two + servers. + + 03_opme_no_depend_opless.dpatch: now cleaner, removes the + now-unused chan_is_opless function. + + (NEW) 99_opme_allow_operators.dpatch: m_opme.c, allow operators too. + the rationale is that if you can /kill people, you should be able to + kick and ban people from channels too. NOT PART OF THE DEFAULT BUILD. + + (NEW) 99_patchlevel_debian.dpatch: stand out from the others :) + * README.Debian (ircd-hybrid.README): + + notes effects of 03_opme_no_depend_opless.dpatch + + notes effects of 99_opme_allow_operators.dpatch and that it is + not part of the default build + + noted that /set msglocale foo is broken but fixed in upstream + development version + * /etc/init.d/ircd-hybrid uses SIGTERM instead of SIGKILL for now to + end ircd-hybrid's processes. It doesn't make any difference at the + moment but it's always good to use less drastic measures when possible. + * chmod -x usr/share/doc/ircd-hybrid/simple.conf - upstream braindamage? + * Removed empty/bogus usr/share/ircd-hybrid/modules dir. + * Default ircd.conf has autoconn disabled for the sample connect {} + block and have_ident set to no. + * Move example*.conf to examples; add simple.conf to examples. + * Take out all the example conf files from docs. + * Made it a little easier for woody people to build ircd-hybrid. + (They still need to figure out the dpatch bdep on their own, though) + * Added the missing gettext build-dependency for woody. + * Run dh_md5sums for both packages. + + -- Joshua Kwan Sat, 5 Apr 2003 18:06:14 -0800 + +ircd-hybrid (7.0rc9-3) unstable; urgency=low + + * Make all logs in /var/log/ircd and make all pids in /var/run/ircd. + Making additional directories all the time is a pain in the ass. + * Remove some of the unhelpful BS from ircd.conf + + -- Joshua Kwan Wed, 12 Mar 2003 12:45:54 -0800 + +ircd-hybrid (7.0rc9-2) unstable; urgency=low + + * Add build dependency for flex. + + -- Joshua Kwan Mon, 3 Mar 2003 20:51:59 -0800 + +ircd-hybrid (7.0rc9-1) unstable; urgency=low + + * Initial release. + + -- Joshua Kwan Sat, 1 Mar 2003 16:45:03 -0800 --- ircd-hybrid-7.2.2.dfsg.2.orig/debian/rules +++ ircd-hybrid-7.2.2.dfsg.2/debian/rules @@ -0,0 +1,307 @@ +#!/usr/bin/make -f +# debian/rules file for ircd-hybrid, +# created by Joshua Kwan for ircd-hybrid-7.0.x, +# modified by Aurélien GÉRÔME for ircd-hybrid-7.2.2. +# Note that the get-orig-source target depends on wget. + +include /usr/share/dpatch/dpatch.make + +export CFLAGS = -g +DOWNLOAD_URL = http://prdownloads.sourceforge.net/ircd-hybrid/ircd-hybrid-7.2.2.tgz + +# We don't want debian/control to be nuked +MAINT_FILES = debian/control \ + debian/changelog \ + $(MAINT_CLEAN_FILES) +MAINT_CLEAN_FILES = debian/ircd.conf \ + debian/ircd-hybrid.postinst \ + debian/ircd-hybrid.postrm \ + debian/ircd-hybrid.preinst + +# Some useful stuff to edit here. +# Beware: TOPICLEN may not exceed 390. +NICKLEN = 15 +TOPICLEN = 350 +MAXCLIENTS = 200 + +# Make my life easier +I = debian/ircd-hybrid +I_LIB = $(I)/usr/lib/ircd-hybrid +I_SBIN = $(I)/usr/sbin +I_DOC = $(I)/usr/share/doc/ircd-hybrid +I_ETC = $(I)/etc/ircd-hybrid + +ifneq (,$(findstring noopt,$(DEB_BUILD_OPTIONS))) + CFLAGS += -O0 +else + CFLAGS += -O2 +endif + +buildtype := $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE) +hosttype := $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE) + +configure_options := --enable-rtsigio + +arch := $(shell dpkg-architecture -qDEB_HOST_ARCH) + +ifeq ($(arch),alpha) + configure_options := --enable-poll +endif + +ifeq ($(arch),kfreebsd-i386) + configure_options := --enable-poll +endif + +ifeq ($(arch),kfreebsd-amd64) + configure_options := --enable-poll +endif + +ifeq ($(arch),hurd-i386) + configure_options := --enable-poll +endif + +ifneq ($(buildtype),$(hosttype)) + crossflags := --build=$(buildtype) --host=$(hosttype) +endif + +ifndef USE_OPENSSL + sslflags := --disable-openssl +endif + +configure: patch configure-stamp + +configure-stamp: +ifdef USE_OPENSSL + dpkg-checkbuilddeps +endif + dh_testdir + CFLAGS= \ + ./configure $(crossflags) $(sslflags) \ + --with-nicklen=$(NICKLEN) \ + --with-topiclen=$(TOPICLEN) \ + --prefix=/usr \ + --bindir=/usr/sbin \ + --sysconfdir=/etc/ircd-hybrid \ + --localstatedir=/var/log \ + --datarootdir=/usr/share/ircd-hybrid \ + --mandir=/usr/share/man \ + --includedir=/usr/include \ + --libdir=/usr/lib/ircd-hybrid \ + $(configure_options) \ + --with-maxclients=$(MAXCLIENTS) \ + --enable-halfops + touch $@ + +build: $(MAINT_FILES) configure build-stamp + +build-stamp: + $(MAKE) + $(MAKE) -C contrib + + touch build-stamp + +manpages: manpages-stamp + +manpages-stamp: + mkdir -p debian/doc-pages + @echo "Processing man pages: " + @for i in $(wildcard debian/doc/*.sgml); do \ + TARGET="debian/doc-pages/`basename $$i | sed 's/\.sgml//'`"; \ + echo "$$i -> $$TARGET"; \ + docbook-to-man $$i > $$i.tmp; \ + sed -n "`grep -n '^.TH' $$i.tmp | awk -F : '{print $$1}'`~1p" $$i.tmp > $$TARGET; \ + rm -f $$i.tmp; \ + done +ifndef USE_OPENSSL + rm -f debian/doc-pages/encspeed.8 +endif + touch $@ + +clean: clean1 unpatch + +clean1: + dh_testroot + dh_testdir + rm -rf debian/doc-pages + rm -f $(MAINT_CLEAN_FILES) +ifneq (,$(wildcard debian/control.orig)) + cp debian/control.orig debian/control +endif +ifneq (,$(wildcard debian/changelog.orig)) + mv debian/changelog.orig debian/changelog +endif + rm -f build-stamp configure-stamp manpages-stamp config.log changelog-stamp control-stamp + [ ! -f Makefile ] || $(MAKE) distclean + [ ! -f Makefile ] || $(MAKE) -C messages distclean + dh_clean + +debian/changelog: changelog-stamp + +changelog-stamp: +ifdef USE_OPENSSL + cp debian/changelog debian/changelog.orig + ( sh debian/boguschangelog.sh; cat debian/changelog ) > debian/changelog.new + mv debian/changelog.new debian/changelog +endif + + touch changelog-stamp + + +debian/control: control-stamp + +control-stamp: + cp debian/control debian/control.orig +ifdef USE_OPENSSL + sed -e 's^@SSL_BUILD_DEPENDS@^, libssl-dev^' \ + -e 's^@SSL_HYBRID_DEPENDS@^, openssl^' \ + -e 's^@SSL_CRYPTLINK_DESC@^o SSL server-to-server connections (cryptlinks)`printf \\n`^' \ + debian/control.in > debian/control +else + sed -e 's^@SSL_BUILD_DEPENDS@^^' \ + -e 's^@SSL_HYBRID_DEPENDS@^^' \ + -e 's^@SSL_CRYPTLINK_DESC@^^' debian/control.in > debian/control +endif + + touch $@ + +debian/ircd.conf: +ifdef USE_OPENSSL + ln -sf ircd.conf.ssl debian/ircd.conf +else + ln -sf ircd.conf.nossl debian/ircd.conf +endif + +debian/ircd-hybrid.preinst: +ifndef USE_OPENSSL + cp debian/ircd-hybrid.preinst.nossl debian/ircd-hybrid.preinst +endif + +debian/ircd-hybrid.postrm: +ifdef USE_OPENSSL + sed -e "s^@SSL_REMOVE@^`cat debian/ircd-hybrid.postrm.ssl`^" \ + debian/ircd-hybrid.postrm.in > debian/ircd-hybrid.postrm +else + sed -e "s^@SSL_REMOVE@^^" \ + debian/ircd-hybrid.postrm.in > debian/ircd-hybrid.postrm +endif + +debian/ircd-hybrid.postinst: +ifdef USE_OPENSSL + sed -e "s^@SSL_WORK@^`cat debian/ircd-hybrid.postinst.ssl`^" \ + debian/ircd-hybrid.postinst.in > debian/ircd-hybrid.postinst +else + sed -e "s^@SSL_WORK@^^" \ + debian/ircd-hybrid.postinst.in > debian/ircd-hybrid.postinst +endif + +install: manpages $(MAINT_FILES) + + dh_testdir + dh_clean -k + dh_installdirs -A + $(MAKE) DESTDIR=$(CURDIR)/debian/tmp install + $(MAKE) DESTDIR=$(CURDIR)/debian/tmp -C contrib install + $(MAKE) DESTDIR=$(CURDIR)/debian/tmp -C messages install +ifndef USE_OPENSSL + rm -f $(CURDIR)/debian/tmp/usr/sbin/encspeed +endif + +# The makefile installing headers for external modules building has +# disappeared since 7.0.3, so we are now doing what it did... + mkdir -p $(CURDIR)/debian/tmp/usr/include/ircd-hybrid-7 + (cd include; for header in *.h; do \ + install -m644 $$header $(CURDIR)/debian/tmp/usr/include/ircd-hybrid-7; \ + done) + +# Make life easier for woody backporters. +ifeq ($(shell cat /etc/debian_version),3.0) + echo "Moving .install files to .files files" + (cd debian && ln -sf ircd-hybrid.install ircd-hybrid.files) + (cd debian && ln -sf hybrid-dev.install hybrid-dev.files) + dh_movefiles -A --sourcedir=debian/tmp + rm debian/*.files +else + dh_install -A --sourcedir=debian/tmp +endif + +binary-indep: build install + + dh_testdir + dh_installchangelogs -i + + chmod +x debian/mbuild-hybrid + cp -f debian/mbuild-hybrid debian/hybrid-dev/usr/bin + + dh_installdocs -i + + dh_installman -i debian/doc-pages/mbuild-hybrid.1 + + dh_compress -i + + dh_installdeb -i + dh_gencontrol -i + dh_md5sums -i + dh_builddeb -i + +binary-arch: build install + + dh_testdir + dh_testroot + + dh_installdocs -a -Xold -Xdoc/ircd. -Xline. -XMakefile -Xexample -Xsimple -Xrfc + cp -f contrib/README $(I_DOC)/README.contrib + cp -f contrib/README.cloaking $(I_DOC)/README.contrib.cloaking + + # These don't belong here! + dh_installexamples etc/example*.conf etc/simple.conf contrib/example_module.c + chmod -x $(I_DOC)/examples/simple.conf + + dh_installman -a debian/doc-pages/*.8 + + dh_installchangelogs -a RELNOTES + + dh_compress -a + + cp -Lf debian/ircd.conf $(I_ETC)/ircd.conf + cp -f debian/ircd.motd $(I_ETC)/ircd.motd + + cp debian/ircd-hybrid.lintian.override $(I)/usr/share/lintian/overrides/ircd-hybrid + + # We're not supposed to invoke servlink manually. + mv $(I_SBIN)/servlink $(I_LIB)/ + + # mkpasswd -Hmd5 + rm -f $(I_SBIN)/mkpasswd + rm -f $(I_ETC)/.convertconf-example.conf $(I_ETC)/example* + touch $(I_ETC)/xline.conf $(I_ETC)/nresv.conf $(I_ETC)/cresv.conf + + dh_fixperms -a + + chown irc:irc debian/ircd-hybrid/var/log/ircd + chown -R irc:irc $(I_ETC) + chmod -R 660 $(I_ETC) +ifdef USE_OPENSSL + # Don't care for this to be 660. + cp debian/cert.cnf $(I_ETC) +endif + chmod ug+x $(I_ETC) + chmod -x $(I_DOC)/examples/simple.conf + + dh_installinit -a -n + dh_installdebconf -a + dh_installlogrotate -a + + dh_strip -a + dh_link -a + dh_installdeb -a + dh_shlibdeps -a + dh_gencontrol -a + dh_md5sums -a + dh_builddeb -a + +binary: binary-indep binary-arch + +get-orig-source: + wget $(DOWNLOAD_URL) + +.PHONY: binary binary-arch binary-indep clean clean1 install patch unpatch get-orig-source manpages debian/control debian/changelog --- ircd-hybrid-7.2.2.dfsg.2.orig/debian/ircd-hybrid.postrm.ssl +++ ircd-hybrid-7.2.2.dfsg.2/debian/ircd-hybrid.postrm.ssl @@ -0,0 +1,5 @@ + rm -f /etc/ircd-hybrid/key/ircd.key /etc/ircd-hybrid/key/ircd.pub /etc/ircd-hybrid/key/ircd.pem \ +\ + if [ -d "/etc/ircd-hybrid/key" ]; then \ + rmdir --ignore-fail-on-non-empty /etc/ircd-hybrid/key \ + fi --- ircd-hybrid-7.2.2.dfsg.2.orig/debian/cert.cnf +++ ircd-hybrid-7.2.2.dfsg.2/debian/cert.cnf @@ -0,0 +1,14 @@ +RANDFILE = $ENV::HOME/.rnd + +[ req ] +prompt = no +distinguished_name = req_distinguished_name + +[ req_distinguished_name ] +countryName = UN +stateOrProvinceName = Milky Way +localityName = Earth +organizationName = IRCD-Hybrid services +organizationalUnitName = IRCD-Hybrid services +commonName = Debian +emailAddress = root@localhost --- ircd-hybrid-7.2.2.dfsg.2.orig/debian/ircd-hybrid.lintian.override +++ ircd-hybrid-7.2.2.dfsg.2/debian/ircd-hybrid.lintian.override @@ -0,0 +1,11 @@ +ircd-hybrid: non-standard-dir-perm etc/ircd-hybrid/ 0770 != 0755 +ircd-hybrid: non-standard-file-perm etc/ircd-hybrid/ircd.motd 0660 != 0644 +ircd-hybrid: non-standard-file-perm etc/ircd-hybrid/dline.conf 0660 != 0644 +ircd-hybrid: non-standard-file-perm etc/ircd-hybrid/kline.conf 0660 != 0644 +ircd-hybrid: non-standard-file-perm etc/ircd-hybrid/xline.conf 0660 != 0644 +ircd-hybrid: non-standard-file-perm etc/ircd-hybrid/rxline.conf 0660 != 0644 +ircd-hybrid: non-standard-file-perm etc/ircd-hybrid/rkline.conf 0660 != 0644 +ircd-hybrid: non-standard-file-perm etc/ircd-hybrid/nresv.conf 0660 != 0644 +ircd-hybrid: non-standard-file-perm etc/ircd-hybrid/cresv.conf 0660 != 0644 +ircd-hybrid: non-standard-file-perm etc/ircd-hybrid/ircd.conf 0660 != 0644 +ircd-hybrid: no-debconf-config --- ircd-hybrid-7.2.2.dfsg.2.orig/debian/ircd-hybrid.init +++ ircd-hybrid-7.2.2.dfsg.2/debian/ircd-hybrid.init @@ -0,0 +1,93 @@ +#! /bin/sh + +# ircd-hybrid Start/stop the Hybrid 7 IRC server. +# Version: ircd-hybrid 7.0rc9-1 03-Mar-2003 joshk@triplehelix.org +# Version: ircd-hybrid 7.2.2-2 10-Sep-2006 ag@roxor.cx + +### BEGIN INIT INFO +# Provides: ircd-hybrid +# Required-Start: $syslog +# Required-Stop: $syslog +# Should-Start: $local_fs $network $named +# Should-Stop: $local_fs $network $named +# Default-Start: 2 3 4 5 +# Default-Stop: 0 1 6 +# Short-Description: IRCd-Hybrid daemon init.d script +# Description: Use to manage the IRCd-Hybrid daemon. +### END INIT INFO + +PATH=/sbin:/bin:/usr/sbin:/usr/bin +DAEMON=/usr/sbin/ircd-hybrid +DEFAULT=/etc/default/ircd-hybrid +NAME=ircd-hybrid +DESC="Hybrid 7 IRC Server" + +test -f $DAEMON || exit 0 + +if [ -f $DEFAULT ] +then + . $DEFAULT +fi + +set -e + +case "$1" in + start) + if [ "$START" = "yes" ] + then + echo -n "Starting $DESC: $NAME" + mkdir -p -m 755 /var/run/ircd + chown irc:irc /var/run/ircd + start-stop-daemon --start --quiet \ + -u irc -c irc --exec $DAEMON -- -pidfile /var/run/ircd/$NAME.pid \ + > /dev/null + echo "." + fi + ;; + stop) + if [ "$START" = "yes" ] + then + echo -n "Stopping $DESC: $NAME" + start-stop-daemon --oknodo --stop --quiet \ + --pidfile /var/run/ircd/$NAME.pid \ + --signal 15 --exec $DAEMON -- -pidfile /var/run/ircd/$NAME.pid + echo "." + fi + ;; + reload) + if [ "$START" = "yes" ] + then + if [ -f "/var/run/ircd/$NAME.pid" ]; then + echo -n "Reloading configuration files for $NAME..." + kill -HUP `cat /var/run/ircd/$NAME.pid` + echo "done." + else + echo "Not reloading configuration files for $NAME - not running!" + fi + fi + ;; + restart|force-reload) + if [ "$START" = "yes" ] + then + echo -n "Restarting $DESC: $NAME" + if [ -f "/var/run/ircd/$NAME.pid" ]; then + start-stop-daemon --stop --quiet --pidfile \ + /var/run/ircd/$NAME.pid --signal 15 \ + --exec $DAEMON -- -pidfile /var/run/ircd/$NAME.pid + sleep 1 + fi + mkdir -p -m 755 /var/run/ircd + chown irc:irc /var/run/ircd + start-stop-daemon --start --quiet \ + -u irc -c irc --exec $DAEMON -- -pidfile /var/run/ircd/$NAME.pid \ + > /dev/null + echo "." + fi + ;; + *) + echo "Usage: $0 {start|stop|restart|reload|force-reload}" >&2 + exit 1 + ;; +esac + +exit 0 --- ircd-hybrid-7.2.2.dfsg.2.orig/debian/ircd-hybrid.install +++ ircd-hybrid-7.2.2.dfsg.2/debian/ircd-hybrid.install @@ -0,0 +1,4 @@ +etc/ircd-hybrid +usr/sbin +usr/share +usr/lib/ircd-hybrid --- ircd-hybrid-7.2.2.dfsg.2.orig/debian/ircd-hybrid.default +++ ircd-hybrid-7.2.2.dfsg.2/debian/ircd-hybrid.default @@ -0,0 +1,2 @@ +# Start ircd-hybrid when invoked via init.d shell script. +START=yes --- ircd-hybrid-7.2.2.dfsg.2.orig/debian/compat +++ ircd-hybrid-7.2.2.dfsg.2/debian/compat @@ -0,0 +1 @@ +4 --- ircd-hybrid-7.2.2.dfsg.2.orig/debian/patches/01_no_hardlink.dpatch +++ ircd-hybrid-7.2.2.dfsg.2/debian/patches/01_no_hardlink.dpatch @@ -0,0 +1,34 @@ +#! /bin/sh -e +## 01_no_hardlink.dpatch by Joshua Kwan +## +## All lines beginning with `## DP:' are a description of the patch. +## DP: tools/Makefile.in creates hard links + +if [ $# -ne 1 ]; then + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +fi +case "$1" in + -patch) patch -f --no-backup-if-mismatch -p1 < $0;; + -unpatch) patch -f --no-backup-if-mismatch -R -p1 < $0;; + *) + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1;; +esac + +exit 0 + +--- ircd-hybrid-7.0rc9.virgin/tools/Makefile.in 2002-07-11 16:40:27.000000000 -0700 ++++ ircd-hybrid-7.0rc9/tools/Makefile.in 2003-03-03 10:00:53.000000000 -0800 +@@ -143,7 +143,8 @@ + echo $(INSTALL_BIN) $$i $(bindir); \ + $(INSTALL_BIN) $$i $(bindir); \ + done; \ +- $(RM) -f $(bindir)/vimotd $(bindir)/viklines; \ +- $(LN) $(bindir)/viconf $(bindir)/vimotd; \ +- $(LN) $(bindir)/viconf $(bindir)/viklines ++ cd $(bindir); \ ++ $(RM) -f vimotd viklines; \ ++ $(LN) -s viconf vimotd; \ ++ $(LN) -s viconf viklines + --- ircd-hybrid-7.2.2.dfsg.2.orig/debian/patches/11_ssl_ipv6.dpatch +++ ircd-hybrid-7.2.2.dfsg.2/debian/patches/11_ssl_ipv6.dpatch @@ -0,0 +1,31 @@ +#! /bin/sh -e +## 11_ssl_ipv6.patch by Henrik Persson +## +## All lines beginning with `## DP:' are a description of the patch. +## DP: fix FTBFS with SSL + IPv6 + +if [ $# -ne 1 ]; then + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +fi +case "$1" in + -patch) patch -f --no-backup-if-mismatch -p1 < $0;; + -unpatch) patch -f --no-backup-if-mismatch -R -p1 < $0;; + *) + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1;; +esac + +exit 0 + +--- ircd-hybrid-7.0.3/src/s_bsd.c 2004-10-04 20:35:30.000000000 +0200 ++++ ircd-hybrid-7.0.3-nix/src/s_bsd.c 2004-10-04 20:21:51.000000000 +0200 +@@ -838,7 +838,7 @@ + extern char *get_ssl_error(int); + fde_t *F = &fd_table[newfd]; + +- copy_s_addr(F->connect.hostaddr, *pn); ++ copy_s_addr(S_ADDR(F->connect.hostaddr), (struct sockaddr *)&PSOCKADDR(pn)); + + ssl = SSL_new(ServerInfo.ctx); + if (!ssl) { --- ircd-hybrid-7.2.2.dfsg.2.orig/debian/patches/12_gcc4_compile.dpatch +++ ircd-hybrid-7.2.2.dfsg.2/debian/patches/12_gcc4_compile.dpatch @@ -0,0 +1,35 @@ +#! /bin/sh -e +## 12_gcc4_compile.dpatch by Andreas Jochens +## +## All lines beginning with `## DP:' are a description of the patch. +## DP: gcc-4.0 compile fix + +if [ $# -ne 1 ]; then + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +fi +case "$1" in + -patch) patch -f --no-backup-if-mismatch -p1 < $0;; + -unpatch) patch -f --no-backup-if-mismatch -R -p1 < $0;; + *) + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1;; +esac + +exit 0 + +diff -urN ../tmp-orig/ircd-hybrid-7.0.3/src/ircd_parser.y ./src/ircd_parser.y +--- ../tmp-orig/ircd-hybrid-7.0.3/src/ircd_parser.y 2003-10-26 03:08:23.000000000 +0100 ++++ ./src/ircd_parser.y 2004-12-20 11:44:56.009892352 +0100 +@@ -58,7 +58,7 @@ + int yyparse(); + + static struct ConfItem *yy_achead = NULL; +-static struct ConfItem *yy_aconf = NULL; ++struct ConfItem *yy_aconf = NULL; + static struct ConfItem *yy_aprev = NULL; + static int yy_acount = 0; + static struct ConfItem *yy_hconf; + + + --- ircd-hybrid-7.2.2.dfsg.2.orig/debian/patches/09_cross_fix.dpatch +++ ircd-hybrid-7.2.2.dfsg.2/debian/patches/09_cross_fix.dpatch @@ -0,0 +1,40 @@ +#! /bin/sh -e +## 09_cross_fix.dpatch by Joshua Kwan +## +## All lines beginning with `## DP:' are a description of the patch. +## DP: Fix a cross compilation issue. + +if [ $# -ne 1 ]; then + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +fi +case "$1" in + -patch) patch -f --no-backup-if-mismatch -p1 < $0;; + -unpatch) patch -f --no-backup-if-mismatch -R -p1 < $0;; + *) + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1;; +esac + +exit 0 + +--- ircd-hybrid-7.0.orig/tools/viconf.c ++++ ircd-hybrid-7.0/tools/viconf.c +@@ -3,16 +3,8 @@ + * + * $Id: viconf.c,v 7.4 2002/02/05 02:40:22 jmallett Exp $ + */ +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include "config.h" + ++#include "stdinc.h" + + /* wait.h is in /include on solaris, likely on other SYSV machines as well + * but wait.h is normally in /include/sys on BSD boxen, --- ircd-hybrid-7.2.2.dfsg.2.orig/debian/patches/05_dont_build_example.dpatch +++ ircd-hybrid-7.2.2.dfsg.2/debian/patches/05_dont_build_example.dpatch @@ -0,0 +1,32 @@ +#! /bin/sh -e +## 03_dont_build-example.dpatch by Joshua Kwan +## +## All lines beginning with `## DP:' are a description of the patch. +## DP: don't build example_module.c + +if [ $# -ne 1 ]; then + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +fi +case "$1" in + -patch) patch -f --no-backup-if-mismatch -p1 < $0;; + -unpatch) patch -f --no-backup-if-mismatch -R -p1 < $0;; + *) + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1;; +esac + +exit 0 + +--- ircd-hybrid-7.0rc9.orig/contrib/Makefile.in 2002-09-02 22:43:37.000000000 -0700 ++++ ircd-hybrid-7.0rc9/contrib/Makefile.in 2003-03-02 01:38:31.000000000 -0800 +@@ -46,8 +46,7 @@ + spy_stats_notice.c \ + spy_stats_p_notice.c \ + spy_trace_notice.c \ +- spy_whois_notice.c \ +- example_module.c ++ spy_whois_notice.c + + OBJS = ${SRCS:.c=.so} + --- ircd-hybrid-7.2.2.dfsg.2.orig/debian/patches/16_use_debian_pcre.dpatch +++ ircd-hybrid-7.2.2.dfsg.2/debian/patches/16_use_debian_pcre.dpatch @@ -0,0 +1,103 @@ +#! /bin/sh /usr/share/dpatch/dpatch-run +## 16_use_debian_pcre.dpatch by Aurélien GÉRÔME +## +## All lines beginning with `## DP:' are a description of the patch. +## DP: The Makefiles will now use Debian installed libpcre3-dev +## DP: instead of the removed built-in pcre3-6.3. + +@DPATCH@ +diff -urNad ircd-hybrid-7.2.2~/Makefile.in ircd-hybrid-7.2.2/Makefile.in +--- ircd-hybrid-7.2.2~/Makefile.in 2006-08-31 18:45:29.000000000 +0000 ++++ ircd-hybrid-7.2.2/Makefile.in 2006-08-31 18:45:47.370763261 +0000 +@@ -23,7 +23,7 @@ + + # Default make flags - you may want to uncomment this on a multicpu machine + #MFLAGS = -j 4 +-DEPEND_DIRS = lib modules src servlink ++DEPEND_DIRS = modules src servlink + BUILD_DIRS = ${DEPEND_DIRS} tools + INSTALL_DIRS = ${BUILD_DIRS} etc doc help + CLEAN_DIRS = ${BUILD_DIRS} contrib +diff -urNad ircd-hybrid-7.2.2~/configure ircd-hybrid-7.2.2/configure +--- ircd-hybrid-7.2.2~/configure 2006-08-31 18:45:29.000000000 +0000 ++++ ircd-hybrid-7.2.2/configure 2006-08-31 18:46:23.268699217 +0000 +@@ -12106,7 +12106,7 @@ + + fi + +-ac_config_files="$ac_config_files Makefile etc/Makefile servlink/Makefile contrib/Makefile contrib/help/Makefile src/Makefile messages/Makefile modules/Makefile tools/Makefile doc/Makefile help/Makefile lib/Makefile lib/pcre/Makefile" ++ac_config_files="$ac_config_files Makefile etc/Makefile servlink/Makefile contrib/Makefile contrib/help/Makefile src/Makefile messages/Makefile modules/Makefile tools/Makefile doc/Makefile help/Makefile" + + + cat >confcache <<\_ACEOF +@@ -12661,8 +12661,6 @@ + "tools/Makefile") CONFIG_FILES="$CONFIG_FILES tools/Makefile" ;; + "doc/Makefile") CONFIG_FILES="$CONFIG_FILES doc/Makefile" ;; + "help/Makefile") CONFIG_FILES="$CONFIG_FILES help/Makefile" ;; +- "lib/Makefile") CONFIG_FILES="$CONFIG_FILES lib/Makefile" ;; +- "lib/pcre/Makefile") CONFIG_FILES="$CONFIG_FILES lib/pcre/Makefile" ;; + + *) { { echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5 + echo "$as_me: error: invalid argument: $ac_config_target" >&2;} +@@ -13239,7 +13237,7 @@ + fi + + +-rm -f src/.depend modules/.depend servlink/.depend contrib/.depend lib/pcre/.depend ++rm -f src/.depend modules/.depend servlink/.depend contrib/.depend + + + echo +diff -urNad ircd-hybrid-7.2.2~/contrib/Makefile.in ircd-hybrid-7.2.2/contrib/Makefile.in +--- ircd-hybrid-7.2.2~/contrib/Makefile.in 2006-08-31 18:45:47.010663592 +0000 ++++ ircd-hybrid-7.2.2/contrib/Makefile.in 2006-08-31 18:45:47.378765476 +0000 +@@ -27,7 +27,7 @@ + + IRCDLIBS = @LIBS@ $(SSL_LIBS) + +-INCLUDES = -I../include -I../lib/pcre $(SSL_INCLUDES) ++INCLUDES = -I../include -I/usr/include/pcre $(SSL_INCLUDES) + CPPFLAGS = ${INCLUDES} @CPPFLAGS@ + + SRCS = \ +diff -urNad ircd-hybrid-7.2.2~/modules/Makefile.in ircd-hybrid-7.2.2/modules/Makefile.in +--- ircd-hybrid-7.2.2~/modules/Makefile.in 2006-08-31 18:45:47.014664700 +0000 ++++ ircd-hybrid-7.2.2/modules/Makefile.in 2006-08-31 18:45:47.378765476 +0000 +@@ -27,7 +27,7 @@ + moduledir = ${libdir}/modules + automoduledir = ${moduledir}/autoload + +-INCLUDES = -I../include -I../lib/pcre $(SSL_INCLUDES) ++INCLUDES = -I../include -I/usr/include/pcre $(SSL_INCLUDES) + CPPFLAGS = ${INCLUDES} @CPPFLAGS@ + + CORE_SRCS = \ +diff -urNad ircd-hybrid-7.2.2~/src/Makefile.in ircd-hybrid-7.2.2/src/Makefile.in +--- ircd-hybrid-7.2.2~/src/Makefile.in 2006-08-31 18:45:47.034670237 +0000 ++++ ircd-hybrid-7.2.2/src/Makefile.in 2006-08-31 18:45:47.378765476 +0000 +@@ -35,8 +35,8 @@ + + SSL_LIBS = @SSL_LIBS@ + SSL_INCLUDES = @SSL_INCLUDES@ +-IRCDLIBS = @MODULES_LIBS@ @LIBS@ ../lib/pcre/libpcre.a $(SSL_LIBS) +-INCLUDES = -I../include -I../lib/pcre $(SSL_INCLUDES) ++IRCDLIBS = @MODULES_LIBS@ @LIBS@ /usr/lib/libpcre.a $(SSL_LIBS) ++INCLUDES = -I../include -I/usr/include/pcre $(SSL_INCLUDES) + CPPFLAGS = ${INCLUDES} @CPPFLAGS@ + + default: all +@@ -117,13 +117,11 @@ + + build: all + +-ircd: @MODULES_LIBS@ ../lib/libpcre.a $(OBJS) ++ircd: @MODULES_LIBS@ /usr/lib/libpcre.a $(OBJS) + ${CC} ${CFLAGS} ${LDFLAGS} -o ircd-hybrid ${OBJS} ${IRCDLIBS} + + ../modules/libmodules.a: + cd ../modules && ${MAKE} ${MFLAGS} +-../lib/libpcre.a: +- cd ../lib/pcre && ${MAKE} ${MFLAGS} + + install-mkdirs: + mkdir -p $(DESTDIR)$(prefix) $(exec_prefix) $(bindir) $(sysconfdir) \ --- ircd-hybrid-7.2.2.dfsg.2.orig/debian/patches/15_use_debian_flex_and_bison.dpatch +++ ircd-hybrid-7.2.2.dfsg.2/debian/patches/15_use_debian_flex_and_bison.dpatch @@ -0,0 +1,51 @@ +#! /bin/sh /usr/share/dpatch/dpatch-run +## 15_use_debian_flex_and_bison.dpatch by Aurélien GÉRÔME +## +## All lines beginning with `## DP:' are a description of the patch. +## DP: The Makefile will now use flex to generate lex.yy.c and bison +## DP: to generate y.tab.c and y.tab.h. + +@DPATCH@ +diff -urNad ircd-hybrid-7.2.2~/src/Makefile.in ircd-hybrid-7.2.2/src/Makefile.in +--- ircd-hybrid-7.2.2~/src/Makefile.in 2006-08-31 21:10:32.818217191 +0000 ++++ ircd-hybrid-7.2.2/src/Makefile.in 2006-08-31 21:11:39.268655097 +0000 +@@ -41,11 +41,17 @@ + + default: all + +-y.tab.o: y.tab.c ircd_parser.y +- ${CC} ${CPPFLAGS} ${CFLAGS} -I. -c y.tab.c ++y.tab.c y.tab.h: ircd_parser.y ++ $(YACC) -d $< + +-lex.yy.o: y.tab.c lex.yy.c ircd_lexer.l +- ${CC} ${CPPFLAGS} ${CFLAGS} -I. -c lex.yy.c ++lex.yy.c: ircd_lexer.l ++ $(LEX) $< ++ ++y.tab.o: y.tab.c y.tab.h ++ ${CC} ${CPPFLAGS} ${CFLAGS} -I. -c $< ++ ++lex.yy.o: lex.yy.c y.tab.c y.tab.h ++ ${CC} ${CPPFLAGS} ${CFLAGS} -I. -c $< + + SSL_SRCS = rsa.c + +@@ -137,7 +143,7 @@ + .c.o: + ${CC} ${CPPFLAGS} ${CFLAGS} -c $< + +-.depend: ++.depend: lex.yy.c y.tab.c y.tab.h + ${MKDEP} ${CPPFLAGS} ${BASE_SRCS} ${NETIO_SRC} ${STDOUT} + @${SED} -e '/^# Autogenerated - do not delete/,$$d' Makefile.depend + @echo "# Autogenerated - do not delete" >> Makefile.depend +@@ -145,7 +151,7 @@ + @${MV} Makefile.depend Makefile + + clean: +- ${RM} -f *.o *.exe *~ *core ircd-hybrid ++ ${RM} -f lex.yy.c y.tab.c y.tab.h *.o *.exe *~ *core ircd-hybrid + + distclean: clean + ${RM} -f Makefile .depend --- ircd-hybrid-7.2.2.dfsg.2.orig/debian/patches/98_patchlevel_debian.dpatch +++ ircd-hybrid-7.2.2.dfsg.2/debian/patches/98_patchlevel_debian.dpatch @@ -0,0 +1,17 @@ +#! /bin/sh /usr/share/dpatch/dpatch-run +## 98_patchlevel_debian.dpatch by Aurélien GÉRÔME +## +## All lines beginning with `## DP:' are a description of the patch. +## DP: Patchlevel for Debian package. + +@DPATCH@ +diff -urNad ircd-hybrid-7.2.2~/include/patchlevel.h ircd-hybrid-7.2.2/include/patchlevel.h +--- ircd-hybrid-7.2.2~/include/patchlevel.h 2006-07-17 06:31:22.000000000 +0000 ++++ ircd-hybrid-7.2.2/include/patchlevel.h 2006-08-30 20:42:23.332200259 +0000 +@@ -23,5 +23,5 @@ + */ + + #ifndef PATCHLEVEL +-#define PATCHLEVEL "hybrid-7.2.2" ++#define PATCHLEVEL "hybrid-7.2.2.dfsg.2-6" + #endif --- ircd-hybrid-7.2.2.dfsg.2.orig/debian/patches/13_client_ssl_multi_read.dpatch +++ ircd-hybrid-7.2.2.dfsg.2/debian/patches/13_client_ssl_multi_read.dpatch @@ -0,0 +1,55 @@ +#! /bin/sh /usr/share/dpatch/dpatch-run +## 13_client_ssl_multi_read.dpatch by +## +## All lines beginning with `## DP:' are a description of the patch. +## DP: No description. + +diff -urNad ircd-hybrid-7.0.3/src/packet.c /tmp/dpep.cZzMV0/ircd-hybrid-7.0.3/src/packet.c +--- ircd-hybrid-7.0.3/src/packet.c 2005-04-21 00:49:16.000000000 +0100 ++++ /tmp/dpep.cZzMV0/ircd-hybrid-7.0.3/src/packet.c 2005-04-21 00:51:14.000000000 +0100 +@@ -535,20 +535,32 @@ + } + #endif + +- +- if (!IsDefunct(client_p)) ++ if (length<=0) ++ { /* An error of some kind occurred. ++ * Hopefully SSL_ERROR_WANT_READ, but anyway, we're outta here ++ */ ++ if (!IsDefunct(client_p)) ++ { ++ /* If we get here, we need to register for another COMM_SELECT_READ */ ++ if (PARSE_AS_SERVER(client_p)) ++ { ++ comm_setselect(fd_r, FDLIST_SERVER, COMM_SELECT_READ, ++ read_packet, client_p, 0); ++ } ++ else ++ { ++ comm_setselect(fd_r, FDLIST_IDLECLIENT, COMM_SELECT_READ, ++ read_packet, client_p, 0); ++ } ++ } ++ } ++ else + { +- /* If we get here, we need to register for another COMM_SELECT_READ */ +- if (PARSE_AS_SERVER(client_p)) +- { +- comm_setselect(fd_r, FDLIST_SERVER, COMM_SELECT_READ, +- read_packet, client_p, 0); +- } +- else +- { +- comm_setselect(fd_r, FDLIST_IDLECLIENT, COMM_SELECT_READ, +- read_packet, client_p, 0); +- } ++ /* Call read_packet() again untill we get an error ++ * We're looking for SSL_ERROR_WANT_READ, but any will do ++ * It means that all the data has been read from the buffers ++ */ ++ read_packet(fd,data); + } + } + --- ircd-hybrid-7.2.2.dfsg.2.orig/debian/patches/04_opme_no_depend_opless.dpatch +++ ircd-hybrid-7.2.2.dfsg.2/debian/patches/04_opme_no_depend_opless.dpatch @@ -0,0 +1,59 @@ +#! /bin/sh -e +## 03_opme_no_depend_opless.dpatch by Joshua Kwan +## +## All lines beginning with `## DP:' are a description of the patch. +## DP: contrib/m_opme.c: make /opme not depend on the channel being opless + +if [ $# -ne 1 ]; then + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +fi +case "$1" in + -patch) patch -f --no-backup-if-mismatch -p1 < $0;; + -unpatch) patch -f --no-backup-if-mismatch -R -p1 < $0;; + *) + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1;; +esac + +exit 0 + +--- ircd-hybrid-7.0rc9.virgin/contrib/m_opme.c 2002-09-19 09:14:32.000000000 -0700 ++++ ircd-hybrid-7.0rc9/contrib/m_opme.c 2003-03-30 17:53:31.000000000 -0800 +@@ -38,7 +38,6 @@ + + static void mo_opme(struct Client *client_p, struct Client *source_p, + int parc, char *parv[]); +-static int chan_is_opless(struct Channel *chptr); + + struct Message opme_msgtab = { + "OPME", 0, 0, 2, 0, MFLG_SLOW, 0, +@@ -59,14 +58,6 @@ + + char *_version = "$Revision: 1.28 $"; + +-static int chan_is_opless(struct Channel *chptr) +-{ +- if (chptr->chanops.head) +- return 0; +- else +- return 1; +-} +- + /* + ** mo_opme + ** parv[0] = sender prefix +@@ -109,13 +100,6 @@ + return; + } + +- if (!chan_is_opless(chptr)) +- { +- sendto_one(source_p, ":%s NOTICE %s :%s Channel is not opless", +- me.name, parv[0], parv[1]); +- return; +- } +- + if ((ptr = find_user_link(&chptr->peons, source_p))) + dlinkDelete(ptr, &chptr->peons); + else if ((ptr = find_user_link(&chptr->voiced, source_p))) --- ircd-hybrid-7.2.2.dfsg.2.orig/debian/patches/19_sslonly.dpatch +++ ircd-hybrid-7.2.2.dfsg.2/debian/patches/19_sslonly.dpatch @@ -0,0 +1,123 @@ +#! /bin/sh /usr/share/dpatch/dpatch-run +## 19_sslonly.dpatch by Joshua Kwan +## +## All lines beginning with `## DP:' are a description of the patch. +## DP: Allow setting a channel to be only joinable by SSL-users or +## DP: people on localhost. + +@DPATCH@ +--- ircd-hybrid-7.2.2/include/numeric.h~ 2007-01-21 10:39:19.000000000 -0800 ++++ ircd-hybrid-7.2.2/include/numeric.h 2007-01-21 10:39:32.000000000 -0800 +@@ -382,6 +382,7 @@ + /* ERR_LINKFAIL 479 unreal */ + /* ERR_CANNOTKNOCK 480 unreal */ + /* ERR_NOULINE 480 austnet */ ++#define ERR_SSLONLYCHAN 480 + #define ERR_NOPRIVILEGES 481 + #define ERR_CHANOPRIVSNEEDED 482 + #define ERR_CANTKILLSERVER 483 +--- ircd-hybrid-7.2.2/src/messages.tab~ 2007-01-21 10:38:11.000000000 -0800 ++++ ircd-hybrid-7.2.2/src/messages.tab 2007-01-21 10:38:53.000000000 -0800 +@@ -504,7 +504,7 @@ + /* 477 */ {NULL, NULL, NULL}, + /* 478 */ {"ERR_BANLISTFULL", ":%s 478 %s %s %s :Channel ban list is full", NULL}, + /* 479 */ {"ERR_BADCHANNAME", ":%s 479 %s %s :Illegal channel name", NULL}, +-/* 480 */ {NULL, NULL, NULL}, ++/* 480 */ {"ERR_SSLONLYCHAN", ":%s 480 %s %s :Cannot join channel (+S)", NULL}, + /* 481 */ {"ERR_NOPRIVILEGES", ":%s 481 %s :Permission Denied - You're not an IRC operator", NULL}, + /* 482 */ {"ERR_CHANOPRIVSNEEDED", ":%s 482 %s %s :You're not channel operator", NULL}, + /* 483 */ {"ERR_CANTKILLSERVER", ":%s 483 %s :You can't kill a server!", NULL}, +--- ircd-hybrid-7.2.2/src/channel_mode.c~ 2007-01-21 10:29:20.000000000 -0800 ++++ ircd-hybrid-7.2.2/src/channel_mode.c 2007-01-21 10:33:13.000000000 -0800 +@@ -332,6 +332,9 @@ + { MODE_NOPRIVMSGS, 'n' }, + { MODE_PRIVATE, 'p' }, + { MODE_SECRET, 's' }, ++#ifdef HAVE_LIBCRYPTO ++ { MODE_SSLONLY, 'S' }, ++#endif + { MODE_TOPICLIMIT, 't' }, + { 0, '\0' } + }; +@@ -1313,7 +1316,11 @@ + {chm_nosuch, NULL}, /* P */ + {chm_nosuch, NULL}, /* Q */ + {chm_nosuch, NULL}, /* R */ ++#ifdef HAVE_LIBCRYPTO ++ {chm_simple, (void*) MODE_SSLONLY}, /* S */ ++#else + {chm_nosuch, NULL}, /* S */ ++#endif + {chm_nosuch, NULL}, /* T */ + {chm_nosuch, NULL}, /* U */ + {chm_nosuch, NULL}, /* V */ +--- ircd-hybrid-7.2.2/src/channel.c~ 2007-01-21 10:37:39.000000000 -0800 ++++ ircd-hybrid-7.2.2/src/channel.c 2007-01-21 10:38:01.000000000 -0800 +@@ -44,6 +44,7 @@ + #include "event.h" + #include "memory.h" + #include "balloc.h" ++#include "fdlist.h" + + struct config_channel_entry ConfigChannel; + dlink_list global_channel_list = { NULL, NULL, 0 }; +@@ -679,6 +679,21 @@ + chptr->mode.limit) + return ERR_CHANNELISFULL; + ++ if (SSLonlyChannel(chptr)) ++ { ++#ifdef HAVE_LIBCRYPTO ++ if (MyClient(source_p)) { ++ int fd = source_p->localClient->fd.fd; ++ fde_t *F = lookup_fd(fd); ++ ++ if (F && !F->ssl && strcmp(source_p->sockhost, "127.0.0.1")) ++ return (ERR_SSLONLYCHAN); ++ } ++#else ++ return (ERR_SSLONLYCHAN); ++#endif ++ } ++ + return 0; + } + +--- a/modules/core/m_sjoin.c 2007-01-21 10:54:13.000000000 -0800 ++++ b/modules/core/m_sjoin.c 2007-01-21 10:54:23.000000000 -0800 +@@ -171,6 +171,9 @@ + case 'p': + mode.mode |= MODE_PRIVATE; + break; ++ case 'S': ++ mode.mode |= MODE_SSLONLY; ++ break; + case 'k': + strlcpy(mode.key, parv[4 + args], sizeof(mode.key)); + args++; +@@ -629,6 +632,7 @@ + { MODE_SECRET, 's' }, + { MODE_MODERATED, 'm' }, + { MODE_INVITEONLY, 'i' }, ++ { MODE_SSLONLY, 'S' }, + { MODE_PRIVATE, 'p' }, + { 0, '\0' } + }; +--- ircd-hybrid-7.2.2.dfsg.1/include/channel_mode.h~ 2007-01-21 10:58:30.000000000 -0800 ++++ ircd-hybrid-7.2.2.dfsg.1/include/channel_mode.h 2007-01-21 10:58:58.000000000 -0800 +@@ -55,6 +55,7 @@ + #define MODE_TOPICLIMIT 0x0008 + #define MODE_INVITEONLY 0x0010 + #define MODE_NOPRIVMSGS 0x0020 ++#define MODE_SSLONLY 0x0040 + + /* cache flags for silence on ban */ + #define CHFL_BAN_CHECKED 0x0080 +@@ -71,6 +72,7 @@ + + /* name invisible */ + #define SecretChannel(x) (((x)->mode.mode & MODE_SECRET)) ++#define SSLonlyChannel(x) (((x)->mode.mode & MODE_SSLONLY)) + #define PubChannel(x) (!SecretChannel(x)) + /* knock is forbidden, halfops can't kick/deop other halfops. + * +pi means paranoid and will generate notices on each invite */ --- ircd-hybrid-7.2.2.dfsg.2.orig/debian/patches/08_dot_lang.dpatch +++ ircd-hybrid-7.2.2.dfsg.2/debian/patches/08_dot_lang.dpatch @@ -0,0 +1,4762 @@ +#! /bin/sh -e +## 08_dot_lang.dpatch by Joshua Kwan +## +## All lines beginning with `## DP:' are a description of the patch. +## DP: new i18n support from CVS HEAD + +if [ $# -ne 1 ]; then + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +fi +case "$1" in + -patch) patch -f --no-backup-if-mismatch -p1 < $0;; + -unpatch) patch -f --no-backup-if-mismatch -R -p1 < $0;; + *) + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1;; +esac + +exit 0 + +diff --exclude CVS --exclude .cvsignore -urN ircd-hybrid/autoconf/acconfig.h /home/joshk/devel/ircd-hybrid-STABLE/autoconf/acconfig.h +--- ircd-hybrid/autoconf/acconfig.h 2003-02-15 08:32:42.000000000 -0800 ++++ /home/joshk/devel/ircd-hybrid-STABLE/autoconf/acconfig.h 2003-06-26 01:12:00.000000000 -0700 +@@ -61,9 +61,6 @@ + /* No block allocator */ + #undef NOBALLOC + +-/* Gettext support */ +-#undef HAVE_GETTEXT +- + /* nanosleep */ + #undef HAVE_NANOSLEEP + +diff --exclude CVS --exclude .cvsignore -urN ircd-hybrid/autoconf/configure.in /home/joshk/devel/ircd-hybrid-STABLE/autoconf/configure.in +--- ircd-hybrid/autoconf/configure.in 2003-05-31 00:30:23.000000000 -0700 ++++ /home/joshk/devel/ircd-hybrid-STABLE/autoconf/configure.in 2003-06-26 01:12:00.000000000 -0700 +@@ -192,33 +192,6 @@ + + AC_CHECK_FUNC(crypt,, AC_CHECK_LIB(descrypt, crypt,,AC_CHECK_LIB(crypt, crypt,,))) + +-dnl check for gettext in base system or /usr/[local/]lib/libintl.a +-AC_SEARCH_LIBS(gettext, intl,,,) +-if test "X$ac_cv_search_gettext" = "Xno"; then +- save_LIBS="$LIBS" +- LIBS="$LIBS -L/usr/local/lib" +- unset ac_cv_search_gettext +- AC_SEARCH_LIBS(gettext, intl,,,) +- if test "X$ac_cv_search_gettext" != "Xno"; then +- gettext_libs="-L/usr/local/lib" +- gettext_incl="-I/usr/local/include" +- fi +- LIBS="$save_LIBS" +-fi +- +-dnl make sure we cache any special flags we used, as autoconf +-dnl will cache the 'found gettext' result, and otherwise we'll never realise +-dnl we need them! +-AC_CACHE_CHECK(ld flags needed for gettext, cf_cv_gettext_libs, +- [ cf_cv_gettext_libs="$gettext_libs" ]) +-AC_CACHE_CHECK(cpp flags needed for gettext, cf_cv_gettext_incl, +- [ cf_cv_gettext_incl="$gettext_incl" ]) +- +-LIBS="$LIBS $cf_cv_gettext_libs" +-CPPFLAGS="$CPPFLAGS $cf_cv_gettext_incl" +- +-AC_CHECK_FUNCS(gettext,, AC_CHECK_LIB(intl, gettext)) +- + dnl Checks for header files. + AC_HEADER_STDC + AC_CHECK_HEADERS(inttypes.h sys/resource.h sys/param.h unistd.h errno.h string.h strings.h sys/syslog.h stdlib.h stddef.h getopt.h) +@@ -651,16 +624,6 @@ + AC_DEFINE_UNQUOTED(SELECT_TYPE, "$SELECT_TYPE") + AC_SUBST(SELECT_SRC) + +-if test "$ac_cv_func_gettext" = "yes" -o "$ac_cv_lib_intl_gettext" = "yes"; then +- echo "Building with gettext." +- MSGFMT="msgfmt -o" +- SUBDIR_MESSAGES="messages" +- AC_DEFINE(HAVE_GETTEXT) +-else +- MSGFMT="echo" +- SUBDIR_MESSAGES="" +-fi +- + dnl ipv6? + AC_ARG_ENABLE(ipv6, + [ --enable-ipv6 Enable IPV6 support. +@@ -1009,7 +972,6 @@ + adns/Makefile \ + include/Makefile \ + messages/Makefile \ +- messages/translations/Makefile \ + modules/Makefile \ + tools/Makefile \ + doc/Makefile \ +diff --exclude CVS --exclude .cvsignore -urN ircd-hybrid/BUGS /home/joshk/devel/ircd-hybrid-STABLE/BUGS +--- ircd-hybrid/BUGS 2003-06-10 21:26:04.000000000 -0700 ++++ /home/joshk/devel/ircd-hybrid-STABLE/BUGS 2003-06-26 01:12:00.000000000 -0700 +@@ -30,27 +30,7 @@ + of upgrading at runtime, but reducing the chances of accidentally + coring your server. + +-3. Problem with msgfmt command building custom msgs using gettext +- - Please ensure you are using GNU gettext version 0.10.35. +- Other versions are untested, and some are known to be +- incompatible. Solaris 8 gettext definately does not work. +- +-4. Problems with quote set msglocale not working on linux. +- This seems to be a linux problem, /quote set msglocale will sometimes +- get "undone" when a new client connects. The server will also sometimes +- not correctly set the locale from ircd.conf on startup. +- +- The solution is if a locale is needed, to have the message_locale="x" +- in ircd.conf, and then rehash to make it take effect. A rehash after +- startup will also need to be performed to set the locale. +- +-5. When updating a message file, in certain unknown situations it will core +- if the file in use is being accessed. To prevent this from happening, +- use '/quote SET MSGLOCALE standard' BEFORE issuing make install. When +- the file is installed, you can SET MSGLOCALE back to the language that +- was just updated. +- +-6. IAuthd is broken beyond belief. It does not work at this time. If this ++3. IAuthd is broken beyond belief. It does not work at this time. If this + bothers you, fix it for us. + + BUG REPORTS: If you run this code and encounter problems, you must report +diff --exclude CVS --exclude .cvsignore -urN ircd-hybrid/configure /home/joshk/devel/ircd-hybrid-STABLE/configure +--- ircd-hybrid/configure 2003-06-26 01:18:01.000000000 -0700 ++++ /home/joshk/devel/ircd-hybrid-STABLE/configure 2003-06-26 01:30:33.000000000 -0700 +@@ -3445,398 +3445,6 @@ + fi + + +-echo "$as_me:$LINENO: checking for library containing gettext" >&5 +-echo $ECHO_N "checking for library containing gettext... $ECHO_C" >&6 +-if test "${ac_cv_search_gettext+set}" = set; then +- echo $ECHO_N "(cached) $ECHO_C" >&6 +-else +- ac_func_search_save_LIBS=$LIBS +-ac_cv_search_gettext=no +-cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" +-#include "confdefs.h" +- +-/* Override any gcc2 internal prototype to avoid an error. */ +-#ifdef __cplusplus +-extern "C" +-#endif +-/* We use char because int might match the return type of a gcc2 +- builtin and then its argument prototype would still apply. */ +-char gettext (); +-#ifdef F77_DUMMY_MAIN +-# ifdef __cplusplus +- extern "C" +-# endif +- int F77_DUMMY_MAIN() { return 1; } +-#endif +-int +-main () +-{ +-gettext (); +- ; +- return 0; +-} +-_ACEOF +-rm -f conftest.$ac_objext conftest$ac_exeext +-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 +- ac_status=$? +- echo "$as_me:$LINENO: \$? = $ac_status" >&5 +- (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' +- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 +- (eval $ac_try) 2>&5 +- ac_status=$? +- echo "$as_me:$LINENO: \$? = $ac_status" >&5 +- (exit $ac_status); }; }; then +- ac_cv_search_gettext="none required" +-else +- echo "$as_me: failed program was:" >&5 +-cat conftest.$ac_ext >&5 +-fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +-if test "$ac_cv_search_gettext" = no; then +- for ac_lib in intl; do +- LIBS="-l$ac_lib $ac_func_search_save_LIBS" +- cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" +-#include "confdefs.h" +- +-/* Override any gcc2 internal prototype to avoid an error. */ +-#ifdef __cplusplus +-extern "C" +-#endif +-/* We use char because int might match the return type of a gcc2 +- builtin and then its argument prototype would still apply. */ +-char gettext (); +-#ifdef F77_DUMMY_MAIN +-# ifdef __cplusplus +- extern "C" +-# endif +- int F77_DUMMY_MAIN() { return 1; } +-#endif +-int +-main () +-{ +-gettext (); +- ; +- return 0; +-} +-_ACEOF +-rm -f conftest.$ac_objext conftest$ac_exeext +-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 +- ac_status=$? +- echo "$as_me:$LINENO: \$? = $ac_status" >&5 +- (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' +- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 +- (eval $ac_try) 2>&5 +- ac_status=$? +- echo "$as_me:$LINENO: \$? = $ac_status" >&5 +- (exit $ac_status); }; }; then +- ac_cv_search_gettext="-l$ac_lib" +-break +-else +- echo "$as_me: failed program was:" >&5 +-cat conftest.$ac_ext >&5 +-fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +- done +-fi +-LIBS=$ac_func_search_save_LIBS +-fi +-echo "$as_me:$LINENO: result: $ac_cv_search_gettext" >&5 +-echo "${ECHO_T}$ac_cv_search_gettext" >&6 +-if test "$ac_cv_search_gettext" != no; then +- test "$ac_cv_search_gettext" = "none required" || LIBS="$ac_cv_search_gettext $LIBS" +- +-fi +- +-if test "X$ac_cv_search_gettext" = "Xno"; then +- save_LIBS="$LIBS" +- LIBS="$LIBS -L/usr/local/lib" +- unset ac_cv_search_gettext +- echo "$as_me:$LINENO: checking for library containing gettext" >&5 +-echo $ECHO_N "checking for library containing gettext... $ECHO_C" >&6 +-if test "${ac_cv_search_gettext+set}" = set; then +- echo $ECHO_N "(cached) $ECHO_C" >&6 +-else +- ac_func_search_save_LIBS=$LIBS +-ac_cv_search_gettext=no +-cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" +-#include "confdefs.h" +- +-/* Override any gcc2 internal prototype to avoid an error. */ +-#ifdef __cplusplus +-extern "C" +-#endif +-/* We use char because int might match the return type of a gcc2 +- builtin and then its argument prototype would still apply. */ +-char gettext (); +-#ifdef F77_DUMMY_MAIN +-# ifdef __cplusplus +- extern "C" +-# endif +- int F77_DUMMY_MAIN() { return 1; } +-#endif +-int +-main () +-{ +-gettext (); +- ; +- return 0; +-} +-_ACEOF +-rm -f conftest.$ac_objext conftest$ac_exeext +-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 +- ac_status=$? +- echo "$as_me:$LINENO: \$? = $ac_status" >&5 +- (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' +- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 +- (eval $ac_try) 2>&5 +- ac_status=$? +- echo "$as_me:$LINENO: \$? = $ac_status" >&5 +- (exit $ac_status); }; }; then +- ac_cv_search_gettext="none required" +-else +- echo "$as_me: failed program was:" >&5 +-cat conftest.$ac_ext >&5 +-fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +-if test "$ac_cv_search_gettext" = no; then +- for ac_lib in intl; do +- LIBS="-l$ac_lib $ac_func_search_save_LIBS" +- cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" +-#include "confdefs.h" +- +-/* Override any gcc2 internal prototype to avoid an error. */ +-#ifdef __cplusplus +-extern "C" +-#endif +-/* We use char because int might match the return type of a gcc2 +- builtin and then its argument prototype would still apply. */ +-char gettext (); +-#ifdef F77_DUMMY_MAIN +-# ifdef __cplusplus +- extern "C" +-# endif +- int F77_DUMMY_MAIN() { return 1; } +-#endif +-int +-main () +-{ +-gettext (); +- ; +- return 0; +-} +-_ACEOF +-rm -f conftest.$ac_objext conftest$ac_exeext +-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 +- ac_status=$? +- echo "$as_me:$LINENO: \$? = $ac_status" >&5 +- (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' +- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 +- (eval $ac_try) 2>&5 +- ac_status=$? +- echo "$as_me:$LINENO: \$? = $ac_status" >&5 +- (exit $ac_status); }; }; then +- ac_cv_search_gettext="-l$ac_lib" +-break +-else +- echo "$as_me: failed program was:" >&5 +-cat conftest.$ac_ext >&5 +-fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +- done +-fi +-LIBS=$ac_func_search_save_LIBS +-fi +-echo "$as_me:$LINENO: result: $ac_cv_search_gettext" >&5 +-echo "${ECHO_T}$ac_cv_search_gettext" >&6 +-if test "$ac_cv_search_gettext" != no; then +- test "$ac_cv_search_gettext" = "none required" || LIBS="$ac_cv_search_gettext $LIBS" +- +-fi +- +- if test "X$ac_cv_search_gettext" != "Xno"; then +- gettext_libs="-L/usr/local/lib" +- gettext_incl="-I/usr/local/include" +- fi +- LIBS="$save_LIBS" +-fi +- +-echo "$as_me:$LINENO: checking ld flags needed for gettext" >&5 +-echo $ECHO_N "checking ld flags needed for gettext... $ECHO_C" >&6 +-if test "${cf_cv_gettext_libs+set}" = set; then +- echo $ECHO_N "(cached) $ECHO_C" >&6 +-else +- cf_cv_gettext_libs="$gettext_libs" +-fi +-echo "$as_me:$LINENO: result: $cf_cv_gettext_libs" >&5 +-echo "${ECHO_T}$cf_cv_gettext_libs" >&6 +-echo "$as_me:$LINENO: checking cpp flags needed for gettext" >&5 +-echo $ECHO_N "checking cpp flags needed for gettext... $ECHO_C" >&6 +-if test "${cf_cv_gettext_incl+set}" = set; then +- echo $ECHO_N "(cached) $ECHO_C" >&6 +-else +- cf_cv_gettext_incl="$gettext_incl" +-fi +-echo "$as_me:$LINENO: result: $cf_cv_gettext_incl" >&5 +-echo "${ECHO_T}$cf_cv_gettext_incl" >&6 +- +-LIBS="$LIBS $cf_cv_gettext_libs" +-CPPFLAGS="$CPPFLAGS $cf_cv_gettext_incl" +- +- +-for ac_func in gettext +-do +-as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` +-echo "$as_me:$LINENO: checking for $ac_func" >&5 +-echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6 +-if eval "test \"\${$as_ac_var+set}\" = set"; then +- echo $ECHO_N "(cached) $ECHO_C" >&6 +-else +- cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" +-#include "confdefs.h" +-/* System header to define __stub macros and hopefully few prototypes, +- which can conflict with char $ac_func (); below. */ +-#include +-/* Override any gcc2 internal prototype to avoid an error. */ +-#ifdef __cplusplus +-extern "C" +-#endif +-/* We use char because int might match the return type of a gcc2 +- builtin and then its argument prototype would still apply. */ +-char $ac_func (); +-char (*f) (); +- +-#ifdef F77_DUMMY_MAIN +-# ifdef __cplusplus +- extern "C" +-# endif +- int F77_DUMMY_MAIN() { return 1; } +-#endif +-int +-main () +-{ +-/* The GNU C library defines this for functions which it implements +- to always fail with ENOSYS. Some functions are actually named +- something starting with __ and the normal name is an alias. */ +-#if defined (__stub_$ac_func) || defined (__stub___$ac_func) +-choke me +-#else +-f = $ac_func; +-#endif +- +- ; +- return 0; +-} +-_ACEOF +-rm -f conftest.$ac_objext conftest$ac_exeext +-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 +- ac_status=$? +- echo "$as_me:$LINENO: \$? = $ac_status" >&5 +- (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' +- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 +- (eval $ac_try) 2>&5 +- ac_status=$? +- echo "$as_me:$LINENO: \$? = $ac_status" >&5 +- (exit $ac_status); }; }; then +- eval "$as_ac_var=yes" +-else +- echo "$as_me: failed program was:" >&5 +-cat conftest.$ac_ext >&5 +-eval "$as_ac_var=no" +-fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +-fi +-echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 +-echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +-if test `eval echo '${'$as_ac_var'}'` = yes; then +- cat >>confdefs.h <<_ACEOF +-#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 +-_ACEOF +- +-else +- +-echo "$as_me:$LINENO: checking for gettext in -lintl" >&5 +-echo $ECHO_N "checking for gettext in -lintl... $ECHO_C" >&6 +-if test "${ac_cv_lib_intl_gettext+set}" = set; then +- echo $ECHO_N "(cached) $ECHO_C" >&6 +-else +- ac_check_lib_save_LIBS=$LIBS +-LIBS="-lintl $LIBS" +-cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" +-#include "confdefs.h" +- +-/* Override any gcc2 internal prototype to avoid an error. */ +-#ifdef __cplusplus +-extern "C" +-#endif +-/* We use char because int might match the return type of a gcc2 +- builtin and then its argument prototype would still apply. */ +-char gettext (); +-#ifdef F77_DUMMY_MAIN +-# ifdef __cplusplus +- extern "C" +-# endif +- int F77_DUMMY_MAIN() { return 1; } +-#endif +-int +-main () +-{ +-gettext (); +- ; +- return 0; +-} +-_ACEOF +-rm -f conftest.$ac_objext conftest$ac_exeext +-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 +- ac_status=$? +- echo "$as_me:$LINENO: \$? = $ac_status" >&5 +- (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' +- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 +- (eval $ac_try) 2>&5 +- ac_status=$? +- echo "$as_me:$LINENO: \$? = $ac_status" >&5 +- (exit $ac_status); }; }; then +- ac_cv_lib_intl_gettext=yes +-else +- echo "$as_me: failed program was:" >&5 +-cat conftest.$ac_ext >&5 +-ac_cv_lib_intl_gettext=no +-fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +-LIBS=$ac_check_lib_save_LIBS +-fi +-echo "$as_me:$LINENO: result: $ac_cv_lib_intl_gettext" >&5 +-echo "${ECHO_T}$ac_cv_lib_intl_gettext" >&6 +-if test $ac_cv_lib_intl_gettext = yes; then +- cat >>confdefs.h <<_ACEOF +-#define HAVE_LIBINTL 1 +-_ACEOF +- +- LIBS="-lintl $LIBS" +- +-fi +- +-fi +-done +- +- + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -6678,19 +6286,6 @@ + + + +-if test "$ac_cv_func_gettext" = "yes" -o "$ac_cv_lib_intl_gettext" = "yes"; then +- echo "Building with gettext." +- MSGFMT="msgfmt -o" +- SUBDIR_MESSAGES="messages" +- cat >>confdefs.h <<\_ACEOF +-#define HAVE_GETTEXT 1 +-_ACEOF +- +-else +- MSGFMT="echo" +- SUBDIR_MESSAGES="" +-fi +- + # Check whether --enable-ipv6 or --disable-ipv6 was given. + if test "${enable_ipv6+set}" = set; then + enableval="$enable_ipv6" +@@ -8357,7 +7952,7 @@ + + + +-ac_config_files="$ac_config_files Makefile iauth/Makefile iauth/source/Makefile servlink/Makefile contrib/Makefile src/Makefile adns/Makefile include/Makefile messages/Makefile messages/translations/Makefile modules/Makefile tools/Makefile doc/Makefile help/Makefile" ++ac_config_files="$ac_config_files Makefile iauth/Makefile iauth/source/Makefile servlink/Makefile contrib/Makefile src/Makefile adns/Makefile include/Makefile messages/Makefile modules/Makefile tools/Makefile doc/Makefile help/Makefile" + cat >confcache <<\_ACEOF + # This file is a shell script that caches the results of configure + # tests run on this system so they can be shared between configure +@@ -8838,7 +8433,6 @@ + "adns/Makefile" ) CONFIG_FILES="$CONFIG_FILES adns/Makefile" ;; + "include/Makefile" ) CONFIG_FILES="$CONFIG_FILES include/Makefile" ;; + "messages/Makefile" ) CONFIG_FILES="$CONFIG_FILES messages/Makefile" ;; +- "messages/translations/Makefile" ) CONFIG_FILES="$CONFIG_FILES messages/translations/Makefile" ;; + "modules/Makefile" ) CONFIG_FILES="$CONFIG_FILES modules/Makefile" ;; + "tools/Makefile" ) CONFIG_FILES="$CONFIG_FILES tools/Makefile" ;; + "doc/Makefile" ) CONFIG_FILES="$CONFIG_FILES doc/Makefile" ;; +diff --exclude CVS --exclude .cvsignore -urN ircd-hybrid/contrib/help/opers/set /home/joshk/devel/ircd-hybrid-STABLE/contrib/help/opers/set +--- ircd-hybrid/contrib/help/opers/set 2002-01-06 10:12:08.000000000 -0800 ++++ /home/joshk/devel/ircd-hybrid-STABLE/contrib/help/opers/set 2003-06-26 01:12:03.000000000 -0700 +@@ -19,7 +19,7 @@ + constitutes a possible spambot. + SPAMTIME - Below this time on a channel + counts as a join/part as above. +- MSGLOCALE - Set the gettext() message locale ++ MSGLOCALE - Set the message locale + standard - Compiled in defaults + custom - Old CUSTOM_ERR messages + SPLITMODE - Sets splitmode to : +diff --exclude CVS --exclude .cvsignore -urN ircd-hybrid/doc/convertconf-example.conf /home/joshk/devel/ircd-hybrid-STABLE/doc/convertconf-example.conf +diff --exclude CVS --exclude .cvsignore -urN ircd-hybrid/doc/example.conf /home/joshk/devel/ircd-hybrid-STABLE/doc/example.conf +--- ircd-hybrid/doc/example.conf 2003-05-31 00:30:25.000000000 -0700 ++++ /home/joshk/devel/ircd-hybrid-STABLE/doc/example.conf 2003-06-26 01:12:03.000000000 -0700 +@@ -782,8 +782,7 @@ + */ + use_help = yes; + +- /* message locale: the default message locale if gettext() is enabled +- * and working. ++ /* message locale: the default message locale. + * Use "custom" for the (in)famous Hybrid custom messages. + * Use "standard" for the compiled in defaults. + */ +diff --exclude CVS --exclude .cvsignore -urN ircd-hybrid/doc/example.efnet.conf /home/joshk/devel/ircd-hybrid-STABLE/doc/example.efnet.conf +--- ircd-hybrid/doc/example.efnet.conf 2003-06-12 17:10:41.000000000 -0700 ++++ /home/joshk/devel/ircd-hybrid-STABLE/doc/example.efnet.conf 2003-06-26 01:12:03.000000000 -0700 +@@ -867,8 +867,7 @@ + */ + use_help = no; + +- /* message locale: the default message locale if gettext() is enabled +- * and working. ++ /* message locale: the default message locale. + * Use "custom" for the (in)famous Hybrid custom messages. + * Use "standard" for the compiled in defaults. + */ +diff --exclude CVS --exclude .cvsignore -urN ircd-hybrid/doc/messages.txt /home/joshk/devel/ircd-hybrid-STABLE/doc/messages.txt +--- ircd-hybrid/doc/messages.txt 2001-12-14 21:10:41.000000000 -0800 ++++ /home/joshk/devel/ircd-hybrid-STABLE/doc/messages.txt 2003-06-26 01:12:03.000000000 -0700 +@@ -1,14 +1,13 @@ + Message Customization Overview + +- $Id: messages.txt,v 1.3 2001/12/15 05:10:41 wcampbel Exp $ ++ $Id: messages.txt,v 1.7 2003/06/18 00:53:05 joshk Exp $ + +- Copyright (c) 2001 by ircd-hybrid team ++ Copyright (c) 2001, 2003 by ircd-hybrid team + + ---------------------------------------------------------------------- + +- Hybrid now supports gettext (provided in GNU gettext/libintl) to enable +- easier customization of messages, allow message files to be changed at +- runtime, and to provide pre-made translations. ++ Hybrid has obsoleted its buggy gettext support for i18n'd IRC status ++ messages. It now supports its own .lang format. + + This document is split into two parts, using message files, and creating + your own. +@@ -18,22 +17,16 @@ + Using Provided or Pre-made Message Files + + There are a number of message files provided with Hybrid 7. These can be +- found in the source tree in messages/ and messages/translations/. ++ found in the source tree in messages/. + +- The ircd will install custom.po and ayb.po upon a make install on systems +- that configure finds a working gettext on. These will be installed into +- the prefix directory under messages/. To install the provided +- translations, you must change to the messages/translations directory in +- the source tree. In this directory, you can run make install, and ircd +- will install all of the translated .po's into messages/ in the prefix. +- There is no way at the present time to install a single .po file. ++ These files are NOT installed by default; run `make install' within the ++ messages directory to install them and they will automatically be used ++ unless the paths in defaults.h were not adhered to. + + These message files can be used in ircd once they are installed. Try the +- installed message file with /quote SET MSGLOCALE first. Locale +- will be 'standard' for the plain messages that are Hybrid's default. 'ayb' +- and 'custom' are available on any installation that configure finds a +- working gettext for. If the translations were installed, they can be set +- by 'ircd-', such as 'ircd-danish' or 'ircd-norwegian'. ++ installed message file with /quote SET MSGLOCALE first. The ++ locale will be 'standard' for the plain messages that are Hybrid's ++ default. + + If the desired message file works without any issues, it can be set to be + the default message file in the ircd.conf file. Refer to example.conf's +@@ -44,56 +37,21 @@ + Creating Your Own Messages + + This process is a little more complicated. The easiest way to start +- editing messages is to take a file such as custom.po, make a copy, and +- change whatever msgstr lines you wish. ++ editing messages is to take ircd-standard.example.lang, make a copy, ++ and change whichever status lines you wish. + +- Important: Please do NOT ever change msgid lines, as this will prevent +- your customization from being used by gettext. ++ Once you have your customized message file ready, just copy it into the ++ same place as the rest of the messages, typically /usr/local/ircd/messages. + +- Once you have your customized message file ready, place it into messages/ +- in the source tree, and open Makefile.in in a text editor. Insert a line +- in the middle of the SRCS line, for example right after or right before +- custom.po. Place the name of your customized message file on this line, +- followed by a \. +- +- Example: +- +- SRCS = \ +- custom.po \ +- new.po \ +- ayb.po +- +- Since these directories are under configure's control, any Makefile +- changes must be done to Makefile.in. This also requires configure to be +- rerun with at minimum the prefix option. +- +- You will now be able to cd into messages/ and run make install. +- +- There is always a chance of creating a syntax error, but the benefit to +- using gettext over Hybrid 6's src/messages_cust.tab is that syntax errors +- will not break the compile of the server, just of the message file. +- +- Creating a message file from scratch is relatively simple as well. cd into +- messages/ and run ./create_po .po. This command will generate a +- blank message file, listing all of the ircd default message ID's, with no +- replacements. Any message that you wish to keep the same as the ircd +- defaults, you will leave the msgstr set to "". Any message that you wish +- to change requires you to write a complete replacement for in msgstr. +- Again, please do NOT change the msgid. The replacement string must contain +- the same number of % arguments, and the arguments must be kept in the same +- order. +- +- Once your message file is complete, you must put it into Makefile.in as +- described above. You must then rerun configure as described above. If the +- default (standard locale) messages ever change in Hybrid, your file can be +- updated with the make mrupdate command in the messages/ directory. Be sure +- and have a backup of your old one first, as this sometimes will give +- unusual entries in the .po files. Before attempting to use the updated +- message file, you must read through the customized file and be sure that +- it is correct. +- +- If you create a translation for a new language, or an update to an +- existing translation, please do not hesitate in sending the .po file to +- the Hybrid team. Providing a translation will be a way that nearly anyone +- who knows multiple languages to contribute to ircd, and get their name in +- the translation credits. ++ If you think your .lang file deserves to be in the official distribution, ++ submit it to us at hybrid@the-project.org. It must be complete and as error- ++ free as you can make it since it is subject to public consumption. Providing ++ a translation will be a way that nearly anyone who knows multiple languages ++ to contribute to ircd, and get their name in the translation credits. ++ ++ When making such a translation, you should base it off ++ ircd-standard.example.lang, which is a conversion of our base (English) ++ messages.tab into the .lang format. You should edit it from there into your ++ own language, and of course give credit to yourself and whoever else you ++ may have done the translation with. Then, send it off to us, and we'll see ++ what we can do. +diff --exclude CVS --exclude .cvsignore -urN ircd-hybrid/doc/technical/message-customisation.txt /home/joshk/devel/ircd-hybrid-STABLE/doc/technical/message-customisation.txt +diff --exclude CVS --exclude .cvsignore -urN ircd-hybrid/help/opers/set /home/joshk/devel/ircd-hybrid-STABLE/help/opers/set +--- ircd-hybrid/help/opers/set 2002-01-06 10:12:08.000000000 -0800 ++++ /home/joshk/devel/ircd-hybrid-STABLE/help/opers/set 2003-06-26 01:12:03.000000000 -0700 +@@ -19,7 +19,7 @@ + constitutes a possible spambot. + SPAMTIME - Below this time on a channel + counts as a join/part as above. +- MSGLOCALE - Set the gettext() message locale ++ MSGLOCALE - Set the message locale + standard - Compiled in defaults + custom - Old CUSTOM_ERR messages + SPLITMODE - Sets splitmode to : +diff --exclude CVS --exclude .cvsignore -urN ircd-hybrid/include/config.h.dist /home/joshk/devel/ircd-hybrid-STABLE/include/config.h.dist +--- ircd-hybrid/include/config.h.dist 2003-01-16 21:21:28.000000000 -0800 ++++ /home/joshk/devel/ircd-hybrid-STABLE/include/config.h.dist 2003-06-26 01:12:03.000000000 -0700 +@@ -83,7 +83,7 @@ + * ETCPATH = directory for configuration files, + * LOGPATH = directory for logfiles, + * MODPATH = directory for autoloaded modules (disabled in VMS), +- * MSGPATH = directory for gettext message files (disabled in VMS). ++ * MSGPATH = directory for message files (disabled in VMS). + */ + + /* IRCD_PREFIX not needed in VMS -larne */ +@@ -128,7 +128,7 @@ + * LOGPATH = directory for logfiles, + * MODPATH = directory for modules, + * AUTOMODPATH = directory for autoloaded modules +- * MSGPATH = directory for gettext message files. ++ * MSGPATH = directory for message files. + */ + + /* dirs */ +@@ -157,11 +157,6 @@ + #define LIPATH ETCPATH "/links.txt" /* cached links file */ + #endif /* !VMS */ + +-/* WANT_GETTEXT - toggle gettext support. +- * NOTE: if configure doesn't detect gettext, this won't do anything. +- */ +-#define WANT_GETTEXT +- + /* Ignore bogus timestamps from other servers. Yes this will desync + * the network, but it will allow chanops to resync with a valid non TS 0 + * +diff --exclude CVS --exclude .cvsignore -urN ircd-hybrid/include/defaults.h /home/joshk/devel/ircd-hybrid-STABLE/include/defaults.h +--- ircd-hybrid/include/defaults.h 2002-11-23 09:12:55.000000000 -0800 ++++ /home/joshk/devel/ircd-hybrid-STABLE/include/defaults.h 2003-06-26 01:12:03.000000000 -0700 +@@ -86,14 +86,6 @@ + #define MIN_SPAM_NUM 5 + #define MIN_SPAM_TIME 60 + +-#if defined( WANT_GETTEXT ) && defined( HAVE_GETTEXT ) && defined( MSGPATH ) +-#define USE_GETTEXT 1 +-#define _(a) (gettext(a)) +-#else +-#undef USE_GETTEXT +-#define _(a) (a) +-#endif +- + #define CONFIG_H_LEVEL_7 + + #endif /* INCLUDED_defaults_h */ +diff --exclude CVS --exclude .cvsignore -urN ircd-hybrid/include/m_info.h /home/joshk/devel/ircd-hybrid-STABLE/include/m_info.h +--- ircd-hybrid/include/m_info.h 2002-05-24 16:34:07.000000000 -0700 ++++ /home/joshk/devel/ircd-hybrid-STABLE/include/m_info.h 2003-06-26 01:12:03.000000000 -0700 +@@ -182,12 +182,6 @@ + { "TS_MAX_DELTA_DEFAULT", "", TS_MAX_DELTA_DEFAULT, "Maximum Allowed TS Delta from another Server" }, + { "TS_WARN_DELTA_DEFAULT", "", TS_WARN_DELTA_DEFAULT, "Maximum TS Delta before Sending Warning" }, + +-#ifdef USE_GETTEXT +- { "USE_GETTEXT", "ON", 0, "Use gettext() for message customisation" }, +-#else +- { "USE_GETTEXT", "OFF", 0, "Use gettext() for message customisation" }, +-#endif /* USE_GETTEXT */ +- + #ifdef USE_SYSLOG + { "USE_SYSLOG", "ON", 0, "Log Errors to syslog file" }, + #else +diff --exclude CVS --exclude .cvsignore -urN ircd-hybrid/include/numeric.h /home/joshk/devel/ircd-hybrid-STABLE/include/numeric.h +--- ircd-hybrid/include/numeric.h 2002-11-27 07:46:24.000000000 -0800 ++++ /home/joshk/devel/ircd-hybrid-STABLE/include/numeric.h 2003-06-26 01:12:03.000000000 -0700 +@@ -27,11 +27,21 @@ + + #include "config.h" + ++#define LOCALE_LENGTH 64 /* maximum length of locale name + 1 */ ++ ++struct NumericInfo { ++ char *name; /* common name of the numeric */ ++ char *standard; /* standard numeric text */ ++ char *translated; /* translated numeric text */ ++}; ++ + /* + * form_str - return a format string for a message number + * messages are defined below + */ + extern const char* form_str(int); ++extern void set_locale(const char *); ++extern const char *get_locale(void); + + /* + * Reserve numerics 000-099 for server-client connections where the client +@@ -165,6 +175,7 @@ + + #define RPL_ACCEPTLIST 281 + #define RPL_ENDOFACCEPT 282 ++#define RPL_ISMESSAGING 283 + + /* RPL_GLIST 280 Undernet extension */ + /* RPL_ENDOFGLIST 281 Undernet extension */ +diff --exclude CVS --exclude .cvsignore -urN ircd-hybrid/include/setup.h.in /home/joshk/devel/ircd-hybrid-STABLE/include/setup.h.in +--- ircd-hybrid/include/setup.h.in 2003-02-15 08:32:44.000000000 -0800 ++++ /home/joshk/devel/ircd-hybrid-STABLE/include/setup.h.in 2003-06-26 01:36:16.000000000 -0700 +@@ -1,4 +1,4 @@ +-/* include/setup.h.in. Generated automatically from autoconf/configure.in by autoheader 2.13. */ ++/* include/setup.h.in. Generated automatically from configure.in by autoheader 2.13. */ + + /* Define as __inline if that's what the C compiler calls it. */ + #undef inline +@@ -77,9 +77,6 @@ + /* No block allocator */ + #undef NOBALLOC + +-/* Gettext support */ +-#undef HAVE_GETTEXT +- + /* nanosleep */ + #undef HAVE_NANOSLEEP + +@@ -122,9 +119,6 @@ + /* Define if you have the dlopen function. */ + #undef HAVE_DLOPEN + +-/* Define if you have the gettext function. */ +-#undef HAVE_GETTEXT +- + /* Define if you have the kevent function. */ + #undef HAVE_KEVENT + +diff --exclude CVS --exclude .cvsignore -urN ircd-hybrid/include/setup.h_vms /home/joshk/devel/ircd-hybrid-STABLE/include/setup.h_vms +diff --exclude CVS --exclude .cvsignore -urN ircd-hybrid/include/stdinc.h /home/joshk/devel/ircd-hybrid-STABLE/include/stdinc.h +--- ircd-hybrid/include/stdinc.h 2002-05-24 16:39:13.000000000 -0700 ++++ /home/joshk/devel/ircd-hybrid-STABLE/include/stdinc.h 2003-06-26 01:12:03.000000000 -0700 +@@ -57,9 +57,6 @@ + #include + #include + #include +-#ifdef USE_GETTEXT +-#include +-#endif + #include + #include + +diff --exclude CVS --exclude .cvsignore -urN ircd-hybrid/messages/ayb.lang /home/joshk/devel/ircd-hybrid-STABLE/messages/ayb.lang +--- ircd-hybrid/messages/ayb.lang 1969-12-31 16:00:00.000000000 -0800 ++++ /home/joshk/devel/ircd-hybrid-STABLE/messages/ayb.lang 2003-06-26 01:12:03.000000000 -0700 +@@ -0,0 +1,30 @@ ++; ircd-hybrid-7 custom message file ++; Copyright (C) 2000 ++; David Taylor , 2000. ++; $Id: ayb.lang,v 1.4 2003/05/19 15:05:39 joshk Exp $ ++ ++RPL_WELCOME: :%s 001 %s :ALL YOUR BASE ARE BELONG TO %s, %s!!! ++RPL_CREATED: :%s 003 %s :Someone set up us the server %s ++RPL_ISUPPORT: :%s 005 %s %s :are moved for great justice ++RPL_REDIR: :%s 010 %s %s %d :You have no chance to survive make this Server/Port instead. Ha ha ha. ++RPL_STATSUPTIME: :%s 242 %s :Someone set up us the bomb %d days, %d:%02d:%02d ago ++RPL_LUSERCLIENT: :%s 251 %s :There are %d minor Zigs and %d invisible on %d servers ++RPL_LUSEROP: :%s 252 %s %d :Zigs online ++RPL_LUSERME: :%s 255 %s :%d clients and %d servers are belong to me ++RPL_LOAD2HI: :%s 263 %s :What you say!?? The server is moving too many zigs.. ++RPL_LOCALUSERS: :%s 265 %s :%d users (max %d) are belong to me ++RPL_GLOBALUSERS: :%s 266 %s :%d users (max %d) are belong to the network ++RPL_UNAWAY: :%s 305 %s :OK, you're not /away anymore. Did you move Zig for great justice? ++RPL_NOWAWAY: :%s 306 %s :OK, you're /away now. Hurry back! ++RPL_WHOISOPERATOR: :%s 313 %s %s :is a Zig for Great Justice ++RPL_YOUREOPER: :%s 381 %s :SOMEONE SET YOU UP THE /KILL FOR GREAT JUSTICE! ++ERR_NOSUCHNICK: :%s 401 %s %s :No such Zig ++ERR_TOOMANYCHANNELS: :%s 405 %s %s :Too many channels are belong to you ++ERR_WASNOSUCHNICK: :%s 406 %s %s :There was no such Zig ++ERR_TOOMANYTARGETS: :%s 407 %s %s :Too many recipients. Your message is only belong to %d ++ERR_NORECIPIENT: :%s 411 %s :No Zigs Moved (%s) ++ERR_UNKNOWNCOMMAND: :%s 421 %s %s :THAT COMMAND IS NOT BELONG TO ME!!! ++ERR_NOMOTD: :%s 422 %s :MOTD file is not belong to me ++ERR_NICKNAMEINUSE: :%s 433 %s %s :Zig is belong to someone else. ++ERR_CHANOPRIVSNEEDED: :%s 482 %s %s :You know what you doing, you need +o ++ERR_CANTKILLSERVER: :%s 483 %s :You have no chance to kill a SERVER make your time. +diff --exclude CVS --exclude .cvsignore -urN ircd-hybrid/messages/ayb.po /home/joshk/devel/ircd-hybrid-STABLE/messages/ayb.po +diff --exclude CVS --exclude .cvsignore -urN ircd-hybrid/messages/build_one /home/joshk/devel/ircd-hybrid-STABLE/messages/build_one +--- ircd-hybrid/messages/build_one 2001-09-05 04:06:25.000000000 -0700 ++++ /home/joshk/devel/ircd-hybrid-STABLE/messages/build_one 1969-12-31 16:00:00.000000000 -0800 +@@ -1,26 +0,0 @@ +-#!/bin/sh +- +-# This is a script to build a single message file based on the variables +-# in Makefile (yes, this means that configure MUST have been run +-# prior to using this) +- +-if [ ! $1 ]; then +- echo Please specify a message source +- exit 1 +-fi +- +-if [ ! -f $1 ]; then +- echo Please specify a valid message source +- exit 2 +-fi +- +-if [ ! -f Makefile]; then +- echo Please run configure first +- exit 3 +-fi +- +-MSGFMT=`grep '^MSGFMT' Makefile | sed 's/MSGFMT//' | sed 's/ = //' | tr -d '\r' | tr -d '\n'` +-BASENAME=`basename $1 | sed 's/\.po//'` +- +-echo $MSGFMT $BASENAME.mo $1 +-$MSGFMT $BADENAME.mo $1 +diff --exclude CVS --exclude .cvsignore -urN ircd-hybrid/messages/create_po /home/joshk/devel/ircd-hybrid-STABLE/messages/create_po +--- ircd-hybrid/messages/create_po 2000-12-11 13:02:12.000000000 -0800 ++++ /home/joshk/devel/ircd-hybrid-STABLE/messages/create_po 1969-12-31 16:00:00.000000000 -0800 +@@ -1,17 +0,0 @@ +-#!/bin/sh +-i=$1 +- +-if [ "x$i" = "x" ]; then +- echo "Usage: $0 " +- exit 1 +-elif [ -f $i ]; then +- echo "Error: $i already exists, use make mrupdate" +- exit 1 +-fi +- +-xgettext -a -LC -o $i ../src/messages.tab +-xgettext --keyword=_ -j -LC -o $i ../include/*.h +-xgettext --keyword=_ -j -LC -o $i ../src/*.c +-xgettext --keyword=_ -j -LC -o $i ../modules/*.c +- +-echo "Now add $i to Makefile.in, and rerun configure" +diff --exclude CVS --exclude .cvsignore -urN ircd-hybrid/messages/custom.po /home/joshk/devel/ircd-hybrid-STABLE/messages/custom.po +diff --exclude CVS --exclude .cvsignore -urN ircd-hybrid/messages/ircd-croatian.lang /home/joshk/devel/ircd-hybrid-STABLE/messages/ircd-croatian.lang +--- ircd-hybrid/messages/ircd-croatian.lang 1969-12-31 16:00:00.000000000 -0800 ++++ /home/joshk/devel/ircd-hybrid-STABLE/messages/ircd-croatian.lang 2003-06-26 01:12:03.000000000 -0700 +@@ -0,0 +1,95 @@ ++; ircd-hybrid-7 custom message file ++; Copyright (C) 2000 ++; David Taylor , 2000. ++; $Id: ircd-croatian.lang,v 1.4 2003/05/18 14:15:58 adx Exp $ ++ ++RPL_WELCOME: :%s 001 %s :Dobro doli na %s Internet Relay Chat Network %s ++RPL_YOURHOST: :%s 002 %s :Va host je %s, i koristi verziju %s ++RPL_CREATED: :%s 003 %s :Ovaj server je postavljen %s ++RPL_ISUPPORT: :%s 005 %s %s :su podrani na ovom serveru ++RPL_REDIR: :%s 010 %s %s %d :Molim Vas, koristite ovaj server/port ++RPL_TRACECONNECTING: :%s 201 %s Pokuajte. %s %s ++RPL_TRACEUSER: :%s 205 %s Korisnik %s %s (%s) %lu %lu ++RPL_TRACESERVER: :%s 206 %s Server %s %dS %dC %s %s!%s@%s %lu ++RPL_TRACENEWTYPE: :%s 208 %s 0 %s ++RPL_TRACECLASS: :%s 209 %s Klasa %s %d ++RPL_ENDOFSTATS: :%s 219 %s %c :Kraj /STATS izvjetaja ++RPL_STATSUPTIME: :%s 242 %s :Server radi %d dana, %d:%02d:%02d ++RPL_STATSCONN: :%s 250 %s :Najvei broj veza: %d (%d klijenata) (%d veza zaprimljeno)) ++RPL_LUSERCLIENT: :%s 251 %s :Ima %d korisnika i %d nevidljivih na %d servera ++RPL_LUSEROP: :%s 252 %s %d :IRC Operatora na vezi ++RPL_LUSERUNKNOWN: :%s 253 %s %d :nepoznatih veza ++RPL_LUSERCHANNELS: :%s 254 %s %d :kanala formirano ++RPL_LUSERME: :%s 255 %s :Imam %d klijenata i %d servera ++RPL_ADMINME: :%s 256 %s :Administrativne informacije o %s ++RPL_ENDOFTRACE: :%s 262 %s %s :Kraj TRACEa ++RPL_LOAD2HI: :%s 263 %s :Priekajte, server je trenutno preoptereen. ++RPL_LOCALUSERS: :%s 265 %s :Trenutno lokalnih korisnika: %d Maks.: %d ++RPL_GLOBALUSERS: :%s 266 %s :Trenutno globalnih korisnika: %d Maks.: %d ++RPL_UNAWAY: :%s 305 %s :OK, nisi vie /away. Je li bilo zabavno? ++RPL_NOWAWAY: :%s 306 %s :OK, sad si /away. Pouri!! ++RPL_WHOISOPERATOR: :%s 313 %s %s :je IRC Operator ++RPL_ENDOFWHO: :%s 315 %s %s :Kraj /WHO liste. ++RPL_WHOISIDLE: :%s 317 %s %s %d %d :sekundi neaktivan, vrijeme prijave ++RPL_ENDOFWHOIS: :%s 318 %s %s :Kraj /WHOIS liste. ++RPL_LISTSTART: :%s 321 %s Kanal :Korisnici Ime ++RPL_LISTEND: :%s 323 %s :Kraj /LIST-a ++RPL_NOTOPIC: :%s 331 %s %s :Topic nije postavljen. ++RPL_ENDOFINVEXLIST: :%s 347 %s %s :Kraj liste pozvanih na kanal ++RPL_ENDOFEXCEPTLIST: :%s 349 %s %s :Kraj liste iznimaka za kanal ++RPL_CLOSING: :%s 362 %s %s :Zatvoren. Status = %d ++RPL_CLOSEEND: :%s 363 %s %d: Zatvorenih veza ++RPL_ENDOFLINKS: :%s 365 %s %s :Kraj /LINKS liste. ++RPL_ENDOFNAMES: :%s 366 %s %s :Kraj /NAMES liste. ++RPL_ENDOFBANLIST: :%s 368 %s %s :Kraj liste banova za kanal ++RPL_ENDOFWHOWAS: :%s 369 %s %s :Kraj WHOWAS-a ++RPL_ENDOFINFO: :%s 374 %s :Kraj /INFO liste. ++RPL_MOTDSTART: :%s 375 %s :- %s Poruka dana - ++RPL_ENDOFMOTD: :%s 376 %s :Kraj /MOTD komande. ++RPL_YOUREOPER: :%s 381 %s :Au, sad si veliki jeba! :). ++RPL_REHASHING: :%s 382 %s %s :Uitavam promijenjenu konfiguraciju ++ERR_NOSUCHNICK: :%s 401 %s %s :Nema takvog nicka/kanala ++ERR_NOSUCHSERVER: :%s 402 %s %s :Nema takvog servera ++ERR_NOSUCHCHANNEL: :%s 403 %s %s :Nema takvog kanala ++ERR_CANNOTSENDTOCHAN: :%s 404 %s %s :Ne moe poslati nita na kanal ++ERR_TOOMANYCHANNELS: :%s 405 %s %s :Joinao si se na previe kanala ++ERR_WASNOSUCHNICK: :%s 406 %s %s :Nije bilo takvog nicka. ++ERR_TOOMANYTARGETS: :%s 407 %s %s :Previe odredita - samo %d procesirano ++ERR_NOORIGIN: :%s 409 %s :Izvorite nije specificirano ++ERR_NORECIPIENT: :%s 411 %s :Nije specificiran primatelj (%s) ++ERR_NOTEXTTOSEND: :%s 412 %s :Nema teksta koji bih poslao. ++ERR_NOTOPLEVEL: :%s 413 %s %s :Nije specificirana vrna domena ++ERR_WILDTOPLEVEL: :%s 414 %s %s :Nedovoljno precizno definirana vrna domena ++ERR_UNKNOWNCOMMAND: :%s 421 %s %s :Nepoznata komanda ++ERR_NOMOTD: :%s 422 %s :MOTD spis ne postoji ++ERR_NOADMININFO: :%s 423 %s %s :Nema administrativnih informacija ++ERR_NONICKNAMEGIVEN: :%s 431 %s :Nisi naveo nick ++ERR_ERRONEUSNICKNAME: :%s 432 %s %s :Pogrean nick. ++ERR_NICKNAMEINUSE: :%s 433 %s %s :Nick je ve u upotrebi. ++ERR_NICKCOLLISION: :%s 436 %s %s :Nick kolizija, KILL ++ERR_UNAVAILRESOURCE: :%s 437 %s %s :Nick/kanal trenutno nije na raspolaganju ++ERR_NICKTOOFAST: :%s 438 %s %s %s :Prebrza promjena nicka. Molim, priekaj %d sekundi ++ERR_USERNOTINCHANNEL: :%s 441 %s %s %s :Nije na tom kanalu ++ERR_NOTONCHANNEL: :%s 442 %s %s :Nisi na tom kanalu ++ERR_USERONCHANNEL: :%s 443 %s %s %s :je ve na kanalu ++ERR_NOTREGISTERED: :%s 451 %s :Nisi se registrirao/la ++ERR_NEEDMOREPARAMS: :%s 461 %s %s :Nedovoljno parametara ++ERR_ALREADYREGISTRED: :%s 462 %s :Ne moe se ponovo registrirati ++ERR_PASSWDMISMATCH: :%s 464 %s :Kriva lozinka - pokuaj ponovo! ++ERR_YOUREBANNEDCREEP: :%s 465 %s :Zabranjen ti je pristup ovom serveru- %s ++ERR_CHANNELISFULL: :%s 471 %s %s :Ne moe ui na kanal (+l) ++ERR_UNKNOWNMODE: :%s 472 %s %c :je meni nepoznata oznaka moda ++ERR_INVITEONLYCHAN: :%s 473 %s %s :Ne moe ui na kanal (+i) ++ERR_BANNEDFROMCHAN: :%s 474 %s %s :Ne moe ui na kanal (+b) ++ERR_BADCHANNELKEY: :%s 475 %s %s :Ne moe ui na kanal (+k) ++ERR_BANLISTFULL: :%s 478 %s %s %s :Lista banova na kanalu je puna ++ERR_BADCHANNAME: :%s 479 %s %s :Krivo ime kanala ++ERR_NOPRIVILEGES: :%s 481 %s :Nije ti dozvoljeno, ao mi je, nisi IRC operator ++ERR_CHANOPRIVSNEEDED: :%s 482 %s %s :Ne moe to napraviti, nisi operator na kanalu. ++ERR_CANTKILLSERVER: :%s 483 %s :Ne budi blesav, ne moe /KILL-ati server :) ++ERR_RESTRICTED: :%s 484 %s :Na ogranienoj si vezi ++ERR_NOOPERHOST: :%s 491 %s :ao mi je, ne moe se /OPER-ati ovdje. ++ERR_UMODEUNKNOWNFLAG: :%s 501 %s :Nepoznata MODE oznaka ++ERR_USERSDONTMATCH: :%s 502 %s :Ne moe mijenjati modove drugim korisnicima ++ERR_GHOSTEDCLIENT: :%s 503 %s :Poruku nije mogue dostaviti na %s ++ERR_USERNOTONSERV: :%s 504 %s %s :Korisnik nije na ovom serveru +diff --exclude CVS --exclude .cvsignore -urN ircd-hybrid/messages/ircd-danish.lang /home/joshk/devel/ircd-hybrid-STABLE/messages/ircd-danish.lang +--- ircd-hybrid/messages/ircd-danish.lang 1969-12-31 16:00:00.000000000 -0800 ++++ /home/joshk/devel/ircd-hybrid-STABLE/messages/ircd-danish.lang 2003-06-26 01:12:03.000000000 -0700 +@@ -0,0 +1,93 @@ ++; ircd-hybrid-7 custom message file for danish use ++; Copyright (C) YEAR Free Software Foundation, Inc. ++; Xride ++; Soren Straarup Andersen , 2001. ++; $Id: ircd-danish.lang,v 1.5 2003/05/18 14:15:58 adx Exp $ ++ ++RPL_WELCOME: :%s 001 %s :Velkommen til %s Internet Rel Netvrket %s ++RPL_YOURHOST: :%s 002 %s :Din vrt er %s, krer version %s ++RPL_CREATED: :%s 003 %s :Denne server var lavet %s ++RPL_ISUPPORT: :%s 005 %s %s :er supporteret af denne server ++RPL_REDIR: :%s 010 %s %s %d :Brug venligst denne Server/Port isteddet ++RPL_TRACELINK: :%s 200 %s Forbindelse %s %s %s ++RPL_TRACECONNECTING: :%s 201 %s Prv. %s %s ++RPL_TRACEUSER: :%s 205 %s Bruger %s %s (%s) %lu %lu ++RPL_TRACECLASS: :%s 209 %s Klasse %s %d ++RPL_ENDOFSTATS: :%s 219 %s %c :Slutningen p /STATS rapporten ++RPL_STATSUPTIME: :%s 242 %s :Server oppe %d dag(e), %d:%02d:%02d ++RPL_STATSCONN: :%s 250 %s :Hjeste forbindelser antal: %d (%d brugere) (%d forbindelser modtaget) ++RPL_LUSERCLIENT: :%s 251 %s :Der er %d brugere og %d usynlige p %d servere ++RPL_LUSEROP: :%s 252 %s %d :IRC Operatorer er her ++RPL_LUSERUNKNOWN: :%s 253 %s %d :ukendt forbindelse(r) ++RPL_LUSERCHANNELS: :%s 254 %s %d :rum er etableret ++RPL_LUSERME: :%s 255 %s :Jeg har %d brugere og %d serverer ++RPL_ADMINME: :%s 256 %s :Adminstrativ info om %s ++RPL_ENDOFTRACE: :%s 262 %s %s :Slutningen p TRACE ++RPL_LOAD2HI: :%s 263 %s :Server forbruget er midlertidigt for stort. Vent venligst lidt og prv s igen. ++RPL_LOCALUSERS: :%s 265 %s :Nuvrende lokale brugere: %d Max: %d ++RPL_UNAWAY: :%s 305 %s :Du er ikke lngere markeret som vrende vk ++RPL_NOWAWAY: :%s 306 %s :Du er markeret som vrende vk ++RPL_WHOISOPERATOR: :%s 313 %s %s :er en IRC Operator ++RPL_ENDOFWHO: :%s 315 %s %s :Slutningen p /WHO listen. ++RPL_WHOISIDLE: :%s 317 %s %s %d %d :sekunders stilhed, ankomst tidspunkt ++RPL_ENDOFWHOIS: :%s 318 %s %s :Slutningen p /WHOIS listen. ++RPL_LISTSTART: :%s 321 %s Rum :Brugers Navne ++RPL_LISTEND: :%s 323 %s :Slutnigen p /LIST ++RPL_NOTOPIC: :%s 331 %s %s :Ingen overskrift er bestemt. ++RPL_ENDOFINVEXLIST: :%s 347 %s %s :Slutningen p Rummets Invitations Liste ++RPL_ENDOFEXCEPTLIST: :%s 349 %s %s :Slutningen p Rummets Undtagelses Liste ++RPL_CLOSING: :%s 362 %s %s :Lukket. Status = %d ++RPL_CLOSEEND: :%s 365 %s %d: Forbindelser afbrudt ++RPL_ENDOFLINKS: :%s 365 %s %s :Slutningen p /LINKS listen. ++RPL_ENDOFNAMES: :%s 366 %s %s :Slutningen p /NAMES listen. ++RPL_ENDOFBANLIST: :%s 368 %s %s :Slutningen p Rummets Ban liste ++RPL_ENDOFWHOWAS: :%s 369 %s %s :Slutningen p WHOWAS ++RPL_ENDOFINFO: :%s 374 %s :Slutningen p /INFO listen. ++RPL_MOTDSTART: :%s 375 %s :- %s Dagens besked - ++RPL_ENDOFMOTD: :%s 376 %s :Slutningen p /MOTD kommandoen ++RPL_YOUREOPER: :%s 381 %s :Du har trdt ind i .. tusmrket.. ++RPL_REHASHING: :%s 382 %s %s :Genindldser konfigurations filerne ++ERR_NOSUCHNICK: :%s 401 %s %s :Intet nick/rum blev fundet ++ERR_NOSUCHSERVER: :%s 402 %s %s :Igen sdan server blev fundet ++ERR_NOSUCHCHANNEL: :%s 403 %s %s :Rummet findes ikke ++ERR_CANNOTSENDTOCHAN: :%s 404 %s %s :Kan ikke sende til Rummet ++ERR_TOOMANYCHANNELS: :%s 405 %s %s :Du er i for mange rum ++ERR_WASNOSUCHNICK: :%s 406 %s %s :nicket findes ikke ++ERR_TOOMANYTARGETS: :%s 407 %s %s :For mange modtagere. kun %d blev udfrt ++ERR_NOORIGIN: :%s 409 %s :Intet start punkt er angivet ++ERR_NORECIPIENT: :%s 411 %s :Ingen modtagere er (%s) ++ERR_NOTEXTTOSEND: :%s 412 %s :Ingen tekst til at sende ++ERR_NOTOPLEVEL: :%s 413 %s %s :Intet toplevel domain er specificeret ++ERR_WILDTOPLEVEL: :%s 414 %s %s :Wildcard i toplevel Domain ++ERR_UNKNOWNCOMMAND: :%s 421 %s %s :Ukendt kommando ++ERR_NOMOTD: :%s 422 %s :MOTD Filen findes ikke ++ERR_NOADMININFO: :%s 423 %s %s :Ingen adminstrative info er tilgngelige ++ERR_NONICKNAMEGIVEN: :%s 431 %s :Intet nick er angivet ++ERR_ERRONEUSNICKNAME: :%s 432 %s %s :Fejl i nick ++ERR_NICKNAMEINUSE: :%s 433 %s %s :Nick allerede i brug. ++ERR_NICKCOLLISION: :%s 436 %s %s :Nick kollition KILL (drabt) ++ERR_UNAVAILRESOURCE: :%s 437 %s %s :Nick/rum er midlertidig ikke tilgngelig ++ERR_USERNOTINCHANNEL: :%s 441 %s %s %s :De er ikke i rummet ++ERR_NOTONCHANNEL: :%s 442 %s %s :Du er ikke i det rum ++ERR_USERONCHANNEL: :%s 443 %s %s %s :er allerede i rummet ++ERR_NOTREGISTERED: :%s 451 %s :Du er ikke registreret ++ERR_NEEDMOREPARAMS: :%s 461 %s %s :Ikke nok paramtre ++ERR_ALREADYREGISTRED: :%s 462 %s :Du m ikke genregistrerer ++ERR_PASSWDMISMATCH: :%s 464 %s :Forkert kodeord ++ERR_YOUREBANNEDCREEP: :%s 456 %s :Du er udelukket fra denne server- %s ++ERR_CHANNELISFULL: :%s 471 %s %s :Kan ikke deltage i rummet (+l) ++ERR_UNKNOWNMODE: :%s 472 %s %c :er ukendt mode bogstav for mig ++ERR_INVITEONLYCHAN: :%s 473 %s %s :Kan ikke deltage i rummet (+i) ++ERR_BANNEDFROMCHAN: :%s 474 %s %s :Kan ikke deltage i rummet (+b) ++ERR_BADCHANNELKEY: :%s 475 %s %s :Kan ikke deltage i rummet (+k) ++ERR_BANLISTFULL: :%s 478 %s %s %s :Rummets ban liste er fuld ++ERR_BADCHANNAME: :%s 479 %s %s :Illegalt navn for et Rum ++ERR_NOPRIVILEGES: :%s 481 %s :Udfrelse Ngtet - Du er ikke en IRC operator ++ERR_CHANOPRIVSNEEDED: :%s 482 %s %s :Du er ikke operator i dette rum ++ERR_CANTKILLSERVER: :%s 483 %s :Du kan ikke KILL (drbe) en server! ++ERR_RESTRICTED: :%s 484 %s :Du er begrnset ++ERR_NOOPERHOST: :%s 491 %s :Kun f ddelige kan prve at trde ind i tudsmrket ++ERR_UMODEUNKNOWNFLAG: :%s 501 %s :Ukendt MODE flag ++ERR_USERSDONTMATCH: :%s 502 %s :Kan ikke ndre mode for andre brugere ++ERR_GHOSTEDCLIENT: :%s 503 %s :Beskeden kunne ikke blive leveret til %s ++ERR_USERNOTONSERV: :%s 504 %s %s :Brugeren er ikke p denne server +diff --exclude CVS --exclude .cvsignore -urN ircd-hybrid/messages/ircd-dutch.lang /home/joshk/devel/ircd-hybrid-STABLE/messages/ircd-dutch.lang +--- ircd-hybrid/messages/ircd-dutch.lang 1969-12-31 16:00:00.000000000 -0800 ++++ /home/joshk/devel/ircd-hybrid-STABLE/messages/ircd-dutch.lang 2003-06-26 01:12:03.000000000 -0700 +@@ -0,0 +1,90 @@ ++; dutch language ++; No idea who did this. (db) ++; $Id: ircd-dutch.lang,v 1.5 2003/05/18 14:15:58 adx Exp $ ++ ++RPL_WELCOME: :%s 001 %s :Welkom op het %s Internet Relay Netwerk %s ++RPL_YOURHOST: :%s 002 %s :Je host is %s, werkend met versie %s ++RPL_CREATED: :%s 003 %s :Deze server is geboren op %s ++RPL_ISUPPORT: :%s 005 %s %s :zijn ondersteund door deze server ++RPL_REDIR: :%s 010 %s %s %d :Gebruik deze Server/Port A.U.B. ++RPL_TRACEUSER: :%s 205 %s Gebruiker %s %s (%s) %lu %lu ++RPL_TRACECLASS: :%s 209 %s Klasse %s %d ++RPL_ENDOFSTATS: :%s 219 %s %c :Einde van /STATS rapportage ++RPL_STATSUPTIME: :%s 242 %s :Server is al %d dagen up, %d:%02d:%02d ++RPL_STATSCONN: :%s 250 %s :Hoogst aantal connecties: %d (%d clients) (%d connecties ontvangen) ++RPL_LUSERCLIENT: :%s 251 %s :Er zijn %d zichtbare -en %d onzichtbare gebruikers op %d servers ++RPL_LUSEROP: :%s 252 %s %d :IRC Operators verbonden ++RPL_LUSERUNKNOWN: :%s 253 %s %d :onbekende connectie(s) ++RPL_LUSERCHANNELS: :%s 254 %s %d :kanalen gevormd ++RPL_LUSERME: :%s 255 %s :Ik heb %d gebruikers en %d servers ++RPL_ADMINME: :%s 256 %s :Administratieve informatie over %s ++RPL_ENDOFTRACE: :%s 262 %s %s :Einde van TRACE ++RPL_LOAD2HI: :%s 263 %s :Server is tijdelijk te zwaar belast. Wacht even enprobeer het opnieuw. ++RPL_LOCALUSERS: :%s 265 %s :Huidige lokale gebruikers: %d Max: %d ++RPL_GLOBALUSERS: :%s 266 %s :Huidige globale gebruikers: %d Max: %d ++RPL_UNAWAY: :%s 305 %s :Je bent niet langer gemarkeerd als afwezig ++RPL_NOWAWAY: :%s 306 %s :Je bent nu gemarkeerd als afwezig ++RPL_WHOISOPERATOR: :%s 313 %s %s :is een IRC Operator ++RPL_ENDOFWHO: :%s 315 %s %s :Einde van /WHO lijst. ++RPL_WHOISIDLE: :%s 317 %s %s %d %d :seconden idle, inlog tijd ++RPL_ENDOFWHOIS: :%s 318 %s %s :Einde van /WHOIS lijst. ++RPL_LISTSTART: :%s 321 %s Kanaal :Users Naam ++RPL_LISTEND: :%s 323 %s :Einde van /LIST ++RPL_NOTOPIC: :%s 331 %s %s :Geen onderwerp gezet ++RPL_ENDOFINVEXLIST: :%s 347 %s %s :Einde van Kanaal Uitnodigings-lijst ++RPL_ENDOFEXCEPTLIST: :%s 349 %s %s :Einde van Kanaal Uitzondering-lijst ++RPL_CLOSING: :%s 362 %s %s :Gesloten. Status = %d ++RPL_CLOSEEND: :%s 363 :%s %d: Verbindingen Gesloten ++RPL_ENDOFLINKS: :%s 365 %s %s :Einde van /LINKS lijst. ++RPL_ENDOFNAMES: :%s 366 %s %s :Einde van /NAMES lijst. ++RPL_ENDOFBANLIST: :%s 368 %s %s :Einde van Kanaal Verban-lijst ++RPL_ENDOFWHOWAS: :%s 369 %s %s :Einde van WHOWAS ++RPL_ENDOFINFO: :%s 374 %s :Einde van /INFO lijst ++RPL_MOTDSTART: :%s 375 %s :- %s Bericht van de Dag - ++RPL_ENDOFMOTD: :%s 376 %s :Einde van /MOTD commando. ++RPL_YOUREOPER: :%s 381 %s :Je bent nu volwaardig lid van De Harde Kern!. ++RPL_REHASHING: :%s 382 %s %s :Rehasjing ++ERR_NOSUCHNICK: :%s 401 %s %s :Onbekende nick/kanaal ++ERR_NOSUCHSERVER: :%s 402 %s %s :Onbekende server ++ERR_NOSUCHCHANNEL: :%s 403 %s %s :Onbekend kanaal ++ERR_CANNOTSENDTOCHAN: :%s 404 %s %s :Kan niets naar het kanaal verzenden ++ERR_TOOMANYCHANNELS: :%s 405 %s %s :Je zit al in te veel kanalen ++ERR_WASNOSUCHNICK: :%s 406 %s %s :Die nicknaam was er niet ++ERR_TOOMANYTARGETS: :%s 407 %s %s :Te veel ontvangers. Slechts %d verwerkt ++ERR_NOORIGIN: :%s 409 %s :Geen bron vermeld ++ERR_NORECIPIENT: :%s 411 %s :Geen ontvanger gespecificeerd (%s) ++ERR_NOTEXTTOSEND: :%s 412 %s :Geen tekst om te verzenden ++ERR_NOTOPLEVEL: :%s 413 %s %s :Geen toplevel domein gespecificeerd ++ERR_WILDTOPLEVEL: :%s 414 %s %s :Joker in toplevel Domein ++ERR_UNKNOWNCOMMAND: :%s 421 %s %s :Wablief? ++ERR_NOMOTD: :%s 422 %s :MOTD Bestand bestaat niet ++ERR_NOADMININFO: :%s 423 %s %s :Geen administratieve informatie beschikbaar ++ERR_NONICKNAMEGIVEN: :%s 431 %s :Geen nicknaam gespecificeerd ++ERR_ERRONEUSNICKNAME: :%s 432 %s %s :Nicknaam bevat foutieve tekens ++ERR_NICKNAMEINUSE: :%s 433 %s %s :Nicknaam is reeds bezet ++ERR_NICKCOLLISION: :%s 436 %s %s :Nicknaam botsing KILL ++ERR_UNAVAILRESOURCE: :%s 437 %s %s :Nick/kanaal is tijdelijk niet beschikbaar ++ERR_USERNOTINCHANNEL: :%s 441 %s %s %s :Die is/zijn niet in dat kanaal ++ERR_NOTONCHANNEL: :%s 442 %s %s :Jij bent niet in dat kanaal ++ERR_USERONCHANNEL: :%s 443 %s %s %s :is reeds op het kanaal ++ERR_NOTREGISTERED: :%s 451 %s :Je bent (nog) niet geregistreerd ++ERR_NEEDMOREPARAMS: :%s 461 %s %s :Niet genoeg parameters ++ERR_ALREADYREGISTRED: :%s 462 %s :Je mag niet opnieuw registreren ++ERR_PASSWDMISMATCH: :%s 464 %s :Foutief Wachtwoord ++ERR_YOUREBANNEDCREEP: :%s 465 %s :Je bent verbannen van deze server- %s ++ERR_CHANNELISFULL: :%s 471 %s %s :Kan kanaal niet joinen (het zit vol (+l)) ++ERR_UNKNOWNMODE: :%s 472 %s %c :is een onbekende mode voor me ++ERR_INVITEONLYCHAN: :%s 473 %s %s :Kan het kanaal niet joinen (uitnodiging vereist (+i)) ++ERR_BANNEDFROMCHAN: :%s 474 %s %s :Kan kanaal niet joinen (verbannen (+b)) ++ERR_BADCHANNELKEY: :%s 475 %s %s :Kan kanaal niet joinen (versleuteld (+k)) ++ERR_BANLISTFULL: :%s 478 %s %s %s :Kanaal verban-lijst zit vol ++ERR_BADCHANNAME: :%s 479 %s %s :Foutief kanaal-naam ++ERR_NOPRIVILEGES: :%s 481 %s :Toestemming geweigerd - Je bent geen IRC operator ++ERR_CHANOPRIVSNEEDED: :%s 482 %s %s :Je bent geen operator in dit kanaal ++ERR_CANTKILLSERVER: :%s 483 %s :Je kunt een server niet killen! ++ERR_RESTRICTED: :%s 484 %s :Je mogelijkheden zijn beperkt ++ERR_NOOPERHOST: :%s 491 %s :Slechts weinigen van de stervelijken mogen de Harde Kern betreden ++ERR_UMODEUNKNOWNFLAG: :%s 501 %s :Onbekende MODE flag ++ERR_USERSDONTMATCH: :%s 502 %s :Je kunt een mode niet veranderen voor een andere gebruiker ++ERR_GHOSTEDCLIENT: :%s 503 %s :Bericht kon niet worden afgeleverd aan %s ++ERR_USERNOTONSERV: :%s 504 %s %s :Gebruiker zit niet op deze server +diff --exclude CVS --exclude .cvsignore -urN ircd-hybrid/messages/ircd-french.lang /home/joshk/devel/ircd-hybrid-STABLE/messages/ircd-french.lang +--- ircd-hybrid/messages/ircd-french.lang 1969-12-31 16:00:00.000000000 -0800 ++++ /home/joshk/devel/ircd-hybrid-STABLE/messages/ircd-french.lang 2003-06-26 01:12:03.000000000 -0700 +@@ -0,0 +1,116 @@ ++; ircd-hybrid-7 custom message file ++; Copyright (C) 2003 ++; Joshua Kwan ++; $Id: ircd-french.lang,v 1.5 2003/06/01 23:46:51 joshk Exp $ ++ ++RPL_LUSEROP: :%s 252 %s %d :oprateurs IRC en ligne ++RPL_LOAD2HI: :%s 263 %s :Veuillez patienter, le serveur est trop occup ++RPL_UNAWAY: :%s 305 %s :Vous n'tes plus marqu 'absent' ++RPL_NOWAWAY: :%s 306 %s :Vous tes maintenant marqu 'absent' ++RPL_WHOISOPERATOR: :%s 313 %s %s :est un oprateur IRC ++RPL_YOUREOPER: :%s 381 %s :Vous tes maintenant un oprateur IRC ++RPL_REHASHING: :%s 382 %s %s :Le serveur relit le fichier de configuration ++RPL_WELCOME: :%s 001 %s :Bienvenue au rseau IRC %s %s ++RPL_YOURHOST: :%s 002 %s :Votre serveur est %s, version %s ++RPL_CREATED: :%s 003 %s :Ce serveur a t cre %s ++RPL_MYINFO: :%s 004 %s %s %s oiwszcerkfydnxbaugl biklmnopstveIha bkloveIh ++RPL_ISUPPORT: :%s 005 %s %s :sont supports par ce serveur ++RPL_REDIR: :%s 010 %s %s %d :Veuillez utiliser ce serveur ++RPL_MAPEND: :%s 017 %s :Fin de /MAP ++RPL_TRACELINK: :%s 200 %s Lien %s %s %s ++RPL_TRACECONNECTING: :%s 201 %s Essai. %s %s ++RPL_TRACEOPERATOR: :%s 204 %s Opr %s %s (%s) %lu %lu ++RPL_TRACEUSER: :%s 205 %s Client %s %s (%s) %lu %lu ++RPL_TRACESERVER: :%s 206 %s Serv. %s %dS %dC %s %s!%s@%s %lu ++RPL_TRACENEWTYPE: :%s 208 %s 0 %s ++RPL_TRACECLASS: :%s 209 %s Classe %s %d ++RPL_ENDOFSTATS: :%s 219 %s %c :Fin de reportage /STATS ++RPL_STATSUPTIME: :%s 242 %s :Le serveur fonctionne depuis %d jours, %dh %dm %ds ++RPL_STATSCONN: :%s 250 %s :Plus grand nombre de connexions simultanes: %d (%d clients) (%d connexions reues) ++RPL_LUSERCLIENT: :%s 251 %s :Il y a %d clients et %d invisibles sur %d serveurs ++RPL_LUSERUNKNOWN: :%s 253 %s %d :connexion(s) inconnue(s) ++RPL_LUSERCHANNELS: :%s 254 %s %d :chanes cres ++RPL_LUSERME: :%s 255 %s :J'ai %d clients et %d serveurs ++RPL_ADMINME: :%s 256 %s :Renseignements administratives %s ++RPL_ENDOFTRACE: :%s 262 %s %s :Fin de TRACE ++RPL_LOCALUSERS: :%s 265 %s :Clients locaux: %d Max: %d ++RPL_GLOBALUSERS: :%s 266 %s :Clients globaux: %d Max: %d ++RPL_ENDOFACCEPT: :%s 282 %s :Fin de liste /ACCEPT. ++RPL_ISMESSAGING: :%s 283 %s :Client %s vous contacte et vous avez mis le mode +g ++RPL_ENDOFWHO: :%s 315 %s %s :Fin de /WHO list. ++RPL_WHOISIDLE: :%s 317 %s %s %d %d :seconds idle ++RPL_ENDOFWHOIS: :%s 318 %s %s :Fin de /WHOIS list. ++RPL_LISTSTART: :%s 321 %s Chane :Clients Nom ++RPL_LISTEND: :%s 323 %s :Fin de /LIST ++RPL_NOTOPIC: :%s 331 %s %s :Il n'y a pas de sujet ++RPL_WHOISACTUALLY: :%s 338 %s %s %s :utilise vraiment l'addresse ++RPL_ENDOFINVEXLIST: :%s 347 %s %s :Fin de liste des invits ++RPL_ENDOFEXCEPTLIST: :%s 349 %s %s :Fin de liste des exceptionns ++RPL_CLOSING: :%s 362 %s %s :Ferm. Etat = %d ++RPL_CLOSEEND: :%s 363 %s %d: Connexions fermes ++RPL_ENDOFLINKS: :%s 365 %s %s :Fin de liste /LINKS. ++RPL_ENDOFNAMES: :%s 366 %s %s :Fin de liste /NAMES. ++RPL_ENDOFBANLIST: :%s 368 %s %s :Fin de liste des interdits de la chane ++RPL_ENDOFWHOWAS: :%s 369 %s %s :Fin de WHOWAS ++RPL_INFOSTART: :%s 373 %s :INFO Serveur ++RPL_ENDOFINFO: :%s 374 %s :Fin de liste /INFO. ++RPL_MOTDSTART: :%s 375 %s :- %s Message du jour - ++RPL_ENDOFMOTD: :%s 376 %s :Fin de commande /MOTD. ++ERR_PASSWDMISMATCH: :%s 464 %s :Faux mot de passe ++ERR_NOPRIVILEGES: :%s 481 %s :Vous n'avez pas ce droit puisque vous n'tes pas un oprateur ++ERR_CHANOPRIVSNEEDED: :%s 482 %s %s :Vous n'avez pas assez de pouvoir dans cette chane IRC pour faire a ++ERR_CANTKILLSERVER: :%s 483 %s :Impossible de /KILLer un serveur! ++ERR_NOOPERHOST: :%s 491 %s :Vous manquez la bonne addresse ou le bon mot de passe pour devenir oprateur IRC ++ERR_NOSUCHNICK: :%s 401 %s %s :Aucun(e) client/chane. ++ERR_NOSUCHSERVER: :%s 402 %s %s :Aucun serveur ++ERR_NOSUCHCHANNEL: :%s 403 %s %s :Aucune chane ++ERR_CANNOTSENDTOCHAN: :%s 404 %s %s :Impossible d'envoyer la chane ++ERR_TOOMANYCHANNELS: :%s 405 %s %s :Vous tes dans trop de chanes ++ERR_WASNOSUCHNICK: :%s 406 %s %s :Il n'y avait pas un tel nom ++ERR_TOOMANYTARGETS: :%s 407 %s %s :Trop de destinations. Seulement %d ont t lus. ++ERR_NOORIGIN: :%s 409 %s :Vous n'avez pas marqu d'origine ++ERR_NORECIPIENT: :%s 411 %s :Vous n'avez pas marqu de destination (%s) ++ERR_NOTEXTTOSEND: :%s 412 %s :Pas de texte envoyer ++ERR_NOTOPLEVEL: :%s 413 %s %s :Aucune domaine marqu ++ERR_UNKNOWNCOMMAND: :%s 421 %s %s :Commande inconnue ++ERR_NOMOTD: :%s 422 %s :Fichier de message du jour manquant ++ERR_NOADMININFO: :%s 423 %s %s :Il n'y a pas de renseignements administratives ++ERR_NONICKNAMEGIVEN: :%s 431 %s :Aucun nom donn ++ERR_ERRONEUSNICKNAME: :%s 432 %s %s :Nom inappropri ++ERR_NICKNAMEINUSE: :%s 433 %s %s :Ce nom est dj utilis. ++ERR_NICKCOLLISION: :%s 436 %s %s :Collision de noms KILL ++ERR_UNAVAILRESOURCE: :%s 437 %s %s :Client/chane temporairement indisponible ++ERR_NICKTOOFAST: :%s 438 %s %s %s :Attendez %d secondes avant de changer votre nom encore. ++ERR_USERNOTINCHANNEL: :%s 441 %s %s %s :Il n'est pas sur cette chane ++ERR_NOTONCHANNEL: :%s 442 %s %s :Vous n'tes pas sur cette chane ++ERR_USERONCHANNEL: :%s 443 %s %s %s :est dj sur chane ++ERR_NOTREGISTERED: :%s 451 %s :Vous ne vous tes pas enregistr ++ERR_ACCEPTFULL: :%s 456 %s :Liste d'acceptance pleine ++ERR_ACCEPTEXIST: :%s 457 %s %s :est dj sur votre liste d'acceptance ++ERR_ACCEPTNOT: :%s 458 %s %s :n'est pas sur votre liste d'acceptance ++ERR_NEEDMOREPARAMS: :%s 461 %s %s :Pas assez de paramtres ++ERR_ALREADYREGISTRED: :%s 462 %s :Vous ne pouvez pas vous enregistrer nouveau ++ERR_YOUREBANNEDCREEP: :%s 465 %s :Vous tes interdit d'utiliser ce serveur %s ++ERR_CHANNELISFULL: :%s 471 %s %s :Impossible de joindre (+l) ++ERR_UNKNOWNMODE: :%s 472 %s %c :m'est inconnu ++ERR_INVITEONLYCHAN: :%s 473 %s %s :Impossible de joindre (+i) ++ERR_BANNEDFROMCHAN: :%s 474 %s %s :Impossible de joindre (+b) ++ERR_BADCHANNELKEY: :%s 475 %s %s :Impossible de joindre (+k) ++ERR_BANLISTFULL: :%s 478 %s %s %s :Liste d'interdits est plein ++ERR_BADCHANNAME: :%s 479 %s %s :Nom de chane illgale ++ERR_RESTRICTED: :%s 484 %s :Vous tes restraints ++ERR_UMODEUNKNOWNFLAG: :%s 501 %s :MODE client inconnue ++ERR_USERSDONTMATCH: :%s 502 %s :Impossible de modifier la mode des autres clients ++ERR_GHOSTEDCLIENT: :%s 503 %s :Le message n'est pas parvenu %s ++ERR_USERNOTONSERV: :%s 504 %s %s :Client n'est pas sur ce serveur ++ERR_WRONGPONG: :%s 513 %s :Pour connecter tapez /QUOTE PONG %lu ++ERR_LISTSYNTAX: :%s 521 %s :Mauvaise syntaxe /LIST ++ERR_HELPNOTFOUND: :%s 524 %s %s :Renseignement n'existe pas ++RPL_ENDOFMODLIST: :%s 703 %s :Fin de /MODLIST. ++RPL_ENDOFHELP: :%s 706 %s %s :Fin de /HELP. ++RPL_KNOCK: :%s 710 %s %s %s!%s@%s :a demand d'tre invit ++RPL_KNOCKDLVR: :%s 711 %s %s :Votre KNOCK a t envoy. ++ERR_TOOMANYKNOCK: :%s 712 %s %s :Trop de KNOCKs (%s). ++ERR_CHANOPEN: :%s 713 %s %s :La chane est ouverte. ++ERR_KNOCKONCHAN: :%s 714 %s %s :Vous tes dj sur cette chane. ++ERR_KNOCKDISABLED: :%s 715 %s :Les KNOCKs sont dsactivs ici. +diff --exclude CVS --exclude .cvsignore -urN ircd-hybrid/messages/ircd-german.lang /home/joshk/devel/ircd-hybrid-STABLE/messages/ircd-german.lang +--- ircd-hybrid/messages/ircd-german.lang 1969-12-31 16:00:00.000000000 -0800 ++++ /home/joshk/devel/ircd-hybrid-STABLE/messages/ircd-german.lang 2003-06-26 01:12:03.000000000 -0700 +@@ -0,0 +1,95 @@ ++; ircd-hybrid-7 custom message file ++; Copyright (C) 2000 ++; David Taylor , 2000. ++; $Id: ircd-german.lang,v 1.7 2003/05/18 14:15:58 adx Exp $ ++ ++RPL_WELCOME: :%s 001 %s :Wilkommen im %s Internet Relay Chat Network %s ++RPL_YOURHOST: :%s 002 %s :Ihr host ist %s, die aktuelle version is %s ++RPL_CREATED: :%s 003 %s :Dieser Server is am %s kreiert worden. ++RPL_ISUPPORT: :%s 005 %s %s :werden von diesem Server untersttzt. ++RPL_REDIR: :%s 010 %s %s %d :Bitte benuzten Sie diesen Server/Port anstelle des von Ihnen gewhlten ++RPL_TRACELINK: :%s 200 %s verlinkt %s %s %s ++RPL_TRACECONNECTING: :%s 201 %s Versuchen Sie. %s %s ++RPL_TRACEOPERATOR: :%s 204 %s Operator %s %s (%s) %lu %lu ++RPL_TRACEUSER: :%s 205 %s Benutzer %s %s (%s) %lu %lu ++RPL_TRACESERVER: :%s 206 %s Server %s %dS %dC %s %s!%s@%s %lu ++RPL_TRACENEWTYPE: :%s 208 %s 0 %s ++RPL_TRACECLASS: :%s 209 %s Klasse %s %d ++RPL_ENDOFSTATS: :%s 219 %s %c :Ende des /STATS Reportes ++RPL_STATSUPTIME: :%s 242 %s :Dieser Server ist seit %d Tagen aktiv, %d:%02d:%02d ++RPL_STATSCONN: :%s 250 %s :Maximum Verbindungen: %d (%d Besucher) (%d Verbindungen sind bei diesem Server eingegangen) ++RPL_LUSERCLIENT: :%s 251 %s :Dieser Server beherbergt %d Besucher, davon sind %d als unsichtbar angemeldet. Die Besucher sind ber %d Server verteilt ++RPL_LUSEROP: :%s 252 %s %d :IRC Operatoren stehen zu Ihrer Verfgung ++RPL_LUSERUNKNOWN: :%s 253 %s %d :Unbekannte Verbindungen ++RPL_LUSERCHANNELS: :%s 254 %s %d :Chat Rume stehen zu Ihrer Verfgung ++RPL_LUSERME: :%s 255 %s :Ich beherberge %d Besucher und %d Server sind mit mir verbunden ++RPL_ADMINME: :%s 256 %s :Administrative Informationen fr %s ++RPL_ENDOFTRACE: :%s 262 %s %s :Ende der TRACE Nachricht ++RPL_LOAD2HI: :%s 263 %s :Zur Zeit kann Ihre Anfrage nicht bearbeitet werden. Der Server ist zu beschftigt. ++RPL_LOCALUSERS: :%s 265 %s :Anzahl aller lokalen User, zur Zeit: %d Maximum: %d ++RPL_GLOBALUSERS: :%s 266 %s :Anzahl der globalen User, zur Zeit: %d Maximum: %d ++RPL_UNAWAY: :%s 305 %s :Willkommen zurck. /away ist nun deaktiviert. ++RPL_NOWAWAY: :%s 306 %s :Ok, /away ist aktiviert ++RPL_WHOISOPERATOR: :%s 313 %s %s :ist ein IRC Operator ++RPL_ENDOFWHO: :%s 315 %s %s :Ende des /WHO Reportes. ++RPL_WHOISIDLE: :%s 317 %s %s %d %d :Sekunden unttig, loggte sich zu dieser Zeit ein. ++RPL_ENDOFWHOIS: :%s 318 %s %s :Ende des /WHOIS Reportes. ++RPL_LISTSTART: :%s 321 %s Raum :Besucher Name ++RPL_LISTEND: :%s 323 %s :Ende des /LIST ++RPL_NOTOPIC: :%s 331 %s %s :Es ist kein Thema fr diesen Raum erhtlich ++RPL_ENDOFINVEXLIST: :%s 347 %s %s :Ende der Liste von Einladungen fr diesen Raum ++RPL_ENDOFEXCEPTLIST: :%s 349 %s %s :Ende der Liste aller Ausnahmen fr diesen Raum ++RPL_CLOSING: :%s 362 %s %s :Geschlossen. Status = %d ++RPL_CLOSEEND: :%s 363 %s %d :Verbindung getrennt ++RPL_ENDOFLINKS: :%s 365 %s %s :Ende des /LINKS Reportes. ++RPL_ENDOFNAMES: :%s 366 %s %s :Ende des /NAMES Reportes. ++RPL_ENDOFBANLIST: :%s 368 %s %s :Ende der ban Liste fr diesen Raum ++RPL_ENDOFWHOWAS: :%s 369 %s %s :Ende des WHOWAS ++RPL_ENDOFINFO: :%s 374 %s :Ende des /INFO Reportes. ++RPL_ENDOFMOTD: :%s 376 %s :Ende des /MOTD ++RPL_YOUREOPER: :%s 381 %s :Wilkommen in Olymp. ++RPL_REHASHING: :%s 382 %s %s :Die Konfiguration wurde erneut geladen ++ERR_NOSUCHNICK: :%s 401 %s %s :Diesen Raum oder Nicknamen, gibt es nicht ++ERR_NOSUCHSERVER: :%s 402 %s %s :Diesen Server gibt es nicht ++ERR_NOSUCHCHANNEL: :%s 403 %s %s :Diesen Chat Raum gibt es nicht ++ERR_CANNOTSENDTOCHAN: :%s 404 %s %s :Ihre Nachricht konnte nicht an den Chat Raum gesendet werden. Vielleicht ist er moderiert ++ERR_TOOMANYCHANNELS: :%s 405 %s %s :Sie sind in zu vielen Chat Rumen gleichzeitig ++ERR_WASNOSUCHNICK: :%s 406 %s %s :Diesen Nicknamen hat es nie gegeben ++ERR_TOOMANYTARGETS: :%s 407 %s %s :Die Nachricht wurde an zu viele Personen geschickt. Nur %d wurden weitergeleitet ++ERR_NOORIGIN: :%s 409 %s :von wem kommt diese Nachricht? ++ERR_NORECIPIENT: :%s 411 %s :An wen soll diese Nachricht geschickt werden? (%s) ++ERR_NOTEXTTOSEND: :%s 412 %s :Es gibt keine Nachticht zu senden ++ERR_NOTOPLEVEL: :%s 413 %s %s :Es wurde keine toplevel domain spezifiziert ++ERR_WILDTOPLEVEL: :%s 414 %s %s :Es wurde ein Wildcard im toplevel Domain gefunden ++ERR_UNKNOWNCOMMAND: :%s 421 %s %s :Unbekannter Befehl ++ERR_NOMOTD: :%s 422 %s :Es gibt keine MOTD. Die MOTD Datei ist nicht vorhanden ++ERR_NOADMININFO: :%s 423 %s %s :Es stehen keine Administrativen Informationen zur Verfgung ++ERR_NONICKNAMEGIVEN: :%s 431 %s :Kein Nickname wurde angegeben ++ERR_ERRONEUSNICKNAME: :%s 432 %s %s :Diesen Nicknamen knnen Sie nicht benutzen ++ERR_NICKNAMEINUSE: :%s 433 %s %s :Dieser Nickname wird schon verwendet ++ERR_NICKCOLLISION: :%s 436 %s %s :Nicknamen Kollision deswegen KILL ++ERR_UNAVAILRESOURCE: :%s 437 %s %s :Der Nickname oder Raum steht vorbergehend nicht zur Verfgung ++ERR_USERNOTINCHANNEL: :%s 441 %s %s %s :Die Empfnger sind nicht in diesem Raum ++ERR_NOTONCHANNEL: :%s 442 %s %s :Sie sind nicht in diesem Raum ++ERR_USERONCHANNEL: :%s 443 %s %s %s :ist schon in diesem Raum ++ERR_NOTREGISTERED: :%s 451 %s :Sie haben sich nicht registriert ++ERR_NEEDMOREPARAMS: :%s 461 %s %s :Es wurden nicht gengend Parameter bertragen ++ERR_ALREADYREGISTRED: :%s 462 %s :Sie drfen sich nicht nocheinmal registrieren ++ERR_PASSWDMISMATCH: :%s 464 %s :Das Passwort ist falsch. ++ERR_YOUREBANNEDCREEP: :%s 465 %s :Sie haben keinen Zutritt zu diesem Server- %s ++ERR_CHANNELISFULL: :%s 471 %s %s :Sie haben keinen zutritt zu diesem Raum (+l) ++ERR_UNKNOWNMODE: :%s 472 %s %c :Ich kenne diese mode nicht, sorry ++ERR_INVITEONLYCHAN: :%s 473 %s %s :Sie knnen diesen Raum nur mit einer Einladung betreten ++ERR_BANNEDFROMCHAN: :%s 474 %s %s :Sie haben keinen Zutritt zu diesem Raum (+b) ++ERR_BADCHANNELKEY: :%s 475 %s %s :Sie knnen diesen Raum nur mit dem richtigen Passwort betreten ++ERR_BANLISTFULL: :%s 478 %s %s %s :Die ban Liste ist voll ++ERR_BADCHANNAME: :%s 479 %s %s :Sie knnen diesen Raumnamen nicht benutzen ++ERR_NOPRIVILEGES: :%s 481 %s :Der Zutritt zum Olymp wurde Ihnen verweigert ++ERR_CHANOPRIVSNEEDED: :%s 482 %s %s :Sie besitzen nicht die ntigen Privilegien fr diese Aktion ++ERR_CANTKILLSERVER: :%s 483 %s :Ein Server reagiert nicht auf das KILL Kommando ++ERR_RESTRICTED: :%s 484 %s :Sie unterliegen Restriktionen ++ERR_NOOPERHOST: :%s 491 %s :Sie haben keinen Zugriff auf die erweiterten Funktionen dieses Servers ++ERR_UMODEUNKNOWNFLAG: :%s 501 %s :Dieser MODE ist mir nicht bekannt ++ERR_USERSDONTMATCH: :%s 502 %s :Sie knnen die modes fr einen anderen Besucher nicht ndern ++ERR_GHOSTEDCLIENT: :%s 503 %s :Die Nachricht konnte nicht an %s geschickt werden ++ERR_USERNOTONSERV: :%s 504 %s %s :Der Besucher ist nicht auf diesem Server +diff --exclude CVS --exclude .cvsignore -urN ircd-hybrid/messages/ircd-norwegian.lang /home/joshk/devel/ircd-hybrid-STABLE/messages/ircd-norwegian.lang +--- ircd-hybrid/messages/ircd-norwegian.lang 1969-12-31 16:00:00.000000000 -0800 ++++ /home/joshk/devel/ircd-hybrid-STABLE/messages/ircd-norwegian.lang 2003-06-26 01:12:03.000000000 -0700 +@@ -0,0 +1,91 @@ ++; SOME DESCRIPTIVE TITLE. ++; Copyright (C) YEAR Free Software Foundation, Inc. ++; FIRST AUTHOR , YEAR. ++; $Id: ircd-norwegian.lang,v 1.3 2003/05/18 14:15:58 adx Exp $ ++ ++RPL_WELCOME: :%s 001 %s :Velkommen til %s Internet Relay Nettverket %s ++RPL_YOURHOST: :%s 002 %s :Verten din er %s, som bruker versjon %s ++RPL_CREATED: :%s 003 %s :Serveren ble kompilert %s ++RPL_ISUPPORT: :%s 005 %s %s :er gyldig for denne serveren ++RPL_REDIR: :%s 010 %s %s %d :Vennligst bruk Server/Port istedenfor ++RPL_TRACECONNECTING: :%s 201 %s Prv. %s %s ++RPL_TRACEHANDSHAKE: :%s 202 %s T.S. %s %s ++RPL_TRACEUSER: :%s 205 %s Bruker %s %s (%s) %lu %lu ++RPL_TRACENEWTYPE: :%s 208 %s 0 %s ++RPL_TRACECLASS: :%s 209 %s Klasse %s %d ++RPL_STATSUPTIME: :%s 242 %s :Serveren har vrt oppe %d dager, %d:%02d:%02d ++RPL_STATSCONN: :%s 250 %s :Hyeste tilkoblings telling: %d (%d klienter) (%d tilkoblinger received) ++RPL_LUSERCLIENT: :%s 251 %s :Det er %d brukere og %d usynlige p %d serverere ++RPL_LUSEROP: :%s 252 %s %d :IRC Operatrer online ++RPL_LUSERUNKNOWN: :%s 253 %s %d :ukjente tilkoblinger ++RPL_LUSERCHANNELS: :%s 254 %s %d :kanaler laget ++RPL_LUSERME: :%s 255 %s :Jeg har %d klienter og %d serverere ++RPL_ADMINME: :%s 256 %s :Administrativ informasjon om %s ++RPL_ENDOFTRACE: :%s 262 %s %s :Slutten av TRACE ++RPL_LOAD2HI: :%s 263 %s :Server lasten er for tiden for hy. Vennligst vent litt og prv igjen. ++RPL_LOCALUSERS: :%s 265 %s :Lokale brukere n: %d Maks: %d ++RPL_GLOBALUSERS: :%s 266 %s :Globale brukere n: %d Maks: %d ++RPL_UNAWAY: :%s 305 %s :Du er ikke lenger markert som vekke (away) ++RPL_NOWAWAY: :%s 306 %s :Du har blitt markert som vekke (away) ++RPL_WHOISOPERATOR: :%s 313 %s %s :er en IRC Operatr ++RPL_WHOISIDLE: :%s 317 %s %s %d %d :sekunder uaktiv, ploggings tid ++RPL_ENDOFWHOIS: :%s 318 %s %s :Slutten av /WHOIS listen. ++RPL_LISTSTART: :%s 321 %s Kanal :Bruker Navn ++RPL_LISTEND: :%s 323 %s :Slutten av /LIST ++RPL_NOTOPIC: :%s 331 %s %s :Ingen topic (overskrift) er satt. ++RPL_ENDOFINVEXLIST: :%s 347 %s %s :Slutten av Kanal Invite List (Inviterte Listen) ++RPL_ENDOFEXCEPTLIST: :%s 349 %s %s :Slutten av Kanal Exception List (Unntaks Listen) ++RPL_CLOSING: :%s 362 %s %s :Lukket. Status = %d ++RPL_CLOSEEND: :%s 363 %s %d: Tilkobling Stengt ++RPL_ENDOFLINKS: :%s 365 %s %s :Slutten av /LINKS listen. ++RPL_ENDOFNAMES: :%s 366 %s %s :Slutten av /NAMES listen. ++RPL_ENDOFBANLIST: :%s 368 %s %s :Slutten av Kanal Ban List (Utestengt Listen) ++RPL_ENDOFWHOWAS: :%s 369 %s %s :Slutten av WHOWAS ++RPL_ENDOFINFO: :%s 374 %s :Slutten av /INFO listen. ++RPL_MOTDSTART: :%s 375 %s :- %s Beskjed for Dagen - ++RPL_ENDOFMOTD: :%s 376 %s :Slutten av /MOTD kommandoen. ++RPL_YOUREOPER: :%s 381 %s :Du har n kommet inn i... det Forbudte Omrdet! (Twilight Zone!). ++ERR_NOSUCHNICK: :%s 401 %s %s :Ikke noen slik bruker/kanal ++ERR_NOSUCHSERVER: :%s 402 %s %s :Ikke noen slik server ++ERR_NOSUCHCHANNEL: :%s 403 %s %s :Ikke noen slik kanal ++ERR_CANNOTSENDTOCHAN: :%s 404 %s %s :Kan ikke sende til kanalen ++ERR_TOOMANYCHANNELS: :%s 405 %s %s :Du har gtt p (joined) for mange kanaler ++ERR_WASNOSUCHNICK: :%s 406 %s %s :Det var ikke noen slik kallenavn (nickname) ++ERR_TOOMANYTARGETS: :%s 407 %s %s :For mange mottakere. Bare %d gikk gjennom ++ERR_NOORIGIN: :%s 409 %s :Ingen opprinnelse spesifisert ++ERR_NORECIPIENT: :%s 411 %s :Ingen mottaker definert (%s) ++ERR_NOTEXTTOSEND: :%s 412 %s :Ingen tekst sende ++ERR_NOTOPLEVEL: :%s 413 %s %s :Ingen verste-niv domene (toplevel domain) spesifisert ++ERR_WILDTOPLEVEL: :%s 414 %s %s :Uspesifisert i verste-niv domene (toplevel domain) ++ERR_UNKNOWNCOMMAND: :%s 421 %s %s :Ukjent kommando ++ERR_NOMOTD: :%s 422 %s :MOTD Filen mangler ++ERR_NOADMININFO: :%s 423 %s %s :Ingen administrativ info tilgjengelig ++ERR_NONICKNAMEGIVEN: :%s 431 %s :Ingen kallenavn (nickname) definert ++ERR_ERRONEUSNICKNAME: :%s 432 %s %s :Feilaktig Kallenavn (Nickname) ++ERR_NICKNAMEINUSE: :%s 433 %s %s :Kallenavnet (Nickname) er allered i bruk. ++ERR_NICKCOLLISION: :%s 436 %s %s :Kallenavn (Nickname) kollisjon KILL ++ERR_UNAVAILRESOURCE: :%s 437 %s %s :Kallenavnet/Kanalen er midlertidig utilgjengelig ++ERR_USERNOTINCHANNEL: :%s 441 %s %s %s :De er ikke p den kanalen ++ERR_NOTONCHANNEL: :%s 442 %s %s :Du er ikke p den kanalen ++ERR_USERONCHANNEL: :%s 443 %s %s %s :er allered p kanalen ++ERR_NOTREGISTERED: :%s 451 %s :Du har ikke registrert ++ERR_NEEDMOREPARAMS: :%s 461 %s %s :Ikke nok verdier (parameters) ++ERR_ALREADYREGISTRED: :%s 462 %s :Du kan ikke registrere ++ERR_PASSWDMISMATCH: :%s 464 %s :Passordet var inkorrekt ++ERR_YOUREBANNEDCREEP: :%s 465 %s :Du er utestengt fra denne serveren- %s ++ERR_CHANNELISFULL: :%s 471 %s %s :Kan ikke komme inn i kanalen (+l) ++ERR_UNKNOWNMODE: :%s 472 %s %c :er en ukjent modus tegn for meg ++ERR_INVITEONLYCHAN: :%s 473 %s %s :Kan ikke komme inn i kanalen (+i) ++ERR_BANNEDFROMCHAN: :%s 474 %s %s :Kan ikke komme inn i kanalen (+b) ++ERR_BADCHANNELKEY: :%s 475 %s %s :Kan ikke komme inn i kanalen (+k) ++ERR_BANLISTFULL: :%s 478 %s %s %s :Kanalens utestengings liste er full ++ERR_BADCHANNAME: :%s 479 %s %s :Ulovlig kanal navn ++ERR_NOPRIVILEGES: :%s 481 %s :Tillatelse nektet - Du er ikke en IRC operatr ++ERR_CHANOPRIVSNEEDED: :%s 482 %s %s :Du er ikke en kanal operatr ++ERR_CANTKILLSERVER: :%s 483 %s :Du kan ikke drepe (kill) en server! ++ERR_RESTRICTED: :%s 484 %s :Du er begrenset ++ERR_NOOPERHOST: :%s 491 %s :Kun f ddelige kan prve komme inn i det forbudte omrdet (twilight zone) ++ERR_UMODEUNKNOWNFLAG: :%s 501 %s :Ukjent MODE flag ++ERR_USERSDONTMATCH: :%s 502 %s :Kan ikke forandre modus p andre brukere ++ERR_GHOSTEDCLIENT: :%s 503 %s :Beskjeden kunne ikke bli levert til %s ++ERR_USERNOTONSERV: :%s 504 %s %s :Bruker er ikke p denne serveren +diff --exclude CVS --exclude .cvsignore -urN ircd-hybrid/messages/ircd-polish.lang /home/joshk/devel/ircd-hybrid-STABLE/messages/ircd-polish.lang +--- ircd-hybrid/messages/ircd-polish.lang 1969-12-31 16:00:00.000000000 -0800 ++++ /home/joshk/devel/ircd-hybrid-STABLE/messages/ircd-polish.lang 2003-06-26 01:12:03.000000000 -0700 +@@ -0,0 +1,99 @@ ++; ircd-hybrid-7 custom message file ++; Copyright (C) 2003, Piotr Niyski ++; Coding: ISO-8859-2 * CP-1250 ++; $Id: ircd-polish.lang,v 1.1 2003/05/18 14:15:58 adx Exp $ ++ ++RPL_WELCOME: :%s 001 %s :Witaj w sieci IRC %s, %s ++RPL_YOURHOST: :%s 002 %s :Twj host to %s, obecna wersja %s ++RPL_CREATED: :%s 003 %s :Ten serwer zosta utworzony %s ++RPL_ISUPPORT: :%s 005 %s %s :sa obsugiwane przez ten serwer ++RPL_REDIR: :%s 010 %s %s %d :Prosz uywa tego serwera/portu ++RPL_MAPEND: :%s 017 %s :Koniec /MAP ++RPL_ENDOFSTATS: :%s 219 %s %c :Koniec raportu /STATS ++RPL_STATSUPTIME: :%s 242 %s :Serwer dziaa %d dni, %d:%02d:%02d ++RPL_STATSCONN: :%s 250 %s :Najwysza liczba poacze: %d (%d klientw) (%d od startu serwera) ++RPL_LUSERCLIENT: :%s 251 %s :Jest %d uytkownikw i %d niewidzialnych na %d serwerach ++RPL_LUSEROP: :%s 252 %s %d :aktywnych IRC Operatorw ++RPL_LUSERUNKNOWN: :%s 253 %s %d :- liczba niezarejestrowanych poacze ++RPL_LUSERCHANNELS: :%s 254 %s %d :- liczba utworzonych kanaw ++RPL_LUSERME: :%s 255 %s :Mam %d poaczonych klientw, serwerw: %d ++RPL_ADMINME: :%s 256 %s :Informacje administracyjne o %s ++RPL_LOAD2HI: :%s 263 %s :Obciaenie serwera jest chwilowo zbyt due. Prosz zaczeka chwil i sprbowa ponownie. ++RPL_LOCALUSERS: :%s 265 %s :Liczba lokalnych uytkownikw: %d Rekord: %d ++RPL_GLOBALUSERS: :%s 266 %s :Liczba globalnych uytkownikw: %d Rekord: %d ++RPL_ENDOFACCEPT: :%s 282 %s :Koniec listy /ACCEPT. ++RPL_ISMESSAGING: :%s 283 %s :Klient %s wysya do Ciebie wiadomosc, ale masz waczone +g ++RPL_UNAWAY: :%s 305 %s :Zdjto flag nieobecnosci ++RPL_NOWAWAY: :%s 306 %s :Ustawiono flag nieobecnosci ++RPL_WHOISOPERATOR: :%s 313 %s %s :jest IRC Operatorem ++RPL_ENDOFWHO: :%s 315 %s %s :Koniec listy /WHO. ++RPL_WHOISIDLE: :%s 317 %s %s %d %d :sekund bezczynnosci, czas zalogowania ++RPL_ENDOFWHOIS: :%s 318 %s %s :Koniec listy /WHOIS. ++RPL_LISTSTART: :%s 321 %s Kana :Uytkownicy Temat ++RPL_LISTEND: :%s 323 %s :Koniec /LIST ++RPL_NOTOPIC: :%s 331 %s %s :Brak ustawionego tematu. ++RPL_WHOISACTUALLY: :%s 338 %s %s %s :w rzeczywistosci uywa hosta ++RPL_ENDOFINVEXLIST: :%s 347 %s %s :Koniec listy zaprosze kanaowych ++RPL_ENDOFEXCEPTLIST: :%s 349 %s %s :Koniec listy wyjatkw kanaowych ++RPL_ENDOFLINKS: :%s 365 %s %s :Koniec listy /LINKS. ++RPL_ENDOFNAMES: :%s 366 %s %s :Koniec listy /NAMES. ++RPL_ENDOFBANLIST: :%s 368 %s %s :Koniec listy banw kanaowych ++RPL_ENDOFWHOWAS: :%s 369 %s %s :Koniec /WHOWAS ++RPL_INFOSTART: :%s 373 %s :Informacje o serwerze ++RPL_ENDOFINFO: :%s 374 %s :Koniec listy /INFO. ++RPL_ENDOFMOTD: :%s 376 %s :Koniec komendy /MOTD. ++ERR_NOSUCHNICK: :%s 401 %s %s :Nie ma takiego nicka/kanau ++ERR_NOSUCHSERVER: :%s 402 %s %s :Nie ma takiego serwera ++ERR_NOSUCHCHANNEL: :%s 403 %s %s :Nie ma takiego kanau ++ERR_CANNOTSENDTOCHAN: :%s 404 %s %s :Nie mona wysa na kana ++ERR_TOOMANYCHANNELS: :%s 405 %s %s :Masz zbyt duo otwartych kanaw ++ERR_WASNOSUCHNICK: :%s 406 %s %s :Nie byo takiego nicka ++ERR_TOOMANYTARGETS: :%s 407 %s %s :Zbyt wiele adresatw. Obsuono tylko %d ++ERR_NOORIGIN: :%s 409 %s :Nie podano zrda ++ERR_NORECIPIENT: :%s 411 %s :Nie podano adresata (%s) ++ERR_NOTEXTTOSEND: :%s 412 %s :Brak tekstu do wysania ++ERR_NOTOPLEVEL: :%s 413 %s %s :Nie podano TLD ++ERR_WILDTOPLEVEL: :%s 414 %s %s :W TLD nie moe by znakw maskujacych ++ERR_UNKNOWNCOMMAND: :%s 421 %s %s :Nieznana komenda ++ERR_NOMOTD: :%s 422 %s :Brakuje pliku MOTD ++ERR_NOADMININFO: :%s 423 %s %s :Brak dostpnych informacji administracyjnych ++ERR_NONICKNAMEGIVEN: :%s 431 %s :Nie podano nicka ++ERR_ERRONEUSNICKNAME: :%s 432 %s %s :Nieprawidowy nick ++ERR_NICKNAMEINUSE: :%s 433 %s %s :Nick jest zajty. ++ERR_UNAVAILRESOURCE: :%s 437 %s %s :Nick/kana jest tymczasowo niedostpny ++ERR_NICKTOOFAST: :%s 438 %s %s %s :Zbyt szybka zmiana nicka. Prosz odczeka %d sekund. ++ERR_USERNOTINCHANNEL: :%s 441 %s %s %s :Nie ma takiego uytkownika na tym kanale ++ERR_NOTONCHANNEL: :%s 442 %s %s :Nie jestes na tym kanale ++ERR_USERONCHANNEL: :%s 443 %s %s %s :jest ju na kanale ++ERR_NOTREGISTERED: :%s 451 %s :Twoje poaczenie nie jest jeszcze zarejestrowane ++ERR_ACCEPTFULL: :%s 456 %s :Lista ACCEPT jest przepeniona ++ERR_ACCEPTEXIST: :%s 457 %s %s :jest ju na Twojej liscie ACCEPT ++ERR_ACCEPTNOT: :%s 458 %s %s :nie jest na Twojej liscie ACCEPT ++ERR_NEEDMOREPARAMS: :%s 461 %s %s :Za mao parametrw ++ERR_ALREADYREGISTRED: :%s 462 %s :Nie moesz zarejestrowa si ponownie ++ERR_PASSWDMISMATCH: :%s 464 %s :Nieprawidowe haso ++ERR_CHANNELISFULL: :%s 471 %s %s :Nie mona wejsc na kana (+l) ++ERR_UNKNOWNMODE: :%s 472 %s %c :to dla mnie nieznany tryb ++ERR_INVITEONLYCHAN: :%s 473 %s %s :Nie mona wejsc na kana (+i) ++ERR_BANNEDFROMCHAN: :%s 474 %s %s :Nie mona wejsc na kana (+b) ++ERR_BADCHANNELKEY: :%s 475 %s %s :Nie mona wejsc na kana (+k) ++ERR_BANLISTFULL: :%s 478 %s %s %s :Lista banw kanaowych jest przepeniona ++ERR_BADCHANNAME: :%s 479 %s %s :Niedopuszczalna nazwa kanau ++ERR_NOPRIVILEGES: :%s 481 %s :Brak uprawnie - nie jestes IRC Operatorem ++ERR_CHANOPRIVSNEEDED: :%s 482 %s %s :Nie jestes operatorem kanau ++ERR_RESTRICTED: :%s 484 %s :Twoje poaczenie jest objte restrykcja ++ERR_NOOPERHOST: :%s 491 %s :Tylko nieliczni smiertelnicy moga uzyska prawa IRC Operatora ++ERR_UMODEUNKNOWNFLAG: :%s 501 %s :Nieznana flaga MODE ++ERR_USERSDONTMATCH: :%s 502 %s :Nie moesz zmienia trybw innych uytkownikw ++ERR_GHOSTEDCLIENT: :%s 503 %s :Wiadomosc dla %s nie moe by dostarczona ++ERR_USERNOTONSERV: :%s 504 %s %s :Uytkownik nie korzysta z tego serwera ++ERR_WRONGPONG: :%s 513 %s :Aby si poaczy, wpisz /QUOTE PONG %lu ++ERR_LISTSYNTAX: :%s 521 %s :Za skadnia dla LIST, wpisz /QUOTE HELP LIST ++ERR_HELPNOTFOUND: :%s 524 %s %s :Nie odnaleziono pomocy ++RPL_ENDOFHELP: :%s 706 %s %s :Koniec /HELP. ++RPL_KNOCK: :%s 710 %s %s %s!%s@%s :prosi o zaproszenie. ++RPL_KNOCKDLVR: :%s 711 %s %s :Twj KNOCK zosta dostarczony. ++ERR_TOOMANYKNOCK: :%s 712 %s %s :Zbyt wiele KNOCK (%s). ++ERR_CHANOPEN: :%s 713 %s %s :Kana jest otwarty. ++ERR_KNOCKONCHAN: :%s 714 %s %s :Jestes ju na tym kanale. ++ERR_KNOCKDISABLED: :%s 715 %s :KNOCK jest wyaczone. +diff --exclude CVS --exclude .cvsignore -urN ircd-hybrid/messages/ircd-russian.lang /home/joshk/devel/ircd-hybrid-STABLE/messages/ircd-russian.lang +--- ircd-hybrid/messages/ircd-russian.lang 1969-12-31 16:00:00.000000000 -0800 ++++ /home/joshk/devel/ircd-hybrid-STABLE/messages/ircd-russian.lang 2003-06-26 01:12:03.000000000 -0700 +@@ -0,0 +1,94 @@ ++; ircd-hybrid-7 custom message file ++; Copyright (C) 2003 ++; Ilya Shtift , 2003. ++; $Id: ircd-russian.lang,v 1.5 2003/05/18 14:15:58 adx Exp $ ++ ++RPL_WELCOME: :%s 001 %s : %s Internet Relay Chat Network %s ++RPL_YOURHOST: :%s 002 %s : %s, %s ++RPL_CREATED: :%s 003 %s : %s ++RPL_ISUPPORT: :%s 005 %s %s : ++RPL_REDIR: :%s 010 %s %s %d : / ++RPL_MAPEND: :%s 017 %s : /MAP ++RPL_ENDOFSTATS: :%s 219 %s %c : /STATS ++RPL_STATSUPTIME: :%s 242 %s : %d , %d:%02d:%02d ++RPL_STATSCONN: :%s 250 %s : : %d (%d ) (%d ) ++RPL_LUSERCLIENT: :%s 251 %s : %d %d %d ++RPL_LUSEROP: :%s 252 %s %d :IRC ++RPL_LUSERUNKNOWN: :%s 253 %s %d : ++RPL_LUSERCHANNELS: :%s 254 %s %d : ++RPL_LUSERME: :%s 255 %s : %d %d ++RPL_ADMINME: :%s 256 %s : %s ++RPL_ENDOFTRACE: :%s 262 %s %s : TRACE ++RPL_LOAD2HI: :%s 263 %s : . . ++RPL_LOCALUSERS: :%s 265 %s : : %d : %d ++RPL_GLOBALUSERS: :%s 266 %s : : %d : %d ++RPL_UNAWAY: :%s 305 %s : away ++RPL_NOWAWAY: :%s 306 %s : away ++RPL_ENDOFWHO: :%s 315 %s %s : /WHO ++RPL_WHOISIDLE: :%s 317 %s %s %d %d : , ++RPL_ENDOFWHOIS: :%s 318 %s %s : /WHOIS. ++RPL_LISTEND: :%s 323 %s : /LIST ++RPL_NOTOPIC: :%s 331 %s %s : . ++RPL_ENDOFINVEXLIST: :%s 347 %s %s : ++RPL_ENDOFEXCEPTLIST: :%s 349 %s %s : ++RPL_CLOSING: :%s 362 %s %s :. = %d ++RPL_CLOSEEND: :%s 363 %s %d : ++RPL_ENDOFLINKS: :%s 365 %s %s : /LINKS. ++RPL_ENDOFNAMES: :%s 366 %s %s : /NAMES. ++RPL_ENDOFBANLIST: :%s 368 %s %s : ++RPL_ENDOFWHOWAS: :%s 369 %s %s : WHOWAS ++RPL_ENDOFINFO: :%s 374 %s : /INFO ++RPL_MOTDSTART: :%s 375 %s :- %s - ++RPL_ENDOFMOTD: :%s 376 %s : /MOTD. ++RPL_REHASHING: :%s 382 %s %s : ++ERR_NOSUCHNICK: :%s 401 %s %s :/ ++ERR_NOSUCHSERVER: :%s 402 %s %s : ++ERR_NOSUCHCHANNEL: :%s 403 %s %s : ++ERR_CANNOTSENDTOCHAN: :%s 404 %s %s : ++ERR_TOOMANYCHANNELS: :%s 405 %s %s : ++ERR_WASNOSUCHNICK: :%s 406 %s %s : ++ERR_NOORIGIN: :%s 409 %s : ++ERR_NOTEXTTOSEND: :%s 412 %s : ++ERR_NOTOPLEVEL: :%s 413 %s %s : ++ERR_WILDTOPLEVEL: :%s 414 %s %s :Wildcard ++ERR_UNKNOWNCOMMAND: :%s 421 %s %s : ++ERR_NOMOTD: :%s 422 %s : MOTD ++ERR_NOADMININFO: :%s 423 %s %s : ++ERR_NONICKNAMEGIVEN: :%s 431 %s : ++ERR_ERRONEUSNICKNAME: :%s 432 %s %s : ++ERR_NICKNAMEINUSE: :%s 433 %s %s : . ++ERR_NICKCOLLISION: :%s 436 %s %s : KILL ++ERR_UNAVAILRESOURCE: :%s 437 %s %s :/ ++ERR_USERNOTINCHANNEL: :%s 441 %s %s %s : ++ERR_NOTONCHANNEL: :%s 442 %s %s : ++ERR_USERONCHANNEL: :%s 443 %s %s %s : ++ERR_NOTREGISTERED: :%s 451 %s : ++ERR_NEEDMOREPARAMS: :%s 461 %s %s : ++ERR_ALREADYREGISTRED: :%s 462 %s : ++ERR_PASSWDMISMATCH: :%s 464 %s : ++ERR_YOUREBANNEDCREEP: :%s 465 %s : - %s ++ERR_CHANNELISFULL: :%s 471 %s %s : (+l) ++ERR_UNKNOWNMODE: :%s 472 %s %c : ++ERR_INVITEONLYCHAN: :%s 473 %s %s : (+i) ++ERR_BANNEDFROMCHAN: :%s 474 %s %s : (+b) ++ERR_BADCHANNELKEY: :%s 475 %s %s : (+k) ++ERR_BANLISTFULL: :%s 478 %s %s %s : ++ERR_BADCHANNAME: :%s 479 %s %s : ++ERR_NOPRIVILEGES: :%s 481 %s : - IRC ++ERR_CHANOPRIVSNEEDED: :%s 482 %s %s : ++ERR_CANTKILLSERVER: :%s 483 %s : ! ++ERR_RESTRICTED: :%s 484 %s : ++ERR_UMODEUNKNOWNFLAG: :%s 501 %s : MODE ++ERR_USERSDONTMATCH: :%s 502 %s : ++ERR_GHOSTEDCLIENT: :%s 503 %s : %s ++ERR_USERNOTONSERV: :%s 504 %s %s : ++ERR_WRONGPONG: :%s 513 %s : /QUOTE PONG %lu ++ERR_HELPNOTFOUND: :%s 524 %s %s : ++RPL_ENDOFMODLIST: :%s 703 %s : /MODLIST. ++RPL_ENDOFHELP :%s 706 %s %s : /HELP. ++RPL_KNOCK: :%s 710 %s %s %s!%s@%s : . ++RPL_KNOCKDLVR: :%s 711 %s %s : KNOCK . ++ERR_TOOMANYKNOCK: :%s 712 %s %s : KNOCKs (%s). ++ERR_CHANOPEN: :%s 713 %s %s : . ++ERR_KNOCKONCHAN: :%s 714 %s %s : . ++ERR_KNOCKDISABLED: :%s 715 %s :KNOCKs +diff --exclude CVS --exclude .cvsignore -urN ircd-hybrid/messages/ircd-spanish.lang /home/joshk/devel/ircd-hybrid-STABLE/messages/ircd-spanish.lang +--- ircd-hybrid/messages/ircd-spanish.lang 1969-12-31 16:00:00.000000000 -0800 ++++ /home/joshk/devel/ircd-hybrid-STABLE/messages/ircd-spanish.lang 2003-06-26 01:12:03.000000000 -0700 +@@ -0,0 +1,100 @@ ++; SOME DESCRIPTIVE TITLE. ++; Copyright (C) YEAR Free Software Foundation, Inc. ++; FIRST AUTHOR , YEAR. ++; $Id: ircd-spanish.lang,v 1.6 2003/05/18 14:15:58 adx Exp $ ++ ++RPL_WELCOME: :%s 001 %s :Bienvenido al %s Internet Relay Chat Network %s ++RPL_YOURHOST: :%s 002 %s :Estas en el servidor %s, corriendo la version %s ++RPL_CREATED: :%s 003 %s :Este servidor fue creado el %s ++RPL_MYINFO: :%s 004 %s %s %s oiwszcerkfydnxbaug biklmnopstveIha bkloveIh ++RPL_ISUPPORT: :%s 005 %s %s :estan disponibles en servidor ++RPL_REDIR: :%s 010 %s %s %d :Porfavor usa este puerto del servidor/envez ++RPL_TRACELINK: :%s 200 %s Link %s %s %s ++RPL_TRACECONNECTING: :%s 201 %s Trata. %s %s ++RPL_TRACEHANDSHAKE: :%s 202 %s H.S. %s %s ++RPL_TRACEOPERATOR: :%s 204 %s Oper %s %s (%s) %lu %lu ++RPL_TRACEUSER: :%s 205 %s Usuario %s %s (%s) %lu %lu ++RPL_TRACESERVER: :%s 206 %s Serv %s %dS %dC %s %s!%s@%s %lu ++RPL_TRACENEWTYPE: :%s 208 %s 0 %s ++RPL_TRACECLASS: :%s 209 %s Clase %s %d ++RPL_ENDOFSTATS: :%s 219 %s %c :Fin del Reporte de /STATS ++RPL_STATSUPTIME: :%s 242 %s :Servidor Activo %d dias, %d:%02d:%02d ++RPL_STATSCONN: :%s 250 %s :Cuenta Maxima de Conexiones: %d (%d clientes) (%d conexiones resivida) ++RPL_LUSERCLIENT: :%s 251 %s :Hay %d usuarios y %d son invisibles en %d servidores ++RPL_LUSEROP: :%s 252 %s %d :Operadores de IRC en linea ++RPL_LUSERUNKNOWN: :%s 253 %s %d :Conexion Desconosida(s) ++RPL_LUSERCHANNELS: :%s 254 %s %d :canales formados ++RPL_LUSERME: :%s 255 %s :Tengo %d clientes en %d servidor(es) ++RPL_ADMINME: :%s 256 %s :Informacion Administrativa de %s ++RPL_ENDOFTRACE: :%s 262 %s %s :Fin de TRACE ++RPL_LOAD2HI: :%s 263 %s :Servidor actualmente muy cargado. Porfavor espere un momento y trate otra vez. ++RPL_LOCALUSERS: :%s 265 %s :Usuarios locales actuales: %d Max: %d ++RPL_GLOBALUSERS: :%s 266 %s :Usuarios globales actuales: %d Max: %d ++RPL_UNAWAY: :%s 305 %s :Ahora ya no estas marcado como Ausente (away) ++RPL_NOWAWAY: :%s 306 %s :Ahora estas marcado como Ausente (away) ++RPL_WHOISOPERATOR: :%s 313 %s %s :es un Operador de IRC ++RPL_ENDOFWHO: :%s 315 %s %s :Fin de la lista de /WHO ++RPL_WHOISIDLE: :%s 317 %s %s %d %d :seconds idle, tiempo de entrada ++RPL_ENDOFWHOIS: :%s 318 %s %s :Fin de la lista de /WHOIS ++RPL_LISTSTART: :%s 321 %s Canal :Nombre de Usuarios ++RPL_LISTEND: :%s 323 %s :Fin de /LIST ++RPL_NOTOPIC: :%s 331 %s %s :Topico no establecido. ++RPL_ENDOFINVEXLIST: :%s 347 %s %s :Fin de la lista de invitados del canal ++RPL_EXCEPTLIST: :%s 348 %s %s %s %s %lu ++RPL_ENDOFEXCEPTLIST: :%s 349 %s %s :Fin de la lista de Excepciones del canal ++RPL_CLOSING: :%s 362 %s %s :Cerrado. Estado = %d ++RPL_CLOSEEND: :%s 363 %s %d: Conexiones Cerradas ++RPL_ENDOFLINKS: :%s 365 %s %s :Fin de la lista de /LINKS ++RPL_ENDOFNAMES: :%s 366 %s %s :Fin de la lista de /NAMES ++RPL_ENDOFBANLIST: :%s 368 %s %s :Fin de la lista de banned(s) del canal ++RPL_ENDOFWHOWAS: :%s 369 %s %s :Fin de WHOWAS ++RPL_INFOSTART: :%s 373 %s :INFO del Servidor ++RPL_ENDOFINFO: :%s 374 %s :Fin de la lista de /INFO ++RPL_MOTDSTART: :%s 375 %s :- %s Mensaje del dia - ++RPL_ENDOFMOTD: :%s 376 %s :Fin del comando de /MOTD ++RPL_YOUREOPER: :%s 381 %s :Has entrado a... Twilight Zone!. ++RPL_REHASHING: :%s 382 %s %s :Actualizando ++ERR_NOSUCHNICK: :%s 401 %s %s :Ese nick/canal no existe ++ERR_NOSUCHSERVER: :%s 402 %s %s :Ese servidor no existe ++ERR_NOSUCHCHANNEL: :%s 403 %s %s :Ese canal no existe ++ERR_CANNOTSENDTOCHAN: :%s 404 %s %s :No se pueden enviar mensajes al canal ++ERR_TOOMANYCHANNELS: :%s 405 %s %s :Has entrado a muchos canales ++ERR_WASNOSUCHNICK: :%s 406 %s %s :No habia nadie con ese nick ++ERR_TOOMANYTARGETS: :%s 407 %s %s :Too many recipients. Only %d processed ++ERR_NOORIGIN: :%s 409 %s :Origen no especificado ++ERR_NORECIPIENT: :%s 411 %s :No recipient given (%s) ++ERR_NOTEXTTOSEND: :%s 412 %s :No texto para enviar ++ERR_NOTOPLEVEL: :%s 413 %s %s :No toplevel domain specified ++ERR_WILDTOPLEVEL: :%s 414 %s %s :Wildcard in toplevel Domain ++ERR_UNKNOWNCOMMAND: :%s 421 %s %s :Comando desconosido ++ERR_NOMOTD: :%s 422 %s :El Mensaje del dia MOTD no esta presente ++ERR_NOADMININFO: :%s 423 %s %s :Informacion administrativa no disponible ++ERR_NONICKNAMEGIVEN: :%s 431 %s :No nickname dado ++ERR_ERRONEUSNICKNAME: :%s 432 %s %s :Nick Invalido/Erroneo ++ERR_NICKNAMEINUSE: :%s 433 %s %s :Nick actualmente en uso ++ERR_NICKCOLLISION: :%s 436 %s %s :Colision de nicks KILL ++ERR_UNAVAILRESOURCE: :%s 437 %s %s :Nick/Canal no esta disponible temporalmente ++ERR_USERNOTINCHANNEL: :%s 441 %s %s %s :No estan en el canal ++ERR_NOTONCHANNEL: :%s 442 %s %s :Tu no estas en ese canal ++ERR_USERONCHANNEL: :%s 443 %s %s %s :Ya esta en el canal ++ERR_NOTREGISTERED: :%s 451 %s :No te has registrado ++ERR_NEEDMOREPARAMS: :%s 461 %s %s :Parametros insuficientes ++ERR_ALREADYREGISTRED: :%s 462 %s :No puedes ser registrado ++ERR_PASSWDMISMATCH: :%s 464 %s :Password Incorrecto ++ERR_YOUREBANNEDCREEP: :%s 465 %s :Tu estas banned de este servidor- %s ++ERR_CHANNELISFULL: :%s 471 %s %s :No puedes entrar al canal (+l) ++ERR_UNKNOWNMODE: :%s 472 %s %c :Es un mode desconosido para mi ++ERR_INVITEONLYCHAN: :%s 473 %s %s :No puedes entrar al canal (+i) ++ERR_BANNEDFROMCHAN: :%s 474 %s %s :No puedes entrar al canal (+b) ++ERR_BADCHANNELKEY: :%s 475 %s %s :No puedes entrar al canal (+k) ++ERR_BANLISTFULL: :%s 478 %s %s %s :La lista de ban en el canal esta llena ++ERR_BADCHANNAME: :%s 479 %s %s :El nombre del canal es Ilegal o invalido ++ERR_NOPRIVILEGES: :%s 481 %s :Permiso Negado - Tu no eres un Operador de IRC ++ERR_CHANOPRIVSNEEDED: :%s 482 %s %s :Tu no eres un operador del canal ++ERR_CANTKILLSERVER: :%s 483 %s :Tu no puedes matar un servidor! ++ERR_RESTRICTED: :%s 484 %s :Estas Restringido ++ERR_NOOPERHOST: :%s 491 %s :Solamente algunos mortales pueden tratar de entrar al mundo de.. twilight zone ++ERR_UMODEUNKNOWNFLAG: :%s 501 %s :Flag MODE desconosida ++ERR_USERSDONTMATCH: :%s 502 %s :No puedes cambiar los modes de otros usuarios ++ERR_GHOSTEDCLIENT: :%s 503 %s :Mensaje no puede ser entregado a %s ++ERR_USERNOTONSERV: :%s 504 %s %s :Usuario no esta en este servidor +diff --exclude CVS --exclude .cvsignore -urN ircd-hybrid/messages/ircd-standard.example.lang /home/joshk/devel/ircd-hybrid-STABLE/messages/ircd-standard.example.lang +--- ircd-hybrid/messages/ircd-standard.example.lang 1969-12-31 16:00:00.000000000 -0800 ++++ /home/joshk/devel/ircd-hybrid-STABLE/messages/ircd-standard.example.lang 2003-06-26 01:12:03.000000000 -0700 +@@ -0,0 +1,129 @@ ++; ircd-hybrid-7 standard message file - for reference only ++; Copyright (C) 2003 Joshua Kwan ++; $Id: ircd-standard.example.lang,v 1.2 2003/05/19 04:36:26 joshk Exp $ ++ ++; Use this file as a starting point for translating everything into the ++; language you need. This file contains all of the defined events in ++; messages.tab. ++ ++; You will probably be able to leave out many of these, but in the ++; event that you need some, they're ALL here. Even the very mundane ++; ones - except where there is NULL. ++ ++; Please replace my name with yours, the title with your language, ++; remove these lines, etc. when creating your own file. ++ ++RPL_WELCOME: :%s 001 %s :Welcome to the %s Internet Relay Chat Network %s ++RPL_YOURHOST: :%s 002 %s :Your host is %s, running version %s ++RPL_CREATED: :%s 003 %s :This server was created %s ++RPL_MYINFO: :%s 004 %s %s %s oiwszcerkfydnxbaugl biklmnopstveIha bkloveIh ++RPL_ISUPPORT: :%s 005 %s %s :are supported by this server ++RPL_REDIR: :%s 010 %s %s %d :Please use this Server/Port instead ++RPL_MAPEND: :%s 017 %s :End of /MAP ++RPL_TRACELINK: :%s 200 %s Link %s %s %s ++RPL_TRACECONNECTING: :%s 201 %s Try. %s %s ++RPL_TRACEHANDSHAKE: :%s 202 %s H.S. %s %s ++RPL_TRACEUNKNOWN: :%s 203 %s ???? %s %s (%s) %d ++RPL_TRACEOPERATOR: :%s 204 %s Oper %s %s (%s) %lu %lu ++RPL_TRACEUSER: :%s 205 %s User %s %s (%s) %lu %lu ++RPL_TRACESERVER: :%s 206 %s Serv %s %dS %dC %s %s!%s@%s %lu ++RPL_TRACENEWTYPE: :%s 208 %s 0 %s ++RPL_TRACECLASS: :%s 209 %s Class %s %d ++RPL_ENDOFSTATS: :%s 219 %s %c :End of /STATS report ++RPL_STATSUPTIME: :%s 242 %s :Server Up %d days, %d ++RPL_STATSCONN: :%s 250 %s :Highest connection count: %d (%d clients) (%d connections received) ++RPL_LUSERCLIENT: :%s 251 %s :There are %d users and %d invisible on %d servers ++RPL_LUSEROP: :%s 252 %s %d :IRC Operators online ++RPL_LUSERUNKNOWN: :%s 253 %s %d :unknown connection(s) ++RPL_LUSERCHANNELS: :%s 254 %s %d :channels formed ++RPL_LUSERME: :%s 255 %s :I have %d clients and %d servers ++RPL_ADMINME: :%s 256 %s :Administrative info about %s ++RPL_ENDOFTRACE: :%s 262 %s %s :End of TRACE ++RPL_LOAD2HI: :%s 263 %s :Server load is temporarily too heavy. Please wait a while and try again. ++RPL_LOCALUSERS: :%s 265 %s :Current local users: %d Max: %d ++RPL_GLOBALUSERS: :%s 266 %s :Current global users: %d Max: %d ++RPL_ENDOFACCEPT: :%s 282 %s :End of /ACCEPT list. ++RPL_ISMESSAGING: :%s 283 %s :Client %s is messaging and you are +g ++RPL_UNAWAY: :%s 305 %s :You are no longer marked as being away ++RPL_NOWAWAY: :%s 306 %s :You have been marked as being away ++RPL_WHOISOPERATOR: :%s 313 %s %s :is an IRC Operator ++RPL_ENDOFWHO: :%s 315 %s %s :End of /WHO list. ++RPL_WHOISIDLE: :%s 317 %s %s %d %d :seconds idle ++RPL_ENDOFWHOIS: :%s 318 %s %s :End of /WHOIS list. ++RPL_LISTSTART: :%s 321 %s Channel :Users Name ++RPL_LISTEND: :%s 323 %s :End of /LIST ++RPL_NOTOPIC: :%s 331 %s %s :No topic is set. ++RPL_WHOISACTUALLY: :%s 338 %s %s %s :actually using host ++RPL_ENDOFINVEXLIST: :%s 347 %s %s :End of Channel Invite List ++RPL_ENDOFEXCEPTLIST: :%s 349 %s %s :End of Channel Exception List ++RPL_CLOSING: :%s 362 %s %s :Closed. Status = %d ++RPL_CLOSEEND: :%s 363 %s %d: Connections Closed ++RPL_ENDOFLINKS: :%s 365 %s %s :End of /LINKS list. ++RPL_ENDOFNAMES: :%s 366 %s %s :End of /NAMES list. ++RPL_ENDOFBANLIST: :%s 368 %s %s :End of Channel Ban List ++RPL_ENDOFWHOWAS: :%s 369 %s %s :End of WHOWAS ++RPL_INFOSTART: :%s 373 %s :Server INFO ++RPL_ENDOFINFO: :%s 374 %s :End of /INFO list. ++RPL_MOTDSTART: :%s 375 %s :- %s Message of the Day - ++RPL_ENDOFMOTD: :%s 376 %s :End of /MOTD command. ++RPL_YOUREOPER: :%s 381 %s :You have entered... the Twilight Zone! ++RPL_REHASHING: :%s 382 %s %s :Rehashing ++ERR_NOSUCHNICK: :%s 401 %s %s :No such nick/channel ++ERR_NOSUCHSERVER: :%s 402 %s %s :No such server ++ERR_NOSUCHCHANNEL: :%s 403 %s %s :No such channel ++ERR_CANNOTSENDTOCHAN: :%s 404 %s %s :Cannot send to channel ++ERR_TOOMANYCHANNELS: :%s 405 %s %s :You have joined too many channels ++ERR_WASNOSUCHNICK: :%s 406 %s %s :There was no such nickname ++ERR_TOOMANYTARGETS: :%s 407 %s %s :Too many recipients. Only %d processed ++ERR_NOORIGIN: :%s 409 %s :No origin specified ++ERR_NORECIPIENT: :%s 411 %s :No recipient given (%s) ++ERR_NOTEXTTOSEND: :%s 412 %s :No text to send ++ERR_NOTOPLEVEL: :%s 413 %s %s :No toplevel domain specified ++ERR_WILDTOPLEVEL: :%s 414 %s %s :Wildcard in toplevel Domain ++ERR_UNKNOWNCOMMAND: :%s 421 %s %s :Unknown command ++ERR_NOMOTD: :%s 422 %s :MOTD File is missing ++ERR_NOADMININFO: :%s 423 %s %s :No administrative info available ++ERR_NONICKNAMEGIVEN: :%s 431 %s :No nickname given ++ERR_ERRONEUSNICKNAME: :%s 432 %s %s :Erroneous Nickname ++ERR_NICKNAMEINUSE: :%s 433 %s %s :Nickname is already in use. ++ERR_NICKCOLLISION: :%s 436 %s %s :Nickname collision KILL ++ERR_UNAVAILRESOURCE: :%s 437 %s %s :Nick/channel is temporarily unavailable ++ERR_NICKTOOFAST: :%s 438 %s %s %s :Nick change too fast. Please wait %d seconds. ++ERR_USERNOTINCHANNEL: :%s 441 %s %s %s :They aren't on that channel ++ERR_NOTONCHANNEL: :%s 442 %s %s :You're not on that channel ++ERR_USERONCHANNEL: :%s 443 %s %s %s :is already on channel ++ERR_NOTREGISTERED: :%s 451 %s :You have not registered ++ERR_ACCEPTFULL: :%s 456 %s :Accept list is full ++ERR_ACCEPTEXIST: :%s 457 %s %s :is already on your accept list ++ERR_ACCEPTNOT: :%s 458 %s %s :is not on your accept list ++ERR_NEEDMOREPARAMS: :%s 461 %s %s :Not enough parameters ++ERR_ALREADYREGISTRED: :%s 462 %s :You may not reregister ++ERR_PASSWDMISMATCH: :%s 464 %s :Password Incorrect ++ERR_YOUREBANNEDCREEP: :%s 465 %s :You are banned from this server- %s ++ERR_CHANNELISFULL: :%s 471 %s %s :Cannot join channel (+l) ++ERR_UNKNOWNMODE: :%s 472 %s %c :is unknown mode char to me ++ERR_INVITEONLYCHAN: :%s 473 %s %s :Cannot join channel (+i) ++ERR_BANNEDFROMCHAN: :%s 474 %s %s :Cannot join channel (+b) ++ERR_BADCHANNELKEY: :%s 475 %s %s :Cannot join channel (+k) ++ERR_BANLISTFULL: :%s 478 %s %s %s :Channel ban list is full ++ERR_BADCHANNAME: :%s 479 %s %s :Illegal channel name ++ERR_NOPRIVILEGES: :%s 481 %s :Permission Denied - You're not an IRC operator ++ERR_CHANOPRIVSNEEDED: :%s 482 %s %s :You're not channel operator ++ERR_CANTKILLSERVER: :%s 483 %s :You can't kill a server! ++ERR_RESTRICTED: :%s 484 %s :You are restricted ++ERR_NOOPERHOST: :%s 491 %s :Only few of mere mortals may try to enter the twilight zone ++ERR_UMODEUNKNOWNFLAG: :%s 501 %s :Unknown MODE flag ++ERR_USERSDONTMATCH: :%s 502 %s :Can't change mode for other users ++ERR_GHOSTEDCLIENT: :%s 503 %s :Message could not be delivered to %s ++ERR_USERNOTONSERV: :%s 504 %s %s :User is not on this server ++ERR_WRONGPONG: :%s 513 %s :To connect type /QUOTE PONG %lu ++ERR_LISTSYNTAX: :%s 521 %s :Bad list syntax ++ERR_HELPNOTFOUND: :%s 524 %s %s :Help not found ++RPL_ENDOFMODLIST: :%s 703 %s :End of /MODLIST. ++RPL_ENDOFHELP: :%s 706 %s %s :End of /HELP. ++RPL_KNOCK: :%s 710 %s %s %s!%s@%s :has asked for an invite. ++RPL_KNOCKDLVR: :%s 711 %s %s :Your KNOCK has been delivered. ++ERR_TOOMANYKNOCK: :%s 712 %s %s :Too many KNOCKs (%s). ++ERR_CHANOPEN: :%s 713 %s %s :Channel is open. ++ERR_KNOCKONCHAN: :%s 714 %s %s :You are already on that channel. ++ERR_KNOCKDISABLED: :%s 715 %s :KNOCKs are disabled. +diff --exclude CVS --exclude .cvsignore -urN ircd-hybrid/messages/ircd-swedish.lang /home/joshk/devel/ircd-hybrid-STABLE/messages/ircd-swedish.lang +--- ircd-hybrid/messages/ircd-swedish.lang 1969-12-31 16:00:00.000000000 -0800 ++++ /home/joshk/devel/ircd-hybrid-STABLE/messages/ircd-swedish.lang 2003-06-26 01:12:03.000000000 -0700 +@@ -0,0 +1,92 @@ ++; ircd-hybrid-7 swedish message file ++; Copyright (C) 2000 ++; David Taylor , 2000. ++; $Id: ircd-swedish.lang,v 1.4 2003/05/18 14:15:58 adx Exp $ ++ ++RPL_WELCOME: :%s 001 %s :Vlkommen till %s Internet Relay Chat Network %s ++RPL_YOURHOST: :%s 002 %s :Din vrd r %s, som kr version %s ++RPL_CREATED: :%s 003 %s :Denna server skapades %s ++RPL_ISUPPORT: :%s 005 %s %s :stdjs av denna server ++RPL_REDIR: :%s 010 %s %s %d :Vnligen anvnd denna Server/Port i stllet ++RPL_TRACECONNECTING: :%s 201 %s Frsk. %s %s ++RPL_TRACEUSER: :%s 205 %s Anvndare %s %s (%s) %lu %lu ++RPL_TRACENEWTYPE: :%s 208 %s 0 %s ++RPL_TRACECLASS: :%s 209 %s Klass %s %d ++RPL_ENDOFSTATS: :%s 219 %s %c :Slut p /STATS rapport ++RPL_STATSUPTIME: :%s 242 %s :Server Upptid %d dagar, %d:%02d:%02d ++RPL_STATSCONN: :%s 250 %s :Hgsta anslutning antal: %d (%d klienter) (%d anslutningar mottagna) ++RPL_LUSERCLIENT: :%s 251 %s :Det finns %d anvndare och %d osynliga p %d servrar ++RPL_LUSEROP: :%s 252 %s %d :IRC Operatrer online ++RPL_LUSERUNKNOWN: :%s 253 %s %d :oknd(a) anslutning(ar) ++RPL_LUSERCHANNELS: :%s 254 %s %d :kanaler skapade ++RPL_LUSERME: :%s 255 %s :Jag har %d klienter och %d servrar ++RPL_ADMINME: :%s 256 %s :Administrativ info om %s ++RPL_ENDOFTRACE: :%s 262 %s %s :Slut p TRACE ++RPL_LOAD2HI: :%s 263 %s :Servern r fr tillfllet verbelastad. Vnligen vnta en stund och frsk igen senare. ++RPL_LOCALUSERS: :%s 265 %s :Antal lokala anvndare: %d Max: %d ++RPL_GLOBALUSERS: :%s 266 %s :Antal globala anvndare: %d Max: %d ++RPL_UNAWAY: :%s 305 %s :Du r inte lngre markerad som borta ++RPL_NOWAWAY: :%s 306 %s :Du har blivit markerad som borta ++RPL_WHOISOPERATOR: :%s 313 %s %s :r en IRC Operatr ++RPL_ENDOFWHO: :%s 315 %s %s :Slut p /WHO lista. ++RPL_WHOISIDLE: :%s 317 %s %s %d %d :sekunder overksam, login tid ++RPL_ENDOFWHOIS: :%s 318 %s %s :Slut p /WHOIS lista. ++RPL_LISTSTART: :%s 321 %s Kanaler :Anvndare Namn ++RPL_LISTEND: :%s 323 %s :Slut p /LIST ++RPL_NOTOPIC: :%s 331 %s %s :Ingen topic r satt. ++RPL_ENDOFINVEXLIST: :%s 347 %s %s :Slut p Kanal Inbjudningslista ++RPL_ENDOFEXCEPTLIST: :%s 349 %s %s :Slut p Kanal Undantagslista ++RPL_CLOSING: :%s 362 %s %s :Stngd. Status = %d ++RPL_CLOSEEND: :%s 363 %s %d: Anslutningar Stngda ++RPL_ENDOFLINKS: :%s 365 %s %s :Slut p /LINKS lista. ++RPL_ENDOFNAMES: :%s 366 %s %s :Slut p /NAMES lista. ++RPL_ENDOFBANLIST: :%s 368 %s %s :Slut p Kanal Banlista ++RPL_ENDOFWHOWAS: :%s 369 %s %s :Slut p WHOWAS ++RPL_ENDOFINFO: :%s 374 %s :Slut p /INFO lista. ++RPL_MOTDSTART: :%s 375 %s :- %s Dagens Meddelande - ++RPL_ENDOFMOTD: :%s 376 %s :Slut p /MOTD. ++RPL_YOUREOPER: :%s 381 %s :Du r nu i... Skymmningstimmen!. ++RPL_REHASHING: :%s 382 %s %s :Laddar om ++ERR_NOSUCHNICK: :%s 401 %s %s :Ej existerande smeknamn/kanal ++ERR_NOSUCHSERVER: :%s 402 %s %s :Ej existerande server ++ERR_NOSUCHCHANNEL: :%s 403 %s %s :Ej existerande kanal ++ERR_CANNOTSENDTOCHAN: :%s 404 %s %s :Kan ej skicka till kanal ++ERR_TOOMANYCHANNELS: :%s 405 %s %s :Du befinner dig i fr mnga kanaler ++ERR_WASNOSUCHNICK: :%s 406 %s %s :Det fanns inget sdant smeknamn ++ERR_TOOMANYTARGETS: :%s 407 %s %s :Fr mnga mottagare. Bara %d bearbetade ++ERR_NOORIGIN: :%s 409 %s :Ingen mottagare specificerad ++ERR_NORECIPIENT: :%s 411 %s :Ingen mottagare specificerad (%s) ++ERR_NOTEXTTOSEND: :%s 412 %s :Ingen text att skicka ++ERR_NOTOPLEVEL: :%s 413 %s %s :Ingen topp domn specificerad ++ERR_WILDTOPLEVEL: :%s 414 %s %s :Jokertecken i toppdomn ++ERR_UNKNOWNCOMMAND: :%s 421 %s %s :Oknt kommando ++ERR_NOMOTD: :%s 422 %s :MOTD fil saknas ++ERR_NOADMININFO: :%s 423 %s %s :Ingen administrativ info tillgnglig ++ERR_NONICKNAMEGIVEN: :%s 431 %s :Inget smeknamn specificerat ++ERR_ERRONEUSNICKNAME: :%s 432 %s %s :Felaktigt Smeknamn ++ERR_NICKNAMEINUSE: :%s 433 %s %s :Smeknamnet anvnds redan. ++ERR_NICKCOLLISION: :%s 436 %s %s :Smeknamn kollision KILL ++ERR_UNAVAILRESOURCE: :%s 437 %s %s :Smeknamn/kanal r temporrt inte tillgnglig ++ERR_USERNOTINCHANNEL: :%s 441 %s %s %s :De r inte i den kanalen ++ERR_NOTONCHANNEL: :%s 442 %s %s :Du r inte i den kanalen ++ERR_USERONCHANNEL: :%s 443 %s %s %s :r redan i kanalen ++ERR_NOTREGISTERED: :%s 451 %s :Du har inte registrerat dig ++ERR_NEEDMOREPARAMS: :%s 461 %s %s :Otillrckliga parametrar ++ERR_ALREADYREGISTRED: :%s 462 %s :Du fr inte registrera dig ++ERR_PASSWDMISMATCH: :%s 464 %s :Felaktigt Lsenord ++ERR_YOUREBANNEDCREEP: :%s 465 %s :Du r bannad frn denna server- %s ++ERR_CHANNELISFULL: :%s 471 %s %s :Kan inte ppna kanal (+l) ++ERR_UNKNOWNMODE: :%s 472 %s %c :r oknd mode parameter fr mig ++ERR_INVITEONLYCHAN: :%s 473 %s %s :Kan ej ppna kanal (+i) ++ERR_BANNEDFROMCHAN: :%s 474 %s %s :Kan ej ppna kanal (+b) ++ERR_BADCHANNELKEY: :%s 475 %s %s :Kan ej ppna kanal (+k) ++ERR_BANLISTFULL: :%s 478 %s %s %s :Kanalens ban lista r full ++ERR_BADCHANNAME: :%s 479 %s %s :Felaktigt kanal namn ++ERR_NOPRIVILEGES: :%s 481 %s :Tilltrde frbjuden - Du r inte en IRC operatr ++ERR_CHANOPRIVSNEEDED: :%s 482 %s %s :Du r inte en operatr ++ERR_CANTKILLSERVER: :%s 483 %s :Man kan inte /KILL en server! ++ERR_NOOPERHOST: :%s 491 %s :Tyvrr, du har inte vad som krvs fr att vara en Operatr hr. ++ERR_UMODEUNKNOWNFLAG: :%s 501 %s :Oknd MODE flagga ++ERR_USERSDONTMATCH: :%s 502 %s :Kan inte ndra mode for andra anvndare ++ERR_GHOSTEDCLIENT: :%s 503 %s :Meddelandet kunde inte levereras till %s ++ERR_USERNOTONSERV: :%s 504 %s %s :Anvndaren r inte p denna server +diff --exclude CVS --exclude .cvsignore -urN ircd-hybrid/messages/README /home/joshk/devel/ircd-hybrid-STABLE/messages/README +--- ircd-hybrid/messages/README 1969-12-31 16:00:00.000000000 -0800 ++++ /home/joshk/devel/ircd-hybrid-STABLE/messages/README 2003-06-26 01:12:03.000000000 -0700 +@@ -0,0 +1,42 @@ ++Translated message files (user/admin submitted) ++ ++There are user submitted message files for ircd-hybrid-7. Read the ++example file in this directory (ircd-standard.example.lang) and the file ++doc/messages.txt to learn how to create, install, and possibly submit ++your own .lang files. ++ ++At the present time, the following languages are supported: ++ ++swedish - maintained by trbz - Chris C ++croatian - maintained by Martin - Vid Strpic ++french - maintained by Joshua Kwan ++german - maintained by dmalloc - Darian Lanx ++norwegian - maintained by inglish - Stephen Olsen ++macedonian - in progress ++slovakian - in progress ++danish - maintained by Xride - Soren Straarup Andersen ++spanish - maintained by ermak - anonymous ++dutch - maintained by Riedel - Dennis Vink ++ ++All of the files are installed into the prefix directory, under messages. ++Each is installed into a different directory, prefixed by ircd-. ++ ++The message locale is settable at runtime with /quote SET MSGLOCALE language, ++ex. /quote SET MSGLOCALE ircd-german ++ ++and via the message_locale="language"; in the general block of the ircd.conf. ++ex. message_locale="ircd-german"; ++ ++-- ++The ircd-hybrid team is not accountable for any mistakes, mistranslations, or ++accidental insults from the use of one of the included translations. All ++translations are done by individuals who have given their time and skills to ++provide localized users with pre-built translations. The ircd-hybrid team ++will try, but cannot guarantee that the translations are up to date with the ++rest of the source tree, and with the "customized" messages. ++ ++Contributions are welcome, at present time please send contributed translations ++to ircd-hybrid@the-project.org, hybrid@the-project.org, or directly to one ++of the people who work with the translations, currently wcampbel@botbay.net. ++ ++$Id: README,v 1.4 2003/05/19 04:08:36 joshk Exp $ +diff --exclude CVS --exclude .cvsignore -urN ircd-hybrid/messages/translations/ircd-croatian.po /home/joshk/devel/ircd-hybrid-STABLE/messages/translations/ircd-croatian.po +diff --exclude CVS --exclude .cvsignore -urN ircd-hybrid/messages/translations/ircd-danish.po /home/joshk/devel/ircd-hybrid-STABLE/messages/translations/ircd-danish.po +diff --exclude CVS --exclude .cvsignore -urN ircd-hybrid/messages/translations/ircd-dutch.po /home/joshk/devel/ircd-hybrid-STABLE/messages/translations/ircd-dutch.po +diff --exclude CVS --exclude .cvsignore -urN ircd-hybrid/messages/translations/ircd-german.po /home/joshk/devel/ircd-hybrid-STABLE/messages/translations/ircd-german.po +diff --exclude CVS --exclude .cvsignore -urN ircd-hybrid/messages/translations/ircd-norwegian.po /home/joshk/devel/ircd-hybrid-STABLE/messages/translations/ircd-norwegian.po +diff --exclude CVS --exclude .cvsignore -urN ircd-hybrid/messages/translations/ircd-spanish.po /home/joshk/devel/ircd-hybrid-STABLE/messages/translations/ircd-spanish.po +diff --exclude CVS --exclude .cvsignore -urN ircd-hybrid/messages/translations/ircd-swedish.po /home/joshk/devel/ircd-hybrid-STABLE/messages/translations/ircd-swedish.po +diff --exclude CVS --exclude .cvsignore -urN ircd-hybrid/messages/translations/Makefile.in /home/joshk/devel/ircd-hybrid-STABLE/messages/translations/Makefile.in +diff --exclude CVS --exclude .cvsignore -urN ircd-hybrid/messages/translations/README /home/joshk/devel/ircd-hybrid-STABLE/messages/translations/README +diff --exclude CVS --exclude .cvsignore -urN ircd-hybrid/modules/core/m_message.c /home/joshk/devel/ircd-hybrid-STABLE/modules/core/m_message.c +--- ircd-hybrid/modules/core/m_message.c 2003-04-06 09:47:37.000000000 -0700 ++++ /home/joshk/devel/ircd-hybrid-STABLE/modules/core/m_message.c 2003-06-26 01:12:03.000000000 -0700 +@@ -123,7 +123,7 @@ + mod_del_cmd(¬ice_msgtab); + } + +-const char *_version = "$Revision: 1.107.2.2 $"; ++const char *_version = "$Revision: 1.111 $"; + #endif + + /* +@@ -634,8 +634,7 @@ + "NOTICE %s :*** I've been informed you messaged me.", + source_p->name); + +- sendto_one(target_p, +- ":%s NOTICE %s :*** Client %s is messaging you and you are +g", ++ sendto_one(target_p, form_str(RPL_ISMESSAGING), + me.name, target_p->name, + get_client_name(source_p, HIDE_IP)); + +diff --exclude CVS --exclude .cvsignore -urN ircd-hybrid/modules/m_set.c /home/joshk/devel/ircd-hybrid-STABLE/modules/m_set.c +--- ircd-hybrid/modules/m_set.c 2002-05-24 16:34:22.000000000 -0700 ++++ /home/joshk/devel/ircd-hybrid-STABLE/modules/m_set.c 2003-06-26 01:12:03.000000000 -0700 +@@ -65,6 +65,7 @@ + } + + const char *_version = "$Revision: 1.45.4.1 $"; ++ + #endif + /* Structure used for the SET table itself */ + struct SetStruct +@@ -325,27 +326,17 @@ + /* SET MSGLOCALE */ + static void quote_msglocale( struct Client *source_p, char *locale ) + { +-#ifdef USE_GETTEXT +- if(locale) ++ if(locale != NULL) + { +- char langenv[BUFSIZE]; +- ircsprintf(langenv,"LANGUAGE=%s",locale); +- putenv(langenv); +- ++ set_locale(locale); + sendto_one(source_p, ":%s NOTICE %s :Set MSGLOCALE to '%s'", +- me.name, source_p->name, +- getenv("LANGUAGE") ? getenv("LANGUAGE") : ""); ++ me.name, source_p->name, get_locale()); + } + else + { + sendto_one(source_p, ":%s NOTICE %s :MSGLOCALE is currently '%s'", +- me.name, source_p->name, +- (getenv("LANGUAGE")) ? getenv("LANGUAGE") : ""); ++ me.name, source_p->name, get_locale()); + } +-#else +- sendto_one(source_p, ":%s NOTICE %s :No gettext() support available.", +- me.name, source_p->name); +-#endif + } + + /* SET SPAMNUM */ +diff --exclude CVS --exclude .cvsignore -urN ircd-hybrid/README.FIRST /home/joshk/devel/ircd-hybrid-STABLE/README.FIRST +--- ircd-hybrid/README.FIRST 2002-04-27 17:26:01.000000000 -0700 ++++ /home/joshk/devel/ircd-hybrid-STABLE/README.FIRST 2003-06-26 01:12:03.000000000 -0700 +@@ -10,8 +10,6 @@ + * - The old config format WILL NOT WORK. Please see doc/example.conf ! * + * - The old kline format WILL NOT WORK. Please use convertklines which * + * will be installed with your ircd! * +- * - If you get errors compiling custom.mo, check if you are using the * +- * most recent version of gettext. Tested with GNU gettext 0.10.35. * + ************************************************************************* + + ALSO, IF YOU ARE UPGRADING YOUR CURRENT SOURCE TREE, AND YOU TRY TO BUILD +@@ -46,8 +44,6 @@ + - For the SSL Challenge controlled OPER feature and encrypted server links, + a working OpenSSL library + +-- For dynamic message locale support, a working gettext (intl) library +- + - For encrypted oper and (optional) server passwords, a working DES and/or + MD5 library + +diff --exclude CVS --exclude .cvsignore -urN ircd-hybrid/src/ircd.c /home/joshk/devel/ircd-hybrid-STABLE/src/ircd.c +--- ircd-hybrid/src/ircd.c 2003-05-28 22:13:26.000000000 -0700 ++++ /home/joshk/devel/ircd-hybrid-STABLE/src/ircd.c 2003-06-26 01:12:03.000000000 -0700 +@@ -691,23 +691,6 @@ + } + strncpy(me.info, ServerInfo.description, REALLEN); + +-#ifdef USE_GETTEXT +- /* +- * For 'locale' try (in this order): +- * Config entry "msglocale" (yyparse() will overwrite LANGUAGE) +- * Env variable "LANGUAGE" +- * Default of "" (so don't overwrite LANGUAGE here) +- */ +- +- if (!getenv("LANGUAGE")) +- { +- putenv("LANGUAGE="); +- } +- +- textdomain("ircd-hybrid"); +- bindtextdomain("ircd-hybrid" , MSGPATH); +-#endif +- + #ifdef USE_IAUTH + iAuth.flags = 0; + +@@ -764,5 +747,3 @@ + return 0; + } + +- +- +diff --exclude CVS --exclude .cvsignore -urN ircd-hybrid/src/ircd_parser.y /home/joshk/devel/ircd-hybrid-STABLE/src/ircd_parser.y +--- ircd-hybrid/src/ircd_parser.y 2002-11-12 05:45:42.000000000 -0800 ++++ /home/joshk/devel/ircd-hybrid-STABLE/src/ircd_parser.y 2003-06-26 01:12:03.000000000 -0700 +@@ -41,6 +41,7 @@ + #include "ircdauth.h" + #include "memory.h" + #include "modules.h" ++#include "numeric.h" + #include "s_serv.h" /* for CAP_LL / IsCapable */ + #include "hostmask.h" + #include "send.h" +@@ -2227,11 +2228,9 @@ + + general_message_locale: MESSAGE_LOCALE '=' QSTRING ';' + { +- char langenv[BUFSIZE]; +- if (strlen(yylval.string) > BUFSIZE-10) +- yylval.string[BUFSIZE-9] = 0; +- ircsprintf(langenv, "LANGUAGE=%s", yylval.string); +- putenv(langenv); ++ if (strlen(yylval.string) > LOCALE_LENGTH-2) ++ yylval.string[LOCALE_LENGTH-1] = '\0'; ++ set_locale(yylval.string); + } ; + + general_gline_time: GLINE_TIME '=' timespec ';' +diff --exclude CVS --exclude .cvsignore -urN ircd-hybrid/src/numeric.c /home/joshk/devel/ircd-hybrid-STABLE/src/numeric.c +--- ircd-hybrid/src/numeric.c 2002-05-24 16:34:49.000000000 -0700 ++++ /home/joshk/devel/ircd-hybrid-STABLE/src/numeric.c 2003-06-26 01:12:03.000000000 -0700 +@@ -19,7 +19,7 @@ + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 + * USA + * +- * $Id: numeric.c,v 7.20 2002/05/24 23:34:49 androsyn Exp $ ++ * $Id: numeric.c,v 7.21 2003/03/02 06:46:43 db Exp $ + */ + + #include "stdinc.h" +@@ -31,8 +31,13 @@ + #include "common.h" /* NULL cripes */ + #include "memory.h" + ++#include "s_log.h" ++#include "fileio.h" ++ + #include "messages.tab" + ++static char used_locale[LOCALE_LENGTH] = "standard"; ++ + /* + * form_str + * +@@ -42,22 +47,174 @@ + */ + const char* form_str(int numeric) + { +- const char *num_ptr; +- + assert(-1 < numeric); + assert(numeric < ERR_LAST_ERR_MSG); +- assert(0 != replies[numeric]); + + if (numeric > ERR_LAST_ERR_MSG) + numeric = ERR_LAST_ERR_MSG; + if (numeric < 0) + numeric = ERR_LAST_ERR_MSG; + +- num_ptr = replies[numeric]; +- if (num_ptr == NULL) +- num_ptr = replies[ERR_LAST_ERR_MSG]; ++ assert(replies[numeric].standard != NULL); + +- return ((const char *) _(num_ptr)); ++ return (replies[numeric].translated != NULL ? replies[numeric].translated : ++ replies[numeric].standard); + } + ++/* Attempts to change a numeric with index "reply" to "new_reply". ++ * Returns 1 if ok, 0 otherwise. ++ */ ++static int ++change_reply(const char *locale, int linecnt, int reply, char *new_reply) ++{ ++ int found; ++ char *new = new_reply, *old = replies[reply].standard; ++ ++ for (; *new; new++) ++ if (*new == '%' && *(new + 1) != '%') ++ { ++ /* We've just found a format symbol. Check if it is the next format ++ * symbol in the original reply. ++ */ ++ for (++new; *new >= '0' && *new <= '9'; new++); /* skip size prefix */ ++ found = 0; ++ for (; *old; old++) ++ if (*old == '%' && *(old + 1) != '%') ++ { ++ for (++old; *old >= '0' && *old <= '9'; old++); /* skip size prefix */ ++ if (*new++ != *old++) ++ { ++ ilog(L_ERROR, "Incompatible format symbols (%s.lang, %d)", ++ locale, linecnt); ++ return 0; ++ } ++ found = 1; ++ break; ++ } ++ if (!found) ++ { ++ ilog(L_ERROR, "Too many format symbols (%s.lang, %d)", locale, linecnt); ++ return(0); ++ } ++ } ++ ++ for (; *old; old++) ++ if (*old == '%' && *(old + 1) != '%') ++ { ++ ilog(L_ERROR, "Too few format symbols (%s.lang, %d)", locale, linecnt); ++ return(0); ++ } ++ ++ MyFree(replies[reply].translated); ++ DupString(replies[reply].translated, new_reply); ++ return(1); ++} + ++/* Loads a language file. Errors are logged into the log file. */ ++void ++set_locale(const char *locale) ++{ ++ int i, res = 1, linecnt = 0; ++ char buffer[BUFSIZE + 1]; ++ char *ident, *reply; ++ FBFILE *f; ++ ++ /* Restore standard replies */ ++ for (i = 0; i <= ERR_LAST_ERR_MSG; i++) /* 0 isn't a magic number! ;> */ ++ if (replies[i].translated != NULL) ++ { ++ MyFree(replies[i].translated); ++ replies[i].translated = NULL; ++ } ++ ++ if (strchr(locale, '/') != NULL) ++ { ++ strlcpy(used_locale, "standard", LOCALE_LENGTH); /* XXX paranoid */ ++ return; ++ } ++ ++ /* yes, I know - the slash isn't necessary. But I have to be sure ++ * that it'll work even if some lame admin won't put "/" at the end ++ * of MSGPATH. ++ */ ++ snprintf(buffer, BUFSIZE + 1, "%s/%s.lang", MSGPATH, locale); ++ if ((f = fbopen(buffer, "r")) == NULL) ++ { ++ strlcpy(used_locale, "standard", LOCALE_LENGTH); /* XXX */ ++ return; ++ } ++ ++ /* Process the language file */ ++ while (fbgets(buffer, BUFSIZE + 1, f)) ++ { ++ ++linecnt; ++ if (buffer[0] == ';') ++ continue; /* that's a comment */ ++ ++ if ((ident = strpbrk(buffer, "\r\n")) != NULL) ++ *ident = '\0'; ++ ++ /* skip spaces if there are any */ ++ for (ident = buffer; *ident == ' ' || *ident == '\t'; ident++)/* null */; ++ if (*ident == '\0') ++ continue; /* empty line */ ++ ++ /* skip after the reply identificator */ ++ for (reply = ident; *reply != ' ' && *reply != '\t' && *reply != ':'; ++ reply++) ++ { ++ if (*reply == '\0') ++ { ++ goto error; /* ugh */ ++#if 0 ++ report_error(locale, linecnt); ++ ++#endif ++ } ++ } ++ ++ if (*reply == ' ' || *reply == '\t') ++ { ++ for (*reply++ = '\0'; *reply == ' ' || *reply == '\t'; reply++); ++ if (*reply != ':') ++ { ++ error: ++ ilog(L_ERROR, "Invalid line in language file (%s.lang, %d)", ++ locale, linecnt); ++ res = 0; ++ continue; ++ } ++ } ++ else ++ *reply++ = '\0'; ++ if (*ident == '\0') ++ goto error; ++ ++ /* skip to the beginning of reply */ ++ while (*reply == ' ' || *reply == '\t') reply++; ++ if (*reply == '\0') ++ goto error; ++ ++ for (i = 0; i <= ERR_LAST_ERR_MSG; i++) ++ if (replies[i].name != NULL) ++ if (!irccmp(replies[i].name, ident)) ++ { ++ if (!change_reply(locale, linecnt, i, reply)) res = 0; ++ i = -1; ++ break; ++ } ++ if (i != -1) ++ ilog(L_ERROR, ++ "Unknown numeric %s (%s.lang, %d)", ident, locale, linecnt); ++ } ++ fbclose(f); ++ ++ strlcpy(used_locale, locale, LOCALE_LENGTH); ++} ++ ++/* Returns the name of current locale. */ ++const char* ++get_locale(void) ++{ ++ return used_locale; ++} +diff --exclude CVS --exclude .cvsignore -urN ircd-hybrid/src/s_conf.c /home/joshk/devel/ircd-hybrid-STABLE/src/s_conf.c +--- ircd-hybrid/src/s_conf.c 2003-02-16 14:06:46.000000000 -0800 ++++ /home/joshk/devel/ircd-hybrid-STABLE/src/s_conf.c 2003-06-26 01:12:03.000000000 -0700 +@@ -1395,7 +1395,6 @@ + ConfigFileEntry.fname_operlog[0] = '\0'; + ConfigFileEntry.glines = NO; + ConfigFileEntry.use_egd = NO; +- /* don't reset msglocale setting -- we'd overwrite then env string */ + ConfigFileEntry.gline_time = 12 * 3600; + ConfigFileEntry.idletime = 0; + ConfigFileEntry.dots_in_ident = 0; +--- a/Makefile.in 2003-06-26 01:45:11.000000000 -0700 ++++ b/Makefile.in 2003-06-26 01:50:17.000000000 -0700 +@@ -39,7 +39,7 @@ + #CFLAGS= -DNDEBUG -g -O2 -D"FD_SETSIZE=1024" + SHELL=/bin/sh +-SUBDIRS=modules adns src tools doc @SUBDIR_MESSAGES@ include servlink help ++SUBDIRS=modules adns src tools doc include servlink help + CLEANDIRS = ${SUBDIRS} contrib iauth + # XXX removed `iauth' from the build since it doesn't compile currently + # SUBDIRS=src tools iauth + RSA_FILES=rsa_respond/README rsa_respond/respond.c rsa_respond/Makefile +--- a/include/config.h 2003-06-26 01:45:11.000000000 -0700 ++++ b/include/config.h 2003-06-26 01:49:57.000000000 -0700 +@@ -161,11 +161,6 @@ + #define PPATH "/var/run/ircd/ircd-hybrid.pid" /* pid file */ + #endif /* !VMS */ + +-/* WANT_GETTEXT - toggle gettext support. +- * NOTE: if configure doesn't detect gettext, this won't do anything. +- */ +-#define WANT_GETTEXT +- + /* Ignore bogus timestamps from other servers. Yes this will desync + * the network, but it will allow chanops to resync with a valid non TS 0 + * +--- a/messages/Makefile.in 2003-06-26 02:03:44.000000000 -0700 ++++ b/messages/Makefile.in 2003-06-26 02:04:16.000000000 -0700 +@@ -1,75 +1,38 @@ +-MSGFMT = @MSGFMT@ +-RM= @RM@ +- +-default: all +- +-SRCS = \ +- custom.po \ +- ayb.po +- +-OBJS = ${SRCS:.po=.mo} +- +-prefix = @prefix@ +-exec_prefix = @exec_prefix@ +-exec_suffix = @exec_suffix@ +-bindir = @bindir@ +-libexecdir = @libexecdir@ +-sysconfdir = @sysconfdir@ +-localstatedir = @localstatedir@ +-messagedir = @prefix@/usr/share/ircd-hybrid/messages +- +- +-all: ${OBJS} +-build: all +- +-.SUFFIXES: +-.SUFFIXES: .po .mo +- +-.po.mo: +- ${MSGFMT} $@ $< +- +-.PHONY: install depend clean distclean +- +-install-mkdirs: +- -@if test ! -d $(messagedir); then \ +- echo "mkdir $(messagedir)"; \ +- mkdir -p $(messagedir); \ +- fi; \ +- for i in ./*.mo; do \ +- LNAME=`echo $$i | sed 's/^\.\///' | sed 's/\.mo$$//'`; \ +- if test ! -d $(messagedir)/$${LNAME}/LC_MESSAGES/; then \ +- echo "mkdir $(messagedir)/$${LNAME}/LC_MESSAGES/"; \ +- mkdir -p $(messagedir)/$${LNAME}/LC_MESSAGES/; \ +- fi; \ ++# $Id: Makefile.in,v 1.19 2003/06/16 20:57:50 joshk Exp $ ++# ++RM = @RM@ ++MV = @MV@ ++INSTALL = @INSTALL@ ++INSTALL_DATA = @INSTALL_DATA@ ++prefix = @prefix@ ++messagedir = @prefix@/usr/share/ircd-hybrid/messages ++ ++LANGFILES = ayb.lang \ ++ ircd-croatian.lang \ ++ ircd-danish.lang \ ++ ircd-dutch.lang \ ++ ircd-french.lang \ ++ ircd-german.lang \ ++ ircd-norwegian.lang \ ++ ircd-russian.lang \ ++ ircd-spanish.lang \ ++ ircd-swedish.lang ++ ++all: ++ ++install: ++ mkdir -p $(messagedir) ++ -@echo "Installing language files to $(messagedir)..."; \ ++ ++ @for i in $(LANGFILES); do \ ++ if test -f $(messagedir)/$$i; then \ ++ echo $(MV) $(messagedir)/$$i $(messagedir)/$$i.old; \ ++ $(MV) $(messagedir)/$$i $(messagedir)/$$i.old; \ ++ fi; \ ++ echo $(INSTALL_DATA) $$i $(messagedir); \ ++ $(INSTALL_DATA) $$i $(messagedir); \ + done + +-install: build install-mkdirs +- -@echo "Installing message files to $(messagedir)..."; \ +- for i in ./*.mo; do \ +- LNAME=`echo $$i | sed 's/^\.\///' | sed 's/\.mo$$//'`; \ +- echo "$${LNAME} "; \ +- cp $$i "$(messagedir)/$${LNAME}/LC_MESSAGES/ircd-hybrid.mo"; \ +- done; \ +- echo +- +-depend: +- +-distclean: clean ++distclean: + ${RM} -f Makefile +- ${RM} -f translations/Makefile +- +-clean: +- ${RM} -f *.mo +- +-lint: + +-mrupdate: +- @for i in $(SRCS); do \ +- echo "Updating $$i"; \ +- xgettext -a -LC -o $$i.tmp$$$$ ../src/messages.tab; \ +- xgettext --keyword=_ -j -LC -o $$i.tmp$$$$ ../include/*.h; \ +- xgettext --keyword=_ -j -LC -o $$i.tmp$$$$ ../src/*.c; \ +- xgettext --keyword=_ -j -LC -o $$i.tmp$$$$ ../modules/*.c; \ +- msgmerge -E -i -o $$i $$i $$i.tmp$$$$; \ +- rm $$i.tmp$$$$; \ +- done +diff -u -r7.73.2.2 -r7.87 +--- ircd-hybrid/src/messages.tab 2003/10/26 02:08:24 7.73.2.2 ++++ ircd-hybrid/src/messages.tab 2003/05/24 16:15:15 7.87 +@@ -16,1015 +16,1008 @@ + * along with this program; if not, write to the Free Software + * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + * +- * $Id: messages.tab,v 7.73.2.2 2003/10/26 02:08:24 db Exp $ ++ * $Id: messages.tab,v 7.87 2003/05/24 16:15:15 bill Exp $ + */ + +-static char * replies[] = { +-/* 000 */ NULL, +-/* 001 RPL_WELCOME, */ ":%s 001 %s :Welcome to the %s Internet Relay Chat Network %s", +-/* 002 RPL_YOURHOST,*/ ":%s 002 %s :Your host is %s, running version %s", +-/* 003 RPL_CREATED, */ ":%s 003 %s :This server was created %s", +-/* 004 RPL_MYINFO, */ ":%s 004 %s %s %s oiwszcerkfydnxbaugl biklmnopstveIha bkloveIh", +-/* 005 RPL_ISUPPORT, */ ":%s 005 %s %s :are supported by this server", +-/* 006 */ NULL, +-/* 007 */ NULL, +-/* 008 */ NULL, +-/* 009 */ NULL, +-/* 010 RPL_REDIR, */ ":%s 010 %s %s %d :Please use this Server/Port instead", +-/* 011 */ NULL, +-/* 012 */ NULL, +-/* 013 */ NULL, +-/* 014 */ NULL, +-/* 015 RPL_MAP */ ":%s 015 %s :%s", +-/* 016 */ NULL, +-/* 017 RPL_MAPEND */ ":%s 017 %s :End of /MAP", +-/* 018 */ NULL, +-/* 019 */ NULL, +-/* 020 RPL_YOURID */ ":%s 020 %s %s %s :Your ID and key is", +-/* 021 */ NULL, +-/* 022 */ NULL, +-/* 023 */ NULL, +-/* 024 */ NULL, +-/* 025 */ NULL, +-/* 026 */ NULL, +-/* 027 */ NULL, +-/* 028 */ NULL, +-/* 029 */ NULL, +-/* 030 */ NULL, +-/* 031 */ NULL, +-/* 032 */ NULL, +-/* 033 */ NULL, +-/* 034 */ NULL, +-/* 035 */ NULL, +-/* 036 */ NULL, +-/* 037 */ NULL, +-/* 038 */ NULL, +-/* 039 */ NULL, +-/* 040 */ NULL, +-/* 041 */ NULL, +-/* 042 */ NULL, +-/* 043 */ NULL, +-/* 044 */ NULL, +-/* 045 */ NULL, +-/* 046 */ NULL, +-/* 047 */ NULL, +-/* 048 */ NULL, +-/* 049 */ NULL, +-/* 050 */ NULL, +-/* 051 */ NULL, +-/* 052 */ NULL, +-/* 053 */ NULL, +-/* 054 */ NULL, +-/* 055 */ NULL, +-/* 056 */ NULL, +-/* 057 */ NULL, +-/* 058 */ NULL, +-/* 059 */ NULL, +-/* 060 */ NULL, +-/* 061 */ NULL, +-/* 062 */ NULL, +-/* 063 */ NULL, +-/* 064 */ NULL, +-/* 065 */ NULL, +-/* 066 */ NULL, +-/* 067 */ NULL, +-/* 068 */ NULL, +-/* 069 */ NULL, +-/* 070 */ NULL, +-/* 071 */ NULL, +-/* 072 */ NULL, +-/* 073 */ NULL, +-/* 074 */ NULL, +-/* 075 */ NULL, +-/* 076 */ NULL, +-/* 077 */ NULL, +-/* 078 */ NULL, +-/* 079 */ NULL, +-/* 080 */ NULL, +-/* 081 */ NULL, +-/* 082 */ NULL, +-/* 083 */ NULL, +-/* 084 */ NULL, +-/* 085 */ NULL, +-/* 086 */ NULL, +-/* 087 */ NULL, +-/* 088 */ NULL, +-/* 089 */ NULL, +-/* 090 */ NULL, +-/* 091 */ NULL, +-/* 092 */ NULL, +-/* 093 */ NULL, +-/* 094 */ NULL, +-/* 095 */ NULL, +-/* 096 */ NULL, +-/* 097 */ NULL, +-/* 098 */ NULL, +-/* 099 */ NULL, +-/* 100 */ NULL, +-/* 101 */ NULL, +-/* 102 */ NULL, +-/* 103 */ NULL, +-/* 104 */ NULL, +-/* 105 */ NULL, +-/* 106 */ NULL, +-/* 107 */ NULL, +-/* 108 */ NULL, +-/* 109 */ NULL, +-/* 110 */ NULL, +-/* 111 */ NULL, +-/* 112 */ NULL, +-/* 113 */ NULL, +-/* 114 */ NULL, +-/* 115 */ NULL, +-/* 116 */ NULL, +-/* 117 */ NULL, +-/* 118 */ NULL, +-/* 119 */ NULL, +-/* 120 */ NULL, +-/* 121 */ NULL, +-/* 122 */ NULL, +-/* 123 */ NULL, +-/* 124 */ NULL, +-/* 125 */ NULL, +-/* 126 */ NULL, +-/* 127 */ NULL, +-/* 128 */ NULL, +-/* 129 */ NULL, +-/* 130 */ NULL, +-/* 131 */ NULL, +-/* 132 */ NULL, +-/* 133 */ NULL, +-/* 134 */ NULL, +-/* 135 */ NULL, +-/* 136 */ NULL, +-/* 137 */ NULL, +-/* 138 */ NULL, +-/* 139 */ NULL, +-/* 140 */ NULL, +-/* 141 */ NULL, +-/* 142 */ NULL, +-/* 143 */ NULL, +-/* 144 */ NULL, +-/* 145 */ NULL, +-/* 146 */ NULL, +-/* 147 */ NULL, +-/* 148 */ NULL, +-/* 149 */ NULL, +-/* 150 */ NULL, +-/* 151 */ NULL, +-/* 152 */ NULL, +-/* 153 */ NULL, +-/* 154 */ NULL, +-/* 155 */ NULL, +-/* 156 */ NULL, +-/* 157 */ NULL, +-/* 158 */ NULL, +-/* 159 */ NULL, +-/* 160 */ NULL, +-/* 161 */ NULL, +-/* 162 */ NULL, +-/* 163 */ NULL, +-/* 164 */ NULL, +-/* 165 */ NULL, +-/* 166 */ NULL, +-/* 167 */ NULL, +-/* 168 */ NULL, +-/* 169 */ NULL, +-/* 170 */ NULL, +-/* 171 */ NULL, +-/* 172 */ NULL, +-/* 173 */ NULL, +-/* 174 */ NULL, +-/* 175 */ NULL, +-/* 176 */ NULL, +-/* 177 */ NULL, +-/* 178 */ NULL, +-/* 179 */ NULL, +-/* 180 */ NULL, +-/* 181 */ NULL, +-/* 182 */ NULL, +-/* 183 */ NULL, +-/* 184 */ NULL, +-/* 185 */ NULL, +-/* 186 */ NULL, +-/* 187 */ NULL, +-/* 188 */ NULL, +-/* 189 */ NULL, +-/* 190 */ NULL, +-/* 191 */ NULL, +-/* 192 */ NULL, +-/* 193 */ NULL, +-/* 194 */ NULL, +-/* 195 */ NULL, +-/* 196 */ NULL, +-/* 197 */ NULL, +-/* 198 */ NULL, +-/* 199 */ NULL, +-/* 200 RPL_TRACELINK, */ ":%s 200 %s Link %s%s %s %s", +-/* 201 RPL_TRACECONNECTING, */ ":%s 201 %s Try. %s %s", +-/* 202 RPL_TRACEHANDSHAKE, */ ":%s 202 %s H.S. %s %s", +-/* 203 RPL_TRACEUNKNOWN, */ ":%s 203 %s ???? %s %s (%s) %d", +-/* 204 RPL_TRACEOPERATOR, */ ":%s 204 %s Oper %s %s (%s) %lu %lu", +-/* 205 RPL_TRACEUSER, */ ":%s 205 %s User %s %s (%s) %lu %lu", +-/* 206 RPL_TRACESERVER, */ ":%s 206 %s Serv %s %dS %dC %s %s!%s@%s %lu", +-/* 207 */ NULL, +-/* 208 RPL_TRACENEWTYPE, */ ":%s 208 %s 0 %s", +-/* 209 RPL_TRACECLASS, */ ":%s 209 %s Class %s %d", +-/* 210 */ NULL, +-/* 211 RPL_STATSLINKINFO, */ NULL, +-/* 212 RPL_STATSCOMMANDS, */ ":%s 212 %s %s %u %u :%u", +-/* 213 RPL_STATSCLINE, */ ":%s 213 %s %c %s %s %s %d %s", +-/* 214 RPL_STATSNLINE, */ ":%s 214 %s %c %s * %s %d %s", +-/* 215 RPL_STATSILINE, */ ":%s 215 %s %c %s * %s@%s %d %s", +-/* 216 RPL_STATSKLINE, */ ":%s 216 %s %c %s * %s :%s", +-/* 217 RPL_STATSQLINE, */ ":%s 217 %s %c %s :%s", +-/* 218 RPL_STATSYLINE, */ ":%s 218 %s %c %s %d %d %d %lu", +-/* 219 RPL_ENDOFSTATS, */ ":%s 219 %s %c :End of /STATS report", +-/* 220 RPL_STATSPLINE, */ ":%s 220 %s %c %d %s %d :%s", +-/* 221 RPL_UMODEIS, */ ":%s 221 %s %s", +-/* 222 */ NULL, +-/* 223 */ NULL, +-/* 224 */ NULL, +-/* 225 RPL_STATSDLINE*/ ":%s 225 %s %c %s :%s", +-/* 226 RPL_STATSALINE*/ ":%s 226 %s %s", +-/* 227 */ NULL, +-/* 228 */ NULL, +-/* 229 */ NULL, +-/* 230 */ NULL, +-/* 231 */ NULL, +-/* 232 */ NULL, +-/* 233 */ NULL, +-/* 234 RPL_SERVLIST, */ NULL, +-/* 235 RPL_SERVLISTEND, */ NULL, +-/* 236 */ NULL, +-/* 237 */ NULL, +-/* 238 */ NULL, +-/* 239 */ NULL, +-/* 240 */ NULL, +-/* 241 RPL_STATSLLINE, */ ":%s 241 %s %c %s * %s %d %s", +-/* 242 RPL_STATSUPTIME,*/ ":%s 242 %s :Server Up %d days, %d:%02d:%02d", +-/* 243 RPL_STATSOLINE, */ ":%s 243 %s %c %s@%s * %s %s %s %s", +-/* 244 RPL_STATSHLINE, */ ":%s 244 %s %c %s * %s %d %s", +-/* 245 RPL_STATSSLINE, */ NULL, +-/* 246 */ NULL, +-/* 247 RPL_STATSXLINE, */ ":%s 247 %s X %s %s * * 0 0", +- +-/* 248 RPL_STATSULINE, */ ":%s 248 %s U %s %s", +-/* 249 */ NULL, +-/* 250 RPL_STATSCONN, */ +- ":%s 250 %s :Highest connection count: %d (%d clients) (%d connections received)", +-/* 251 RPL_LUSERCLIENT, */ +- ":%s 251 %s :There are %d users and %d invisible on %d servers", +-/* 252 RPL_LUSEROP, */ ":%s 252 %s %d :IRC Operators online", +-/* 253 RPL_LUSERUNKNOWN, */ ":%s 253 %s %d :unknown connection(s)", +-/* 254 RPL_LUSERCHANNELS, */ ":%s 254 %s %d :channels formed", +-/* 255 RPL_LUSERME, */ ":%s 255 %s :I have %d clients and %d servers", +-/* 256 RPL_ADMINME, */ ":%s 256 %s :Administrative info about %s", +-/* 257 RPL_ADMINLOC1, */ ":%s 257 %s :%s", +-/* 258 RPL_ADMINLOC2, */ ":%s 258 %s :%s", +-/* 259 RPL_ADMINEMAIL, */ ":%s 259 %s :%s", +-/* 260 */ NULL, +-/* 261 RPL_TRACELOG, */ ":%s 261 %s File %s %d", +-/* 262 RPL_ENDOFTRACE, */ ":%s 262 %s %s :End of TRACE", +-/* 263 RPL_LOAD2HI, */ +-":%s 263 %s :Server load is temporarily too heavy. Please wait a while and try again.", +-/* 264 */ NULL, +-/* 265 RPL_LOCALUSERS, */ ":%s 265 %s :Current local users: %d Max: %d", +-/* 266 RPL_GLOBALUSERS, */ ":%s 266 %s :Current global users: %d Max: %d", +-/* 267 */ NULL, +-/* 268 */ NULL, +-/* 269 */ NULL, +-/* 270 */ NULL, +-/* 271 */ NULL, +-/* 272 */ NULL, +-/* 273 */ NULL, +-/* 274 */ NULL, +-/* 275 */ NULL, +-/* 276 RPL_VCHANEXIST, */ ":%s 276 %s %s %d :virtual channels are available for this channel", +-/* 277 RPL_VCHANLIST, */ ":%s 277 %s %s ", +-/* 278 RPL_VCHANHELP, */ ":%s 278 %s :Type /%s %s to specify the channel you want", +-/* 279 */ NULL, +-/* 280 */ NULL, +-/* 281 RPL_ACCEPTLIST, */ ":%s 281 %s %s :", +-/* 282 RPL_ENDOFACCEPT */ ":%s 282 %s :End of /ACCEPT list.", +-/* 283 */ NULL, +-/* 284 */ NULL, +-/* 285 */ NULL, +-/* 286 */ NULL, +-/* 287 */ NULL, +-/* 288 */ NULL, +-/* 289 */ NULL, +-/* 290 */ NULL, +-/* 291 */ NULL, +-/* 292 */ NULL, +-/* 293 */ NULL, +-/* 294 */ NULL, +-/* 295 */ NULL, +-/* 296 */ NULL, +-/* 297 */ NULL, +-/* 298 */ NULL, +-/* 299 */ NULL, +-/* 300 RPL_NONE, */ NULL, +-/* 301 RPL_AWAY, */ ":%s 301 %s %s :%s", +-/* 302 RPL_USERHOST, */ ":%s 302 %s :%s", +-/* 303 RPL_ISON, */ ":%s 303 %s :", +-/* 304 RPL_TEXT, */ NULL, +-/* 305 RPL_UNAWAY, */ ":%s 305 %s :You are no longer marked as being away", +-/* 306 RPL_NOWAWAY, */ ":%s 306 %s :You have been marked as being away", +-/* 307 */ NULL, +-/* 308 */ NULL, +-/* 309 */ NULL, +-/* 310 */ NULL, +-/* 311 RPL_WHOISUSER, */ ":%s 311 %s %s %s %s * :%s", +-/* 312 RPL_WHOISSERVER, */ ":%s 312 %s %s %s :%s", +-/* 313 RPL_WHOISOPERATOR, */ ":%s 313 %s %s :is an IRC Operator", +-/* 314 RPL_WHOWASUSER, */ ":%s 314 %s %s %s %s * :%s", +-/* 315 RPL_ENDOFWHO, */ ":%s 315 %s %s :End of /WHO list.", +-/* 316 RPL_WHOISCHANOP, */ NULL, +-/* 317 RPL_WHOISIDLE, */ ":%s 317 %s %s %d %d :seconds idle, signon time", +-/* 318 RPL_ENDOFWHOIS, */ ":%s 318 %s %s :End of /WHOIS list.", +-/* 319 RPL_WHOISCHANNELS, */ ":%s 319 %s %s :%s", +-/* 320 */ NULL, +-/* 321 RPL_LISTSTART, */ ":%s 321 %s Channel :Users Name", +-/* 322 RPL_LIST, */ ":%s 322 %s %s %d :%s", +-/* 323 RPL_LISTEND, */ ":%s 323 %s :End of /LIST", +-/* 324 RPL_CHANNELMODEIS, */ ":%s 324 %s %s %s %s", +-/* 325 */ NULL, +-/* 326 */ NULL, +-/* 327 */ NULL, +-/* 328 */ NULL, +-/* 329 RPL_CREATIONTIME, */ ":%s 329 %s %s %lu", +-/* 330 */ NULL, +-/* 331 RPL_NOTOPIC, */ ":%s 331 %s %s :No topic is set.", +-/* 332 RPL_TOPIC, */ ":%s 332 %s %s :%s", +-/* 333 RPL_TOPICWHOTIME, */ ":%s 333 %s %s %s %lu", +-/* 334 */ NULL, +-/* 335 */ NULL, +-/* 336 */ NULL, +-/* 337 */ NULL, +-/* 338 RPL_WHOISACTUALLY */ ":%s 338 %s :%s is actually %s@%s [%s]", +-/* 339 */ NULL, +-/* 340 */ NULL, +-/* 341 RPL_INVITING, */ ":%s 341 %s %s %s", +-/* 342 RPL_SUMMONING, */ NULL, +-/* 343 */ NULL, +-/* 344 */ NULL, +-/* 345 */ NULL, +-/* 346 RPL_INVEXLIST */ ":%s 346 %s %s %s %s %lu", +-/* 347 RPL_ENDOFINVEXLIST */ ":%s 347 %s %s :End of Channel Invite List", +-/* 348 RPL_EXCEPTLIST */ ":%s 348 %s %s %s %s %lu", +-/* 349 RPL_ENDOFEXCEPTLIST */ ":%s 349 %s %s :End of Channel Exception List", +-/* 350 */ NULL, +-/* 351 RPL_VERSION, */ ":%s 351 %s %s(%s).%s %s :%s%s", +-/* 352 RPL_WHOREPLY, */ ":%s 352 %s %s %s %s %s %s %s :%d %s", +-/* 353 RPL_NAMREPLY, */ ":%s 353 %s %s", +-/* 354 */ NULL, +-/* 355 */ NULL, +-/* 356 */ NULL, +-/* 357 */ NULL, +-/* 358 */ NULL, +-/* 359 */ NULL, +-/* 360 */ NULL, +-/* 361 RPL_KILLDONE, */ NULL, +-/* 362 RPL_CLOSING, */ ":%s 362 %s %s :Closed. Status = %d", +-/* 363 RPL_CLOSEEND, */ ":%s 363 %s %d :Connections Closed", +-/* 364 RPL_LINKS, */ ":%s 364 %s %s %s :%d %s", +-/* 365 RPL_ENDOFLINKS, */ ":%s 365 %s %s :End of /LINKS list.", +-/* 366 RPL_ENDOFNAMES, */ ":%s 366 %s %s :End of /NAMES list.", +-/* 367 RPL_BANLIST, */ ":%s 367 %s %s %s %s %lu", +-/* 368 RPL_ENDOFBANLIST, */ ":%s 368 %s %s :End of Channel Ban List", +-/* 369 RPL_ENDOFWHOWAS, */ ":%s 369 %s %s :End of WHOWAS", +-/* 370 */ NULL, +-/* 371 RPL_INFO, */ ":%s 371 %s :%s", +-/* 372 RPL_MOTD, */ ":%s 372 %s :- %s", +-/* 373 RPL_INFOSTART, */ ":%s 373 %s :Server INFO", +-/* 374 RPL_ENDOFINFO, */ ":%s 374 %s :End of /INFO list.", +-/* 375 RPL_MOTDSTART, */ ":%s 375 %s :- %s Message of the Day - ", +-/* 376 RPL_ENDOFMOTD, */ ":%s 376 %s :End of /MOTD command.", +-/* 377 */ NULL, +-/* 378 */ NULL, +-/* 379 */ NULL, +-/* 380 */ NULL, +-/* 381 RPL_YOUREOPER, */ ":%s 381 %s :You have entered... the Twilight Zone!.", +-/* 382 RPL_REHASHING, */ ":%s 382 %s %s :Rehashing", +-/* 383 */ NULL, +-/* 384 RPL_MYPORTIS, */ ":%s 384 %s %d :Port to local server is", +-/* 385 RPL_NOTOPERANYMORE, */ NULL, +-/* 386 */ ":%s 386 %s :%s", +-/* 387 */ NULL, +-/* 388 */ NULL, +-/* 389 */ NULL, +-/* 390 */ NULL, +-/* 391 RPL_TIME, */ ":%s 391 %s %s :%s", +-/* 392 */ NULL, +-/* 393 */ NULL, +-/* 394 */ NULL, +-/* 395 */ NULL, +-/* 396 */ NULL, +-/* 397 */ NULL, +-/* 398 */ NULL, +-/* 399 */ NULL, +-/* 400 */ NULL, +-/* 401 ERR_NOSUCHNICK, */ ":%s 401 %s %s :No such nick/channel", +-/* 402 ERR_NOSUCHSERVER, */ ":%s 402 %s %s :No such server", +-/* 403 ERR_NOSUCHCHANNEL, */ ":%s 403 %s %s :No such channel", +-/* 404 ERR_CANNOTSENDTOCHAN, */ ":%s 404 %s %s :Cannot send to channel", +-/* 405 ERR_TOOMANYCHANNELS, */ ":%s 405 %s %s :You have joined too many channels", +-/* 406 ERR_WASNOSUCHNICK, */ ":%s 406 %s %s :There was no such nickname", +-/* 407 ERR_TOOMANYTARGETS, */ ":%s 407 %s %s :Too many recipients.", +-/* 408 */ NULL, +-/* 409 ERR_NOORIGIN, */ ":%s 409 %s :No origin specified", +-/* 410 */ NULL, +-/* 411 ERR_NORECIPIENT, */ ":%s 411 %s :No recipient given (%s)", +-/* 412 ERR_NOTEXTTOSEND, */ ":%s 412 %s :No text to send", +-/* 413 ERR_NOTOPLEVEL, */ ":%s 413 %s %s :No toplevel domain specified", +-/* 414 ERR_WILDTOPLEVEL, */ ":%s 414 %s %s :Wildcard in toplevel Domain", +-/* 415 */ NULL, +-/* 416 */ NULL, +-/* 417 */ NULL, +-/* 418 */ NULL, +-/* 419 */ NULL, +-/* 420 */ NULL, +-/* 421 ERR_UNKNOWNCOMMAND, */ ":%s 421 %s %s :Unknown command", +-/* 422 ERR_NOMOTD, */ ":%s 422 %s :MOTD File is missing", +-/* 423 ERR_NOADMININFO, */ +- ":%s 423 %s %s :No administrative info available", +-/* 424 ERR_FILEERROR, */ ":%s 424 %s :File error doing %s on %s", +-/* 425 */ NULL, +-/* 426 */ NULL, +-/* 427 */ NULL, +-/* 428 */ NULL, +-/* 429 */ NULL, +-/* 430 */ NULL, +-/* 431 ERR_NONICKNAMEGIVEN, */ ":%s 431 %s :No nickname given", +-/* 432 ERR_ERRONEUSNICKNAME, */ ":%s 432 %s %s :Erroneous Nickname", +-/* 433 ERR_NICKNAMEINUSE, */ ":%s 433 %s %s :Nickname is already in use.", +-/* 434 */ NULL, +-/* 435 */ NULL, +-/* 436 ERR_NICKCOLLISION, */ ":%s 436 %s %s :Nickname collision KILL", +-/* 437 ERR_ERR_UNAVAILRESOURCE, */ ":%s 437 %s %s :Nick/channel is temporarily unavailable", +-/* 438 ERR_NICKTOOFAST */ ":%s 438 %s %s %s :Nick change too fast. Please wait %d seconds.", +-/* 439 */ NULL, +-/* 440 */ NULL, +-/* 441 ERR_USERNOTINCHANNEL, */ ":%s 441 %s %s %s :They aren't on that channel", +-/* 442 ERR_NOTONCHANNEL, */ ":%s 442 %s %s :You're not on that channel", +-/* 443 ERR_USERONCHANNEL, */ ":%s 443 %s %s %s :is already on channel", +-/* 444 ERR_NOLOGIN, */ ":%s 444 %s %s :User not logged in", +-/* 445 ERR_SUMMONDISABLED, */ ":%s 445 %s :SUMMON has been removed", +-/* 446 ERR_USERSDISABLED, */ ":%s 446 %s :USERS has been removed", +-/* 447 */ NULL, +-/* 448 */ NULL, +-/* 449 */ NULL, +-/* 450 */ NULL, +-/* 451 ERR_NOTREGISTERED, */ ":%s 451 %s :You have not registered", +-/* 452 */ NULL, +-/* 453 */ NULL, +-/* 454 */ NULL, +-/* 455 */ NULL, +-/* 456 ERR_ACCEPTFULL */ ":%s 456 %s :Accept list is full", +-/* 457 ERR_ACCEPTEXIST */ ":%s 457 %s %s :is already on your accept list", +-/* 458 ERR_ACCEPTNOT */ ":%s 458 %s %s :is not on your accept list", +-/* 459 */ NULL, +-/* 460 */ NULL, +-/* 461 ERR_NEEDMOREPARAMS, */ ":%s 461 %s %s :Not enough parameters", +-/* 462 ERR_ALREADYREGISTRED, */ ":%s 462 %s :You may not reregister", +-/* 463 ERR_NOPERMFORHOST, */ ":%s 463 %s :Your host isn't among the privileged", +-/* 464 ERR_PASSWDMISMATCH, */ ":%s 464 %s :Password Incorrect", +-/* 465 ERR_YOUREBANNEDCREEP, */ ":%s 465 %s :You are banned from this server- %s", +-/* 466 ERR_YOUWILLBEBANNED, */ NULL, +-/* 467 ERR_KEYSET, */ ":%s 467 %s %s :Channel key already set", +-/* 468 */ NULL, +-/* 469 */ NULL, +-/* 470 */ NULL, +-/* 471 ERR_CHANNELISFULL, */ ":%s 471 %s %s :Cannot join channel (+l)", +-/* 472 ERR_UNKNOWNMODE , */ ":%s 472 %s %c :is unknown mode char to me", +-/* 473 ERR_INVITEONLYCHAN, */ ":%s 473 %s %s :Cannot join channel (+i)", +-/* 474 ERR_BANNEDFROMCHAN, */ ":%s 474 %s %s :Cannot join channel (+b)", +-/* 475 ERR_BADCHANNELKEY, */ ":%s 475 %s %s :Cannot join channel (+k)", +-/* 476 ERR_BADCHANMASK, */ ":%s 476 %s %s :Bad Channel Mask", +-/* 477 ERR_MODELESS, */ ":%s 477 %s %s :Channel does not support modes", +-/* 478 ERR_BANLISTFULL, */ ":%s 478 %s %s %s :Channel ban list is full", +-/* 479 ERR_BADCHANNAME */ ":%s 479 %s %s :Illegal channel name", +-/* 480 */ NULL, +-/* 481 ERR_NOPRIVILEGES, */ +- ":%s 481 %s :Permission Denied - You're not an IRC operator", +-/* 482 ERR_CHANOPRIVSNEEDED, */ ":%s 482 %s %s :You're not channel operator", +-/* 483 ERR_CANTKILLSERVER, */ ":%s 483 %s :You can't kill a server!", +-/* 484 ERR_RESTRICTED, */ ":%s 484 %s :You are restricted", +-/* 485 ERR_BANNEDNICK, */ +- ":%s 485 %s :Can't change nick when banned or on a moderated channel (%s)", +-/* 486 */ NULL, +-/* 487 */ NULL, +-/* 488 */ NULL, +-/* 489 */ NULL, +-/* 490 */ NULL, +-/* 491 ERR_NOOPERHOST, */ ":%s 491 %s :Only few of mere mortals may try to enter the twilight zone", +-/* 492 */ NULL, +-/* 493 */ NULL, +-/* 494 */ NULL, +-/* 495 */ NULL, +-/* 496 */ NULL, +-/* 497 */ NULL, +-/* 498 */ NULL, +-/* 499 */ NULL, +-/* 500 */ NULL, +-/* 501 ERR_UMODEUNKNOWNFLAG, */ ":%s 501 %s :Unknown MODE flag", +-/* 502 ERR_USERSDONTMATCH, */ ":%s 502 %s :Can't change mode for other users", +-/* 503 ERR_GHOSTEDCLIENT, */ ":%s 503 %s :Message could not be delivered to %s", +-/* 504 ERR_USERNOTONSERV, */ ":%s 504 %s %s :User is not on this server", +-/* 505 */ NULL, +-/* 506 ERR_VCHANDISABLED, */ ":%s 506 %s :Virtual Channels are disabled", +-/* 507 ERR_ALREADYONVCHAN, */ ":%s 507 %s %s :You are already on a subchan", +-/* 508 */ NULL, +-/* 509 */ NULL, +-/* 510 */ NULL, +-/* 511 */ NULL, +-/* 512 */ NULL, +-/* 513 ERR_WRONGPONG */ ":%s 513 %s :To connect type /QUOTE PONG %lu", +-/* 514 */ NULL, +-/* 515 */ NULL, +-/* 516 */ NULL, +-/* 517 */ NULL, +-/* 518 */ NULL, +-/* 519 */ NULL, +-/* 520 */ NULL, +-/* 521 */ ":%s 521 %s :Bad list syntax, type /QUOTE HELP LIST", +-/* 522 */ NULL, +-/* 523 */ NULL, +-/* 524 ERR_HELPNOTFOUND, */ ":%s 524 %s %s :Help not found", +-/* 525 */ NULL, +-/* 526 */ NULL, +-/* 527 */ NULL, +-/* 528 */ NULL, +-/* 529 */ NULL, +-/* 530 */ NULL, +-/* 531 */ NULL, +-/* 532 */ NULL, +-/* 533 */ NULL, +-/* 534 */ NULL, +-/* 535 */ NULL, +-/* 536 */ NULL, +-/* 537 */ NULL, +-/* 538 */ NULL, +-/* 539 */ NULL, +-/* 540 */ NULL, +-/* 541 */ NULL, +-/* 542 */ NULL, +-/* 543 */ NULL, +-/* 544 */ NULL, +-/* 545 */ NULL, +-/* 546 */ NULL, +-/* 547 */ NULL, +-/* 548 */ NULL, +-/* 549 */ NULL, +-/* 550 */ NULL, +-/* 551 */ NULL, +-/* 552 */ NULL, +-/* 553 */ NULL, +-/* 554 */ NULL, +-/* 555 */ NULL, +-/* 556 */ NULL, +-/* 557 */ NULL, +-/* 558 */ NULL, +-/* 559 */ NULL, +-/* 560 */ NULL, +-/* 561 */ NULL, +-/* 562 */ NULL, +-/* 563 */ NULL, +-/* 564 */ NULL, +-/* 565 */ NULL, +-/* 566 */ NULL, +-/* 567 */ NULL, +-/* 568 */ NULL, +-/* 569 */ NULL, +-/* 570 */ NULL, +-/* 571 */ NULL, +-/* 572 */ NULL, +-/* 573 */ NULL, +-/* 574 */ NULL, +-/* 575 */ NULL, +-/* 576 */ NULL, +-/* 577 */ NULL, +-/* 578 */ NULL, +-/* 579 */ NULL, +-/* 580 */ NULL, +-/* 581 */ NULL, +-/* 582 */ NULL, +-/* 583 */ NULL, +-/* 584 */ NULL, +-/* 585 */ NULL, +-/* 586 */ NULL, +-/* 587 */ NULL, +-/* 588 */ NULL, +-/* 589 */ NULL, +-/* 590 */ NULL, +-/* 591 */ NULL, +-/* 592 */ NULL, +-/* 593 */ NULL, +-/* 594 */ NULL, +-/* 595 */ NULL, +-/* 596 */ NULL, +-/* 597 */ NULL, +-/* 598 */ NULL, +-/* 599 */ NULL, +-/* 600 */ NULL, +-/* 601 */ NULL, +-/* 602 */ NULL, +-/* 603 */ NULL, +-/* 604 */ NULL, +-/* 605 */ NULL, +-/* 606 */ NULL, +-/* 607 */ NULL, +-/* 608 */ NULL, +-/* 609 */ NULL, +-/* 610 */ NULL, +-/* 611 */ NULL, +-/* 612 */ NULL, +-/* 613 */ NULL, +-/* 614 */ NULL, +-/* 615 */ NULL, +-/* 616 */ NULL, +-/* 617 */ NULL, +-/* 618 */ NULL, +-/* 619 */ NULL, +-/* 620 */ NULL, +-/* 621 */ NULL, +-/* 622 */ NULL, +-/* 623 */ NULL, +-/* 624 */ NULL, +-/* 625 */ NULL, +-/* 626 */ NULL, +-/* 627 */ NULL, +-/* 628 */ NULL, +-/* 629 */ NULL, +-/* 630 */ NULL, +-/* 631 */ NULL, +-/* 632 */ NULL, +-/* 633 */ NULL, +-/* 634 */ NULL, +-/* 635 */ NULL, +-/* 636 */ NULL, +-/* 637 */ NULL, +-/* 638 */ NULL, +-/* 639 */ NULL, +-/* 640 */ NULL, +-/* 641 */ NULL, +-/* 642 */ NULL, +-/* 643 */ NULL, +-/* 644 */ NULL, +-/* 645 */ NULL, +-/* 646 */ NULL, +-/* 647 */ NULL, +-/* 648 */ NULL, +-/* 649 */ NULL, +-/* 650 */ NULL, +-/* 651 */ NULL, +-/* 652 */ NULL, +-/* 653 */ NULL, +-/* 654 */ NULL, +-/* 655 */ NULL, +-/* 656 */ NULL, +-/* 657 */ NULL, +-/* 658 */ NULL, +-/* 659 */ NULL, +-/* 660 */ NULL, +-/* 661 */ NULL, +-/* 662 */ NULL, +-/* 663 */ NULL, +-/* 664 */ NULL, +-/* 665 */ NULL, +-/* 666 */ NULL, +-/* 667 */ NULL, +-/* 668 */ NULL, +-/* 669 */ NULL, +-/* 670 */ NULL, +-/* 671 */ NULL, +-/* 672 */ NULL, +-/* 673 */ NULL, +-/* 674 */ NULL, +-/* 675 */ NULL, +-/* 676 */ NULL, +-/* 677 */ NULL, +-/* 678 */ NULL, +-/* 679 */ NULL, +-/* 680 */ NULL, +-/* 681 */ NULL, +-/* 682 */ NULL, +-/* 683 */ NULL, +-/* 684 */ NULL, +-/* 685 */ NULL, +-/* 686 */ NULL, +-/* 687 */ NULL, +-/* 688 */ NULL, +-/* 689 */ NULL, +-/* 690 */ NULL, +-/* 691 */ NULL, +-/* 692 */ NULL, +-/* 693 */ NULL, +-/* 694 */ NULL, +-/* 695 */ NULL, +-/* 696 */ NULL, +-/* 697 */ NULL, +-/* 698 */ NULL, +-/* 699 */ NULL, +-/* 700 */ NULL, +-/* 701 */ NULL, +-/* 702 RPL_MODLIST, */ ":%s 702 %s %s 0x%x %s %s", +-/* 703 RPL_ENDOFMODLIST, */ ":%s 703 %s :End of /MODLIST.", +-/* 704 RPL_HELPSTART, */ ":%s 704 %s %s :%s", +-/* 705 RPL_HELPTXT, */ ":%s 705 %s %s :%s", +-/* 706 RPL_ENDOFHELP, */ ":%s 706 %s %s :End of /HELP.", +-/* 707 */ NULL, +-/* 708 */ NULL, +-/* 709 */ NULL, +-/* 710 RPL_KNOCK */ ":%s 710 %s %s %s!%s@%s :has asked for an invite.", +-/* 711 RPL_KNOCKDLVR */ ":%s 711 %s %s :Your KNOCK has been delivered.", +-/* 712 ERR_TOOMANYKNOCK */ ":%s 712 %s %s :Too many KNOCKs (%s).", +-/* 712 ERR_CHANOPEN */ ":%s 713 %s %s :Channel is open.", +-/* 714 ERR_KNOCKONCHAN */ ":%s 714 %s %s :You are already on that channel.", +-/* 715 ERR_KNOCKDISABLED */ ":%s 715 %s :KNOCKs are disabled.", +-/* 716 */ NULL, +-/* 717 */ NULL, +-/* 718 */ NULL, +-/* 719 */ NULL, +-/* 720 */ NULL, +-/* 721 */ NULL, +-/* 722 */ NULL, +-/* 723 */ NULL, +-/* 724 */ NULL, +-/* 725 */ NULL, +-/* 726 */ NULL, +-/* 727 */ NULL, +-/* 728 */ NULL, +-/* 729 */ NULL, +-/* 730 */ NULL, +-/* 731 */ NULL, +-/* 732 */ NULL, +-/* 733 */ NULL, +-/* 734 */ NULL, +-/* 735 */ NULL, +-/* 736 */ NULL, +-/* 737 */ NULL, +-/* 738 */ NULL, +-/* 739 */ NULL, +-/* 740 */ NULL, +-/* 741 */ NULL, +-/* 742 */ NULL, +-/* 743 */ NULL, +-/* 744 */ NULL, +-/* 745 */ NULL, +-/* 746 */ NULL, +-/* 747 */ NULL, +-/* 748 */ NULL, +-/* 749 */ NULL, +-/* 750 */ NULL, +-/* 751 */ NULL, +-/* 752 */ NULL, +-/* 753 */ NULL, +-/* 754 */ NULL, +-/* 755 */ NULL, +-/* 756 */ NULL, +-/* 757 */ NULL, +-/* 758 */ NULL, +-/* 759 */ NULL, +-/* 760 */ NULL, +-/* 761 */ NULL, +-/* 762 */ NULL, +-/* 763 */ NULL, +-/* 764 */ NULL, +-/* 765 */ NULL, +-/* 766 */ NULL, +-/* 767 */ NULL, +-/* 768 */ NULL, +-/* 769 */ NULL, +-/* 770 */ NULL, +-/* 771 */ NULL, +-/* 772 */ NULL, +-/* 773 */ NULL, +-/* 774 */ NULL, +-/* 775 */ NULL, +-/* 776 */ NULL, +-/* 777 */ NULL, +-/* 778 */ NULL, +-/* 779 */ NULL, +-/* 780 */ NULL, +-/* 781 */ NULL, +-/* 782 */ NULL, +-/* 783 */ NULL, +-/* 784 */ NULL, +-/* 785 */ NULL, +-/* 786 */ NULL, +-/* 787 */ NULL, +-/* 788 */ NULL, +-/* 789 */ NULL, +-/* 790 */ NULL, +-/* 791 */ NULL, +-/* 792 */ NULL, +-/* 793 */ NULL, +-/* 794 */ NULL, +-/* 795 */ NULL, +-/* 796 */ NULL, +-/* 797 */ NULL, +-/* 798 */ NULL, +-/* 799 */ NULL, +-/* 800 */ NULL, +-/* 801 */ NULL, +-/* 802 */ NULL, +-/* 803 */ NULL, +-/* 804 */ NULL, +-/* 805 */ NULL, +-/* 806 */ NULL, +-/* 807 */ NULL, +-/* 808 */ NULL, +-/* 809 */ NULL, +-/* 810 */ NULL, +-/* 811 */ NULL, +-/* 812 */ NULL, +-/* 813 */ NULL, +-/* 814 */ NULL, +-/* 815 */ NULL, +-/* 816 */ NULL, +-/* 817 */ NULL, +-/* 818 */ NULL, +-/* 819 */ NULL, +-/* 820 */ NULL, +-/* 821 */ NULL, +-/* 822 */ NULL, +-/* 823 */ NULL, +-/* 824 */ NULL, +-/* 825 */ NULL, +-/* 826 */ NULL, +-/* 827 */ NULL, +-/* 828 */ NULL, +-/* 829 */ NULL, +-/* 830 */ NULL, +-/* 831 */ NULL, +-/* 832 */ NULL, +-/* 833 */ NULL, +-/* 834 */ NULL, +-/* 835 */ NULL, +-/* 836 */ NULL, +-/* 837 */ NULL, +-/* 838 */ NULL, +-/* 839 */ NULL, +-/* 840 */ NULL, +-/* 841 */ NULL, +-/* 842 */ NULL, +-/* 843 */ NULL, +-/* 844 */ NULL, +-/* 845 */ NULL, +-/* 846 */ NULL, +-/* 847 */ NULL, +-/* 848 */ NULL, +-/* 849 */ NULL, +-/* 850 */ NULL, +-/* 851 */ NULL, +-/* 852 */ NULL, +-/* 853 */ NULL, +-/* 854 */ NULL, +-/* 855 */ NULL, +-/* 856 */ NULL, +-/* 857 */ NULL, +-/* 858 */ NULL, +-/* 859 */ NULL, +-/* 860 */ NULL, +-/* 861 */ NULL, +-/* 862 */ NULL, +-/* 863 */ NULL, +-/* 864 */ NULL, +-/* 865 */ NULL, +-/* 866 */ NULL, +-/* 867 */ NULL, +-/* 868 */ NULL, +-/* 869 */ NULL, +-/* 870 */ NULL, +-/* 871 */ NULL, +-/* 872 */ NULL, +-/* 873 */ NULL, +-/* 874 */ NULL, +-/* 875 */ NULL, +-/* 876 */ NULL, +-/* 877 */ NULL, +-/* 878 */ NULL, +-/* 879 */ NULL, +-/* 880 */ NULL, +-/* 881 */ NULL, +-/* 882 */ NULL, +-/* 883 */ NULL, +-/* 884 */ NULL, +-/* 885 */ NULL, +-/* 886 */ NULL, +-/* 887 */ NULL, +-/* 888 */ NULL, +-/* 889 */ NULL, +-/* 890 */ NULL, +-/* 891 */ NULL, +-/* 892 */ NULL, +-/* 893 */ NULL, +-/* 894 */ NULL, +-/* 895 */ NULL, +-/* 896 */ NULL, +-/* 897 */ NULL, +-/* 898 */ NULL, +-/* 899 */ NULL, +-/* 900 */ NULL, +-/* 901 */ NULL, +-/* 902 */ NULL, +-/* 903 */ NULL, +-/* 904 */ NULL, +-/* 905 */ NULL, +-/* 906 */ NULL, +-/* 907 */ NULL, +-/* 908 */ NULL, +-/* 909 */ NULL, +-/* 910 */ NULL, +-/* 911 */ NULL, +-/* 912 */ NULL, +-/* 913 */ NULL, +-/* 914 */ NULL, +-/* 915 */ NULL, +-/* 916 */ NULL, +-/* 917 */ NULL, +-/* 918 */ NULL, +-/* 919 */ NULL, +-/* 920 */ NULL, +-/* 921 */ NULL, +-/* 922 */ NULL, +-/* 923 */ NULL, +-/* 924 */ NULL, +-/* 925 */ NULL, +-/* 926 */ NULL, +-/* 927 */ NULL, +-/* 928 */ NULL, +-/* 929 */ NULL, +-/* 930 */ NULL, +-/* 931 */ NULL, +-/* 932 */ NULL, +-/* 933 */ NULL, +-/* 934 */ NULL, +-/* 935 */ NULL, +-/* 936 */ NULL, +-/* 937 */ NULL, +-/* 938 */ NULL, +-/* 939 */ NULL, +-/* 940 */ NULL, +-/* 941 */ NULL, +-/* 942 */ NULL, +-/* 943 */ NULL, +-/* 944 */ NULL, +-/* 945 */ NULL, +-/* 946 */ NULL, +-/* 947 */ NULL, +-/* 948 */ NULL, +-/* 949 */ NULL, +-/* 950 */ NULL, +-/* 951 */ NULL, +-/* 952 */ NULL, +-/* 953 */ NULL, +-/* 954 */ NULL, +-/* 955 */ NULL, +-/* 956 */ NULL, +-/* 957 */ NULL, +-/* 958 */ NULL, +-/* 959 */ NULL, +-/* 960 */ NULL, +-/* 961 */ NULL, +-/* 962 */ NULL, +-/* 963 */ NULL, +-/* 964 */ NULL, +-/* 965 */ NULL, +-/* 966 */ NULL, +-/* 967 */ NULL, +-/* 968 */ NULL, +-/* 969 */ NULL, +-/* 970 */ NULL, +-/* 971 */ NULL, +-/* 972 */ NULL, +-/* 973 */ NULL, +-/* 974 */ NULL, +-/* 975 */ NULL, +-/* 976 */ NULL, +-/* 977 */ NULL, +-/* 978 */ NULL, +-/* 979 */ NULL, +-/* 980 */ NULL, +-/* 981 */ NULL, +-/* 982 */ NULL, +-/* 983 */ NULL, +-/* 984 */ NULL, +-/* 985 */ NULL, +-/* 986 */ NULL, +-/* 987 */ NULL, +-/* 988 */ NULL, +-/* 989 */ NULL, +-/* 990 */ NULL, +-/* 991 */ NULL, +-/* 992 */ NULL, +-/* 993 */ NULL, +-/* 994 */ NULL, +-/* 995 */ NULL, +-/* 996 */ NULL, +-/* 997 */ NULL, +-/* 998 */ NULL, +-/* 999 LAST ERR_LAST_ERR_MSG,*/ ":%s 999 %s :Last Error Message" ++static struct NumericInfo replies[] = { ++/* 000 */ {NULL, NULL, NULL}, ++/* 001 */ {"RPL_WELCOME", ":%s 001 %s :Welcome to the %s Internet Relay Chat Network %s", NULL}, ++/* 002 */ {"RPL_YOURHOST", ":%s 002 %s :Your host is %s, running version %s", NULL}, ++/* 003 */ {"RPL_CREATED", ":%s 003 %s :This server was created %s", NULL}, ++/* 004 */ {"RPL_MYINFO", ":%s 004 %s %s %s oiwszcerkfydnxbaugl biklmnopstveIha bkloveIh", NULL}, ++/* 005 */ {"RPL_ISUPPORT", ":%s 005 %s %s :are supported by this server", NULL}, ++/* 006 */ {NULL, NULL, NULL}, ++/* 007 */ {NULL, NULL, NULL}, ++/* 008 */ {NULL, NULL, NULL}, ++/* 009 */ {NULL, NULL, NULL}, ++/* 010 */ {"RPL_REDIR", ":%s 010 %s %s %d :Please use this Server/Port instead", NULL}, ++/* 011 */ {NULL, NULL, NULL}, ++/* 012 */ {NULL, NULL, NULL}, ++/* 013 */ {NULL, NULL, NULL}, ++/* 014 */ {NULL, NULL, NULL}, ++/* 015 */ {"RPL_MAP", ":%s 015 %s :%s", NULL}, ++/* 016 */ {NULL, NULL, NULL}, ++/* 017 */ {"RPL_MAPEND", ":%s 017 %s :End of /MAP", NULL}, ++/* 018 */ {NULL, NULL, NULL}, ++/* 019 */ {NULL, NULL, NULL}, ++/* 020 */ {NULL, NULL, NULL}, ++/* 021 */ {NULL, NULL, NULL}, ++/* 022 */ {NULL, NULL, NULL}, ++/* 023 */ {NULL, NULL, NULL}, ++/* 024 */ {NULL, NULL, NULL}, ++/* 025 */ {NULL, NULL, NULL}, ++/* 026 */ {NULL, NULL, NULL}, ++/* 027 */ {NULL, NULL, NULL}, ++/* 028 */ {NULL, NULL, NULL}, ++/* 029 */ {NULL, NULL, NULL}, ++/* 030 */ {NULL, NULL, NULL}, ++/* 031 */ {NULL, NULL, NULL}, ++/* 032 */ {NULL, NULL, NULL}, ++/* 033 */ {NULL, NULL, NULL}, ++/* 034 */ {NULL, NULL, NULL}, ++/* 035 */ {NULL, NULL, NULL}, ++/* 036 */ {NULL, NULL, NULL}, ++/* 037 */ {NULL, NULL, NULL}, ++/* 038 */ {NULL, NULL, NULL}, ++/* 039 */ {NULL, NULL, NULL}, ++/* 040 */ {NULL, NULL, NULL}, ++/* 041 */ {NULL, NULL, NULL}, ++/* 042 */ {NULL, NULL, NULL}, ++/* 043 */ {NULL, NULL, NULL}, ++/* 044 */ {NULL, NULL, NULL}, ++/* 045 */ {NULL, NULL, NULL}, ++/* 046 */ {NULL, NULL, NULL}, ++/* 047 */ {NULL, NULL, NULL}, ++/* 048 */ {NULL, NULL, NULL}, ++/* 049 */ {NULL, NULL, NULL}, ++/* 050 */ {NULL, NULL, NULL}, ++/* 051 */ {NULL, NULL, NULL}, ++/* 052 */ {NULL, NULL, NULL}, ++/* 053 */ {NULL, NULL, NULL}, ++/* 054 */ {NULL, NULL, NULL}, ++/* 055 */ {NULL, NULL, NULL}, ++/* 056 */ {NULL, NULL, NULL}, ++/* 057 */ {NULL, NULL, NULL}, ++/* 058 */ {NULL, NULL, NULL}, ++/* 059 */ {NULL, NULL, NULL}, ++/* 060 */ {NULL, NULL, NULL}, ++/* 061 */ {NULL, NULL, NULL}, ++/* 062 */ {NULL, NULL, NULL}, ++/* 063 */ {NULL, NULL, NULL}, ++/* 064 */ {NULL, NULL, NULL}, ++/* 065 */ {NULL, NULL, NULL}, ++/* 066 */ {NULL, NULL, NULL}, ++/* 067 */ {NULL, NULL, NULL}, ++/* 068 */ {NULL, NULL, NULL}, ++/* 069 */ {NULL, NULL, NULL}, ++/* 070 */ {NULL, NULL, NULL}, ++/* 071 */ {NULL, NULL, NULL}, ++/* 072 */ {NULL, NULL, NULL}, ++/* 073 */ {NULL, NULL, NULL}, ++/* 074 */ {NULL, NULL, NULL}, ++/* 075 */ {NULL, NULL, NULL}, ++/* 076 */ {NULL, NULL, NULL}, ++/* 077 */ {NULL, NULL, NULL}, ++/* 078 */ {NULL, NULL, NULL}, ++/* 079 */ {NULL, NULL, NULL}, ++/* 080 */ {NULL, NULL, NULL}, ++/* 081 */ {NULL, NULL, NULL}, ++/* 082 */ {NULL, NULL, NULL}, ++/* 083 */ {NULL, NULL, NULL}, ++/* 084 */ {NULL, NULL, NULL}, ++/* 085 */ {NULL, NULL, NULL}, ++/* 086 */ {NULL, NULL, NULL}, ++/* 087 */ {NULL, NULL, NULL}, ++/* 088 */ {NULL, NULL, NULL}, ++/* 089 */ {NULL, NULL, NULL}, ++/* 090 */ {NULL, NULL, NULL}, ++/* 091 */ {NULL, NULL, NULL}, ++/* 092 */ {NULL, NULL, NULL}, ++/* 093 */ {NULL, NULL, NULL}, ++/* 094 */ {NULL, NULL, NULL}, ++/* 095 */ {NULL, NULL, NULL}, ++/* 096 */ {NULL, NULL, NULL}, ++/* 097 */ {NULL, NULL, NULL}, ++/* 098 */ {NULL, NULL, NULL}, ++/* 099 */ {NULL, NULL, NULL}, ++/* 100 */ {NULL, NULL, NULL}, ++/* 101 */ {NULL, NULL, NULL}, ++/* 102 */ {NULL, NULL, NULL}, ++/* 103 */ {NULL, NULL, NULL}, ++/* 104 */ {NULL, NULL, NULL}, ++/* 105 */ {NULL, NULL, NULL}, ++/* 106 */ {NULL, NULL, NULL}, ++/* 107 */ {NULL, NULL, NULL}, ++/* 108 */ {NULL, NULL, NULL}, ++/* 109 */ {NULL, NULL, NULL}, ++/* 110 */ {NULL, NULL, NULL}, ++/* 111 */ {NULL, NULL, NULL}, ++/* 112 */ {NULL, NULL, NULL}, ++/* 113 */ {NULL, NULL, NULL}, ++/* 114 */ {NULL, NULL, NULL}, ++/* 115 */ {NULL, NULL, NULL}, ++/* 116 */ {NULL, NULL, NULL}, ++/* 117 */ {NULL, NULL, NULL}, ++/* 118 */ {NULL, NULL, NULL}, ++/* 119 */ {NULL, NULL, NULL}, ++/* 120 */ {NULL, NULL, NULL}, ++/* 121 */ {NULL, NULL, NULL}, ++/* 122 */ {NULL, NULL, NULL}, ++/* 123 */ {NULL, NULL, NULL}, ++/* 124 */ {NULL, NULL, NULL}, ++/* 125 */ {NULL, NULL, NULL}, ++/* 126 */ {NULL, NULL, NULL}, ++/* 127 */ {NULL, NULL, NULL}, ++/* 128 */ {NULL, NULL, NULL}, ++/* 129 */ {NULL, NULL, NULL}, ++/* 130 */ {NULL, NULL, NULL}, ++/* 131 */ {NULL, NULL, NULL}, ++/* 132 */ {NULL, NULL, NULL}, ++/* 133 */ {NULL, NULL, NULL}, ++/* 134 */ {NULL, NULL, NULL}, ++/* 135 */ {NULL, NULL, NULL}, ++/* 136 */ {NULL, NULL, NULL}, ++/* 137 */ {NULL, NULL, NULL}, ++/* 138 */ {NULL, NULL, NULL}, ++/* 139 */ {NULL, NULL, NULL}, ++/* 140 */ {NULL, NULL, NULL}, ++/* 141 */ {NULL, NULL, NULL}, ++/* 142 */ {NULL, NULL, NULL}, ++/* 143 */ {NULL, NULL, NULL}, ++/* 144 */ {NULL, NULL, NULL}, ++/* 145 */ {NULL, NULL, NULL}, ++/* 146 */ {NULL, NULL, NULL}, ++/* 147 */ {NULL, NULL, NULL}, ++/* 148 */ {NULL, NULL, NULL}, ++/* 149 */ {NULL, NULL, NULL}, ++/* 150 */ {NULL, NULL, NULL}, ++/* 151 */ {NULL, NULL, NULL}, ++/* 152 */ {NULL, NULL, NULL}, ++/* 153 */ {NULL, NULL, NULL}, ++/* 154 */ {NULL, NULL, NULL}, ++/* 155 */ {NULL, NULL, NULL}, ++/* 156 */ {NULL, NULL, NULL}, ++/* 157 */ {NULL, NULL, NULL}, ++/* 158 */ {NULL, NULL, NULL}, ++/* 159 */ {NULL, NULL, NULL}, ++/* 160 */ {NULL, NULL, NULL}, ++/* 161 */ {NULL, NULL, NULL}, ++/* 162 */ {NULL, NULL, NULL}, ++/* 163 */ {NULL, NULL, NULL}, ++/* 164 */ {NULL, NULL, NULL}, ++/* 165 */ {NULL, NULL, NULL}, ++/* 166 */ {NULL, NULL, NULL}, ++/* 167 */ {NULL, NULL, NULL}, ++/* 168 */ {NULL, NULL, NULL}, ++/* 169 */ {NULL, NULL, NULL}, ++/* 170 */ {NULL, NULL, NULL}, ++/* 171 */ {NULL, NULL, NULL}, ++/* 172 */ {NULL, NULL, NULL}, ++/* 173 */ {NULL, NULL, NULL}, ++/* 174 */ {NULL, NULL, NULL}, ++/* 175 */ {NULL, NULL, NULL}, ++/* 176 */ {NULL, NULL, NULL}, ++/* 177 */ {NULL, NULL, NULL}, ++/* 178 */ {NULL, NULL, NULL}, ++/* 179 */ {NULL, NULL, NULL}, ++/* 180 */ {NULL, NULL, NULL}, ++/* 181 */ {NULL, NULL, NULL}, ++/* 182 */ {NULL, NULL, NULL}, ++/* 183 */ {NULL, NULL, NULL}, ++/* 184 */ {NULL, NULL, NULL}, ++/* 185 */ {NULL, NULL, NULL}, ++/* 186 */ {NULL, NULL, NULL}, ++/* 187 */ {NULL, NULL, NULL}, ++/* 188 */ {NULL, NULL, NULL}, ++/* 189 */ {NULL, NULL, NULL}, ++/* 190 */ {NULL, NULL, NULL}, ++/* 191 */ {NULL, NULL, NULL}, ++/* 192 */ {NULL, NULL, NULL}, ++/* 193 */ {NULL, NULL, NULL}, ++/* 194 */ {NULL, NULL, NULL}, ++/* 195 */ {NULL, NULL, NULL}, ++/* 196 */ {NULL, NULL, NULL}, ++/* 197 */ {NULL, NULL, NULL}, ++/* 198 */ {NULL, NULL, NULL}, ++/* 199 */ {NULL, NULL, NULL}, ++/* 200 */ {"RPL_TRACELINK", ":%s 200 %s Link %s %s %s", NULL}, ++/* 201 */ {"RPL_TRACECONNECTING", ":%s 201 %s Try. %s %s", NULL}, ++/* 202 */ {"RPL_TRACEHANDSHAKE", ":%s 202 %s H.S. %s %s", NULL}, ++/* 203 */ {"RPL_TRACEUNKNOWN", ":%s 203 %s ???? %s %s (%s) %d", NULL}, ++/* 204 */ {"RPL_TRACEOPERATOR", ":%s 204 %s Oper %s %s (%s) %lu %lu", NULL}, ++/* 205 */ {"RPL_TRACEUSER", ":%s 205 %s User %s %s (%s) %lu %lu", NULL}, ++/* 206 */ {"RPL_TRACESERVER", ":%s 206 %s Serv %s %dS %dC %s %s!%s@%s %lu", NULL}, ++/* 207 */ {NULL, NULL, NULL}, ++/* 208 */ {"RPL_TRACENEWTYPE", ":%s 208 %s 0 %s", NULL}, ++/* 209 */ {"RPL_TRACECLASS", ":%s 209 %s Class %s %d", NULL}, ++/* 210 */ {NULL, NULL, NULL}, ++/* 211 */ {"RPL_STATSLINKINFO", NULL, NULL}, ++/* 212 */ {"RPL_STATSCOMMANDS", ":%s 212 %s %s %u %u :%u", NULL}, ++/* 213 */ {"RPL_STATSCLINE", ":%s 213 %s %c %s %s %s %d %s", NULL}, ++/* 214 */ {"RPL_STATSNLINE", ":%s 214 %s %c %s * %s %d %s", NULL}, ++/* 215 */ {"RPL_STATSILINE", ":%s 215 %s %c %s * %s@%s %d %s", NULL}, ++/* 216 */ {"RPL_STATSKLINE", ":%s 216 %s %c %s * %s :%s", NULL}, ++/* 217 */ {"RPL_STATSQLINE", ":%s 217 %s %c %s :%s", NULL}, ++/* 218 */ {"RPL_STATSYLINE", ":%s 218 %s %c %s %d %d %d %lu", NULL}, ++/* 219 */ {"RPL_ENDOFSTATS", ":%s 219 %s %c :End of /STATS report", NULL}, ++/* 220 */ {"RPL_STATSPLINE", ":%s 220 %s %c %d %s %d :%s", NULL}, ++/* 221 */ {"RPL_UMODEIS", ":%s 221 %s %s", NULL}, ++/* 222 */ {NULL, NULL, NULL}, ++/* 223 */ {NULL, NULL, NULL}, ++/* 224 */ {NULL, NULL, NULL}, ++/* 225 */ {"RPL_STATSDLINE", ":%s 225 %s %c %s :%s", NULL}, ++/* 226 */ {"RPL_STATSALINE", ":%s 226 %s %s", NULL}, ++/* 227 */ {NULL, NULL, NULL}, ++/* 228 */ {NULL, NULL, NULL}, ++/* 229 */ {NULL, NULL, NULL}, ++/* 230 */ {NULL, NULL, NULL}, ++/* 231 */ {NULL, NULL, NULL}, ++/* 232 */ {NULL, NULL, NULL}, ++/* 233 */ {NULL, NULL, NULL}, ++/* 234 */ {NULL, NULL, NULL}, ++/* 235 */ {NULL, NULL, NULL}, ++/* 236 */ {NULL, NULL, NULL}, ++/* 237 */ {NULL, NULL, NULL}, ++/* 238 */ {NULL, NULL, NULL}, ++/* 239 */ {NULL, NULL, NULL}, ++/* 240 */ {NULL, NULL, NULL}, ++/* 241 */ {"RPL_STATSLLINE", ":%s 241 %s %c %s * %s %d %s", NULL}, ++/* 242 */ {"RPL_STATSUPTIME", ":%s 242 %s :Server Up %d days, %d:%02d:%02d", NULL}, ++/* 243 */ {"RPL_STATSOLINE", ":%s 243 %s %c %s@%s * %s %s %s", NULL}, ++/* 244 */ {"RPL_STATSHLINE", ":%s 244 %s %c %s * %s %d %s", NULL}, ++/* 245 */ {"RPL_STATSSLINE", NULL, NULL}, ++/* 246 */ {NULL, NULL, NULL}, ++/* 247 */ {"RPL_STATSXLINE", ":%s 247 %s X %d %s :%s", NULL}, ++/* 248 */ {"RPL_STATSULINE", ":%s 248 %s U %s %s", NULL}, ++/* 249 */ {NULL, NULL, NULL}, ++/* 250 */ {"RPL_STATSCONN", ":%s 250 %s :Highest connection count: %d (%d clients) (%d connections received)", NULL}, ++/* 251 */ {"RPL_LUSERCLIENT", ":%s 251 %s :There are %d users and %d invisible on %d servers", NULL}, ++/* 252 */ {"RPL_LUSEROP", ":%s 252 %s %d :IRC Operators online", NULL}, ++/* 253 */ {"RPL_LUSERUNKNOWN", ":%s 253 %s %d :unknown connection(s)", NULL}, ++/* 254 */ {"RPL_LUSERCHANNELS", ":%s 254 %s %d :channels formed", NULL}, ++/* 255 */ {"RPL_LUSERME", ":%s 255 %s :I have %d clients and %d servers", NULL}, ++/* 256 */ {"RPL_ADMINME", ":%s 256 %s :Administrative info about %s", NULL}, ++/* 257 */ {"RPL_ADMINLOC1", ":%s 257 %s :%s", NULL}, ++/* 258 */ {"RPL_ADMINLOC2", ":%s 258 %s :%s", NULL}, ++/* 259 */ {"RPL_ADMINEMAIL", ":%s 259 %s :%s", NULL}, ++/* 260 */ {NULL, NULL, NULL}, ++/* 261 */ {NULL, NULL, NULL}, ++/* 262 */ {"RPL_ENDOFTRACE", ":%s 262 %s %s :End of TRACE", NULL}, ++/* 263 */ {"RPL_LOAD2HI", ":%s 263 %s :Server load is temporarily too heavy. Please wait a while and try again.", NULL}, ++/* 264 */ {NULL, NULL, NULL}, ++/* 265 */ {"RPL_LOCALUSERS", ":%s 265 %s :Current local users: %d Max: %d", NULL}, ++/* 266 */ {"RPL_GLOBALUSERS", ":%s 266 %s :Current global users: %d Max: %d", NULL}, ++/* 267 */ {NULL, NULL, NULL}, ++/* 268 */ {NULL, NULL, NULL}, ++/* 269 */ {NULL, NULL, NULL}, ++/* 270 */ {NULL, NULL, NULL}, ++/* 271 */ {NULL, NULL, NULL}, ++/* 272 */ {NULL, NULL, NULL}, ++/* 273 */ {NULL, NULL, NULL}, ++/* 274 */ {NULL, NULL, NULL}, ++/* 275 */ {NULL, NULL, NULL}, ++/* 276 */ {NULL, NULL, NULL}, ++/* 277 */ {NULL, NULL, NULL}, ++/* 278 */ {NULL, NULL, NULL}, ++/* 279 */ {NULL, NULL, NULL}, ++/* 280 */ {NULL, NULL, NULL}, ++/* 281 */ {"RPL_ACCEPTLIST", ":%s 281 %s %s :", NULL}, ++/* 282 */ {"RPL_ENDOFACCEPT", ":%s 282 %s :End of /ACCEPT list.", NULL}, ++/* 283 */ {"RPL_ISMESSAGING", ":%s 283 %s :Client %s is messaging and you are +g", NULL}, ++/* 284 */ {NULL, NULL, NULL}, ++/* 285 */ {NULL, NULL, NULL}, ++/* 286 */ {NULL, NULL, NULL}, ++/* 287 */ {NULL, NULL, NULL}, ++/* 288 */ {NULL, NULL, NULL}, ++/* 289 */ {NULL, NULL, NULL}, ++/* 290 */ {NULL, NULL, NULL}, ++/* 291 */ {NULL, NULL, NULL}, ++/* 292 */ {NULL, NULL, NULL}, ++/* 293 */ {NULL, NULL, NULL}, ++/* 294 */ {NULL, NULL, NULL}, ++/* 295 */ {NULL, NULL, NULL}, ++/* 296 */ {NULL, NULL, NULL}, ++/* 297 */ {NULL, NULL, NULL}, ++/* 298 */ {NULL, NULL, NULL}, ++/* 299 */ {NULL, NULL, NULL}, ++/* 300 */ {NULL, NULL, NULL}, ++/* 301 */ {"RPL_AWAY", ":%s 301 %s %s :%s", NULL}, ++/* 302 */ {"RPL_USERHOST", ":%s 302 %s :%s", NULL}, ++/* 303 */ {"RPL_ISON", ":%s 303 %s :", NULL}, ++/* 304 */ {"RPL_TEXT", NULL, NULL}, ++/* 305 */ {"RPL_UNAWAY", ":%s 305 %s :You are no longer marked as being away", NULL}, ++/* 306 */ {"RPL_NOWAWAY", ":%s 306 %s :You have been marked as being away", NULL}, ++/* 307 */ {NULL, NULL, NULL}, ++/* 308 */ {NULL, NULL, NULL}, ++/* 309 */ {NULL, NULL, NULL}, ++/* 310 */ {NULL, NULL, NULL}, ++/* 311 */ {"RPL_WHOISUSER", ":%s 311 %s %s %s %s * :%s", NULL}, ++/* 312 */ {"RPL_WHOISSERVER", ":%s 312 %s %s %s :%s", NULL}, ++/* 313 */ {"RPL_WHOISOPERATOR", ":%s 313 %s %s :is an IRC Operator", NULL}, ++/* 314 */ {"RPL_WHOWASUSER", ":%s 314 %s %s %s %s * :%s", NULL}, ++/* 315 */ {"RPL_ENDOFWHO", ":%s 315 %s %s :End of /WHO list.", NULL}, ++/* 316 */ {"RPL_WHOISCHANOP", NULL, NULL}, ++/* 317 */ {"RPL_WHOISIDLE", ":%s 317 %s %s %d %d :seconds idle, signon time", NULL}, ++/* 318 */ {"RPL_ENDOFWHOIS", ":%s 318 %s %s :End of /WHOIS list.", NULL}, ++/* 319 */ {"RPL_WHOISCHANNELS", ":%s 319 %s %s :%s", NULL}, ++/* 320 */ {NULL, NULL, NULL}, ++/* 321 */ {"RPL_LISTSTART", ":%s 321 %s Channel :Users Name", NULL}, ++/* 322 */ {"RPL_LIST", ":%s 322 %s %s %d :%s", NULL}, ++/* 323 */ {"RPL_LISTEND", ":%s 323 %s :End of /LIST", NULL}, ++/* 324 */ {"RPL_CHANNELMODEIS", ":%s 324 %s %s %s %s", NULL}, ++/* 325 */ {NULL, NULL, NULL}, ++/* 326 */ {NULL, NULL, NULL}, ++/* 327 */ {NULL, NULL, NULL}, ++/* 328 */ {NULL, NULL, NULL}, ++/* 329 */ {"RPL_CREATIONTIME", ":%s 329 %s %s %lu", NULL}, ++/* 330 */ {NULL, NULL, NULL}, ++/* 331 */ {"RPL_NOTOPIC", ":%s 331 %s %s :No topic is set.", NULL}, ++/* 332 */ {"RPL_TOPIC", ":%s 332 %s %s :%s", NULL}, ++/* 333 */ {"RPL_TOPICWHOTIME", ":%s 333 %s %s %s %lu", NULL}, ++/* 334 */ {NULL, NULL, NULL}, ++/* 335 */ {NULL, NULL, NULL}, ++/* 336 */ {NULL, NULL, NULL}, ++/* 337 */ {NULL, NULL, NULL}, ++/* 338 */ {"RPL_WHOISACTUALLY", ":%s 338 %s %s %s :actually using host", NULL}, ++/* 339 */ {NULL, NULL, NULL}, ++/* 340 */ {NULL, NULL, NULL}, ++/* 341 */ {"RPL_INVITING", ":%s 341 %s %s %s", NULL}, ++/* 342 */ {NULL, NULL, NULL}, ++/* 343 */ {NULL, NULL, NULL}, ++/* 344 */ {NULL, NULL, NULL}, ++/* 345 */ {NULL, NULL, NULL}, ++/* 346 */ {"RPL_INVEXLIST", ":%s 346 %s %s %s %s %lu", NULL}, ++/* 347 */ {"RPL_ENDOFINVEXLIST", ":%s 347 %s %s :End of Channel Invite List", NULL}, ++/* 348 */ {"RPL_EXCEPTLIST", ":%s 348 %s %s %s %s %lu", NULL}, ++/* 349 */ {"RPL_ENDOFEXCEPTLIST", ":%s 349 %s %s :End of Channel Exception List", NULL}, ++/* 350 */ {NULL, NULL, NULL}, ++/* 351 */ {"RPL_VERSION", ":%s 351 %s %s(%s). %s :%s%s", NULL}, ++/* 352 */ {"RPL_WHOREPLY", ":%s 352 %s %s %s %s %s %s %s :%d %s", NULL}, ++/* 353 */ {"RPL_NAMREPLY", ":%s 353 %s %s", NULL}, ++/* 354 */ {NULL, NULL, NULL}, ++/* 355 */ {NULL, NULL, NULL}, ++/* 356 */ {NULL, NULL, NULL}, ++/* 357 */ {NULL, NULL, NULL}, ++/* 358 */ {NULL, NULL, NULL}, ++/* 359 */ {NULL, NULL, NULL}, ++/* 360 */ {NULL, NULL, NULL}, ++/* 361 */ {NULL, NULL, NULL}, ++/* 362 */ {"RPL_CLOSING", ":%s 362 %s %s :Closed. Status = %d", NULL}, ++/* 363 */ {"RPL_CLOSEEND", ":%s 363 %s %d: Connections Closed", NULL}, ++/* 364 */ {"RPL_LINKS", ":%s 364 %s %s %s :%d %s", NULL}, ++/* 365 */ {"RPL_ENDOFLINKS", ":%s 365 %s %s :End of /LINKS list.", NULL}, ++/* 366 */ {"RPL_ENDOFNAMES", ":%s 366 %s %s :End of /NAMES list.", NULL}, ++/* 367 */ {"RPL_BANLIST", ":%s 367 %s %s %s %s %lu", NULL}, ++/* 368 */ {"RPL_ENDOFBANLIST", ":%s 368 %s %s :End of Channel Ban List", NULL}, ++/* 369 */ {"RPL_ENDOFWHOWAS", ":%s 369 %s %s :End of WHOWAS", NULL}, ++/* 370 */ {NULL, NULL, NULL}, ++/* 371 */ {"RPL_INFO", ":%s 371 %s :%s", NULL}, ++/* 372 */ {"RPL_MOTD", ":%s 372 %s :- %s", NULL}, ++/* 373 */ {"RPL_INFOSTART", ":%s 373 %s :Server INFO", NULL}, ++/* 374 */ {"RPL_ENDOFINFO", ":%s 374 %s :End of /INFO list.", NULL}, ++/* 375 */ {"RPL_MOTDSTART", ":%s 375 %s :- %s Message of the Day - ", NULL}, ++/* 376 */ {"RPL_ENDOFMOTD", ":%s 376 %s :End of /MOTD command.", NULL}, ++/* 377 */ {NULL, NULL, NULL}, ++/* 378 */ {NULL, NULL, NULL}, ++/* 379 */ {NULL, NULL, NULL}, ++/* 380 */ {NULL, NULL, NULL}, ++/* 381 */ {"RPL_YOUREOPER", ":%s 381 %s :You have entered... the Twilight Zone!", NULL}, ++/* 382 */ {"RPL_REHASHING", ":%s 382 %s %s :Rehashing", NULL}, ++/* 383 */ {NULL, NULL, NULL}, ++/* 384 */ {NULL, NULL, NULL}, ++/* 385 */ {NULL, NULL, NULL}, ++/* 386 */ {NULL, ":%s 386 %s :%s", NULL}, ++/* 387 */ {NULL, NULL, NULL}, ++/* 388 */ {NULL, NULL, NULL}, ++/* 389 */ {NULL, NULL, NULL}, ++/* 390 */ {NULL, NULL, NULL}, ++/* 391 */ {"RPL_TIME", ":%s 391 %s %s :%s", NULL}, ++/* 392 */ {NULL, NULL, NULL}, ++/* 393 */ {NULL, NULL, NULL}, ++/* 394 */ {NULL, NULL, NULL}, ++/* 395 */ {NULL, NULL, NULL}, ++/* 396 */ {NULL, NULL, NULL}, ++/* 397 */ {NULL, NULL, NULL}, ++/* 398 */ {NULL, NULL, NULL}, ++/* 399 */ {NULL, NULL, NULL}, ++/* 400 */ {NULL, NULL, NULL}, ++/* 401 */ {"ERR_NOSUCHNICK", ":%s 401 %s %s :No such nick/channel", NULL}, ++/* 402 */ {"ERR_NOSUCHSERVER", ":%s 402 %s %s :No such server", NULL}, ++/* 403 */ {"ERR_NOSUCHCHANNEL", ":%s 403 %s %s :No such channel", NULL}, ++/* 404 */ {"ERR_CANNOTSENDTOCHAN", ":%s 404 %s %s :Cannot send to channel", NULL}, ++/* 405 */ {"ERR_TOOMANYCHANNELS", ":%s 405 %s %s :You have joined too many channels", NULL}, ++/* 406 */ {"ERR_WASNOSUCHNICK", ":%s 406 %s %s :There was no such nickname", NULL}, ++/* 407 */ {"ERR_TOOMANYTARGETS", ":%s 407 %s %s :Too many recipients. Only %d processed", NULL}, ++/* 408 */ {NULL, NULL, NULL}, ++/* 409 */ {"ERR_NOORIGIN", ":%s 409 %s :No origin specified", NULL}, ++/* 410 */ {NULL, NULL, NULL}, ++/* 411 */ {"ERR_NORECIPIENT", ":%s 411 %s :No recipient given (%s)", NULL}, ++/* 412 */ {"ERR_NOTEXTTOSEND", ":%s 412 %s :No text to send", NULL}, ++/* 413 */ {"ERR_NOTOPLEVEL", ":%s 413 %s %s :No toplevel domain specified", NULL}, ++/* 414 */ {"ERR_WILDTOPLEVEL", ":%s 414 %s %s :Wildcard in toplevel Domain", NULL}, ++/* 415 */ {NULL, NULL, NULL}, ++/* 416 */ {NULL, NULL, NULL}, ++/* 417 */ {NULL, NULL, NULL}, ++/* 418 */ {NULL, NULL, NULL}, ++/* 419 */ {NULL, NULL, NULL}, ++/* 420 */ {NULL, NULL, NULL}, ++/* 421 */ {"ERR_UNKNOWNCOMMAND", ":%s 421 %s %s :Unknown command", NULL}, ++/* 422 */ {"ERR_NOMOTD", ":%s 422 %s :MOTD File is missing", NULL}, ++/* 423 */ {"ERR_NOADMININFO", ":%s 423 %s %s :No administrative info available", NULL}, ++/* 424 */ {NULL, NULL, NULL}, ++/* 425 */ {NULL, NULL, NULL}, ++/* 426 */ {NULL, NULL, NULL}, ++/* 427 */ {NULL, NULL, NULL}, ++/* 428 */ {NULL, NULL, NULL}, ++/* 429 */ {NULL, NULL, NULL}, ++/* 430 */ {NULL, NULL, NULL}, ++/* 431 */ {"ERR_NONICKNAMEGIVEN", ":%s 431 %s :No nickname given", NULL}, ++/* 432 */ {"ERR_ERRONEUSNICKNAME", ":%s 432 %s %s :Erroneous Nickname", NULL}, ++/* 433 */ {"ERR_NICKNAMEINUSE", ":%s 433 %s %s :Nickname is already in use.", NULL}, ++/* 434 */ {NULL, NULL, NULL}, ++/* 435 */ {NULL, NULL, NULL}, ++/* 436 */ {"ERR_NICKCOLLISION", ":%s 436 %s %s :Nickname collision KILL", NULL}, ++/* 437 */ {"ERR_UNAVAILRESOURCE", ":%s 437 %s %s :Nick/channel is temporarily unavailable", NULL}, ++/* 438 */ {"ERR_NICKTOOFAST", ":%s 438 %s %s %s :Nick change too fast. Please wait %d seconds.", NULL}, ++/* 439 */ {NULL, NULL, NULL}, ++/* 440 */ {NULL, NULL, NULL}, ++/* 441 */ {"ERR_USERNOTINCHANNEL", ":%s 441 %s %s %s :They aren't on that channel", NULL}, ++/* 442 */ {"ERR_NOTONCHANNEL", ":%s 442 %s %s :You're not on that channel", NULL}, ++/* 443 */ {"ERR_USERONCHANNEL", ":%s 443 %s %s %s :is already on channel", NULL}, ++/* 444 */ {NULL, NULL, NULL}, ++/* 445 */ {NULL, NULL, NULL}, ++/* 446 */ {NULL, NULL, NULL}, ++/* 447 */ {NULL, NULL, NULL}, ++/* 448 */ {NULL, NULL, NULL}, ++/* 449 */ {NULL, NULL, NULL}, ++/* 450 */ {NULL, NULL, NULL}, ++/* 451 */ {"ERR_NOTREGISTERED", ":%s 451 %s :You have not registered", NULL}, ++/* 452 */ {NULL, NULL, NULL}, ++/* 453 */ {NULL, NULL, NULL}, ++/* 454 */ {NULL, NULL, NULL}, ++/* 455 */ {NULL, NULL, NULL}, ++/* 456 */ {"ERR_ACCEPTFULL", ":%s 456 %s :Accept list is full", NULL}, ++/* 457 */ {"ERR_ACCEPTEXIST", ":%s 457 %s %s :is already on your accept list", NULL}, ++/* 458 */ {"ERR_ACCEPTNOT", ":%s 458 %s %s :is not on your accept list", NULL}, ++/* 459 */ {NULL, NULL, NULL}, ++/* 460 */ {NULL, NULL, NULL}, ++/* 461 */ {"ERR_NEEDMOREPARAMS", ":%s 461 %s %s :Not enough parameters", NULL}, ++/* 462 */ {"ERR_ALREADYREGISTRED", ":%s 462 %s :You may not reregister", NULL}, ++/* 463 */ {NULL, NULL, NULL}, ++/* 464 */ {"ERR_PASSWDMISMATCH", ":%s 464 %s :Password Incorrect", NULL}, ++/* 465 */ {"ERR_YOUREBANNEDCREEP", ":%s 465 %s :You are banned from this server- %s", NULL}, ++/* 466 */ {NULL, NULL, NULL}, ++/* 467 */ {NULL, NULL, NULL}, ++/* 468 */ {NULL, NULL, NULL}, ++/* 469 */ {NULL, NULL, NULL}, ++/* 470 */ {NULL, NULL, NULL}, ++/* 471 */ {"ERR_CHANNELISFULL", ":%s 471 %s %s :Cannot join channel (+l)", NULL}, ++/* 472 */ {"ERR_UNKNOWNMODE", ":%s 472 %s %c :is unknown mode char to me", NULL}, ++/* 473 */ {"ERR_INVITEONLYCHAN", ":%s 473 %s %s :Cannot join channel (+i)", NULL}, ++/* 474 */ {"ERR_BANNEDFROMCHAN", ":%s 474 %s %s :Cannot join channel (+b)", NULL}, ++/* 475 */ {"ERR_BADCHANNELKEY", ":%s 475 %s %s :Cannot join channel (+k)", NULL}, ++/* 476 */ {NULL, NULL, NULL}, ++/* 477 */ {NULL, NULL, NULL}, ++/* 478 */ {"ERR_BANLISTFULL", ":%s 478 %s %s %s :Channel ban list is full", NULL}, ++/* 479 */ {"ERR_BADCHANNAME", ":%s 479 %s %s :Illegal channel name", NULL}, ++/* 480 */ {NULL, NULL, NULL}, ++/* 481 */ {"ERR_NOPRIVILEGES", ":%s 481 %s :Permission Denied - You're not an IRC operator", NULL}, ++/* 482 */ {"ERR_CHANOPRIVSNEEDED", ":%s 482 %s %s :You're not channel operator", NULL}, ++/* 483 */ {"ERR_CANTKILLSERVER", ":%s 483 %s :You can't kill a server!", NULL}, ++/* 484 */ {"ERR_RESTRICTED", ":%s 484 %s :You are restricted", NULL}, ++/* 485 */ {NULL, NULL, NULL}, ++/* 486 */ {NULL, NULL, NULL}, ++/* 487 */ {NULL, NULL, NULL}, ++/* 488 */ {NULL, NULL, NULL}, ++/* 489 */ {NULL, NULL, NULL}, ++/* 490 */ {NULL, NULL, NULL}, ++/* 491 */ {"ERR_NOOPERHOST", ":%s 491 %s :Only few of mere mortals may try to enter the twilight zone", NULL}, ++/* 492 */ {NULL, NULL, NULL}, ++/* 493 */ {NULL, NULL, NULL}, ++/* 494 */ {NULL, NULL, NULL}, ++/* 495 */ {NULL, NULL, NULL}, ++/* 496 */ {NULL, NULL, NULL}, ++/* 497 */ {NULL, NULL, NULL}, ++/* 498 */ {NULL, NULL, NULL}, ++/* 499 */ {NULL, NULL, NULL}, ++/* 500 */ {NULL, NULL, NULL}, ++/* 501 */ {"ERR_UMODEUNKNOWNFLAG", ":%s 501 %s :Unknown MODE flag", NULL}, ++/* 502 */ {"ERR_USERSDONTMATCH", ":%s 502 %s :Can't change mode for other users", NULL}, ++/* 503 */ {"ERR_GHOSTEDCLIENT", ":%s 503 %s :Message could not be delivered to %s", NULL}, ++/* 504 */ {"ERR_USERNOTONSERV", ":%s 504 %s %s :User is not on this server", NULL}, ++/* 505 */ {NULL, NULL, NULL}, ++/* 506 */ {NULL, NULL, NULL}, ++/* 507 */ {NULL, NULL, NULL}, ++/* 508 */ {NULL, NULL, NULL}, ++/* 509 */ {NULL, NULL, NULL}, ++/* 510 */ {NULL, NULL, NULL}, ++/* 511 */ {NULL, NULL, NULL}, ++/* 512 */ {NULL, NULL, NULL}, ++/* 513 */ {"ERR_WRONGPONG", ":%s 513 %s :To connect type /QUOTE PONG %lu", NULL}, ++/* 514 */ {NULL, NULL, NULL}, ++/* 515 */ {NULL, NULL, NULL}, ++/* 516 */ {NULL, NULL, NULL}, ++/* 517 */ {NULL, NULL, NULL}, ++/* 518 */ {NULL, NULL, NULL}, ++/* 519 */ {NULL, NULL, NULL}, ++/* 520 */ {NULL, NULL, NULL}, ++/* 521 */ {"ERR_LISTSYNTAX", ":%s 521 %s :Bad list syntax, type /QUOTE HELP LIST", NULL}, ++/* 522 */ {NULL, NULL, NULL}, ++/* 523 */ {NULL, NULL, NULL}, ++/* 524 */ {"ERR_HELPNOTFOUND", ":%s 524 %s %s :Help not found", NULL}, ++/* 525 */ {NULL, NULL, NULL}, ++/* 526 */ {NULL, NULL, NULL}, ++/* 527 */ {NULL, NULL, NULL}, ++/* 528 */ {NULL, NULL, NULL}, ++/* 529 */ {NULL, NULL, NULL}, ++/* 530 */ {NULL, NULL, NULL}, ++/* 531 */ {NULL, NULL, NULL}, ++/* 532 */ {NULL, NULL, NULL}, ++/* 533 */ {NULL, NULL, NULL}, ++/* 534 */ {NULL, NULL, NULL}, ++/* 535 */ {NULL, NULL, NULL}, ++/* 536 */ {NULL, NULL, NULL}, ++/* 537 */ {NULL, NULL, NULL}, ++/* 538 */ {NULL, NULL, NULL}, ++/* 539 */ {NULL, NULL, NULL}, ++/* 540 */ {NULL, NULL, NULL}, ++/* 541 */ {NULL, NULL, NULL}, ++/* 542 */ {NULL, NULL, NULL}, ++/* 543 */ {NULL, NULL, NULL}, ++/* 544 */ {NULL, NULL, NULL}, ++/* 545 */ {NULL, NULL, NULL}, ++/* 546 */ {NULL, NULL, NULL}, ++/* 547 */ {NULL, NULL, NULL}, ++/* 548 */ {NULL, NULL, NULL}, ++/* 549 */ {NULL, NULL, NULL}, ++/* 550 */ {NULL, NULL, NULL}, ++/* 551 */ {NULL, NULL, NULL}, ++/* 552 */ {NULL, NULL, NULL}, ++/* 553 */ {NULL, NULL, NULL}, ++/* 554 */ {NULL, NULL, NULL}, ++/* 555 */ {NULL, NULL, NULL}, ++/* 556 */ {NULL, NULL, NULL}, ++/* 557 */ {NULL, NULL, NULL}, ++/* 558 */ {NULL, NULL, NULL}, ++/* 559 */ {NULL, NULL, NULL}, ++/* 560 */ {NULL, NULL, NULL}, ++/* 561 */ {NULL, NULL, NULL}, ++/* 562 */ {NULL, NULL, NULL}, ++/* 563 */ {NULL, NULL, NULL}, ++/* 564 */ {NULL, NULL, NULL}, ++/* 565 */ {NULL, NULL, NULL}, ++/* 566 */ {NULL, NULL, NULL}, ++/* 567 */ {NULL, NULL, NULL}, ++/* 568 */ {NULL, NULL, NULL}, ++/* 569 */ {NULL, NULL, NULL}, ++/* 570 */ {NULL, NULL, NULL}, ++/* 571 */ {NULL, NULL, NULL}, ++/* 572 */ {NULL, NULL, NULL}, ++/* 573 */ {NULL, NULL, NULL}, ++/* 574 */ {NULL, NULL, NULL}, ++/* 575 */ {NULL, NULL, NULL}, ++/* 576 */ {NULL, NULL, NULL}, ++/* 577 */ {NULL, NULL, NULL}, ++/* 578 */ {NULL, NULL, NULL}, ++/* 579 */ {NULL, NULL, NULL}, ++/* 580 */ {NULL, NULL, NULL}, ++/* 581 */ {NULL, NULL, NULL}, ++/* 582 */ {NULL, NULL, NULL}, ++/* 583 */ {NULL, NULL, NULL}, ++/* 584 */ {NULL, NULL, NULL}, ++/* 585 */ {NULL, NULL, NULL}, ++/* 586 */ {NULL, NULL, NULL}, ++/* 587 */ {NULL, NULL, NULL}, ++/* 588 */ {NULL, NULL, NULL}, ++/* 589 */ {NULL, NULL, NULL}, ++/* 590 */ {NULL, NULL, NULL}, ++/* 591 */ {NULL, NULL, NULL}, ++/* 592 */ {NULL, NULL, NULL}, ++/* 593 */ {NULL, NULL, NULL}, ++/* 594 */ {NULL, NULL, NULL}, ++/* 595 */ {NULL, NULL, NULL}, ++/* 596 */ {NULL, NULL, NULL}, ++/* 597 */ {NULL, NULL, NULL}, ++/* 598 */ {NULL, NULL, NULL}, ++/* 599 */ {NULL, NULL, NULL}, ++/* 600 */ {NULL, NULL, NULL}, ++/* 601 */ {NULL, NULL, NULL}, ++/* 602 */ {NULL, NULL, NULL}, ++/* 603 */ {NULL, NULL, NULL}, ++/* 604 */ {NULL, NULL, NULL}, ++/* 605 */ {NULL, NULL, NULL}, ++/* 606 */ {NULL, NULL, NULL}, ++/* 607 */ {NULL, NULL, NULL}, ++/* 608 */ {NULL, NULL, NULL}, ++/* 609 */ {NULL, NULL, NULL}, ++/* 610 */ {NULL, NULL, NULL}, ++/* 611 */ {NULL, NULL, NULL}, ++/* 612 */ {NULL, NULL, NULL}, ++/* 613 */ {NULL, NULL, NULL}, ++/* 614 */ {NULL, NULL, NULL}, ++/* 615 */ {NULL, NULL, NULL}, ++/* 616 */ {NULL, NULL, NULL}, ++/* 617 */ {NULL, NULL, NULL}, ++/* 618 */ {NULL, NULL, NULL}, ++/* 619 */ {NULL, NULL, NULL}, ++/* 620 */ {NULL, NULL, NULL}, ++/* 621 */ {NULL, NULL, NULL}, ++/* 622 */ {NULL, NULL, NULL}, ++/* 623 */ {NULL, NULL, NULL}, ++/* 624 */ {NULL, NULL, NULL}, ++/* 625 */ {NULL, NULL, NULL}, ++/* 626 */ {NULL, NULL, NULL}, ++/* 627 */ {NULL, NULL, NULL}, ++/* 628 */ {NULL, NULL, NULL}, ++/* 629 */ {NULL, NULL, NULL}, ++/* 630 */ {NULL, NULL, NULL}, ++/* 631 */ {NULL, NULL, NULL}, ++/* 632 */ {NULL, NULL, NULL}, ++/* 633 */ {NULL, NULL, NULL}, ++/* 634 */ {NULL, NULL, NULL}, ++/* 635 */ {NULL, NULL, NULL}, ++/* 636 */ {NULL, NULL, NULL}, ++/* 637 */ {NULL, NULL, NULL}, ++/* 638 */ {NULL, NULL, NULL}, ++/* 639 */ {NULL, NULL, NULL}, ++/* 640 */ {NULL, NULL, NULL}, ++/* 641 */ {NULL, NULL, NULL}, ++/* 642 */ {NULL, NULL, NULL}, ++/* 643 */ {NULL, NULL, NULL}, ++/* 644 */ {NULL, NULL, NULL}, ++/* 645 */ {NULL, NULL, NULL}, ++/* 646 */ {NULL, NULL, NULL}, ++/* 647 */ {NULL, NULL, NULL}, ++/* 648 */ {NULL, NULL, NULL}, ++/* 649 */ {NULL, NULL, NULL}, ++/* 650 */ {NULL, NULL, NULL}, ++/* 651 */ {NULL, NULL, NULL}, ++/* 652 */ {NULL, NULL, NULL}, ++/* 653 */ {NULL, NULL, NULL}, ++/* 654 */ {NULL, NULL, NULL}, ++/* 655 */ {NULL, NULL, NULL}, ++/* 656 */ {NULL, NULL, NULL}, ++/* 657 */ {NULL, NULL, NULL}, ++/* 658 */ {NULL, NULL, NULL}, ++/* 659 */ {NULL, NULL, NULL}, ++/* 660 */ {NULL, NULL, NULL}, ++/* 661 */ {NULL, NULL, NULL}, ++/* 662 */ {NULL, NULL, NULL}, ++/* 663 */ {NULL, NULL, NULL}, ++/* 664 */ {NULL, NULL, NULL}, ++/* 665 */ {NULL, NULL, NULL}, ++/* 666 */ {NULL, NULL, NULL}, ++/* 667 */ {NULL, NULL, NULL}, ++/* 668 */ {NULL, NULL, NULL}, ++/* 669 */ {NULL, NULL, NULL}, ++/* 670 */ {NULL, NULL, NULL}, ++/* 671 */ {NULL, NULL, NULL}, ++/* 672 */ {NULL, NULL, NULL}, ++/* 673 */ {NULL, NULL, NULL}, ++/* 674 */ {NULL, NULL, NULL}, ++/* 675 */ {NULL, NULL, NULL}, ++/* 676 */ {NULL, NULL, NULL}, ++/* 677 */ {NULL, NULL, NULL}, ++/* 678 */ {NULL, NULL, NULL}, ++/* 679 */ {NULL, NULL, NULL}, ++/* 680 */ {NULL, NULL, NULL}, ++/* 681 */ {NULL, NULL, NULL}, ++/* 682 */ {NULL, NULL, NULL}, ++/* 683 */ {NULL, NULL, NULL}, ++/* 684 */ {NULL, NULL, NULL}, ++/* 685 */ {NULL, NULL, NULL}, ++/* 686 */ {NULL, NULL, NULL}, ++/* 687 */ {NULL, NULL, NULL}, ++/* 688 */ {NULL, NULL, NULL}, ++/* 689 */ {NULL, NULL, NULL}, ++/* 690 */ {NULL, NULL, NULL}, ++/* 691 */ {NULL, NULL, NULL}, ++/* 692 */ {NULL, NULL, NULL}, ++/* 693 */ {NULL, NULL, NULL}, ++/* 694 */ {NULL, NULL, NULL}, ++/* 695 */ {NULL, NULL, NULL}, ++/* 696 */ {NULL, NULL, NULL}, ++/* 697 */ {NULL, NULL, NULL}, ++/* 698 */ {NULL, NULL, NULL}, ++/* 699 */ {NULL, NULL, NULL}, ++/* 700 */ {NULL, NULL, NULL}, ++/* 701 */ {NULL, NULL, NULL}, ++/* 702 */ {"RPL_MODLIST", ":%s 702 %s %s 0x%x %s", NULL}, ++/* 703 */ {"RPL_ENDOFMODLIST", ":%s 703 %s :End of /MODLIST.", NULL}, ++/* 704 */ {"RPL_HELPSTART", ":%s 704 %s %s :%s", NULL}, ++/* 705 */ {"RPL_HELPTXT", ":%s 705 %s %s :%s", NULL}, ++/* 706 */ {"RPL_ENDOFHELP", ":%s 706 %s %s :End of /HELP.", NULL}, ++/* 707 */ {NULL, NULL, NULL}, ++/* 708 */ {NULL, NULL, NULL}, ++/* 709 */ {NULL, NULL, NULL}, ++/* 710 */ {"RPL_KNOCK", ":%s 710 %s %s %s!%s@%s :has asked for an invite.", NULL}, ++/* 711 */ {"RPL_KNOCKDLVR", ":%s 711 %s %s :Your KNOCK has been delivered.", NULL}, ++/* 712 */ {"ERR_TOOMANYKNOCK", ":%s 712 %s %s :Too many KNOCKs (%s).", NULL}, ++/* 713 */ {"ERR_CHANOPEN", ":%s 713 %s %s :Channel is open.", NULL}, ++/* 714 */ {"ERR_KNOCKONCHAN", ":%s 714 %s %s :You are already on that channel.", NULL}, ++/* 715 */ {"ERR_KNOCKDISABLED", ":%s 715 %s :KNOCKs are disabled.", NULL}, ++/* 716 */ {NULL, NULL, NULL}, ++/* 717 */ {NULL, NULL, NULL}, ++/* 718 */ {NULL, NULL, NULL}, ++/* 719 */ {NULL, NULL, NULL}, ++/* 720 */ {NULL, NULL, NULL}, ++/* 721 */ {NULL, NULL, NULL}, ++/* 722 */ {NULL, NULL, NULL}, ++/* 723 */ {NULL, NULL, NULL}, ++/* 724 */ {NULL, NULL, NULL}, ++/* 725 */ {NULL, NULL, NULL}, ++/* 726 */ {NULL, NULL, NULL}, ++/* 727 */ {NULL, NULL, NULL}, ++/* 728 */ {NULL, NULL, NULL}, ++/* 729 */ {NULL, NULL, NULL}, ++/* 730 */ {NULL, NULL, NULL}, ++/* 731 */ {NULL, NULL, NULL}, ++/* 732 */ {NULL, NULL, NULL}, ++/* 733 */ {NULL, NULL, NULL}, ++/* 734 */ {NULL, NULL, NULL}, ++/* 735 */ {NULL, NULL, NULL}, ++/* 736 */ {NULL, NULL, NULL}, ++/* 737 */ {NULL, NULL, NULL}, ++/* 738 */ {NULL, NULL, NULL}, ++/* 739 */ {NULL, NULL, NULL}, ++/* 740 */ {NULL, NULL, NULL}, ++/* 741 */ {NULL, NULL, NULL}, ++/* 742 */ {NULL, NULL, NULL}, ++/* 743 */ {NULL, NULL, NULL}, ++/* 744 */ {NULL, NULL, NULL}, ++/* 745 */ {NULL, NULL, NULL}, ++/* 746 */ {NULL, NULL, NULL}, ++/* 747 */ {NULL, NULL, NULL}, ++/* 748 */ {NULL, NULL, NULL}, ++/* 749 */ {NULL, NULL, NULL}, ++/* 750 */ {NULL, NULL, NULL}, ++/* 751 */ {NULL, NULL, NULL}, ++/* 752 */ {NULL, NULL, NULL}, ++/* 753 */ {NULL, NULL, NULL}, ++/* 754 */ {NULL, NULL, NULL}, ++/* 755 */ {NULL, NULL, NULL}, ++/* 756 */ {NULL, NULL, NULL}, ++/* 757 */ {NULL, NULL, NULL}, ++/* 758 */ {NULL, NULL, NULL}, ++/* 759 */ {NULL, NULL, NULL}, ++/* 760 */ {NULL, NULL, NULL}, ++/* 761 */ {NULL, NULL, NULL}, ++/* 762 */ {NULL, NULL, NULL}, ++/* 763 */ {NULL, NULL, NULL}, ++/* 764 */ {NULL, NULL, NULL}, ++/* 765 */ {NULL, NULL, NULL}, ++/* 766 */ {NULL, NULL, NULL}, ++/* 767 */ {NULL, NULL, NULL}, ++/* 768 */ {NULL, NULL, NULL}, ++/* 769 */ {NULL, NULL, NULL}, ++/* 770 */ {NULL, NULL, NULL}, ++/* 771 */ {NULL, NULL, NULL}, ++/* 772 */ {NULL, NULL, NULL}, ++/* 773 */ {NULL, NULL, NULL}, ++/* 774 */ {NULL, NULL, NULL}, ++/* 775 */ {NULL, NULL, NULL}, ++/* 776 */ {NULL, NULL, NULL}, ++/* 777 */ {NULL, NULL, NULL}, ++/* 778 */ {NULL, NULL, NULL}, ++/* 779 */ {NULL, NULL, NULL}, ++/* 780 */ {NULL, NULL, NULL}, ++/* 781 */ {NULL, NULL, NULL}, ++/* 782 */ {NULL, NULL, NULL}, ++/* 783 */ {NULL, NULL, NULL}, ++/* 784 */ {NULL, NULL, NULL}, ++/* 785 */ {NULL, NULL, NULL}, ++/* 786 */ {NULL, NULL, NULL}, ++/* 787 */ {NULL, NULL, NULL}, ++/* 788 */ {NULL, NULL, NULL}, ++/* 789 */ {NULL, NULL, NULL}, ++/* 790 */ {NULL, NULL, NULL}, ++/* 791 */ {NULL, NULL, NULL}, ++/* 792 */ {NULL, NULL, NULL}, ++/* 793 */ {NULL, NULL, NULL}, ++/* 794 */ {NULL, NULL, NULL}, ++/* 795 */ {NULL, NULL, NULL}, ++/* 796 */ {NULL, NULL, NULL}, ++/* 797 */ {NULL, NULL, NULL}, ++/* 798 */ {NULL, NULL, NULL}, ++/* 799 */ {NULL, NULL, NULL}, ++/* 800 */ {NULL, NULL, NULL}, ++/* 801 */ {NULL, NULL, NULL}, ++/* 802 */ {NULL, NULL, NULL}, ++/* 803 */ {NULL, NULL, NULL}, ++/* 804 */ {NULL, NULL, NULL}, ++/* 805 */ {NULL, NULL, NULL}, ++/* 806 */ {NULL, NULL, NULL}, ++/* 807 */ {NULL, NULL, NULL}, ++/* 808 */ {NULL, NULL, NULL}, ++/* 809 */ {NULL, NULL, NULL}, ++/* 810 */ {NULL, NULL, NULL}, ++/* 811 */ {NULL, NULL, NULL}, ++/* 812 */ {NULL, NULL, NULL}, ++/* 813 */ {NULL, NULL, NULL}, ++/* 814 */ {NULL, NULL, NULL}, ++/* 815 */ {NULL, NULL, NULL}, ++/* 816 */ {NULL, NULL, NULL}, ++/* 817 */ {NULL, NULL, NULL}, ++/* 818 */ {NULL, NULL, NULL}, ++/* 819 */ {NULL, NULL, NULL}, ++/* 820 */ {NULL, NULL, NULL}, ++/* 821 */ {NULL, NULL, NULL}, ++/* 822 */ {NULL, NULL, NULL}, ++/* 823 */ {NULL, NULL, NULL}, ++/* 824 */ {NULL, NULL, NULL}, ++/* 825 */ {NULL, NULL, NULL}, ++/* 826 */ {NULL, NULL, NULL}, ++/* 827 */ {NULL, NULL, NULL}, ++/* 828 */ {NULL, NULL, NULL}, ++/* 829 */ {NULL, NULL, NULL}, ++/* 830 */ {NULL, NULL, NULL}, ++/* 831 */ {NULL, NULL, NULL}, ++/* 832 */ {NULL, NULL, NULL}, ++/* 833 */ {NULL, NULL, NULL}, ++/* 834 */ {NULL, NULL, NULL}, ++/* 835 */ {NULL, NULL, NULL}, ++/* 836 */ {NULL, NULL, NULL}, ++/* 837 */ {NULL, NULL, NULL}, ++/* 838 */ {NULL, NULL, NULL}, ++/* 839 */ {NULL, NULL, NULL}, ++/* 840 */ {NULL, NULL, NULL}, ++/* 841 */ {NULL, NULL, NULL}, ++/* 842 */ {NULL, NULL, NULL}, ++/* 843 */ {NULL, NULL, NULL}, ++/* 844 */ {NULL, NULL, NULL}, ++/* 845 */ {NULL, NULL, NULL}, ++/* 846 */ {NULL, NULL, NULL}, ++/* 847 */ {NULL, NULL, NULL}, ++/* 848 */ {NULL, NULL, NULL}, ++/* 849 */ {NULL, NULL, NULL}, ++/* 850 */ {NULL, NULL, NULL}, ++/* 851 */ {NULL, NULL, NULL}, ++/* 852 */ {NULL, NULL, NULL}, ++/* 853 */ {NULL, NULL, NULL}, ++/* 854 */ {NULL, NULL, NULL}, ++/* 855 */ {NULL, NULL, NULL}, ++/* 856 */ {NULL, NULL, NULL}, ++/* 857 */ {NULL, NULL, NULL}, ++/* 858 */ {NULL, NULL, NULL}, ++/* 859 */ {NULL, NULL, NULL}, ++/* 860 */ {NULL, NULL, NULL}, ++/* 861 */ {NULL, NULL, NULL}, ++/* 862 */ {NULL, NULL, NULL}, ++/* 863 */ {NULL, NULL, NULL}, ++/* 864 */ {NULL, NULL, NULL}, ++/* 865 */ {NULL, NULL, NULL}, ++/* 866 */ {NULL, NULL, NULL}, ++/* 867 */ {NULL, NULL, NULL}, ++/* 868 */ {NULL, NULL, NULL}, ++/* 869 */ {NULL, NULL, NULL}, ++/* 870 */ {NULL, NULL, NULL}, ++/* 871 */ {NULL, NULL, NULL}, ++/* 872 */ {NULL, NULL, NULL}, ++/* 873 */ {NULL, NULL, NULL}, ++/* 874 */ {NULL, NULL, NULL}, ++/* 875 */ {NULL, NULL, NULL}, ++/* 876 */ {NULL, NULL, NULL}, ++/* 877 */ {NULL, NULL, NULL}, ++/* 878 */ {NULL, NULL, NULL}, ++/* 879 */ {NULL, NULL, NULL}, ++/* 880 */ {NULL, NULL, NULL}, ++/* 881 */ {NULL, NULL, NULL}, ++/* 882 */ {NULL, NULL, NULL}, ++/* 883 */ {NULL, NULL, NULL}, ++/* 884 */ {NULL, NULL, NULL}, ++/* 885 */ {NULL, NULL, NULL}, ++/* 886 */ {NULL, NULL, NULL}, ++/* 887 */ {NULL, NULL, NULL}, ++/* 888 */ {NULL, NULL, NULL}, ++/* 889 */ {NULL, NULL, NULL}, ++/* 890 */ {NULL, NULL, NULL}, ++/* 891 */ {NULL, NULL, NULL}, ++/* 892 */ {NULL, NULL, NULL}, ++/* 893 */ {NULL, NULL, NULL}, ++/* 894 */ {NULL, NULL, NULL}, ++/* 895 */ {NULL, NULL, NULL}, ++/* 896 */ {NULL, NULL, NULL}, ++/* 897 */ {NULL, NULL, NULL}, ++/* 898 */ {NULL, NULL, NULL}, ++/* 899 */ {NULL, NULL, NULL}, ++/* 900 */ {NULL, NULL, NULL}, ++/* 901 */ {NULL, NULL, NULL}, ++/* 902 */ {NULL, NULL, NULL}, ++/* 903 */ {NULL, NULL, NULL}, ++/* 904 */ {NULL, NULL, NULL}, ++/* 905 */ {NULL, NULL, NULL}, ++/* 906 */ {NULL, NULL, NULL}, ++/* 907 */ {NULL, NULL, NULL}, ++/* 908 */ {NULL, NULL, NULL}, ++/* 909 */ {NULL, NULL, NULL}, ++/* 910 */ {NULL, NULL, NULL}, ++/* 911 */ {NULL, NULL, NULL}, ++/* 912 */ {NULL, NULL, NULL}, ++/* 913 */ {NULL, NULL, NULL}, ++/* 914 */ {NULL, NULL, NULL}, ++/* 915 */ {NULL, NULL, NULL}, ++/* 916 */ {NULL, NULL, NULL}, ++/* 917 */ {NULL, NULL, NULL}, ++/* 918 */ {NULL, NULL, NULL}, ++/* 919 */ {NULL, NULL, NULL}, ++/* 920 */ {NULL, NULL, NULL}, ++/* 921 */ {NULL, NULL, NULL}, ++/* 922 */ {NULL, NULL, NULL}, ++/* 923 */ {NULL, NULL, NULL}, ++/* 924 */ {NULL, NULL, NULL}, ++/* 925 */ {NULL, NULL, NULL}, ++/* 926 */ {NULL, NULL, NULL}, ++/* 927 */ {NULL, NULL, NULL}, ++/* 928 */ {NULL, NULL, NULL}, ++/* 929 */ {NULL, NULL, NULL}, ++/* 930 */ {NULL, NULL, NULL}, ++/* 931 */ {NULL, NULL, NULL}, ++/* 932 */ {NULL, NULL, NULL}, ++/* 933 */ {NULL, NULL, NULL}, ++/* 934 */ {NULL, NULL, NULL}, ++/* 935 */ {NULL, NULL, NULL}, ++/* 936 */ {NULL, NULL, NULL}, ++/* 937 */ {NULL, NULL, NULL}, ++/* 938 */ {NULL, NULL, NULL}, ++/* 939 */ {NULL, NULL, NULL}, ++/* 940 */ {NULL, NULL, NULL}, ++/* 941 */ {NULL, NULL, NULL}, ++/* 942 */ {NULL, NULL, NULL}, ++/* 943 */ {NULL, NULL, NULL}, ++/* 944 */ {NULL, NULL, NULL}, ++/* 945 */ {NULL, NULL, NULL}, ++/* 946 */ {NULL, NULL, NULL}, ++/* 947 */ {NULL, NULL, NULL}, ++/* 948 */ {NULL, NULL, NULL}, ++/* 949 */ {NULL, NULL, NULL}, ++/* 950 */ {NULL, NULL, NULL}, ++/* 951 */ {NULL, NULL, NULL}, ++/* 952 */ {NULL, NULL, NULL}, ++/* 953 */ {NULL, NULL, NULL}, ++/* 954 */ {NULL, NULL, NULL}, ++/* 955 */ {NULL, NULL, NULL}, ++/* 956 */ {NULL, NULL, NULL}, ++/* 957 */ {NULL, NULL, NULL}, ++/* 958 */ {NULL, NULL, NULL}, ++/* 959 */ {NULL, NULL, NULL}, ++/* 960 */ {NULL, NULL, NULL}, ++/* 961 */ {NULL, NULL, NULL}, ++/* 962 */ {NULL, NULL, NULL}, ++/* 963 */ {NULL, NULL, NULL}, ++/* 964 */ {NULL, NULL, NULL}, ++/* 965 */ {NULL, NULL, NULL}, ++/* 966 */ {NULL, NULL, NULL}, ++/* 967 */ {NULL, NULL, NULL}, ++/* 968 */ {NULL, NULL, NULL}, ++/* 969 */ {NULL, NULL, NULL}, ++/* 970 */ {NULL, NULL, NULL}, ++/* 971 */ {NULL, NULL, NULL}, ++/* 972 */ {NULL, NULL, NULL}, ++/* 973 */ {NULL, NULL, NULL}, ++/* 974 */ {NULL, NULL, NULL}, ++/* 975 */ {NULL, NULL, NULL}, ++/* 976 */ {NULL, NULL, NULL}, ++/* 977 */ {NULL, NULL, NULL}, ++/* 978 */ {NULL, NULL, NULL}, ++/* 979 */ {NULL, NULL, NULL}, ++/* 980 */ {NULL, NULL, NULL}, ++/* 981 */ {NULL, NULL, NULL}, ++/* 982 */ {NULL, NULL, NULL}, ++/* 983 */ {NULL, NULL, NULL}, ++/* 984 */ {NULL, NULL, NULL}, ++/* 985 */ {NULL, NULL, NULL}, ++/* 986 */ {NULL, NULL, NULL}, ++/* 987 */ {NULL, NULL, NULL}, ++/* 988 */ {NULL, NULL, NULL}, ++/* 989 */ {NULL, NULL, NULL}, ++/* 990 */ {NULL, NULL, NULL}, ++/* 991 */ {NULL, NULL, NULL}, ++/* 992 */ {NULL, NULL, NULL}, ++/* 993 */ {NULL, NULL, NULL}, ++/* 994 */ {NULL, NULL, NULL}, ++/* 995 */ {NULL, NULL, NULL}, ++/* 996 */ {NULL, NULL, NULL}, ++/* 997 */ {NULL, NULL, NULL}, ++/* 998 */ {NULL, NULL, NULL}, ++/* 999 */ {NULL, NULL, NULL} + }; +--- a/src/parse.c 2003-06-09 19:16:54.000000000 -0700 ++++ b/src/parse.c 2003-06-26 02:38:40.000000000 -0700 +@@ -262,10 +262,8 @@ + if (pbuffer[0] != '\0') + { + if (IsPerson(from)) +- sendto_one(from, +- ":%s %d %s %s :Unknown command", +- me.name, ERR_UNKNOWNCOMMAND, +- from->name, ch); ++ sendto_one(from, form_str(ERR_UNKNOWNCOMMAND), ++ me.name, from->name, ch); + Debug((DEBUG_ERROR,"Unknown (%s) from %s", + ch, get_client_name(client_p, HIDE_IP))); + } +--- a/doc/technical/message-customisation.txt 2001-04-01 15:06:49.000000000 -0700 ++++ /dev/null 2002-12-28 17:06:03.000000000 -0800 +@@ -1,56 +0,0 @@ +-Message customization/localization system +-David Taylor +- +-$Id: message-customisation.txt,v 1.3 2001/04/01 22:06:49 ejb Exp $ +- +-Please send any comments, questions, flames or suggestions to the +-above address :) +- +-How to use gettext() support +----------------------------- +-Assuming ircd-hybrid is compiled on a machine which supports gettext(), +-configure should automatically enable gettext() support, although this +-support can be explicitly disabled by removing the definition of MSGPATH in +-include/config.h +- +-If gettext() support is disabled, ircd-hybrid will use the default compiled +-in messages in src/messages.tab. +- +-If gettext() support is enabled, ircd-hybrid will attempt to load the +-messages from MSGPATH//LC_MESSAGES/ircd-hybrid.mo. +- +-The selected locale can be set in the ircd.conf file, or by setting the +-LANGUAGE environment variable before running ircd-hybrid. It can also be +-changed at run time using /quote set MSGLOCALE . Setting a +-locale that does not exist will cause ircd-hybrid to fall back on the +-compiled in standard messages. +- +-Currently available locales are: +- custom These are the messages you would have seen if +- you used the old CUSTOM_ERR define in config.h. +- ayb 'All Your Base'-type messages. +- standard (This doesn't actually exist as a locale, but +- using a non-existent locale will use the compiled +- in defaults). +- +-Customizing the messages +------------------------- +-In messages/, run ./create_po with the name of the new po file +-(.po), and add the new po file to Makefile.in. +- +-Then simply change any messages in the template file that you want to ("" +-will cause gettext() to use the original message, unchanged), and run make. +- +-If any messages in the hybrid tree are added/removed, running make mrupdate +-will attempt to merge the changes into the po file, and will add any new +-messages to the end of the file. +- +-Running make install should install the compiled .mo file in the correct +-place. +- +-Notes +------ +-Any message that should be translated should either be in src/messages.tab +-(if it's a numeric), or else should be written as _("string") instead of +-"string", which allows gettext() to translate it, if it's enabled, and also +-allows create_po to pick it up as a translatable string. --- ircd-hybrid-7.2.2.dfsg.2.orig/debian/patches/14_fix_va_list.dpatch +++ ircd-hybrid-7.2.2.dfsg.2/debian/patches/14_fix_va_list.dpatch @@ -0,0 +1,102 @@ +#! /bin/sh /usr/share/dpatch/dpatch-run +## 14_fix_va_list.dpatch by Julien Danjou +## +## All lines beginning with `## DP:' are a description of the patch. +## DP: Fix a segfault in va_list happening on amd64 and ppc + +diff -Nur ircd-hybrid-7.0.3/src/send.c ircd-hybrid-7.0.3.patched/src/send.c +--- ircd-hybrid-7.0.3/src/send.c 2004-02-10 05:28:40.000000000 +0100 ++++ ircd-hybrid-7.0.3.patched/src/send.c 2006-04-20 02:50:14.000000000 +0200 +@@ -501,7 +501,7 @@ + struct Channel *chptr, char *command, + const char *pattern, ...) + { +- va_list args; ++ va_list alocal, aremote, auid; + buf_head_t local_linebuf; + buf_head_t remote_linebuf; + buf_head_t uid_linebuf; +@@ -509,23 +509,27 @@ + linebuf_newbuf(&local_linebuf); + linebuf_newbuf(&remote_linebuf); + linebuf_newbuf(&uid_linebuf); +- va_start(args, pattern); ++ va_start(alocal, pattern); ++ va_start(aremote, pattern); ++ va_start(auid, pattern); + + if(IsServer(from)) +- linebuf_putmsg(&local_linebuf, pattern, &args, ":%s %s %s ", ++ linebuf_putmsg(&local_linebuf, pattern, &alocal, ":%s %s %s ", + from->name, command, RootChan(chptr)->chname); + else +- linebuf_putmsg(&local_linebuf, pattern, &args, ":%s!%s@%s %s %s ", ++ linebuf_putmsg(&local_linebuf, pattern, &alocal, ":%s!%s@%s %s %s ", + from->name, from->username, from->host, + command, RootChan(chptr)->chname); + +- linebuf_putmsg(&remote_linebuf, pattern, &args, ":%s %s %s ", ++ linebuf_putmsg(&remote_linebuf, pattern, &aremote, ":%s %s %s ", + from->name, command, chptr->chname); + +- linebuf_putmsg(&uid_linebuf, pattern, &args, ":%s %s %s ", ++ linebuf_putmsg(&uid_linebuf, pattern, &auid, ":%s %s %s ", + ID(from), command, chptr->chname); + +- va_end(args); ++ va_end(auid); ++ va_end(aremote); ++ va_end(alocal); + + ++current_serial; + +@@ -1045,7 +1049,7 @@ + char *mask, int what, + const char *pattern, ...) + { +- va_list args; ++ va_list alocal, aremote; + struct Client *client_p; + dlink_node *ptr; + dlink_node *ptr_next; +@@ -1054,13 +1058,15 @@ + + linebuf_newbuf(&local_linebuf); + linebuf_newbuf(&remote_linebuf); +- va_start(args, pattern); ++ va_start(alocal, pattern); ++ va_start(aremote, pattern); + +- linebuf_putmsg(&remote_linebuf, pattern, &args, ":%s ", from->name); +- linebuf_putmsg(&local_linebuf, pattern, &args, ":%s!%s@%s ", from->name, ++ linebuf_putmsg(&remote_linebuf, pattern, &aremote, ":%s ", from->name); ++ linebuf_putmsg(&local_linebuf, pattern, &alocal, ":%s!%s@%s ", from->name, + from->username, from->host); + +- va_end(args); ++ va_end(aremote); ++ va_end(alocal); + + /* scan the local clients */ + DLINK_FOREACH_SAFE(ptr, ptr_next, lclient_list.head) +@@ -1416,16 +1422,18 @@ + buf_head_t linebuf_uid; + buf_head_t linebuf_nick; + +- va_start(args, pattern); +- + if(HasID(source_p)) + { + have_uid = 1; ++ va_start(args, pattern); + linebuf_newbuf(&linebuf_uid); + linebuf_putmsg(&linebuf_uid, pattern, &args, ":%s KILL %s :", + me.name, ID(source_p)); ++ va_end(args); + } + ++ va_start(args, pattern); ++ + linebuf_newbuf(&linebuf_nick); + linebuf_putmsg(&linebuf_nick, pattern, &args, ":%s KILL %s :", + me.name, source_p->name); --- ircd-hybrid-7.2.2.dfsg.2.orig/debian/patches/07_quoted_uname.dpatch +++ ircd-hybrid-7.2.2.dfsg.2/debian/patches/07_quoted_uname.dpatch @@ -0,0 +1,31 @@ +#! /bin/sh -e +## 07_quoted_uname.dpatch by Joshua Kwan +## +## All lines beginning with `## DP:' are a description of the patch. +## DP: version.c.SH fix if uname -a has quotes in it + +if [ $# -ne 1 ]; then + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +fi +case "$1" in + -patch) patch -f --no-backup-if-mismatch -p1 < $0;; + -unpatch) patch -f --no-backup-if-mismatch -R -p1 < $0;; + *) + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1;; +esac + +exit 0 + +--- a/src/version.c.SH 2001-11-13 00:59:01.000000000 -0800 ++++ b/src/version.c.SH 2003-06-23 21:15:51.000000000 -0700 +@@ -17,7 +17,7 @@ + + generation=`expr $generation + 1` + +-uname=`uname -a` ++uname=`uname -a | sed -e 's/\"/\\\"/g'` + + creation=`date | \ + awk '{if (NF == 6) \ --- ircd-hybrid-7.2.2.dfsg.2.orig/debian/patches/00list +++ ircd-hybrid-7.2.2.dfsg.2/debian/patches/00list @@ -0,0 +1,19 @@ +#01_no_hardlink => Removed +02_fhs_comply +#03_customize_motd => Removed +#04_opme_no_depend_opless => To adapt +#05_dont_build_example => Removed +#07_quoted_uname => To adapt +#08_dot_lang => Already merged +#09_cross_fix => Removed +#10_client_ssl => Already merged +#11_ssl_ipv6 => Removed +#12_gcc4_compile => Not necessary for gcc4.1 and above +#13_client_ssl_multi_read => Maybe to adapt? +#14_fix_va_list => Already merged +15_use_debian_flex_and_bison +16_use_debian_pcre +17_warn_no_ssl_files +18_remove_unused_va_list +19_sslonly +98_patchlevel_debian --- ircd-hybrid-7.2.2.dfsg.2.orig/debian/patches/02_fhs_comply.dpatch +++ ircd-hybrid-7.2.2.dfsg.2/debian/patches/02_fhs_comply.dpatch @@ -0,0 +1,301 @@ +#! /bin/sh /usr/share/dpatch/dpatch-run +## 02_fhs_comply.dpatch by Aurélien GÉRÔME +## +## All lines beginning with `## DP:' are a description of the patch. +## DP: Correct Makefile.in files and C macros to make Hybrid7 FHS +## DP: compliant. + +@DPATCH@ +diff -urNad ircd-hybrid-7.2.2.dfsg.2~/contrib/Makefile.in ircd-hybrid-7.2.2.dfsg.2/contrib/Makefile.in +--- ircd-hybrid-7.2.2.dfsg.2~/contrib/Makefile.in 2006-07-17 08:31:27.000000000 +0200 ++++ ircd-hybrid-7.2.2.dfsg.2/contrib/Makefile.in 2007-02-27 01:03:45.569287021 +0100 +@@ -18,9 +18,9 @@ + INSTALL_DATA = @INSTALL_DATA@ + + prefix = $(DESTDIR)@prefix@ +-datarootdir = $(DESTDIR)@datarootdir@ ++libdir = $(DESTDIR)@libdir@ + +-AUTOMODULEDIR = ${prefix}/modules ++AUTOMODULEDIR = ${libdir}/modules + + SSL_LIBS = @SSL_LIBS@ + SSL_INCLUDES = @SSL_INCLUDES@ +@@ -88,7 +88,7 @@ + hpux_shared: $(OBJS) $(SLOBJS) + + ../modules/libmodules.a: +- cd ../modules && ${MAKE} ++ ${MAKE} -C modules + + install: all install_@MOD_TARGET@ install_help + +@@ -107,7 +107,7 @@ + done + + install_help: +- cd help && ${MAKE} install || exit; cd ..; ++ ${MAKE} -C help DESTDIR=$(DESTDIR) install || exit + + install_libmodules.a: + # Ye olde noop. +@@ -134,10 +134,10 @@ + + clean: + ${RM} -f *.so *.o *.sl *~ +- cd help && ${MAKE} clean || exit; cd ..; ++ ${MAKE} -C help clean || exit + + distclean: clean + ${RM} -f Makefile .depend +- cd help && ${MAKE} distclean || exit; cd ..; ++ ${MAKE} -C help distclean || exit + + .PHONY: depend clean distclean install_hpux_shared install_libmodules.a install_help shared_modules install hpux_shared build +diff -urNad ircd-hybrid-7.2.2.dfsg.2~/contrib/help/Makefile.in ircd-hybrid-7.2.2.dfsg.2/contrib/help/Makefile.in +--- ircd-hybrid-7.2.2.dfsg.2~/contrib/help/Makefile.in 2006-07-17 08:31:27.000000000 +0200 ++++ ircd-hybrid-7.2.2.dfsg.2/contrib/help/Makefile.in 2007-02-27 01:03:45.573288131 +0100 +@@ -1,20 +1,20 @@ + # Makefile to install help files + # $Id: Makefile.in 715 2006-07-14 21:01:55Z michael $ + +-INSTALL= @INSTALL@ +-INSTALL_DATA= @INSTALL_DATA@ +-RM= @RM@ ++INSTALL = @INSTALL@ ++INSTALL_DATA = @INSTALL_DATA@ ++RM = @RM@ + +-prefix= @prefix@ +-exec_prefix= @execprefix@ ++prefix = @prefix@ ++exec_prefix = @execprefix@ + datarootdir = $(DESTDIR)@datarootdir@ +-uhelpdir= ${prefix}/help/users +-ohelpdir= ${prefix}/help/opers ++uhelpdir = ${datarootdir}/help/users ++ohelpdir = ${datarootdir}/help/opers + +-SYMLINKS= topic accept cmode admin names links away whowas \ ++SYMLINKS = topic accept cmode admin names links away whowas \ + version kick who invite quit join list nick oper part \ + time motd userhost users whois ison lusers user help \ +- pass error challenge knock ping pong flags ++ challenge map pass error knock ping pong + all: + build: + clean: +@@ -22,13 +22,13 @@ + + install: + @echo installing help files... +- -@if test ! -d $(prefix)/help; then \ +- echo "mkdir $(prefix)/help"; \ +- mkdir $(prefix)/help; \ +- echo "mkdir $(prefix)/help/users"; \ +- mkdir $(prefix)/help/users; \ +- echo "mkdir $(prefix)/help/opers"; \ +- mkdir $(prefix)/help/opers; \ ++ -@if test ! -d $(datarootdir)/help; then \ ++ echo "mkdir -p $(datarootdir)/help"; \ ++ mkdir -p $(datarootdir)/help; \ ++ echo "mkdir -p $(uhelpdir)"; \ ++ mkdir -p $(uhelpdir); \ ++ echo "mkdir -p $(ohelpdir)"; \ ++ mkdir -p $(ohelpdir); \ + fi + @for help in opers/*; do \ + if [ -f $$help ]; then \ +@@ -42,7 +42,7 @@ + done + @for link in $(SYMLINKS); do \ + rm -f $(uhelpdir)/$$link; \ +- ln -s $(ohelpdir)/$$link $(uhelpdir); \ ++ ln -s ../opers/$$link $(uhelpdir); \ + done + + distclean: +diff -urNad ircd-hybrid-7.2.2.dfsg.2~/contrib/m_spoof.c ircd-hybrid-7.2.2.dfsg.2/contrib/m_spoof.c +--- ircd-hybrid-7.2.2.dfsg.2~/contrib/m_spoof.c 2006-07-17 08:31:27.000000000 +0200 ++++ ircd-hybrid-7.2.2.dfsg.2/contrib/m_spoof.c 2007-02-27 01:04:19.998835481 +0100 +@@ -46,7 +46,7 @@ + /* where to put dynamic auth's -- this must be included from ircd.conf! + * Ideally put .include "spoof.conf" before all other auths. + * #undef if you want only a propagating hub server, not storing any data */ +-#define SPOOF_FILE "etc/spoof.conf" ++#define SPOOF_FILE "/etc/ircd-hybrid/spoof.conf" + + /* disable if you don't want opers notices/logs */ + #define LOG_SPOOF +diff -urNad ircd-hybrid-7.2.2.dfsg.2~/doc/Makefile.in ircd-hybrid-7.2.2.dfsg.2/doc/Makefile.in +--- ircd-hybrid-7.2.2.dfsg.2~/doc/Makefile.in 2006-07-17 08:31:32.000000000 +0200 ++++ ircd-hybrid-7.2.2.dfsg.2/doc/Makefile.in 2007-02-27 01:03:45.573288131 +0100 +@@ -10,7 +10,7 @@ + + install: + mkdir -p $(mandir)/man8 +- $(INSTALL_DATA) ircd.8 $(mandir)/man8/ ++ $(INSTALL_DATA) ircd.8 $(mandir)/man8/ircd-hybrid.8 + + distclean: + ${RM} -f Makefile +diff -urNad ircd-hybrid-7.2.2.dfsg.2~/help/Makefile.in ircd-hybrid-7.2.2.dfsg.2/help/Makefile.in +--- ircd-hybrid-7.2.2.dfsg.2~/help/Makefile.in 2006-07-17 08:31:26.000000000 +0200 ++++ ircd-hybrid-7.2.2.dfsg.2/help/Makefile.in 2007-02-27 01:03:45.573288131 +0100 +@@ -8,8 +8,8 @@ + prefix = @prefix@ + exec_prefix = @execprefix@ + datarootdir = $(DESTDIR)@datarootdir@ +-uhelpdir = ${prefix}/help/users +-ohelpdir = ${prefix}/help/opers ++uhelpdir = ${datarootdir}/help/users ++ohelpdir = ${datarootdir}/help/opers + + SYMLINKS = topic accept cmode admin names links away whowas \ + version kick who invite quit join list nick oper part \ +@@ -22,13 +22,13 @@ + + install: + @echo installing help files... +- -@if test ! -d $(prefix)/help; then \ +- echo "mkdir $(prefix)/help"; \ +- mkdir $(prefix)/help; \ +- echo "mkdir $(prefix)/help/users"; \ +- mkdir $(prefix)/help/users; \ +- echo "mkdir $(prefix)/help/opers"; \ +- mkdir $(prefix)/help/opers; \ ++ -@if test ! -d $(datarootdir)/help; then \ ++ echo "mkdir -p $(datarootdir)/help"; \ ++ mkdir -p $(datarootdir)/help; \ ++ echo "mkdir -p $(uhelpdir)"; \ ++ mkdir -p $(uhelpdir); \ ++ echo "mkdir -p $(ohelpdir)"; \ ++ mkdir -p $(ohelpdir); \ + fi + @for help in opers/*; do \ + if [ -f $$help ]; then \ +@@ -42,7 +42,7 @@ + done + @for link in $(SYMLINKS); do \ + rm -f $(uhelpdir)/$$link; \ +- ln -s $(ohelpdir)/$$link $(uhelpdir); \ ++ ln -s ../opers/$$link $(uhelpdir); \ + done + + distclean: +diff -urNad ircd-hybrid-7.2.2.dfsg.2~/include/defaults.h ircd-hybrid-7.2.2.dfsg.2/include/defaults.h +--- ircd-hybrid-7.2.2.dfsg.2~/include/defaults.h 2006-07-17 08:31:22.000000000 +0200 ++++ ircd-hybrid-7.2.2.dfsg.2/include/defaults.h 2007-02-27 01:03:45.573288131 +0100 +@@ -48,17 +48,19 @@ + */ + + /* dirs */ +-#define DPATH IRCD_PREFIX +-#define BINPATH IRCD_PREFIX "/bin/" +-#define MSGPATH IRCD_PREFIX "/messages/" +-#define ETCPATH IRCD_PREFIX "/etc" +-#define LOGPATH IRCD_PREFIX "/logs" +-#define MODPATH IRCD_PREFIX "/modules/" +-#define AUTOMODPATH IRCD_PREFIX "/modules/autoload/" ++#define DPATH "/usr" ++#define LIBPATH "/usr/lib/ircd-hybrid" ++#define SHAREPATH "/usr/share/ircd-hybrid" ++#define BINPATH "/usr/sbin/" ++#define MSGPATH SHAREPATH "/messages/" ++#define ETCPATH "/etc/ircd-hybrid" ++#define LOGPATH "/var/log/ircd" ++#define MODPATH LIBPATH "/modules/" ++#define AUTOMODPATH MODPATH "autoload/" + + /* files */ +-#define SPATH BINPATH "/ircd" /* ircd executable */ +-#define SLPATH BINPATH "/servlink" /* servlink executable */ ++#define SPATH BINPATH "/ircd-hybrid" /* ircd executable */ ++#define SLPATH LIBPATH "/servlink" /* servlink executable */ + #define CPATH ETCPATH "/ircd.conf" /* ircd.conf file */ + #define KPATH ETCPATH "/kline.conf" /* kline file */ + #define CRESVPATH ETCPATH "/cresv.conf" /* channel resvs file */ +@@ -69,8 +71,8 @@ + #define RXPATH ETCPATH "/rxline.conf" + #define RKPATH ETCPATH "/rkline.conf" + #define MPATH ETCPATH "/ircd.motd" /* MOTD file */ +-#define LPATH LOGPATH "/ircd.log" /* ircd logfile */ +-#define PPATH ETCPATH "/ircd.pid" /* pid file */ ++#define LPATH LOGPATH "/ircd-hybrid.log" /* ircd logfile */ ++#define PPATH "/var/run/ircd.pid" /* pid file */ + #define OPATH ETCPATH "/opers.motd" /* oper MOTD file */ + #define LIPATH ETCPATH "/links.txt" /* cached links file */ + +diff -urNad ircd-hybrid-7.2.2.dfsg.2~/messages/Makefile.in ircd-hybrid-7.2.2.dfsg.2/messages/Makefile.in +--- ircd-hybrid-7.2.2.dfsg.2~/messages/Makefile.in 2006-07-17 08:31:33.000000000 +0200 ++++ ircd-hybrid-7.2.2.dfsg.2/messages/Makefile.in 2007-02-27 01:03:45.573288131 +0100 +@@ -5,8 +5,8 @@ + INSTALL = @INSTALL@ + INSTALL_DATA = @INSTALL_DATA@ + prefix = $(DESTDIR)@prefix@ +-messagedir = $(prefix)/messages + datarootdir = $(DESTDIR)@datarootdir@ ++messagedir = $(datarootdir)/messages + + CLOBBER = @CLOBBER@ + +diff -urNad ircd-hybrid-7.2.2.dfsg.2~/modules/Makefile.in ircd-hybrid-7.2.2.dfsg.2/modules/Makefile.in +--- ircd-hybrid-7.2.2.dfsg.2~/modules/Makefile.in 2006-07-17 08:31:35.000000000 +0200 ++++ ircd-hybrid-7.2.2.dfsg.2/modules/Makefile.in 2007-02-27 01:03:45.573288131 +0100 +@@ -22,9 +22,9 @@ + IRCDLIBS = @LIBS@ $(SSL_LIBS) + + prefix = $(DESTDIR)@prefix@ +-datarootdir = $(DESTDIR)@datarootdir@ ++libdir = $(DESTDIR)@libdir@ + # Change this later! -- adrian +-moduledir = ${prefix}/modules ++moduledir = ${libdir}/modules + automoduledir = ${moduledir}/autoload + + INCLUDES = -I../include -I../lib/pcre $(SSL_INCLUDES) +diff -urNad ircd-hybrid-7.2.2.dfsg.2~/modules/m_help.c ircd-hybrid-7.2.2.dfsg.2/modules/m_help.c +--- ircd-hybrid-7.2.2.dfsg.2~/modules/m_help.c 2006-07-17 08:31:35.000000000 +0200 ++++ ircd-hybrid-7.2.2.dfsg.2/modules/m_help.c 2007-02-27 01:03:45.573288131 +0100 +@@ -36,8 +36,9 @@ + #include "modules.h" + #include "irc_string.h" + +-#define HPATH IRCD_PREFIX "/help/opers" +-#define UHPATH IRCD_PREFIX "/help/users" ++#define SHAREPATH "/usr/share/ircd-hybrid" ++#define HPATH SHAREPATH "/help/opers" ++#define UHPATH SHAREPATH "/help/users" + #define HELPLEN 400 + + static void m_help(struct Client *, struct Client *, int, char *[]); +diff -urNad ircd-hybrid-7.2.2.dfsg.2~/src/Makefile.in ircd-hybrid-7.2.2.dfsg.2/src/Makefile.in +--- ircd-hybrid-7.2.2.dfsg.2~/src/Makefile.in 2006-07-17 08:31:26.000000000 +0200 ++++ ircd-hybrid-7.2.2.dfsg.2/src/Makefile.in 2007-02-27 01:03:45.573288131 +0100 +@@ -31,7 +31,7 @@ + INET_MISC = @INET_MISC@ + + # If you wish to change this, look in include/defaults.h also and change SPATH +-PROGS = ircd ++PROGS = ircd-hybrid + + SSL_LIBS = @SSL_LIBS@ + SSL_INCLUDES = @SSL_INCLUDES@ +@@ -112,7 +112,7 @@ + build: all + + ircd: @MODULES_LIBS@ ../lib/libpcre.a $(OBJS) +- ${CC} ${CFLAGS} ${LDFLAGS} -o $@ ${OBJS} ${IRCDLIBS} ++ ${CC} ${CFLAGS} ${LDFLAGS} -o ircd-hybrid ${OBJS} ${IRCDLIBS} + + ../modules/libmodules.a: + cd ../modules && ${MAKE} ${MFLAGS} +@@ -145,7 +145,7 @@ + @${MV} Makefile.depend Makefile + + clean: +- ${RM} -f *.o *.exe *~ *core ircd ++ ${RM} -f *.o *.exe *~ *core ircd-hybrid + + distclean: clean + ${RM} -f Makefile .depend --- ircd-hybrid-7.2.2.dfsg.2.orig/debian/patches/10_client_ssl.dpatch +++ ircd-hybrid-7.2.2.dfsg.2/debian/patches/10_client_ssl.dpatch @@ -0,0 +1,1071 @@ +#! /bin/sh -e +## 10_client_ssl.dpatch by Joshua Kwan +## +## All lines beginning with `## DP:' are a description of the patch. +## DP: Client side SSL support from hybrid7-bg. + +if [ $# -ne 1 ]; then + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +fi +case "$1" in + -patch) patch -f --dry-run -p1 < $0 && patch -f --no-backup-if-mismatch -p1 < $0 || exit 1;; + -unpatch) patch -f --dry-run -R -p1 < $0 && patch -f --no-backup-if-mismatch -R -p1 < $0 || exit 1;; + *) + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1;; +esac + +exit 0 + +diff -ur clean/autoconf/configure.in ircd-hybrid-7.0/autoconf/configure.in +--- clean/autoconf/configure.in 2003-05-31 00:30:23.000000000 -0700 ++++ ircd-hybrid-7.0/autoconf/configure.in 2004-02-15 23:38:13.000000000 -0800 +@@ -421,7 +421,7 @@ + cf_openssl_ciphers="${cf_openssl_ciphers}DES/56 ") + fi + CPPFLAGS="$save_CPPFLAGS" +- SSL_LIBS="$SSL_LIBS -lcrypto" ++ SSL_LIBS="$SSL_LIBS -lcrypto -lssl" + else + AC_MSG_RESULT(no - OpenSSL support disabled) + fi +diff -ur clean/configure ircd-hybrid-7.0/configure +--- clean/configure 2003-05-31 00:30:18.000000000 -0700 ++++ ircd-hybrid-7.0/configure 2004-02-16 00:18:55.000000000 -0800 +@@ -5860,7 +5860,7 @@ + + fi + CPPFLAGS="$save_CPPFLAGS" +- SSL_LIBS="$SSL_LIBS -lcrypto" ++ SSL_LIBS="$SSL_LIBS -lcrypto -lssl" + else + echo "$as_me:$LINENO: result: no - OpenSSL support disabled" >&5 + echo "${ECHO_T}no - OpenSSL support disabled" >&6 +diff -ur clean/doc/example.conf ircd-hybrid-7.0/doc/example.conf +--- clean/doc/example.conf 2003-05-31 00:30:25.000000000 -0700 ++++ ircd-hybrid-7.0/doc/example.conf 2004-02-15 23:38:35.000000000 -0800 +@@ -86,6 +86,20 @@ + * chmod 0644 rsa.pub + */ + #rsa_private_key_file = "/usr/local/ircd/etc/rsa.key"; ++ ++ /* SSL certificate file, used for client SSL connections ++ * ++ * Assuming your private RSA key is stored in rsa.key, you ++ * must first create a certificate request, then sign it: ++ * ++ * openssl req -new -key rsa.key -out cert.csr ++ * openssl x509 -req -in cert.csr -extensions v3_ca \ ++ * -signkey rsa.key -out cert.pem -trustout ++ * -demond ++ * ++ * (see http://www.openssl.org//docs/HOWTO/certificates.txt) ++ */ ++ #ssl_certificate_file = "/usr/local/ircd/etc/cert.pem"; + }; + + /* admin {}: contains admin information about the server. (OLD A:) */ +@@ -169,6 +183,11 @@ + + /* port: listen on all available IPs, ports 6665 to 6669 */ + port = 6665 .. 6669; ++ ++ /* sslport: listen for client SSL connections ONLY! ++ * -demond ++ */ ++ sslport = 8181; + + /* host: set a specific IP/host the ports after the line will listen + * on. This may be ipv4 or ipv6. +diff -ur clean/include/channel_mode.h ircd-hybrid-7.0/include/channel_mode.h +--- clean/include/channel_mode.h 2002-10-28 13:09:20.000000000 -0800 ++++ ircd-hybrid-7.0/include/channel_mode.h 2004-02-16 02:21:32.000000000 -0800 +@@ -100,6 +100,7 @@ + #define MODE_EXCEPTION 0x0800 + #define MODE_INVEX 0x2000 + #define MODE_HIDEOPS 0x4000 ++#define MODE_SSLONLY 0x20000 /* only SSL-connected clients allowed */ + + /* + * mode flags which take another parameter (With PARAmeterS) +@@ -118,6 +119,7 @@ + #define ParanoidChannel(x) ((x) && ((x)->mode.mode &\ + (MODE_PRIVATE|MODE_INVITEONLY))==\ + (MODE_PRIVATE|MODE_INVITEONLY)) ++#define SSLonlyChannel(x) ((x) && ((x)->mode.mode & MODE_SSLONLY)) + + struct ChModeChange + { +diff -ur clean/include/fdlist.h ircd-hybrid-7.0/include/fdlist.h +--- clean/include/fdlist.h 2002-05-24 16:34:07.000000000 -0700 ++++ ircd-hybrid-7.0/include/fdlist.h 2004-02-15 23:39:46.000000000 -0800 +@@ -25,6 +25,7 @@ + #ifndef INCLUDED_fdlist_h + #define INCLUDED_fdlist_h + ++#include "stdinc.h" + #include "config.h" + #include "ircd_defs.h" + #include "res.h" +@@ -115,6 +116,10 @@ + unsigned int nonblocking:1; + unsigned int ipc:1; + unsigned int called_connect:1; ++#ifdef HAVE_LIBCRYPTO ++ unsigned int accept_read:1; ++ unsigned int accept_write:1; ++#endif + } flags; + struct { + /* We don't need the host here ? */ +@@ -124,6 +129,10 @@ + void *data; + /* We'd also add the retry count here when we get to that -- adrian */ + } connect; ++#ifdef HAVE_LIBCRYPTO ++ SSL *ssl; ++ int accept_failures; ++#endif + }; + + +@@ -131,7 +140,7 @@ + + void fdlist_init(void); + +-extern void fd_open(int, unsigned int, const char *); ++extern void fd_open(int, unsigned int, const char *, void *); + extern void fd_close(int); + extern void fd_dump(struct Client *source_p); + #ifndef __GNUC__ +diff -ur clean/include/listener.h ircd-hybrid-7.0/include/listener.h +--- clean/include/listener.h 2002-05-24 16:34:07.000000000 -0700 ++++ ircd-hybrid-7.0/include/listener.h 2004-02-15 23:41:28.000000000 -0800 +@@ -45,9 +45,10 @@ + struct irc_inaddr addr; /* virtual address or INADDR_ANY */ + struct DNSQuery *dns_query; + char vhost[HOSTLEN + 1]; /* virtual name of listener */ ++ int is_ssl; + }; + +-extern void add_listener(int port, const char* vaddr_ip); ++extern void add_listener(int port, const char* vaddr_ip, int is_ssl); + extern void close_listener(struct Listener* listener); + extern void close_listeners(void); + extern const char* get_listener_name(const struct Listener* listener); +diff -ur clean/include/numeric.h ircd-hybrid-7.0/include/numeric.h +--- clean/include/numeric.h 2002-11-27 07:46:24.000000000 -0800 ++++ ircd-hybrid-7.0/include/numeric.h 2004-02-16 02:21:51.000000000 -0800 +@@ -194,6 +194,7 @@ + + /* numeric_replies */ + ++#define RPL_WHOISSSL 297 /* uses SSL */ + #define RPL_NONE 300 + #define RPL_AWAY 301 + #define RPL_USERHOST 302 +@@ -391,6 +392,7 @@ + /* ERR_LINKFAIL 479 unreal */ + /* ERR_CANNOTKNOCK 480 unreal */ + /* ERR_NOULINE 480 austnet */ ++#define ERR_SSLONLYCHAN 480 + #define ERR_NOPRIVILEGES 481 + #define ERR_CHANOPRIVSNEEDED 482 + #define ERR_CANTKILLSERVER 483 +diff -ur clean/include/s_bsd.h ircd-hybrid-7.0/include/s_bsd.h +--- clean/include/s_bsd.h 2003-01-19 05:19:50.000000000 -0800 ++++ ircd-hybrid-7.0/include/s_bsd.h 2004-02-15 23:51:19.000000000 -0800 +@@ -70,7 +70,7 @@ + extern const char * comm_errstr(int status); + extern int comm_open(int family, int sock_type, int proto, + const char *note); +-extern int comm_accept(int fd, struct irc_sockaddr *pn); ++extern int comm_accept(int fd, struct irc_sockaddr *pn, int is_ssl); + + /* These must be defined in the network IO loop code of your choice */ + extern void comm_setselect(int fd, fdlist_t list, unsigned int type, +diff -ur clean/include/s_conf.h ircd-hybrid-7.0/include/s_conf.h +--- clean/include/s_conf.h 2003-02-15 16:22:21.000000000 -0800 ++++ ircd-hybrid-7.0/include/s_conf.h 2004-02-15 23:51:29.000000000 -0800 +@@ -284,6 +284,9 @@ + #ifdef HAVE_LIBCRYPTO + char * rsa_private_key_file; + RSA * rsa_private_key; ++ char * ssl_certificate_file; ++ SSL_CTX * ctx; ++ SSL_METHOD *meth; + #endif + int hub; + struct irc_inaddr ip; +diff -ur clean/include/stdinc.h ircd-hybrid-7.0/include/stdinc.h +--- clean/include/stdinc.h 2002-05-24 16:39:13.000000000 -0700 ++++ ircd-hybrid-7.0/include/stdinc.h 2004-02-15 23:55:32.000000000 -0800 +@@ -99,3 +99,8 @@ + #ifdef VMS + #include + #endif ++ ++#ifdef HAVE_LIBCRYPTO ++#include ++#include ++#endif +diff -ur clean/modules/core/m_sjoin.c ircd-hybrid-7.0/modules/core/m_sjoin.c +--- clean/modules/core/m_sjoin.c 2002-07-04 09:07:23.000000000 -0700 ++++ ircd-hybrid-7.0/modules/core/m_sjoin.c 2004-02-16 02:24:12.000000000 -0800 +@@ -178,6 +178,9 @@ + case 't': + mode.mode |= MODE_TOPICLIMIT; + break; ++ case 'S': ++ mode.mode |= MODE_SSLONLY; ++ break; + #ifdef ANONOPS + case 'a': + if(ConfigChannel.use_anonops) +@@ -737,6 +740,7 @@ + { MODE_MODERATED, 'm' }, + { MODE_INVITEONLY, 'i' }, + { MODE_PRIVATE, 'p' }, ++ { MODE_SSLONLY, 'S' }, + #ifdef ANONOPS + { MODE_HIDEOPS, 'a' }, + #endif +diff -ur clean/modules/m_whois.c ircd-hybrid-7.0/modules/m_whois.c +--- clean/modules/m_whois.c 2003-02-08 16:02:28.000000000 -0800 ++++ ircd-hybrid-7.0/modules/m_whois.c 2004-02-16 02:25:12.000000000 -0800 +@@ -23,6 +23,7 @@ + */ + + #include "stdinc.h" ++#include "fdlist.h" + #include "tools.h" + #include "common.h" + #include "handlers.h" +@@ -460,6 +461,17 @@ + sendto_one(source_p, form_str(RPL_WHOISOPERATOR), + me.name, source_p->name, target_p->name); + ++#ifdef HAVE_LIBCRYPTO ++ if (MyClient(target_p)) { ++ int fd = target_p->localClient->fd; ++ fde_t *F = (fd > -1)? &fd_table[fd] : NULL; ++ ++ if (F && F->ssl) ++ sendto_one(source_p, form_str(RPL_WHOISSSL), ++ me.name, source_p->name, target_p->name); ++ } ++#endif ++ + if (MyConnect(target_p)) /* Can't do any of this if not local! db */ + { + if ( (glob) || +@@ -582,6 +594,16 @@ + return; + } + } ++#ifdef HAVE_LIBCRYPTO ++ if (MyClient(target_p)) { ++ int fd = target_p->localClient->fd; ++ fde_t *F = (fd > -1)? &fd_table[fd] : NULL; ++ ++ if (F && F->ssl) ++ sendto_one(source_p, form_str(RPL_WHOISSSL), ++ me.name, source_p->name, target_p->name); ++ } ++#endif + + /* the client doesnt exist.. erk! */ + else +diff -ur clean/src/channel.c ircd-hybrid-7.0/src/channel.c +--- clean/src/channel.c 2003-05-28 21:02:36.000000000 -0700 ++++ ircd-hybrid-7.0/src/channel.c 2004-02-16 02:25:32.000000000 -0800 +@@ -23,7 +23,7 @@ + */ + + #include "stdinc.h" +- ++#include "fdlist.h" + #include "tools.h" + #include "channel.h" + #include "channel_mode.h" +@@ -1129,6 +1129,22 @@ + if (chptr->mode.limit && chptr->users >= chptr->mode.limit) + return (ERR_CHANNELISFULL); + ++ if (SSLonlyChannel(chptr)) ++ { ++#ifdef HAVE_LIBCRYPTO ++ if (MyClient(source_p)) { ++ int fd = source_p->localClient->fd; ++ fde_t *F = (fd > -1)? &fd_table[fd] : NULL; ++ ++ if (F && !F->ssl) ++ return (ERR_SSLONLYCHAN); ++ } ++#else ++ return (ERR_SSLONLYCHAN); /* deny everyone on a non SSL-enabled se ++rver */ ++#endif ++ } ++ + return 0; + } + +diff -ur clean/src/channel_mode.c ircd-hybrid-7.0/src/channel_mode.c +--- clean/src/channel_mode.c 2003-04-19 19:33:41.000000000 -0700 ++++ ircd-hybrid-7.0/src/channel_mode.c 2004-02-16 02:19:53.000000000 -0800 +@@ -499,6 +499,10 @@ + if (chptr->mode.mode & MODE_HIDEOPS) + *mbuf++ = 'a'; + #endif ++#ifdef HAVE_LIBCRYPTO ++ if (chptr->mode.mode & MODE_SSLONLY) ++ *mbuf++ = 'S'; ++#endif + if (chptr->mode.limit) + { + *mbuf++ = 'l'; +@@ -1850,7 +1854,11 @@ + {chm_nosuch, NULL}, /* P */ + {chm_nosuch, NULL}, /* Q */ + {chm_nosuch, NULL}, /* R */ ++#ifndef HAVE_LIBCRYPTO + {chm_nosuch, NULL}, /* S */ ++#else ++ {chm_simple, (void*)MODE_SSLONLY}, /* S */ ++#endif + {chm_nosuch, NULL}, /* T */ + {chm_nosuch, NULL}, /* U */ + {chm_nosuch, NULL}, /* V */ +diff -ur clean/src/fdlist.c ircd-hybrid-7.0/src/fdlist.c +--- clean/src/fdlist.c 2002-06-15 00:19:56.000000000 -0700 ++++ ircd-hybrid-7.0/src/fdlist.c 2004-02-15 23:39:01.000000000 -0800 +@@ -81,7 +81,7 @@ + + /* Called to open a given filedescriptor */ + void +-fd_open(int fd, unsigned int type, const char *desc) ++fd_open(int fd, unsigned int type, const char *desc, void *ssl) + { + fde_t *F = &fd_table[fd]; + assert(fd >= 0); +@@ -111,6 +111,9 @@ + if (desc) + strncpy(F->desc, desc, FD_DESC_SZ); + number_fd++; ++#ifdef HAVE_LIBCRYPTO ++ F->ssl = (SSL *)ssl; ++#endif + } + + +@@ -139,6 +142,17 @@ + number_fd--; + memset(F, '\0', sizeof(fde_t)); + F->timeout = 0; ++ ++#ifdef HAVE_LIBCRYPTO ++ F->flags.accept_read = 0; ++ F->flags.accept_write = 0; ++ F->accept_failures = 0; ++ if (F->ssl) { ++ SSL_shutdown(F->ssl); ++ SSL_free(F->ssl); ++ F->ssl = NULL; ++ } ++#endif + /* Unlike squid, we're actually closing the FD here! -- adrian */ + close(fd); + } +diff -ur clean/src/fileio.c ircd-hybrid-7.0/src/fileio.c +--- clean/src/fileio.c 2003-05-28 22:13:26.000000000 -0700 ++++ ircd-hybrid-7.0/src/fileio.c 2004-02-15 23:40:04.000000000 -0800 +@@ -50,7 +50,7 @@ + errno = ENFILE; + fd = -1; + } else if (fd >= 0) +- fd_open(fd, FD_FILE, filename); ++ fd_open(fd, FD_FILE, filename, NULL); + + return fd; + } +diff -ur clean/src/ircd.c ircd-hybrid-7.0/src/ircd.c +--- clean/src/ircd.c 2003-05-28 22:13:26.000000000 -0700 ++++ ircd-hybrid-7.0/src/ircd.c 2004-02-16 00:28:13.000000000 -0800 +@@ -658,6 +658,19 @@ + init_resolver(); /* Needs to be setup before the io loop */ + #ifdef HAVE_LIBCRYPTO + bio_spare_fd=save_spare_fd("SSL private key validation"); ++ SSL_load_error_strings(); ++ SSLeay_add_ssl_algorithms(); ++ ServerInfo.meth = SSLv23_server_method(); ++ ServerInfo.ctx = SSL_CTX_new(ServerInfo.meth); ++ if (!ServerInfo.ctx) { ++ fprintf(stderr, "Could not initialize the SSL context -- %s\n", ++ ERR_error_string(ERR_get_error(), NULL)); ++ } ++ SSL_CTX_set_options(ServerInfo.ctx, SSL_OP_NO_SSLv2); ++ SSL_CTX_set_options(ServerInfo.ctx, SSL_OP_TLS_ROLLBACK_BUG|SSL_OP_ALL); ++ /*SSL_CTX_set_verify(ServerInfo.ctx, SSL_VERIFY_PEER|SSL_VERIFY_CLIENT_ONCE, ++NULL);*/ ++ SSL_CTX_set_verify(ServerInfo.ctx, SSL_VERIFY_NONE, NULL); + #endif /* HAVE_LIBCRYPTO */ + read_conf_files(YES); /* cold start init conf files */ + #ifndef STATIC_MODULES +diff -ur clean/src/ircd_lexer.l ircd-hybrid-7.0/src/ircd_lexer.l +--- clean/src/ircd_lexer.l 2002-10-30 09:44:56.000000000 -0800 ++++ ircd-hybrid-7.0/src/ircd_lexer.l 2004-02-15 23:40:34.000000000 -0800 +@@ -233,6 +233,7 @@ + ping_cookie { return PING_COOKIE; } + ping_time { return PING_TIME; } + port { return PORT; } ++sslport { return SSLPORT; } + quiet_on_ban { return QUIET_ON_BAN; } + reason { return REASON; } + redirport { return REDIRPORT; } +@@ -244,6 +245,7 @@ + resv { return RESV; } + rsa_private_key_file { return RSA_PRIVATE_KEY_FILE; } + rsa_public_key_file { return RSA_PUBLIC_KEY_FILE; } ++ssl_certificate_file { return SSL_CERTIFICATE_FILE; } + send_password { return SEND_PASSWORD; } + sendq { return SENDQ; } + serverhide { return SERVERHIDE; } +diff -ur clean/src/ircd_parser.y ircd-hybrid-7.0/src/ircd_parser.y +--- clean/src/ircd_parser.y 2002-11-12 05:45:42.000000000 -0800 ++++ ircd-hybrid-7.0/src/ircd_parser.y 2004-02-16 00:37:26.000000000 -0800 +@@ -47,12 +47,6 @@ + #include "listener.h" + #include "resv.h" + +-#ifdef HAVE_LIBCRYPTO +-#include +-#include +-#include +-#endif +- + extern char *ip_string; + + int yyparse(); +@@ -203,6 +197,7 @@ + %token PING_COOKIE + %token PING_TIME + %token PORT ++%token SSLPORT + %token QSTRING + %token QUIET_ON_BAN + %token REASON +@@ -213,6 +208,7 @@ + %token RESTRICTED + %token RSA_PRIVATE_KEY_FILE + %token RSA_PUBLIC_KEY_FILE ++%token SSL_CERTIFICATE_FILE + %token RESV + %token SECONDS MINUTES HOURS DAYS WEEKS MONTHS YEARS DECADES CENTURIES MILLENNIA + %token SENDQ +@@ -409,6 +405,7 @@ + serverinfo_network_name | serverinfo_network_desc | + serverinfo_max_clients | + serverinfo_rsa_private_key_file | serverinfo_vhost6 | ++ serverinfo_ssl_certificate_file | + serverinfo_max_buffer | + error; + +@@ -470,6 +467,47 @@ + #endif + }; + ++serverinfo_ssl_certificate_file: SSL_CERTIFICATE_FILE '=' QSTRING ';' ++ { ++#ifdef HAVE_LIBCRYPTO ++ if (ServerInfo.ctx) { ++ ++ if (ServerInfo.ssl_certificate_file) ++ { ++ MyFree(ServerInfo.ssl_certificate_file); ++ ServerInfo.ssl_certificate_file = NULL; ++ } ++ ++ DupString(ServerInfo.ssl_certificate_file, yylval.string); ++ ++ if (!ServerInfo.rsa_private_key_file) { ++ ilog(L_ERROR, "Ignoring config file entry ssl_certificate -- no rsa_private_key"); ++ break; ++ } ++ ++ if (SSL_CTX_use_certificate_file(ServerInfo.ctx, ++ ServerInfo.ssl_certificate_file, SSL_FILETYPE_PEM) <= 0) { ++ ilog(L_ERROR, "Error using config file entry ssl_certificate -- %s", ERR_error_string(ERR_get_error(), NULL)); ++ break; ++ } ++ ++ if (SSL_CTX_use_PrivateKey_file(ServerInfo.ctx, ++ ServerInfo.rsa_private_key_file, SSL_FILETYPE_PEM) <= 0) { ++ sendto_realops_flags(FLAGS_ALL, L_ALL, ++ "Error using config file entry rsa_private_key -- %s", ++ ERR_error_string(ERR_get_error(), NULL)); ++ break; ++ } ++ ++ if (!SSL_CTX_check_private_key(ServerInfo.ctx)) { ++ sendto_realops_flags(FLAGS_ALL, L_ALL, ++ "RSA private key doesn't match the SSL certificate public key!"); ++ break; ++ } ++ } ++#endif ++ }; ++ + serverinfo_name: NAME '=' QSTRING ';' + { + /* this isn't rehashable */ +@@ -969,7 +1007,8 @@ + listen_items: listen_items listen_item | + listen_item; + +-listen_item: listen_port | listen_address | listen_host | error; ++listen_item: listen_port | listen_sslport | ++ listen_address | listen_host | error; + + listen_port: PORT '=' port_items ';' ; + +@@ -977,13 +1016,29 @@ + + port_item: NUMBER + { +- add_listener($1, listener_address); ++ add_listener($1, listener_address, 0); ++} | NUMBER TWODOTS NUMBER ++{ ++ int i; ++ for (i = $1; i <= $3; i++) ++ { ++ add_listener(i, listener_address, 0); ++ } ++}; ++ ++listen_sslport: SSLPORT '=' sslport_items ';' ; ++ ++sslport_items: sslport_items ',' sslport_item | sslport_item; ++ ++sslport_item: NUMBER ++{ ++ add_listener($1, listener_address, 1); + } | NUMBER TWODOTS NUMBER + { + int i; + for (i = $1; i <= $3; i++) + { +- add_listener(i, listener_address); ++ add_listener(i, listener_address, 1); + } + }; + +diff -ur clean/src/linebuf.c ircd-hybrid-7.0/src/linebuf.c +--- clean/src/linebuf.c 2002-10-09 08:08:32.000000000 -0700 ++++ ircd-hybrid-7.0/src/linebuf.c 2004-02-15 23:41:07.000000000 -0800 +@@ -32,6 +32,8 @@ + #include "list.h" + #include "balloc.h" + #include "hook.h" ++#include "fdlist.h" ++#include "send.h" + + #ifdef STRING_WITH_STRINGS + # include +@@ -634,6 +636,9 @@ + { + buf_line_t *bufline; + int retval; ++#ifdef HAVE_LIBCRYPTO ++ fde_t *F = (fd > -1)? &fd_table[fd] : NULL; ++#endif + + /* Check we actually have a first buffer */ + if (bufhead->list.head == NULL) +@@ -660,6 +665,86 @@ + } + + /* Now, try writing data */ ++#ifdef HAVE_LIBCRYPTO ++ if (F && F->ssl) { ++ /*extern time_t CurrentTime;*/ ++ extern char *get_ssl_error(int); ++ /*static*/ int alerted = 0; ++ ++ if (F->flags.accept_write) { ++ int ret; ++ /*send(fd, bufline->buf + bufhead->writeofs, bufline->len ++ - bufhead->writeofs, 0);*/ ++ if ((ret = SSL_accept(F->ssl)) > 0) { ++ if (!alerted) ++ sendto_realops_flags(FLAGS_DEBUG, L_ALL, ++ "SSL_accept() for %s (socket %d) wanting WRITE succeeded!", ++ inetntoa((char *)&S_ADDR(F->connect.hostaddr)), F->fd); ++ F->flags.accept_write = 0; ++ } else if (F->accept_failures < 4) { ++ int val = SSL_get_error(F->ssl, ret); ++ sendto_realops_flags(FLAGS_DEBUG, L_ALL, ++ "SSL_accept() for %s (socket %d) wanting WRITE error! -- %s", ++ inetntoa((char *)&S_ADDR(F->connect.hostaddr)), F->fd, ++ (val == SSL_ERROR_SSL)? ++ ERR_error_string(ERR_get_error(), NULL) : ++ get_ssl_error(val)); ++ sendto_realops_flags(FLAGS_DEBUG, L_ALL, ++ "BIO_sock_should_retry(): %d", BIO_sock_should_retry(ret)); ++ if (val == SSL_ERROR_SYSCALL) { ++ int err = ERR_get_error(); ++ if (err) ++ sendto_realops_flags(FLAGS_DEBUG, L_ALL, "ERR_get_error() -- %s", ++ ERR_error_string(err, NULL)); ++ else ++ sendto_realops_flags(FLAGS_DEBUG, L_ALL, "more error info -- %s", ++ (ret == -1)? strerror(errno) : "got EOF, protocol violation"); ++ } ++ sendto_realops_flags(FLAGS_DEBUG, L_ALL, "SSL_state_string_long(): %s", ++ SSL_state_string_long(F->ssl)); ++ F->accept_failures++; ++ } ++ retval = -1; errno = EAGAIN; ++ } else { ++ ++#if 0 ++ /*if (CurrentTime % 10 == 0)*/ ++ if (!alerted) { ++ sendto_realops_flags(FLAGS_DEBUG, L_ALL, "SSL_write() for %s (socket %d) in progress...", ++ inetntoa((char *)&S_ADDR(F->connect.hostaddr)), F->fd); ++ sendto_realops_flags(FLAGS_DEBUG, L_ALL, "SSL_state_string_long(): %s", ++ SSL_state_string_long(F->ssl)); ++ } ++#endif ++ ++ retval = SSL_write(F->ssl, bufline->buf + bufhead->writeofs, ++ bufline->len - bufhead->writeofs); ++ ++ if (retval <= 0 && !alerted) { ++ int val = SSL_get_error(F->ssl, retval); ++ /*if (CurrentTime % 10 == 0)*/ ++ sendto_realops_flags(FLAGS_DEBUG, L_ALL, ++ "SSL_write() for %s (socket %d) ERROR! -- %s", ++ inetntoa((char *)&S_ADDR(F->connect.hostaddr)), F->fd, ++ (val == SSL_ERROR_SSL)? ++ ERR_error_string(ERR_get_error(), NULL) : ++ get_ssl_error(val)); ++ if (val == SSL_ERROR_SYSCALL) { ++ int err = ERR_get_error(); ++ if (err) ++ sendto_realops_flags(FLAGS_DEBUG, L_ALL, "ERR_get_error() -- %s", ++ ERR_error_string(err, NULL)); ++ else ++ sendto_realops_flags(FLAGS_DEBUG, L_ALL, "more error info -- %s", ++ (retval == -1)? strerror(errno) : "got EOF, protocol violation"); ++ } else { ++ /*SSL_set_accept_state(F->ssl);*/ ++ errno = EAGAIN; ++ } ++ }} ++ alerted = 1; ++ } else ++#endif + retval = send(fd, bufline->buf + bufhead->writeofs, bufline->len + - bufhead->writeofs, 0); + +diff -ur clean/src/listener.c ircd-hybrid-7.0/src/listener.c +--- clean/src/listener.c 2003-01-30 02:28:45.000000000 -0800 ++++ ircd-hybrid-7.0/src/listener.c 2004-02-15 23:41:18.000000000 -0800 +@@ -130,7 +130,7 @@ + sendto_one(source_p, form_str(RPL_STATSPLINE), + me.name, + source_p->name, +- 'P', ++ listener->is_ssl? 'S' : 'P', + listener->port, + IsOperAdmin(source_p) ? listener->name : me.name, + listener->ref_count, +@@ -271,7 +271,7 @@ + * the format "255.255.255.255" + */ + void +-add_listener(int port, const char* vhost_ip) ++add_listener(int port, const char* vhost_ip, int is_ssl) + { + struct Listener* listener; + struct irc_inaddr vaddr; +@@ -304,6 +304,8 @@ + listener = make_listener(port, &vaddr); + listener->next = ListenerPollList; + ListenerPollList = listener; ++ ++ listener->is_ssl = is_ssl; + } + + listener->fd = -1; +@@ -384,7 +386,7 @@ + * be accepted until some old is closed first. + */ + +- fd = comm_accept(listener->fd, &sai); ++ fd = comm_accept(listener->fd, &sai, listener->is_ssl); + + if (fd < 0) + { +diff -ur clean/src/packet.c ircd-hybrid-7.0/src/packet.c +--- clean/src/packet.c 2003-02-16 14:54:37.000000000 -0800 ++++ ircd-hybrid-7.0/src/packet.c 2004-02-15 23:49:11.000000000 -0800 +@@ -378,6 +378,10 @@ + #ifndef NDEBUG + struct hook_io_data hdata; + #endif ++#ifdef HAVE_LIBCRYPTO ++ fde_t *F = (lclient_p->fd > -1)? &fd_table[lclient_p->fd] : NULL; ++#endif ++ + if(IsDefunct(client_p)) + return; + +@@ -397,6 +401,74 @@ + * I personally think it makes the code too hairy to make sane. + * -- adrian + */ ++#ifdef HAVE_LIBCRYPTO ++ if (F && F->ssl) { ++ /*extern time_t CurrentTime;*/ ++ extern char *get_ssl_error(int); ++ /*static*/ int alerted = 0; ++ ++ if (F->flags.accept_read) { ++ int ret; ++ /*recv(fd_r, readBuf, READBUF_SIZE, 0);*/ ++ if ((ret = SSL_accept(F->ssl)) > 0) { ++ if (!alerted) ++ sendto_realops_flags(FLAGS_DEBUG, L_ALL, ++ "SSL_accept() for %s (socket %d) wanting READ succeeded!", ++ inetntoa((char *)&S_ADDR(F->connect.hostaddr)), F->fd); ++ F->flags.accept_read = 0; ++ } else if (F->accept_failures < 4) { ++ int val = SSL_get_error(F->ssl, ret); ++ sendto_realops_flags(FLAGS_DEBUG, L_ALL, ++ "SSL_accept() for %s (socket %d) wanting READ error! -- %s", ++ inetntoa((char *)&S_ADDR(F->connect.hostaddr)), F->fd, ++ (val == SSL_ERROR_SSL)? ++ ERR_error_string(ERR_get_error(), NULL) : ++ get_ssl_error(val)); ++ sendto_realops_flags(FLAGS_DEBUG, L_ALL, ++ "BIO_sock_should_retry(): %d", BIO_sock_should_retry(ret)); ++ if (val == SSL_ERROR_SYSCALL) { ++ int err = ERR_get_error(); ++ if (err) ++ sendto_realops_flags(FLAGS_DEBUG, L_ALL, "ERR_get_error() -- %s", ++ ERR_error_string(err, NULL)); ++ else ++ sendto_realops_flags(FLAGS_DEBUG, L_ALL, "more error info -- %s", ++ (ret == -1)? strerror(errno) : "got EOF, protocol violation"); ++ } ++ sendto_realops_flags(FLAGS_DEBUG, L_ALL, "SSL_state_string_long(): %s", ++ SSL_state_string_long(F->ssl)); ++ F->accept_failures++; ++ } ++ length = -1; errno = EAGAIN; ++ } else { ++ ++ length = SSL_read(F->ssl, readBuf, READBUF_SIZE); ++ ++ if (length <= 0 && !alerted) { ++ int val = SSL_get_error(F->ssl, length); ++ /*if (CurrentTime % 10 == 0)*/ ++ sendto_realops_flags(FLAGS_DEBUG, L_ALL, ++ "SSL_read() for %s (socket %d) ERROR! -- %s", ++ inetntoa((char *)&S_ADDR(F->connect.hostaddr)), F->fd, ++ (val == SSL_ERROR_SSL)? ++ ERR_error_string(ERR_get_error(), NULL) : ++ get_ssl_error(val)); ++ if (val == SSL_ERROR_SYSCALL) { ++ int err = ERR_get_error(); ++ if (err) ++ sendto_realops_flags(FLAGS_DEBUG, L_ALL, "ERR_get_error() -- %s", ++ ERR_error_string(err, NULL)); ++ else ++ sendto_realops_flags(FLAGS_DEBUG, L_ALL, "more error info -- %s", ++ (length == -1)? strerror(errno) : "got EOF, protocol violation"); ++ } else { ++ /*SSL_set_accept_state(F->ssl);*/ ++ errno = EAGAIN; ++ } ++ }} ++ alerted = 1; ++ } else ++#endif + length = recv(fd_r, readBuf, READBUF_SIZE, 0); + + if (length <= 0) +diff -ur clean/src/s_auth.c ircd-hybrid-7.0/src/s_auth.c +--- clean/src/s_auth.c 2003-05-28 22:13:26.000000000 -0700 ++++ ircd-hybrid-7.0/src/s_auth.c 2004-02-15 23:49:44.000000000 -0800 +@@ -87,8 +87,25 @@ + REPORT_HOST_TOOLONG + } ReportType; + ++#ifdef HAVE_LIBCRYPTO ++ static void sendheader(struct Client *c, int r) { ++ int fd = c->localClient->fd; ++ fde_t *F = (fd > -1)? &fd_table[fd] : NULL; ++ ++ if (F && F->ssl) { ++ if (F->flags.accept_write) ++ if (SSL_accept(F->ssl) > 0) ++ F->flags.accept_write = 0; ++ if (!F->flags.accept_read) ++ SSL_write(F->ssl, HeaderMessages[r].message, HeaderMessages[r].length); ++ } else { ++ send(fd, HeaderMessages[r].message, HeaderMessages[r].length, 0); ++ } ++ } ++#else + #define sendheader(c, r) \ + send((c)->localClient->fd, HeaderMessages[(r)].message, HeaderMessages[(r)].length, 0) ++#endif + + /* + */ +diff -ur clean/src/s_bsd.c ircd-hybrid-7.0/src/s_bsd.c +--- clean/src/s_bsd.c 2003-05-31 00:37:05.000000000 -0700 ++++ ircd-hybrid-7.0/src/s_bsd.c 2004-02-15 23:50:42.000000000 -0800 +@@ -51,7 +51,6 @@ + #include "memory.h" + #include "ircd_defs.h" + +- + #ifndef IN_LOOPBACKNET + #define IN_LOOPBACKNET 0x7f + #endif +@@ -790,7 +789,7 @@ + } + + /* Next, update things in our fd tracking */ +- fd_open(fd, FD_SOCKET, note); ++ fd_open(fd, FD_SOCKET, note, NULL); + return fd; + } + +@@ -802,10 +801,14 @@ + * comm_open() does. + */ + int +-comm_accept(int fd, struct irc_sockaddr *pn) ++comm_accept(int fd, struct irc_sockaddr *pn, int is_ssl) + { + int newfd; + socklen_t addrlen = sizeof(struct irc_sockaddr); ++#ifdef HAVE_LIBCRYPTO ++ SSL *ssl = NULL; ++#endif ++ + if (number_fd >= MASTER_MAX) + { + errno = ENFILE; +@@ -820,7 +823,7 @@ + newfd = accept(fd, (struct sockaddr *)&PSOCKADDR(pn), (socklen_t *)&addrlen); + if (newfd < 0) + return -1; +- ++ + /* Set the socket non-blocking, and other wonderful bits */ + if (!set_non_blocking(newfd)) + { +@@ -829,9 +832,115 @@ + return -1; + } + ++#ifdef HAVE_LIBCRYPTO ++ if (is_ssl && ServerInfo.ctx) { ++ int retval; ++ extern char *get_ssl_error(int); ++ fde_t *F = &fd_table[newfd]; ++ ++ copy_s_addr(F->connect.hostaddr, *pn); ++ ++ ssl = SSL_new(ServerInfo.ctx); ++ if (!ssl) { ++ ilog(L_CRIT, "SSL_new() ERROR! -- %s", ERR_error_string(ERR_get_error(), NULL)); ++ close(newfd); ++ return -1; ++ } ++ SSL_set_fd(ssl, newfd); ++ ++ sendto_realops_flags(FLAGS_DEBUG, L_ALL, "SSL_accept() for %s (socket %d) in progress...", ++ inetntoa((char *)&PS_ADDR(pn)), newfd); ++ ++again: ++ retval = SSL_accept(ssl); ++ if (retval <= 0) { ++ switch ((retval = SSL_get_error(ssl, retval))) { ++ ++ case SSL_ERROR_SYSCALL: ++ if (errno==EINTR || errno==EWOULDBLOCK || errno==EAGAIN) ++ ++ case SSL_ERROR_WANT_READ: ++ case SSL_ERROR_WANT_WRITE: ++ sendto_realops_flags(FLAGS_DEBUG, L_ALL, ++ "SSL_accept() for %s wants read or write (%s), passing through...", ++ inetntoa((char *)&PS_ADDR(pn)), get_ssl_error(retval)); ++ ++ /* let it through, SSL_read()/SSL_write() will finish the handshake...*/ ++ /*goto again;*/ ++ ++ /*SSL_set_accept_state(ssl);*/ ++ if (retval == SSL_ERROR_WANT_READ) ++ F->flags.accept_read = 1; ++ else if (retval == SSL_ERROR_WANT_WRITE) ++ F->flags.accept_write = 1; ++ else ++ F->flags.accept_read = 1; ++ break; ++ ++ default: ++ sendto_realops_flags(FLAGS_DEBUG, L_ALL, "SSL_accept() ERROR! -- %s", ++ (retval == SSL_ERROR_SSL)? ++ ERR_error_string(ERR_get_error(), NULL) : ++ get_ssl_error(retval)); ++ SSL_free(ssl); ++ close(newfd); ++ return -1; ++ } ++ } else { ++ char *ssl_get_cipher(SSL *); ++ /*SSL_set_accept_state(ssl);*/ ++ ++ sendto_realops_flags(FLAGS_DEBUG, L_ALL, "SSL_accept() for %s succeeded!", ++ inetntoa((char *)&PS_ADDR(pn))); ++ sendto_realops_flags(FLAGS_DEBUG, L_ALL, "SSL protocol/cipher: %s", ++ ssl_get_cipher(ssl)); ++ sendto_realops_flags(FLAGS_DEBUG, L_ALL, "SSL_state_string_long(): %s", ++ SSL_state_string_long(ssl)); ++ } ++ } ++#endif ++ + /* Next, tag the FD as an incoming connection */ +- fd_open(newfd, FD_SOCKET, "Incoming connection"); ++#ifdef HAVE_LIBCRYPTO ++ if (is_ssl && ServerInfo.ctx) ++ fd_open(newfd, FD_SOCKET, "Incoming SSL connection", ssl); ++ else ++ fd_open(newfd, FD_SOCKET, "Incoming connection", ssl); ++#else ++ fd_open(newfd, FD_SOCKET, "Incoming connection", NULL); ++#endif + + /* .. and return */ + return newfd; + } ++ ++#ifdef HAVE_LIBCRYPTO ++char *ssl_get_cipher(SSL *ssl) ++{ ++ static char buf[400]; ++ char bots[10]; ++ int bits; ++ SSL_CIPHER *c; ++ ++ buf[0] = '\0'; ++ switch(ssl->session->ssl_version) ++ { ++ case SSL2_VERSION: ++ strcat(buf, "SSLv2"); break; ++ case SSL3_VERSION: ++ strcat(buf, "SSLv3"); break; ++ case TLS1_VERSION: ++ strcat(buf, "TLSv1"); break; ++ default: ++ strcat(buf, "UNKNOWN"); ++ } ++ strcat(buf, "-"); ++ strcat(buf, SSL_get_cipher(ssl)); ++ c = SSL_get_current_cipher(ssl); ++ SSL_CIPHER_get_bits(c, &bits); ++ sprintf(bots, "-%d", bits); ++ strcat(buf, bots); ++ strcat(buf, "bits"); ++ return (buf); ++} ++#endif +diff -ur clean/src/s_misc.c ircd-hybrid-7.0/src/s_misc.c +--- clean/src/s_misc.c 2002-05-24 16:34:51.000000000 -0700 ++++ ircd-hybrid-7.0/src/s_misc.c 2004-02-15 23:54:52.000000000 -0800 +@@ -122,3 +122,32 @@ + return timebuffer; + } + ++#ifdef HAVE_LIBCRYPTO ++static struct { ++ int err; ++ char *str; ++} errtab[] = { ++ {SSL_ERROR_NONE, "SSL_ERROR_NONE"}, ++ {SSL_ERROR_ZERO_RETURN, "SSL_ERROR_ZERO_RETURN"}, ++ {SSL_ERROR_WANT_READ, "SSL_ERROR_WANT_READ"}, ++ {SSL_ERROR_WANT_WRITE, "SSL_ERROR_WANT_WRITE"}, ++ {SSL_ERROR_WANT_CONNECT, "SSL_ERROR_WANT_CONNECT"}, ++ /*{SSL_ERROR_WANT_ACCEPT, "SSL_ERROR_WANT_ACCEPT"},*/ ++ {SSL_ERROR_WANT_X509_LOOKUP, "SSL_ERROR_WANT_X509_LOOKUP"}, ++ {SSL_ERROR_SYSCALL, "SSL_ERROR_SYSCALL"}, ++ {SSL_ERROR_SSL, "SSL_ERROR_SSL"}, ++ {-1, NULL} ++}; ++ ++char *get_ssl_error(int sslerr) ++{ ++ int i; ++ ++ for (i=0; errtab[i].err != -1; i++) ++ if (errtab[i].err == sslerr) ++ return errtab[i].str; ++ ++ return ""; ++} ++#endif ++ +diff -ur clean/src/s_serv.c ircd-hybrid-7.0/src/s_serv.c +--- clean/src/s_serv.c 2003-05-31 00:30:34.000000000 -0700 ++++ ircd-hybrid-7.0/src/s_serv.c 2004-02-15 23:55:03.000000000 -0800 +@@ -1458,13 +1458,13 @@ + #endif + + #ifdef HAVE_SOCKETPAIR +- fd_open(server->localClient->ctrlfd, FD_SOCKET, NULL); +- fd_open(server->localClient->fd, FD_SOCKET, NULL); ++ fd_open(server->localClient->ctrlfd, FD_SOCKET, NULL, NULL); ++ fd_open(server->localClient->fd, FD_SOCKET, NULL, NULL); + #else +- fd_open(server->localClient->ctrlfd, FD_PIPE, NULL); +- fd_open(server->localClient->fd, FD_PIPE, NULL); +- fd_open(server->localClient->ctrlfd_r, FD_PIPE, NULL); +- fd_open(server->localClient->fd_r, FD_PIPE, NULL); ++ fd_open(server->localClient->ctrlfd, FD_PIPE, NULL, NULL); ++ fd_open(server->localClient->fd, FD_PIPE, NULL, NULL); ++ fd_open(server->localClient->ctrlfd_r, FD_PIPE, NULL, NULL); ++ fd_open(server->localClient->fd_r, FD_PIPE, NULL, NULL); + #endif + + read_ctrl_packet(slink_fds[0][1][0], server); +--- ircd-hybrid-7.0/src/messages.tab 2004-02-16 18:16:21.000000000 -0800 ++++ a/src/messages.tab 2004-02-16 18:15:56.000000000 -0800 +@@ -317,7 +317,7 @@ + /* 294 */ {NULL, NULL, NULL}, + /* 295 */ {NULL, NULL, NULL}, + /* 296 */ {NULL, NULL, NULL}, +-/* 297 */ {NULL, NULL, NULL}, ++/* 297 */ {"RPL_WHOISSSL", ":%s 297 %s %s :is connected via SSL (secure link)", NULL}, + /* 298 */ {NULL, NULL, NULL}, + /* 299 */ {NULL, NULL, NULL}, + /* 300 */ {"RPL_NONE", NULL, NULL}, +@@ -500,7 +500,7 @@ + /* 477 */ {"ERR_MODELESS", ":%s 477 %s %s :Channel does not support modes", NULL}, + /* 478 */ {"ERR_BANLISTFULL", ":%s 478 %s %s %s :Channel ban list is full", NULL}, + /* 479 */ {"ERR_BADCHANNAME", ":%s 479 %s %s :Illegal channel name", NULL}, +-/* 480 */ {NULL, NULL, NULL}, ++/* 480 */ {"ERR_SSLONLYCHAN", ":%s 480 %s %s :Cannot join channel (+S)", NULL}, + /* 481 */ {"ERR_NOPRIVILEGES", ":%s 481 %s :Permission Denied - You're not an IRC operator", NULL}, + /* 482 */ {"ERR_CHANOPRIVSNEEDED", ":%s 482 %s %s :You're not channel operator", NULL}, + /* 483 */ {"ERR_CANTKILLSERVER", ":%s 483 %s :You can't kill a server!", NULL}, --- ircd-hybrid-7.2.2.dfsg.2.orig/debian/patches/17_warn_no_ssl_files.dpatch +++ ircd-hybrid-7.2.2.dfsg.2/debian/patches/17_warn_no_ssl_files.dpatch @@ -0,0 +1,99 @@ +#! /bin/sh /usr/share/dpatch/dpatch-run +## 17_warn_no_ssl_files.dpatch by Aurélien GÉRÔME +## +## All lines beginning with `## DP:' are a description of the patch. +## DP: Warn in log file when there is not a SSL certificate file +## DP: and/or a RSA private key file. + +@DPATCH@ +diff -urNad ircd-hybrid-7.2.2~/include/s_conf.h ircd-hybrid-7.2.2/include/s_conf.h +--- ircd-hybrid-7.2.2~/include/s_conf.h 2006-07-17 06:31:22.000000000 +0000 ++++ ircd-hybrid-7.2.2/include/s_conf.h 2006-08-31 23:51:07.257208255 +0000 +@@ -438,6 +438,8 @@ + char *rsa_private_key_file; + RSA *rsa_private_key; + SSL_CTX *ctx; ++ int ctx_is_void; ++ int key_is_void; + #endif + char *sid; + int hub; +diff -urNad ircd-hybrid-7.2.2~/src/ircd.c ircd-hybrid-7.2.2/src/ircd.c +--- ircd-hybrid-7.2.2~/src/ircd.c 2006-07-17 06:31:26.000000000 +0000 ++++ ircd-hybrid-7.2.2/src/ircd.c 2006-08-31 23:51:07.257208255 +0000 +@@ -503,6 +503,7 @@ + SSLeay_add_ssl_algorithms(); + + ServerInfo.ctx = SSL_CTX_new(SSLv23_server_method()); ++ ServerInfo.ctx_is_void = 1; + if (!ServerInfo.ctx) + { + const char *s; +diff -urNad ircd-hybrid-7.2.2~/src/ircd_parser.y ircd-hybrid-7.2.2/src/ircd_parser.y +--- ircd-hybrid-7.2.2~/src/ircd_parser.y 2006-07-17 06:31:26.000000000 +0000 ++++ ircd-hybrid-7.2.2/src/ircd_parser.y 2006-08-31 23:51:07.261209377 +0000 +@@ -512,6 +512,7 @@ + { + if (!ServerInfo.rsa_private_key_file) + { ++ ServerInfo.ctx_is_void = 0; + yyerror("No rsa_private_key_file specified, SSL disabled"); + break; + } +@@ -522,6 +523,7 @@ + yyerror(ERR_lib_error_string(ERR_get_error())); + break; + } ++ ServerInfo.ctx_is_void = 0; + + if (SSL_CTX_use_PrivateKey_file(ServerInfo.ctx, + ServerInfo.rsa_private_key_file, SSL_FILETYPE_PEM) <= 0) +diff -urNad ircd-hybrid-7.2.2~/src/listener.c ircd-hybrid-7.2.2/src/listener.c +--- ircd-hybrid-7.2.2~/src/listener.c 2006-07-17 06:31:26.000000000 +0000 ++++ ircd-hybrid-7.2.2/src/listener.c 2006-08-31 23:55:51.432819556 +0000 +@@ -41,6 +41,7 @@ + #include "tools.h" + #ifdef HAVE_LIBCRYPTO + #include ++#include "s_log.h" + #endif + + +@@ -272,6 +273,18 @@ + /* Get us ready for a bind() and don't bother doing dns lookup */ + hints.ai_flags = AI_PASSIVE | AI_NUMERICHOST; + ++#ifdef HAVE_LIBCRYPTO ++ if ((flags & LISTENER_SSL) && (ServerInfo.ctx_is_void || ServerInfo.rsa_private_key == NULL)) { ++ if (ServerInfo.ctx_is_void) { ++ ilog(L_ERROR, "Error opening SSL listening port: no SSL certificate file."); ++ } ++ if (ServerInfo.rsa_private_key == NULL) { ++ ilog(L_ERROR, "Error opening SSL listening port: no RSA private key file."); ++ } ++ return; ++ } ++#endif ++ + #ifdef IPV6 + if (ServerInfo.can_use_v6) + { +diff -urNad ircd-hybrid-7.2.2~/src/rsa.c ircd-hybrid-7.2.2/src/rsa.c +--- ircd-hybrid-7.2.2~/src/rsa.c 2006-07-17 06:31:26.000000000 +0000 ++++ ircd-hybrid-7.2.2/src/rsa.c 2006-08-31 23:51:07.261209377 +0000 +@@ -69,6 +69,7 @@ + BIO *file; + RSA *key; + RSA *mkey; ++ ServerInfo.key_is_void = 1; + + /* If the rsa_private_key directive isn't found, error out. */ + if (ServerInfo.rsa_private_key == NULL) +@@ -164,6 +165,7 @@ + ilog(L_CRIT, "Private key corrupted: iqmp differs"); + + RSA_free(key); ++ ServerInfo.key_is_void = 0; + return 0; + } + --- ircd-hybrid-7.2.2.dfsg.2.orig/debian/patches/99_opme_allow_operators.dpatch +++ ircd-hybrid-7.2.2.dfsg.2/debian/patches/99_opme_allow_operators.dpatch @@ -0,0 +1,36 @@ +#! /bin/sh -e +## 03_opme_allow_operators.dpatch by Joshua Kwan +## +## All lines beginning with `## DP:' are a description of the patch. +## DP: contrib/m_opme.c: make /opme a little more lax: allow operators too. rationale in README.Debian + +if [ $# -ne 1 ]; then + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +fi +case "$1" in + -patch) patch -f --no-backup-if-mismatch -p1 < $0;; + -unpatch) patch -f --no-backup-if-mismatch -R -p1 < $0;; + *) + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1;; +esac + +exit 0 + +--- ircd-hybrid-7.0rc9/contrib/m_opme.c 2003-03-31 18:46:23.000000000 -0800 ++++ ircd-hybrid-7.0rc9/contrib/m_opme.c.lax 2003-03-31 18:47:07.000000000 -0800 +@@ -71,10 +71,10 @@ + dlink_node *ptr; + dlink_node *locptr; + +- /* admins only */ +- if (!IsAdmin(source_p)) ++ /* operators only */ ++ if (!IsOper(source_p)) + { +- sendto_one(source_p, ":%s NOTICE %s :You have no A flag", me.name, ++ sendto_one(source_p, ":%s NOTICE %s :You have no O flag", me.name, + parv[0]); + return; + } --- ircd-hybrid-7.2.2.dfsg.2.orig/debian/patches/18_remove_unused_va_list.dpatch +++ ircd-hybrid-7.2.2.dfsg.2/debian/patches/18_remove_unused_va_list.dpatch @@ -0,0 +1,43 @@ +#! /bin/sh /usr/share/dpatch/dpatch-run +## 18_remove_unused_va_list.dpatch by Aurélien GÉRÔME +## +## All lines beginning with `## DP:' are a description of the patch. +## DP: Remove unused va_list. + +@DPATCH@ +diff -urNad ircd-hybrid-7.2.2~/src/s_user.c ircd-hybrid-7.2.2/src/s_user.c +--- ircd-hybrid-7.2.2~/src/s_user.c 2006-09-19 18:37:13.000000000 +0200 ++++ ircd-hybrid-7.2.2/src/s_user.c 2006-09-19 21:13:01.064621246 +0200 +@@ -68,7 +68,7 @@ + static void report_and_set_user_flags(struct Client *, const struct AccessItem *); + static int check_xline(struct Client *); + static void introduce_client(struct Client *, struct Client *); +-static void *uid_get(va_list); ++static void *uid_get(); + + /* Used for building up the isupport string, + * used with init_isupport, add_isupport, delete_isupport +@@ -428,7 +428,7 @@ + const char *id = execute_callback(uid_get_cb, source_p); + + while (hash_find_id(id) != NULL) +- id = uid_get(NULL); ++ id = uid_get(); + + strlcpy(source_p->id, id, sizeof(source_p->id)); + hash_add_id(source_p); +@@ -1386,12 +1386,12 @@ + /* + * uid_get + * +- * inputs - struct Client * ++ * inputs - none + * output - new UID is returned to caller + * side effects - new_uid is incremented by one. + */ + static void * +-uid_get(va_list args) ++uid_get() + { + add_one_to_uid(TOTALSIDUID - 1); /* index from 0 */ + return new_uid; --- ircd-hybrid-7.2.2.dfsg.2.orig/debian/patches/03_customize_motd.dpatch +++ ircd-hybrid-7.2.2.dfsg.2/debian/patches/03_customize_motd.dpatch @@ -0,0 +1,49 @@ +#! /bin/sh -e +## 03_customize_motd.dpatch by Joshua Kwan +## +## All lines beginning with `## DP:' are a description of the patch. +## DP: give the MOTD a swirl and some helpful post-install instructions + +if [ $# -ne 1 ]; then + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +fi +case "$1" in + -patch) patch -f --no-backup-if-mismatch -p1 < $0;; + -unpatch) patch -f --no-backup-if-mismatch -R -p1 < $0;; + *) + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1;; +esac + +exit 0 + +diff -urN ircd-hybrid-7.0rc9.orig/doc/ircd.motd ircd-hybrid-7.0rc9/doc/ircd.motd +--- ircd-hybrid-7.0rc9.orig/doc/ircd.motd 2000-12-12 13:46:59.000000000 -0800 ++++ ircd-hybrid-7.0rc9/doc/ircd.motd 2003-03-02 15:37:54.000000000 -0800 +@@ -1 +1,24 @@ +-This is ircd-hybrid MOTD replace it with something better ++ _,met$$$$$gg. ircd-hybrid ++ ,g$$$$$$$$$$$$$$$P. ----------- ++ ,g$$P"" """Y$$.". ++ ,$$P' `$$$. If you are seeing this, you have ++',$$P ,ggs. `$$b: installed the ircd-hybrid package and ++`d$$' ,$P"' . $$$ you are now connected to your new IRC ++ $$P d$' , $$P server -- congratulations. ++ $$: $$. - ,d$$' ++ $$; Y$b._ _,d$P' Since you have just installed the ++ Y$$. `.`"Y$$$$P"' package, there are some things you ++ `$$b "-.__ should do before going any further: ++ `Y$$b ++ `Y$$. 1. Edit /etc/ircd-hybrid/ircd.conf to ++ `$$b. suit your needs. ++ `Y$$b. ++ `"Y$b._ 2. Edit /etc/ircd-hybrid/ircd.motd (this ++ `"""" MOTD) to suit your needs. You are free ++ to use this Debian swirl under the ++ Debian Open Use Logo License :) ++ ++ 3. Restart the server using invoke-rc.d ++ ircd-hybrid restart. ++ ++ -- Joshua Kwan --- ircd-hybrid-7.2.2.dfsg.2.orig/debian/po/cs.po +++ ircd-hybrid-7.2.2.dfsg.2/debian/po/cs.po @@ -0,0 +1,112 @@ +# +# Translators, if you are not familiar with the PO format, gettext +# documentation is worth reading, especially sections dedicated to +# this format, e.g. by running: +# info -n '(gettext)PO Files' +# info -n '(gettext)Header Entry' +# +# Some information specific to po-debconf are available at +# /usr/share/doc/po-debconf/README-trans +# or http://www.debian.org/intl/l10n/po-debconf/README-trans +# +# Developers do not need to manually edit POT or PO files. +# +msgid "" +msgstr "" +"Project-Id-Version: ircd-hybrid\n" +"Report-Msgid-Bugs-To: ag@roxor.cx\n" +"POT-Creation-Date: 2006-10-08 19:48+0200\n" +"PO-Revision-Date: 2006-09-26 21:37+0200\n" +"Last-Translator: Miroslav Kure \n" +"Language-Team: Czech \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#. Type: boolean +#. Description +#: ../ircd-hybrid.templates:1001 +msgid "All OpenSSL support is now disabled by default; continue?" +msgstr "Veškerá podpora SSL je nyní vypnutá. Pokračovat?" + +#. Type: boolean +#. Description +#: ../ircd-hybrid.templates:1001 +msgid "" +"Due to licensing issues ircd-hybrid is no longer built by default with " +"OpenSSL. This will be addressed in a future release, pending a rewrite of " +"the SSL layer with GNUTLS." +msgstr "" +"Kvůli licenčním problémům již není ircd-hybrid sestaven s podporou OpenSSL. " +"To bude vyřešeno v příští verzi, až někdo přepíše SSL vrstvu s podporou " +"GNUTLS." + +#. Type: boolean +#. Description +#: ../ircd-hybrid.templates:1001 +msgid "" +"If any of your existing server links take advantage of cryptlinks, refer to /" +"usr/share/doc/ircd-hybrid/CRYPTLINKS.txt to find out how to build ircd-" +"hybrid with SSL support (easily.)" +msgstr "" +"Pokud některý z vašich stávajících serverů využívá cryptlinks, podívejte se " +"do souboru /usr/share/doc/ircd-hybrid/CRYPTLINKS.txt, kde naleznete " +"jednoduchý návod, jak sestavit ircd-hybrid s podporou SSL." + +#. Type: boolean +#. Description +#: ../ircd-hybrid.templates:2001 +msgid "Restart ircd-hybrid on each upgrade?" +msgstr "Restartovat ircd-hybrid při každé aktualizaci?" + +#. Type: boolean +#. Description +#: ../ircd-hybrid.templates:2001 +msgid "" +"You may choose whether or not you want to restart the ircd-hybrid daemon " +"every time you install a new version of this package." +msgstr "" +"Můžete si zvolit, zda se má daemon ircd-hybrid restartovat pokaždé, když " +"nainstalujete novější verzi tohoto balíku." + +#. Type: boolean +#. Description +#: ../ircd-hybrid.templates:2001 +msgid "" +"Sometimes, you do not want to do this. For instance, if you are doing the " +"upgrade and loading IRCd modules at runtime. Failing to restart the daemon " +"would probably lead you to problems." +msgstr "" +"Někdy to není žádoucí, například pokud provádíte aktualizaci a nahráváte " +"moduly IRCd za běhu. Pokud server nerestartujete, nejspíše se dostanete do " +"problémů." + +#. Type: boolean +#. Description +#: ../ircd-hybrid.templates:2001 +msgid "" +"If you refuse, you have to restart ircd-hybrid yourself if you upgraded, by " +"typing `invoke-rc.d ircd-hybrid restart' whenever it suits you." +msgstr "" +"Odmítnete-li, musíte ircd-hybrid restartovat ve vhodný okamžik sami, " +"například příkazem `invoke-rc.d ircd-hybrid restart`." + +#~ msgid "ircd-hybrid should not configure servlink_path variable" +#~ msgstr "ircd-hybrid by neměl nastavovat proměnnou servlink_path" + +#~ msgid "" +#~ "If your possibly existing ircd.conf that you may wish to import contains " +#~ "a servlink_path directive, either change it to:" +#~ msgstr "" +#~ "Pokud váš stávající konfigurační soubor ircd.conf obsahuje proměnnou " +#~ "servlink_path, buď ji změňte na:" + +#~ msgid "servlink_path = \"/usr/lib/ircd-hybrid/servlink\";" +#~ msgstr "servlink_path = \"/usr/lib/ircd-hybrid/servlink\";" + +#~ msgid "" +#~ "or simply remove the entire line as the correct path is hardcoded into " +#~ "the ircd." +#~ msgstr "" +#~ "nebo jednoduše celý řádek odstraňte, protože správná cesta je zadrátovaná " +#~ "přímo v ircd." --- ircd-hybrid-7.2.2.dfsg.2.orig/debian/po/pt.po +++ ircd-hybrid-7.2.2.dfsg.2/debian/po/pt.po @@ -0,0 +1,86 @@ +# translation of ircd-hybrid debconf to Portuguese +# Portuguese translation for ircd-hybrid +# This file is distributed under the same license as the ircd-hybrid package. +# +# André Costa , 2006. +# Américo Monteiro , 2007. +msgid "" +msgstr "" +"Project-Id-Version: ircd-hybrid 1:7.2.2.dfsg.2-3\n" +"Report-Msgid-Bugs-To: ag@roxor.cx\n" +"POT-Creation-Date: 2006-10-08 19:48+0200\n" +"PO-Revision-Date: 2007-09-23 08:42+0100\n" +"Last-Translator: Américo Monteiro \n" +"Language-Team: Portuguese \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: KBabel 1.11.4\n" + +#. Type: boolean +#. Description +#: ../ircd-hybrid.templates:1001 +msgid "All OpenSSL support is now disabled by default; continue?" +msgstr "Todo o suporte OpenSSL está agora desactivado por omissão; continuar?" + +#. Type: boolean +#. Description +#: ../ircd-hybrid.templates:1001 +msgid "" +"Due to licensing issues ircd-hybrid is no longer built by default with " +"OpenSSL. This will be addressed in a future release, pending a rewrite of " +"the SSL layer with GNUTLS." +msgstr "" +"Devido a problemas de licenças o ircd-hybrid já não é mais compilado, por " +"omissão, com OpenSSL. Isto será referido numa futura versão, dependendo da " +"reescrita da camada SSL com GNUTLS." + +#. Type: boolean +#. Description +#: ../ircd-hybrid.templates:1001 +msgid "" +"If any of your existing server links take advantage of cryptlinks, refer to /" +"usr/share/doc/ircd-hybrid/CRYPTLINKS.txt to find out how to build ircd-" +"hybrid with SSL support (easily.)" +msgstr "" +"Se algum dos links existentes do seu servidor tirar partido de cryptlinks, " +"consulte /usr/share/doc/ircd-hybrid/CRYPTLINKS.txt para descobrir como " +"compilar o ircd-hybrid com suporte para SSL (facilmente.)" + +#. Type: boolean +#. Description +#: ../ircd-hybrid.templates:2001 +msgid "Restart ircd-hybrid on each upgrade?" +msgstr "Reiniciar o ircd-hybrid em cada actualização?" + +#. Type: boolean +#. Description +#: ../ircd-hybrid.templates:2001 +msgid "" +"You may choose whether or not you want to restart the ircd-hybrid daemon " +"every time you install a new version of this package." +msgstr "" +"Você pode escolher se quer ou não reiniciar o processo ircd-hybrid todas as " +"vezes que instalar uma nova versão deste pacote." + +#. Type: boolean +#. Description +#: ../ircd-hybrid.templates:2001 +msgid "" +"Sometimes, you do not want to do this. For instance, if you are doing the " +"upgrade and loading IRCd modules at runtime. Failing to restart the daemon " +"would probably lead you to problems." +msgstr "" +"Às vezes, você pode não querer fazer isto. Por exemplo, se você está a fazer " +"uma actualização e a carregar módulos IRCd no tempo de execução do programa. " +"Uma falha ao reiniciar o processo irá provavelmente dar-lhe problemas." + +#. Type: boolean +#. Description +#: ../ircd-hybrid.templates:2001 +msgid "" +"If you refuse, you have to restart ircd-hybrid yourself if you upgraded, by " +"typing `invoke-rc.d ircd-hybrid restart' whenever it suits you." +msgstr "" +"Se recusar, terá que ser você a reiniciar o ircd-hybrid se o actualizar, " +"fazendo 'invoke-rc.d ircd-hybrid restart' quando lhe for conveniente." --- ircd-hybrid-7.2.2.dfsg.2.orig/debian/po/fi.po +++ ircd-hybrid-7.2.2.dfsg.2/debian/po/fi.po @@ -0,0 +1,82 @@ +msgid "" +msgstr "" +"Project-Id-Version: ircd-hybrid\n" +"Report-Msgid-Bugs-To: ag@roxor.cx\n" +"POT-Creation-Date: 2006-10-08 19:48+0200\n" +"PO-Revision-Date: 2008-04-23 22:34+0200\n" +"Last-Translator: Esko Arajärvi \n" +"Language-Team: Finnish \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Poedit-Language: Finnish\n" +"X-Poedit-Country: FINLAND\n" + +#. Type: boolean +#. Description +#: ../ircd-hybrid.templates:1001 +msgid "All OpenSSL support is now disabled by default; continue?" +msgstr "Kaikki OpenSSL-tuki on oletuksena poissa käytöstä. Jatketaanko?" + +#. Type: boolean +#. Description +#: ../ircd-hybrid.templates:1001 +msgid "" +"Due to licensing issues ircd-hybrid is no longer built by default with " +"OpenSSL. This will be addressed in a future release, pending a rewrite of " +"the SSL layer with GNUTLS." +msgstr "" +"Lisensseihin liittyvistä syistä ircd-hybridiä ei oletuksena enää käännetä " +"OpenSSL:n kanssa. Tulevaisuudessa SSL-kerros tullaan kirjoittamaan uudelleen " +"käyttäen GNUTLS:ää." + +#. Type: boolean +#. Description +#: ../ircd-hybrid.templates:1001 +msgid "" +"If any of your existing server links take advantage of cryptlinks, refer to /" +"usr/share/doc/ircd-hybrid/CRYPTLINKS.txt to find out how to build ircd-" +"hybrid with SSL support (easily.)" +msgstr "" +"Jos mikään olemassa olevista palvelinlinkeistä käyttää cryptlinksiä, katso " +"tiedostosta /usr/share/doc/ircd-hybrid/CRYPTLINKS.txt ohjeet ircd-hybridin " +"kääntämiseen SSL-tuen kanssa (helposti)." + +#. Type: boolean +#. Description +#: ../ircd-hybrid.templates:2001 +msgid "Restart ircd-hybrid on each upgrade?" +msgstr "Käynnistetäänkö ircd-hybrid uudelleen jokaisen päivityksen yhteydessä?" + +#. Type: boolean +#. Description +#: ../ircd-hybrid.templates:2001 +msgid "" +"You may choose whether or not you want to restart the ircd-hybrid daemon " +"every time you install a new version of this package." +msgstr "" +"Valitse tulisiko ircd-hybrid-taustaohjelma käynnistää uudelleen aina, kun " +"paketista asennetaan uusi versio." + +#. Type: boolean +#. Description +#: ../ircd-hybrid.templates:2001 +msgid "" +"Sometimes, you do not want to do this. For instance, if you are doing the " +"upgrade and loading IRCd modules at runtime. Failing to restart the daemon " +"would probably lead you to problems." +msgstr "" +"Joskus tätä ei haluta tehdä, jos esimerkiksi tehdään päivitystä ja ollaan " +"lataamassa IRCd-moduuleita ajon aikana. Jos taustaohjelmaa ei käynnistetä " +"uudelleen, se luultavasti aiheuttaa ongelmia." + +#. Type: boolean +#. Description +#: ../ircd-hybrid.templates:2001 +msgid "" +"If you refuse, you have to restart ircd-hybrid yourself if you upgraded, by " +"typing `invoke-rc.d ircd-hybrid restart' whenever it suits you." +msgstr "" +"Jos tätä ei valita, täytyy ircd-hybrid käynnistää käsin uudelleen " +"päivityksen jälkeen ajamalla haluttuun aikaan komento ”invoke-rc.d ircd-" +"hybrid restart”." --- ircd-hybrid-7.2.2.dfsg.2.orig/debian/po/eu.po +++ ircd-hybrid-7.2.2.dfsg.2/debian/po/eu.po @@ -0,0 +1,86 @@ +# translation of ircd-hybrid-eu.po to Euskara +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Piarres Beobide , 2008. +msgid "" +msgstr "" +"Project-Id-Version: ircd-hybrid-eu\n" +"Report-Msgid-Bugs-To: ag@roxor.cx\n" +"POT-Creation-Date: 2006-10-08 19:48+0200\n" +"PO-Revision-Date: 2008-05-04 16:50+0200\n" +"Last-Translator: Piarres Beobide \n" +"Language-Team: Euskara \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: KBabel 1.11.4\n" + +#. Type: boolean +#. Description +#: ../ircd-hybrid.templates:1001 +msgid "All OpenSSL support is now disabled by default; continue?" +msgstr "" +"OpenSSL onarpen guztia ezaiturik dago orain lehenespen bezala, jarraitu?" + +#. Type: boolean +#. Description +#: ../ircd-hybrid.templates:1001 +msgid "" +"Due to licensing issues ircd-hybrid is no longer built by default with " +"OpenSSL. This will be addressed in a future release, pending a rewrite of " +"the SSL layer with GNUTLS." +msgstr "" +"Lizentzia arazoak medio ircd-hybrid ez da aurrerantzean lehenespen bezala " +"OpenSSL-rekin eraikiko. Hau berriz aldatu daiteke aurrerantzean SSL kapa " +"GNUTLS erabiliaz berridazten denean." + +#. Type: boolean +#. Description +#: ../ircd-hybrid.templates:1001 +msgid "" +"If any of your existing server links take advantage of cryptlinks, refer to /" +"usr/share/doc/ircd-hybrid/CRYPTLINKS.txt to find out how to build ircd-" +"hybrid with SSL support (easily.)" +msgstr "" +"Dituzun zerbitzari loturetako batenbatek kriptloturez (cryptolinks) " +"baliatzen bada, begiratu /usr/share/doc/ircd-hybrid/CRYPTLINKS.txt ircd-" +"hybrid era erraz batean SSL onarpenaz erakitzeaz." + +#. Type: boolean +#. Description +#: ../ircd-hybrid.templates:2001 +msgid "Restart ircd-hybrid on each upgrade?" +msgstr "Berrabiarazi ircd-hybrid bertsio-berritze bakoitzean?" + +#. Type: boolean +#. Description +#: ../ircd-hybrid.templates:2001 +msgid "" +"You may choose whether or not you want to restart the ircd-hybrid daemon " +"every time you install a new version of this package." +msgstr "" +"Ircd-hybrid deabrua paketearen bertsio-berritze bakoiztean berrabiarazi ala " +"ez hautatu dezakezu." + +#. Type: boolean +#. Description +#: ../ircd-hybrid.templates:2001 +msgid "" +"Sometimes, you do not want to do this. For instance, if you are doing the " +"upgrade and loading IRCd modules at runtime. Failing to restart the daemon " +"would probably lead you to problems." +msgstr "" +"Batzuetan baliteke ez hori egin nahi izatea. Adibidez, bertsio berritzea eta " +"IRCd modulu karga exekuzio-denboran egien baduzu. Deabrua abiaraztean huts " +"egiteak arazoak sortu diezazkizu ziurrenik." + +#. Type: boolean +#. Description +#: ../ircd-hybrid.templates:2001 +msgid "" +"If you refuse, you have to restart ircd-hybrid yourself if you upgraded, by " +"typing `invoke-rc.d ircd-hybrid restart' whenever it suits you." +msgstr "" +"Baztertuaz gero ircd-hybrid eskuz berrabiarazi beharko duzu bertsio-" +"berritzean `invoke-rc.d ircd-hybrid restart' erabilaiz hori lortzeko." --- ircd-hybrid-7.2.2.dfsg.2.orig/debian/po/templates.pot +++ ircd-hybrid-7.2.2.dfsg.2/debian/po/templates.pot @@ -0,0 +1,72 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: ag@roxor.cx\n" +"POT-Creation-Date: 2006-10-08 19:48+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=CHARSET\n" +"Content-Transfer-Encoding: 8bit\n" + +#. Type: boolean +#. Description +#: ../ircd-hybrid.templates:1001 +msgid "All OpenSSL support is now disabled by default; continue?" +msgstr "" + +#. Type: boolean +#. Description +#: ../ircd-hybrid.templates:1001 +msgid "" +"Due to licensing issues ircd-hybrid is no longer built by default with " +"OpenSSL. This will be addressed in a future release, pending a rewrite of " +"the SSL layer with GNUTLS." +msgstr "" + +#. Type: boolean +#. Description +#: ../ircd-hybrid.templates:1001 +msgid "" +"If any of your existing server links take advantage of cryptlinks, refer to /" +"usr/share/doc/ircd-hybrid/CRYPTLINKS.txt to find out how to build ircd-" +"hybrid with SSL support (easily.)" +msgstr "" + +#. Type: boolean +#. Description +#: ../ircd-hybrid.templates:2001 +msgid "Restart ircd-hybrid on each upgrade?" +msgstr "" + +#. Type: boolean +#. Description +#: ../ircd-hybrid.templates:2001 +msgid "" +"You may choose whether or not you want to restart the ircd-hybrid daemon " +"every time you install a new version of this package." +msgstr "" + +#. Type: boolean +#. Description +#: ../ircd-hybrid.templates:2001 +msgid "" +"Sometimes, you do not want to do this. For instance, if you are doing the " +"upgrade and loading IRCd modules at runtime. Failing to restart the daemon " +"would probably lead you to problems." +msgstr "" + +#. Type: boolean +#. Description +#: ../ircd-hybrid.templates:2001 +msgid "" +"If you refuse, you have to restart ircd-hybrid yourself if you upgraded, by " +"typing `invoke-rc.d ircd-hybrid restart' whenever it suits you." +msgstr "" --- ircd-hybrid-7.2.2.dfsg.2.orig/debian/po/de.po +++ ircd-hybrid-7.2.2.dfsg.2/debian/po/de.po @@ -0,0 +1,119 @@ +# translation of de.po to German +# +# Translators, if you are not familiar with the PO format, gettext +# documentation is worth reading, especially sections dedicated to +# this format, e.g. by running: +# info -n '(gettext)PO Files' +# info -n '(gettext)Header Entry' +# Some information specific to po-debconf are available at +# /usr/share/doc/po-debconf/README-trans +# or http://www.debian.org/intl/l10n/po-debconf/README-trans# +# Developers do not need to manually edit POT or PO files. +# Jens Nachtigall , 2004. +# Helge Kreutzmann , 2006. +# +msgid "" +msgstr "" +"Project-Id-Version: ircd-hybrid 1:7.2.2.dfsg.1-2\n" +"Report-Msgid-Bugs-To: ag@roxor.cx\n" +"POT-Creation-Date: 2006-10-08 19:48+0200\n" +"PO-Revision-Date: 2006-12-14 14:05+0100\n" +"Last-Translator: Helge Kreutzmann \n" +"Language-Team: German \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=ISO-8859-15\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. Type: boolean +#. Description +#: ../ircd-hybrid.templates:1001 +msgid "All OpenSSL support is now disabled by default; continue?" +msgstr "" +"Jegliche Untersttzung fr OpenSSL ist nun standardmig ausgeschaltet. " +"Fortfahren?" + +#. Type: boolean +#. Description +#: ../ircd-hybrid.templates:1001 +msgid "" +"Due to licensing issues ircd-hybrid is no longer built by default with " +"OpenSSL. This will be addressed in a future release, pending a rewrite of " +"the SSL layer with GNUTLS." +msgstr "" +"Aus Lizenzgrnden wird Ircd-hybrid standardmig nicht mehr mit OpenSSL " +"gebaut. Dieses Problem wird in einer zuknftigen Verffentlichung " +"angegangen, da hierfr zuerst die SSL-Schicht mittels GNUTLS neugeschrieben " +"werden muss." + +#. Type: boolean +#. Description +#: ../ircd-hybrid.templates:1001 +msgid "" +"If any of your existing server links take advantage of cryptlinks, refer to /" +"usr/share/doc/ircd-hybrid/CRYPTLINKS.txt to find out how to build ircd-" +"hybrid with SSL support (easily.)" +msgstr "" +"Sollte eine Ihrer vorhandenen Server-Anbindungen cryptlinks verwenden, dann " +"lesen Sie bitte /usr/share/doc/ircd-hybrid/CRYPTLINKS.txt, um herauszufinden, " +"wie Sie Ircd-hybrid (auf einfache Art) mit SSL-Untersttzung bauen knnen." + +#. Type: boolean +#. Description +#: ../ircd-hybrid.templates:2001 +msgid "Restart ircd-hybrid on each upgrade?" +msgstr "Ircd-hybrid bei jedem Upgrade neu starten?" + +#. Type: boolean +#. Description +#: ../ircd-hybrid.templates:2001 +msgid "" +"You may choose whether or not you want to restart the ircd-hybrid daemon " +"every time you install a new version of this package." +msgstr "" +"Sie knnen sich entscheiden, ob Sie wollen, dass der Ircd-hybrid-Daemon bei " +"jeder Installation einer neuen Version dieses Pakets neu gestartet wird." + +#. Type: boolean +#. Description +#: ../ircd-hybrid.templates:2001 +msgid "" +"Sometimes, you do not want to do this. For instance, if you are doing the " +"upgrade and loading IRCd modules at runtime. Failing to restart the daemon " +"would probably lead you to problems." +msgstr "" +"Manchmal mchten Sie das nicht tun. Beispielsweise, falls Sie das Upgrade " +"durchfhren und IRCd-Module zur Laufzeit laden. Wird der Daemon nicht neu " +"gestartet, wrde dies wahrscheinlich zu Problemen fhren." + +#. Type: boolean +#. Description +#: ../ircd-hybrid.templates:2001 +msgid "" +"If you refuse, you have to restart ircd-hybrid yourself if you upgraded, by " +"typing `invoke-rc.d ircd-hybrid restart' whenever it suits you." +msgstr "" +"Wenn Sie dies ablehnen, mssen Sie Ircd-hybrid beim Upgrade selbst neu " +"starten, indem Sie zu einem passenden Zeitpunkt invoke-rc.d ircd-hybrid " +"restart eingeben." + +#~ msgid "ircd-hybrid should not configure servlink_path variable" +#~ msgstr "Ircd-hybrid sollte die Variable servlink_path nicht setzen" + +#~ msgid "" +#~ "If your possibly existing ircd.conf that you may wish to import contains " +#~ "a servlink_path directive, either change it to:" +#~ msgstr "" +#~ "Sollte Ihre mglicherweise vorhandene ircd.conf, die Sie eventuell " +#~ "weiterhin verwenden mchten, eine servlink_path-Direktive enthalten, " +#~ "dann ndern Sie diese entweder zu:" + +#~ msgid "servlink_path = \"/usr/lib/ircd-hybrid/servlink\";" +#~ msgstr "servlink_path = \"/usr/lib/ircd-hybrid/servlink\";" + +#~ msgid "" +#~ "or simply remove the entire line as the correct path is hardcoded into " +#~ "the ircd." +#~ msgstr "" +#~ "oder entfernen Sie einfach die gesamte Zeile, da der korrekte Pfad " +#~ "ohnehin im Programmcode festgeschrieben ist." --- ircd-hybrid-7.2.2.dfsg.2.orig/debian/po/ja.po +++ ircd-hybrid-7.2.2.dfsg.2/debian/po/ja.po @@ -0,0 +1,113 @@ +# +# Translators, if you are not familiar with the PO format, gettext +# documentation is worth reading, especially sections dedicated to +# this format, e.g. by running: +# info -n '(gettext)PO Files' +# info -n '(gettext)Header Entry' +# +# Some information specific to po-debconf are available at +# /usr/share/doc/po-debconf/README-trans +# or http://www.debian.org/intl/l10n/po-debconf/README-trans +# +# Developers do not need to manually edit POT or PO files. +# +# +msgid "" +msgstr "" +"Project-Id-Version: ircd-hybrid 1:7.0.3-1\n" +"Report-Msgid-Bugs-To: ag@roxor.cx\n" +"POT-Creation-Date: 2006-10-08 19:48+0200\n" +"PO-Revision-Date: 2006-11-18 10:26+0900\n" +"Last-Translator: Hideki Yamane (Debian-JP) \n" +"Language-Team: Japanese \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#. Type: boolean +#. Description +#: ../ircd-hybrid.templates:1001 +msgid "All OpenSSL support is now disabled by default; continue?" +msgstr "標準では OpenSSL のサポートは無効になりました。続行しますか?" + +#. Type: boolean +#. Description +#: ../ircd-hybrid.templates:1001 +msgid "" +"Due to licensing issues ircd-hybrid is no longer built by default with " +"OpenSSL. This will be addressed in a future release, pending a rewrite of " +"the SSL layer with GNUTLS." +msgstr "" +"ライセンスの関係上、ircd-hybrid は標準では OpenSSL サポート付きでビルドされ" +"なくなりました。これについては今後のリリースで、SSL レイヤが GNUTLS に書き換" +"えられる予定です。" + +#. Type: boolean +#. Description +#: ../ircd-hybrid.templates:1001 +msgid "" +"If any of your existing server links take advantage of cryptlinks, refer to /" +"usr/share/doc/ircd-hybrid/CRYPTLINKS.txt to find out how to build ircd-" +"hybrid with SSL support (easily.)" +msgstr "" +"既に利用している暗号化したサーバ接続がある場合、/usr/share/doc/ircd-hybrid/" +"CRYPTLINKS.txt をみればどうやって ircd-hybrid を SSL サポート付きでビルドでき" +"るかがわかります (簡単です)。" + +#. Type: boolean +#. Description +#: ../ircd-hybrid.templates:2001 +msgid "Restart ircd-hybrid on each upgrade?" +msgstr "毎回アップグレード時に ircd-hybrid を再起動しますか?" + +#. Type: boolean +#. Description +#: ../ircd-hybrid.templates:2001 +msgid "" +"You may choose whether or not you want to restart the ircd-hybrid daemon " +"every time you install a new version of this package." +msgstr "" +"このパッケージの新しいバージョンをインストールする際、毎回 ircd-hybrid デーモンを" +"再起動するかどうかを選択します。" + +#. Type: boolean +#. Description +#: ../ircd-hybrid.templates:2001 +msgid "" +"Sometimes, you do not want to do this. For instance, if you are doing the " +"upgrade and loading IRCd modules at runtime. Failing to restart the daemon " +"would probably lead you to problems." +msgstr "" +"時々ですが、再起動させたくない場合があります。例えば、アップグレードを" +"行っていて、その際 IRCd モジュールをロードしている場合です。デーモンの再起動に" +"失敗すると問題が起こることでしょう。" + +#. Type: boolean +#. Description +#: ../ircd-hybrid.templates:2001 +msgid "" +"If you refuse, you have to restart ircd-hybrid yourself if you upgraded, by " +"typing `invoke-rc.d ircd-hybrid restart' whenever it suits you." +msgstr "" +"これを拒否すると、アップグレードをした場合、都合の良い時に `invoke-rc.d " +"ircd-hybrid restart' と入力をして自分で再起動の作業をする必要があります。" + +#~ msgid "ircd-hybrid should not configure servlink_path variable" +#~ msgstr "ircd-hybrid には servlink_path 変数を設定してはいけません" + +#~ msgid "" +#~ "If your possibly existing ircd.conf that you may wish to import contains " +#~ "a servlink_path directive, either change it to:" +#~ msgstr "" +#~ "インポートしたい既存の ircd.conf に servlink_path ディレクティブが含まれて" +#~ "いる場合、以下のように変更を行うなどしてください:" + +#~ msgid "servlink_path = \"/usr/lib/ircd-hybrid/servlink\";" +#~ msgstr "servlink_path = \"/usr/lib/ircd-hybrid/servlink\";" + +#~ msgid "" +#~ "or simply remove the entire line as the correct path is hardcoded into " +#~ "the ircd." +#~ msgstr "" +#~ "または、ircd にハードコードされている正しいパスになるように単に行全体を削" +#~ "除してください。" --- ircd-hybrid-7.2.2.dfsg.2.orig/debian/po/gl.po +++ ircd-hybrid-7.2.2.dfsg.2/debian/po/gl.po @@ -0,0 +1,84 @@ +# Galician translation of ircd-hybrid's debconf templates +# This file is distributed under the same license as the ircd-hybrid package. +# Jacobo Tarrio , 2008. +# +msgid "" +msgstr "" +"Project-Id-Version: ircd-hybrid\n" +"Report-Msgid-Bugs-To: ag@roxor.cx\n" +"POT-Creation-Date: 2006-10-08 19:48+0200\n" +"PO-Revision-Date: 2008-05-06 20:54+0100\n" +"Last-Translator: Jacobo Tarrio \n" +"Language-Team: Galician \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#. Type: boolean +#. Description +#: ../ircd-hybrid.templates:1001 +msgid "All OpenSSL support is now disabled by default; continue?" +msgstr "O soporte de OpenSSL está desactivado por defecto; ¿quere continuar?" + +#. Type: boolean +#. Description +#: ../ircd-hybrid.templates:1001 +msgid "" +"Due to licensing issues ircd-hybrid is no longer built by default with " +"OpenSSL. This will be addressed in a future release, pending a rewrite of " +"the SSL layer with GNUTLS." +msgstr "" +"Debido a problemas con licencias, ircd-hybrid xa non se compila por defecto " +"con OpenSSL. Isto hase revisar nunha versión futura, á espera de que se " +"reescriba a capa SSL con GNUTLS." + +#. Type: boolean +#. Description +#: ../ircd-hybrid.templates:1001 +msgid "" +"If any of your existing server links take advantage of cryptlinks, refer to /" +"usr/share/doc/ircd-hybrid/CRYPTLINKS.txt to find out how to build ircd-" +"hybrid with SSL support (easily.)" +msgstr "" +"Se algunha das ligazóns a servidores actuais emprega cryptlinks, consulte /" +"usr/share/doc/ircd-hybrid/CRYPTLINKS.txt para averiguar como compilar ircd-" +"hybrid con soporte de SSL (é doado)." + +#. Type: boolean +#. Description +#: ../ircd-hybrid.templates:2001 +msgid "Restart ircd-hybrid on each upgrade?" +msgstr "¿Reiniciar ircd-hybrid ao actualizalo?" + +#. Type: boolean +#. Description +#: ../ircd-hybrid.templates:2001 +msgid "" +"You may choose whether or not you want to restart the ircd-hybrid daemon " +"every time you install a new version of this package." +msgstr "" +"Pode decidir se quere reiniciar o servizo ircd-hybrid cada vez que instale " +"unha nova versión deste paquete." + +#. Type: boolean +#. Description +#: ../ircd-hybrid.templates:2001 +msgid "" +"Sometimes, you do not want to do this. For instance, if you are doing the " +"upgrade and loading IRCd modules at runtime. Failing to restart the daemon " +"would probably lead you to problems." +msgstr "" +"Ás veces, non o quere facer. Por exemplo, se está a actualizar e carga " +"módulos de IRCd en tempo de execución. Non reiniciar o servizo podería " +"causar problemas." + +#. Type: boolean +#. Description +#: ../ircd-hybrid.templates:2001 +msgid "" +"If you refuse, you have to restart ircd-hybrid yourself if you upgraded, by " +"typing `invoke-rc.d ircd-hybrid restart' whenever it suits you." +msgstr "" +"Se rexeita a posibilidade, ha ter que reiniciar ircd-hybrid vostede mesmo se " +"se actualiza, escribindo \"invoke-rc.d ircd-hybrid restart\" cando mellor " +"vaia." --- ircd-hybrid-7.2.2.dfsg.2.orig/debian/po/ru.po +++ ircd-hybrid-7.2.2.dfsg.2/debian/po/ru.po @@ -0,0 +1,87 @@ +# translation of ru.po to Russian +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Yuri Kozlov , 2008. +msgid "" +msgstr "" +"Project-Id-Version: ircd-hybrid 1:7.2.2.dfsg.2-3\n" +"Report-Msgid-Bugs-To: ag@roxor.cx\n" +"POT-Creation-Date: 2006-10-08 19:48+0200\n" +"PO-Revision-Date: 2008-05-09 10:02+0400\n" +"Last-Translator: Yuri Kozlov \n" +"Language-Team: Russian \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: KBabel 1.11.4\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%" +"10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" + +#. Type: boolean +#. Description +#: ../ircd-hybrid.templates:1001 +msgid "All OpenSSL support is now disabled by default; continue?" +msgstr "Поддержка OpenSSL теперь по умолчанию выключена, продолжить?" + +#. Type: boolean +#. Description +#: ../ircd-hybrid.templates:1001 +msgid "" +"Due to licensing issues ircd-hybrid is no longer built by default with " +"OpenSSL. This will be addressed in a future release, pending a rewrite of " +"the SSL layer with GNUTLS." +msgstr "" +"Из-за лицензионных проблем ircd-hybrid по умолчанию больше не собирается с " +"OpenSSL. Это будет решено в будущей версии, в качестве уровня SSL будет " +"использоваться GNUTLS." + +#. Type: boolean +#. Description +#: ../ircd-hybrid.templates:1001 +msgid "" +"If any of your existing server links take advantage of cryptlinks, refer to /" +"usr/share/doc/ircd-hybrid/CRYPTLINKS.txt to find out how to build ircd-" +"hybrid with SSL support (easily.)" +msgstr "" +"Если для связи c какими-то серверами используется cryptlinks, то в файле /" +"usr/share/doc/ircd-hybrid/CRYPTLINKS.txt дано описание, как собрать ircd-" +"hybrid с поддержкой SSL (легко)." + +#. Type: boolean +#. Description +#: ../ircd-hybrid.templates:2001 +msgid "Restart ircd-hybrid on each upgrade?" +msgstr "Перезапускать ircd-hybrid при каждом обновлении?" + +#. Type: boolean +#. Description +#: ../ircd-hybrid.templates:2001 +msgid "" +"You may choose whether or not you want to restart the ircd-hybrid daemon " +"every time you install a new version of this package." +msgstr "" +"Вы можете выбрать, нужно или нет каждый раз перезапускать службу ircd-hybrid " +"при установке новой версии данного пакета." + +#. Type: boolean +#. Description +#: ../ircd-hybrid.templates:2001 +msgid "" +"Sometimes, you do not want to do this. For instance, if you are doing the " +"upgrade and loading IRCd modules at runtime. Failing to restart the daemon " +"would probably lead you to problems." +msgstr "" +"Иногда, этого лучше не делать. Например, если обновление и загрузка модулей " +"IRCd происходит непосредственно во время работы. Неудачный перезапуск " +"службы, вероятно, вызовет проблемы." + +#. Type: boolean +#. Description +#: ../ircd-hybrid.templates:2001 +msgid "" +"If you refuse, you have to restart ircd-hybrid yourself if you upgraded, by " +"typing `invoke-rc.d ircd-hybrid restart' whenever it suits you." +msgstr "" +"Если откажитесь, то вам придётся перезапускать ircd-hybrid при обновлении " +"самостоятельно с помощью команды `invoke-rc.d ircd-hybrid restart'." --- ircd-hybrid-7.2.2.dfsg.2.orig/debian/po/nl.po +++ ircd-hybrid-7.2.2.dfsg.2/debian/po/nl.po @@ -0,0 +1,87 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +msgid "" +msgstr "" +"Project-Id-Version: ircd-hybrid\n" +"Report-Msgid-Bugs-To: ag@roxor.cx\n" +"POT-Creation-Date: 2006-10-08 19:48+0200\n" +"PO-Revision-Date: 2007-04-30 13:57+0100\n" +"Last-Translator: Bart Cornelis \n" +"Language-Team: debian-l10n-dutch \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Poedit-Language: Dutch\n" + +#. Type: boolean +#. Description +#: ../ircd-hybrid.templates:1001 +msgid "All OpenSSL support is now disabled by default; continue?" +msgstr "" +"Alle OpenSSL-ondersteuning is nu standaard uitgeschakeld, wilt u doorgaan?" + +#. Type: boolean +#. Description +#: ../ircd-hybrid.templates:1001 +msgid "" +"Due to licensing issues ircd-hybrid is no longer built by default with " +"OpenSSL. This will be addressed in a future release, pending a rewrite of " +"the SSL layer with GNUTLS." +msgstr "" +"Omwille van licentie-problemen wordt ircd-hybrid standaard niet meer gebouwd " +"met OpenSSL ondersteuning. In de toekomst zal dit probleem verdwijnen na de " +"op stapel staande herschrijving van de SSL-laag met GNUTLS." + +#. Type: boolean +#. Description +#: ../ircd-hybrid.templates:1001 +msgid "" +"If any of your existing server links take advantage of cryptlinks, refer to /" +"usr/share/doc/ircd-hybrid/CRYPTLINKS.txt to find out how to build ircd-" +"hybrid with SSL support (easily.)" +msgstr "" +"Als uw bestaande server-links cryptlinks gebruiken zie dan /usr/share/doc/" +"ircd-hybrid/CRYPTLINKS.txt voor informatie over hoe u ircd-hybrid " +"gemakkelijk kunt herbouwen met SSL-ondersteuning." + +#. Type: boolean +#. Description +#: ../ircd-hybrid.templates:2001 +msgid "Restart ircd-hybrid on each upgrade?" +msgstr "Wilt u dat ircd-hybrid bij elke opwaardering herstart wordt?" + +#. Type: boolean +#. Description +#: ../ircd-hybrid.templates:2001 +msgid "" +"You may choose whether or not you want to restart the ircd-hybrid daemon " +"every time you install a new version of this package." +msgstr "" +"U kunt aangeven of u wilt dat de ircd-hybrid-achtergronddienst herstart " +"wordt telkens u een nieuwe versie van dit pakket installeert." + +#. Type: boolean +#. Description +#: ../ircd-hybrid.templates:2001 +msgid "" +"Sometimes, you do not want to do this. For instance, if you are doing the " +"upgrade and loading IRCd modules at runtime. Failing to restart the daemon " +"would probably lead you to problems." +msgstr "" +"Soms is dit niet aan te raden. Bijvoorbeeld wanneer u een opwaardering doet " +"met laden van IRCd-modules tijdens het uitvoeren, herstarten van de " +"achtergronddienst zou in dat geval tot problemen leiden." + +#. Type: boolean +#. Description +#: ../ircd-hybrid.templates:2001 +msgid "" +"If you refuse, you have to restart ircd-hybrid yourself if you upgraded, by " +"typing `invoke-rc.d ircd-hybrid restart' whenever it suits you." +msgstr "" +"Als u hier weigert zult u ircd-hybrid zelf moet en herstarten na het " +"opwaarderen. U kunt dit doen wanneer het u het beste uitkomt via het " +"commando 'invoke-rc.d ircd-hybrid restart'." --- ircd-hybrid-7.2.2.dfsg.2.orig/debian/po/fr.po +++ ircd-hybrid-7.2.2.dfsg.2/debian/po/fr.po @@ -0,0 +1,111 @@ +# Translators, if you are not familiar with the PO format, gettext +# documentation is worth reading, especially sections dedicated to +# this format, e.g. by running: +# info -n '(gettext)PO Files' +# info -n '(gettext)Header Entry' +# Some information specific to po-debconf are available at +# /usr/share/doc/po-debconf/README-trans +# or http://www.debian.org/intl/l10n/po-debconf/README-trans +# Developers do not need to manually edit POT or PO files. +# +msgid "" +msgstr "" +"Project-Id-Version: ircd-hybrid 1:7.0-5\n" +"Report-Msgid-Bugs-To: ag@roxor.cx\n" +"POT-Creation-Date: 2006-10-08 19:48+0200\n" +"PO-Revision-Date: 2004-06-20 22:12+0100\n" +"Last-Translator: Thomas Huriaux \n" +"Language-Team: French \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#. Type: boolean +#. Description +#: ../ircd-hybrid.templates:1001 +msgid "All OpenSSL support is now disabled by default; continue?" +msgstr "Faut-il continuer la configuration même sans la gestion d'OpenSSL ?" + +#. Type: boolean +#. Description +#: ../ircd-hybrid.templates:1001 +msgid "" +"Due to licensing issues ircd-hybrid is no longer built by default with " +"OpenSSL. This will be addressed in a future release, pending a rewrite of " +"the SSL layer with GNUTLS." +msgstr "" +"En raison de problèmes de licences, ircd-hybrid n'est plus fourni par défaut " +"avec la gestion d'OpenSSL. Celle-ci sera réintégrée dans une prochaine " +"version, qui utilisera la réécriture de la couche SSL par GNUTLS." + +#. Type: boolean +#. Description +#: ../ircd-hybrid.templates:1001 +msgid "" +"If any of your existing server links take advantage of cryptlinks, refer to /" +"usr/share/doc/ircd-hybrid/CRYPTLINKS.txt to find out how to build ircd-" +"hybrid with SSL support (easily.)" +msgstr "" +"Si l'un de vos serveurs existants utilise des liens chiffrés, veuillez " +"consulter le fichier /usr/share/doc/ircd-hybrid/CRYPTLINKS.txt pour savoir " +"comment compiler (facilement) ircd-hybrid avec la gestion de SSL." + +#. Type: boolean +#. Description +#: ../ircd-hybrid.templates:2001 +msgid "Restart ircd-hybrid on each upgrade?" +msgstr "Faut-il redémarrer ircd-hybrid à chaque mise à niveau ?" + +#. Type: boolean +#. Description +#: ../ircd-hybrid.templates:2001 +msgid "" +"You may choose whether or not you want to restart the ircd-hybrid daemon " +"every time you install a new version of this package." +msgstr "" +"Il est possible de redémarrer le démon ircd-hybrid à chaque installation " +"d'une nouvelle version de ce paquet." + +#. Type: boolean +#. Description +#: ../ircd-hybrid.templates:2001 +msgid "" +"Sometimes, you do not want to do this. For instance, if you are doing the " +"upgrade and loading IRCd modules at runtime. Failing to restart the daemon " +"would probably lead you to problems." +msgstr "" +"Dans certains cas, par exemple si vous mettez à jour et chargez des modules " +"du serveur IRC pendant son fonctionnement, il peut être préférable de ne pas " +"utiliser de redémarrage automatique, car un échec provoquerait probablement " +"des problèmes." + +#. Type: boolean +#. Description +#: ../ircd-hybrid.templates:2001 +msgid "" +"If you refuse, you have to restart ircd-hybrid yourself if you upgraded, by " +"typing `invoke-rc.d ircd-hybrid restart' whenever it suits you." +msgstr "" +"Si vous refusez cette option, vous devrez redémarrer vous-même ircd-hybrid " +"après une mise à jour, en utilisant la commande « invoke-rc.d ircd-hybrid " +"restart » au moment désiré." + +#~ msgid "ircd-hybrid should not configure servlink_path variable" +#~ msgstr "Variable « servlink_path » non configurable" + +#~ msgid "" +#~ "If your possibly existing ircd.conf that you may wish to import contains " +#~ "a servlink_path directive, either change it to:" +#~ msgstr "" +#~ "Un fichier ircd.conf, que vous pourriez vouloir importer, existe déjà et " +#~ "contient une entrée « servlink_path ». Veuillez la changer en :" + +#~ msgid "servlink_path = \"/usr/lib/ircd-hybrid/servlink\";" +#~ msgstr "servlink_path = \"/usr/lib/ircd-hybrid/servlink\";" + +#~ msgid "" +#~ "or simply remove the entire line as the correct path is hardcoded into " +#~ "the ircd." +#~ msgstr "" +#~ "ou supprimez simplement la ligne entière, car le chemin correct est codé " +#~ "en dur dans ircd." --- ircd-hybrid-7.2.2.dfsg.2.orig/debian/po/sv.po +++ ircd-hybrid-7.2.2.dfsg.2/debian/po/sv.po @@ -0,0 +1,95 @@ +# +# Translators, if you are not familiar with the PO format, gettext +# documentation is worth reading, especially sections dedicated to +# this format, e.g. by running: +# info -n '(gettext)PO Files' +# info -n '(gettext)Header Entry' +# +# Some information specific to po-debconf are available at +# /usr/share/doc/po-debconf/README-trans +# or http://www.debian.org/intl/l10n/po-debconf/README-trans +# +# Developers do not need to manually edit POT or PO files. +# +msgid "" +msgstr "" +"Project-Id-Version: ircd-hybrid\n" +"Report-Msgid-Bugs-To: ag@roxor.cx\n" +"POT-Creation-Date: 2006-10-08 19:48+0200\n" +"PO-Revision-Date: 2008-07-24 12:02+0100\n" +"Last-Translator: Martin Bagge \n" +"Language-Team: Swedish \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=iso-8859-1\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Poedit-Language: swe\n" +"X-Poedit-Country: swe\n" + +#. Type: boolean +#. Description +#: ../ircd-hybrid.templates:1001 +msgid "All OpenSSL support is now disabled by default; continue?" +msgstr "Allt stöd för OpenSSL är nu avstängd som standard; fortsätta?" + +#. Type: boolean +#. Description +#: ../ircd-hybrid.templates:1001 +msgid "" +"Due to licensing issues ircd-hybrid is no longer built by default with " +"OpenSSL. This will be addressed in a future release, pending a rewrite of " +"the SSL layer with GNUTLS." +msgstr "" +"På grund av licensproblem byggs inte ircd-hybrid längre som standard med " +"OpenSSL. Detta kommer att hanteras i en framtida version i väntan på " +"omskrivning av SSL-lagret i GNUTLS." + +#. Type: boolean +#. Description +#: ../ircd-hybrid.templates:1001 +msgid "" +"If any of your existing server links take advantage of cryptlinks, refer to /" +"usr/share/doc/ircd-hybrid/CRYPTLINKS.txt to find out how to build ircd-" +"hybrid with SSL support (easily.)" +msgstr "" +"Om någon av dina existerande serverlänkar använder sig av cryptlinks, " +"referera till /usr/share/doc/ircd-hybrid/CRYPTLINKS.txt för att få " +"information hur man bygger ircd-hybrid med stöd för SSL (lätt.)" + +#. Type: boolean +#. Description +#: ../ircd-hybrid.templates:2001 +msgid "Restart ircd-hybrid on each upgrade?" +msgstr "Starta om ircd-hybrid efter varje uppgraderin?" + +#. Type: boolean +#. Description +#: ../ircd-hybrid.templates:2001 +msgid "" +"You may choose whether or not you want to restart the ircd-hybrid daemon " +"every time you install a new version of this package." +msgstr "" +"Du kan välja om du vill starta om tjänsten ircd-hybrid efter varje uppgradering " +"av detta paket." + +#. Type: boolean +#. Description +#: ../ircd-hybrid.templates:2001 +msgid "" +"Sometimes, you do not want to do this. For instance, if you are doing the " +"upgrade and loading IRCd modules at runtime. Failing to restart the daemon " +"would probably lead you to problems." +msgstr "" +"Det är inte alltid önskvärt att göra detta, exempelvis om du uppgraderar " +"och laddar moduler i körläge. Om tjänsten då inte startar om kan det " +"innebära stor problem." + +#. Type: boolean +#. Description +#: ../ircd-hybrid.templates:2001 +msgid "" +"If you refuse, you have to restart ircd-hybrid yourself if you upgraded, by " +"typing `invoke-rc.d ircd-hybrid restart' whenever it suits you." +msgstr "" +"Om du avböjer måste du starta om ircd-hybrid manuellt när uppgraderingen är " +"klar. Detta gör du genom att skriva 'invoke-rc.d ircd-hybrid restart' när " +"det passar dig." \ No newline at end of file --- ircd-hybrid-7.2.2.dfsg.2.orig/debian/po/POTFILES.in +++ ircd-hybrid-7.2.2.dfsg.2/debian/po/POTFILES.in @@ -0,0 +1 @@ +[type: gettext/rfc822deb] ircd-hybrid.templates --- ircd-hybrid-7.2.2.dfsg.2.orig/debian/po/vi.po +++ ircd-hybrid-7.2.2.dfsg.2/debian/po/vi.po @@ -0,0 +1,85 @@ +# Vietnamese Translation for ircd-hybrid. +# Copyright © 2008 Free Software Foundation, Inc. +# Clytie Siddall , 2005-2008. +# +msgid "" +msgstr "" +"Project-Id-Version: ircd-hybrid 1:7.2.2.dfsg.2-3.1\n" +"Report-Msgid-Bugs-To: ag@roxor.cx\n" +"POT-Creation-Date: 2006-10-08 19:48+0200\n" +"PO-Revision-Date: 2008-05-06 20:13+0930\n" +"Last-Translator: Clytie Siddall \n" +"Language-Team: Vietnamese \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" +"X-Generator: LocFactoryEditor 1.7b3\n" + +#. Type: boolean +#. Description +#: ../ircd-hybrid.templates:1001 +msgid "All OpenSSL support is now disabled by default; continue?" +msgstr "Toàn bộ hỗ trợ OpenSSL bị tắt theo mặc định: tiếp tục không?" + +#. Type: boolean +#. Description +#: ../ircd-hybrid.templates:1001 +msgid "" +"Due to licensing issues ircd-hybrid is no longer built by default with " +"OpenSSL. This will be addressed in a future release, pending a rewrite of " +"the SSL layer with GNUTLS." +msgstr "" +"Do vấn đề quyền sử dụng, ircd-hybrid không còn được xây dựng lại theo mặc " +"định với OpenSSL. Vấn đề này sẽ được giải quyết trong một bản phát hành sau, " +"phụ thuộc vào một bả ghi lại cấp SSL dùng GNUTLS." + +#. Type: boolean +#. Description +#: ../ircd-hybrid.templates:1001 +msgid "" +"If any of your existing server links take advantage of cryptlinks, refer to /" +"usr/share/doc/ircd-hybrid/CRYPTLINKS.txt to find out how to build ircd-" +"hybrid with SSL support (easily.)" +msgstr "" +"Nếu bất kỳ liên kết máy phục vụ đá tồn tại của bạn có nhớ dịp cryptlink " +"(liên kết mật mã), xem tập tin «/usr/share/doc/ircd-hybrid/CRYPTLINKS.txt» để " +"tìm biết dễ dàng xây dụng trình ircd-hybrid hỗ trợ SSL như thế nào." + +#. Type: boolean +#. Description +#: ../ircd-hybrid.templates:2001 +msgid "Restart ircd-hybrid on each upgrade?" +msgstr "Khởi chạy ircd-hybrid mỗi lần nâng cấp ?" + +#. Type: boolean +#. Description +#: ../ircd-hybrid.templates:2001 +msgid "" +"You may choose whether or not you want to restart the ircd-hybrid daemon " +"every time you install a new version of this package." +msgstr "" +"Bạn có thể chọn có nên khởi chạy trình nền ircd-hybrid mỗi lần bạn cài đặt " +"một phiên bản mới của gói này, hay không." + +#. Type: boolean +#. Description +#: ../ircd-hybrid.templates:2001 +msgid "" +"Sometimes, you do not want to do this. For instance, if you are doing the " +"upgrade and loading IRCd modules at runtime. Failing to restart the daemon " +"would probably lead you to problems." +msgstr "" +"Đôi khi không nên. Ví dụ, nếu bạn nâng cấp và nạp các mô-đun ICRd vào lúc " +"chạy. Không khởi chạy lại trình nền thì rất có thể gây ra lỗi." + +#. Type: boolean +#. Description +#: ../ircd-hybrid.templates:2001 +msgid "" +"If you refuse, you have to restart ircd-hybrid yourself if you upgraded, by " +"typing `invoke-rc.d ircd-hybrid restart' whenever it suits you." +msgstr "" +"Không bật tùy chọn này thì bạn cần phải tự khởi chạy lại trình nền ircd-" +"hybrid một khi nâng cấp, bằng cách chạy câu lệnh « invoke-rc.d ircd-hybrid " +"restart » vào lúc thích hợp." --- ircd-hybrid-7.2.2.dfsg.2.orig/debian/doc/servlink.8.sgml +++ ircd-hybrid-7.2.2.dfsg.2/debian/doc/servlink.8.sgml @@ -0,0 +1,81 @@ + + Joshua"> + Kwan"> + + 3/28"> + + 8"> + joshk@triplehelix.org"> + + ircd-hybrid"> + + + Debian"> + GNU"> + GPL"> +]> + + + +
+ &dhemail; +
+ + &dhfirstname; + &dhsurname; + + + 2003 + &dhusername; + + &dhdate; +
+ + &dhucpackage; + + &dhsection; + + + &dhpackage; + + ircd-hybrid internal server linking utility + + + + &dhpackage; + + + + DESCRIPTION + +servlink is used internally by the ircd-hybrid +IRC server to maintain server-to-server connections. It cannot be used +without being invoked by the ircd. + This manual page was written for the &debian; distribution + because the original program does not have a manual page. + + + + OPTIONS + + This program takes no command line arguments that +are available to a user. + + + SEE ALSO + + ircd-hybrid(8) + + + AUTHOR + + + This manual page was written by Joshua Kwan <joshk@triplehelix.org> + and is licensed under the GNU General Public License, version 2 or later. + + + +
--- ircd-hybrid-7.2.2.dfsg.2.orig/debian/doc/mbuild-hybrid.1.sgml +++ ircd-hybrid-7.2.2.dfsg.2/debian/doc/mbuild-hybrid.1.sgml @@ -0,0 +1,95 @@ + + Joshua"> + Kwan"> + + 3/28"> + + 1"> + joshk@triplehelix.org"> + + hybrid-dev"> + + + Debian"> + GNU"> + GPL"> +]> + + + +
+ &dhemail; +
+ + &dhfirstname; + &dhsurname; + + + 2003 + &dhusername; + + &dhdate; +
+ + &dhucpackage; + + &dhsection; + + + &dhpackage; + + easily build ircd-hybrid v7 modules from source + + + + &dhpackage; + + + + + + + DESCRIPTION + +mbuild-hybrid is a program that simplifies compiling ircd-hybrid modules from source. One may specify output path and CFLAGS to use when building a module; the defaults for each are described below. + +It goes without saying that mbuild-hybrid won't run without something in the -s option. + + + + OPTIONS + + + + Source file to build the module with. The output filename will be this name, s/.c/.so/. + + + + + Install path for the module. This defauls to /usr/lib/ircd-hybrid/modules, the module search path for Debian's ircd-hybrid. + + + + + This should be quoted if more than one argument; this will be appended to the default CFLAGS, which are simply '-g -Wall '. + + + + + SEE ALSO + + ircd-hybrid(8) + + + AUTHOR + + + This manual page was written by Joshua Kwan <joshk@triplehelix.org> + and is licensed under the GNU General Public License, version 2 or later. + + + +
--- ircd-hybrid-7.2.2.dfsg.2.orig/debian/doc/encspeed.8.sgml +++ ircd-hybrid-7.2.2.dfsg.2/debian/doc/encspeed.8.sgml @@ -0,0 +1,89 @@ + + Joshua"> + Kwan"> + + 3/28"> + + 8"> + joshk@triplehelix.org"> + + ircd-hybrid"> + + + Debian"> + GNU"> + GPL"> +]> + + + +
+ &dhemail; +
+ + &dhfirstname; + &dhsurname; + + + 2003 + &dhusername; + + &dhdate; +
+ + &dhucpackage; + + &dhsection; + + + &dhpackage; + + tool to test encryption speeds with OpenSSL + + + + &dhpackage; + + + + DESCRIPTION + + encspeed is used to test encryption +algorithms that are supported by ircd-hybrid to see how much data per +second can be encrypted to be sent over a network. If encryption rate is +less than the influx of data, there will be massive network lag, and +this tool is here to help the server administrators decide which one is +the best balance between security and speed. + The program will test the following algorithms for +encryption and decryption speeds: + Blowfish: 128 and 256-bit, 3DES: 168-bit, DES: 56-bit, +CAST: 128-bit, IDEA: 128-bit, RCS 5, 8, and 12: 128-bit (although the +latter is not supported by Debian's openssl by default.) + + This manual page was written for the &debian; distribution + because the original program does not have a manual page. + + + + OPTIONS + + This program takes no command line arguments to date. + + + SEE ALSO + + openssl(1), ircd-hybrid(8) + + + AUTHOR + + + This manual page was written by Joshua Kwan <joshk@triplehelix.org> + and is licensed under the GNU General Public License, version 2 or later. + + + +