diff options
author | Jonas Gorski <jogo@openwrt.org> | 2014-07-19 17:12:17 +0200 |
---|---|---|
committer | Jonas Gorski <jogo@openwrt.org> | 2014-07-19 17:20:24 +0200 |
commit | 6a9cdf5d93df26159b98882cc2c761eb1facefbd (patch) | |
tree | b320610338a5ddc8bd619c0ed4d8f6f344234eb8 /net/znc/files | |
parent | f6d2c55587d56edc5b1467e6b3e26eacf968076c (diff) |
znc: copy from old packages and add PKG_LICENSE
Signed-off-by: Jonas Gorski <jogo@openwrt.org>
Diffstat (limited to 'net/znc/files')
-rw-r--r-- | net/znc/files/znc.conf | 29 | ||||
-rw-r--r-- | net/znc/files/znc.init | 194 |
2 files changed, 223 insertions, 0 deletions
diff --git a/net/znc/files/znc.conf b/net/znc/files/znc.conf new file mode 100644 index 000000000..1b0d842a5 --- /dev/null +++ b/net/znc/files/znc.conf @@ -0,0 +1,29 @@ +config znc + # where to listen for connections + list listener '192.168.1.1 1234' + # If using SSL sockets, use the following certifcate: + # option znc_ssl_cert '/etc/znc.cert' + + # load global modules (You need to install them first): + # list module 'fail2ban' + + # remove this to enable the service + option disabled 1 + +config user 'sampleUser' + # Use either a plain text password or use the full sha256#... line. + # You can generate one with 'znc -s'. + option password 'changeme' + option nick 'sampleUser' + option altnick 'userSample' + option ident 'openwrt' + option realname 'John Doe' + + # This adds support for channels in znc configuration: + # list channel '#chan optional_password' + + # list of allowed servers: + # list server 'chat.freenode.net 6667' + + # load user modules ('<module> [params...]'): + # list module 'simple_away -timer 10 disconnected' diff --git a/net/znc/files/znc.init b/net/znc/files/znc.init new file mode 100644 index 000000000..7cc7fa70f --- /dev/null +++ b/net/znc/files/znc.init @@ -0,0 +1,194 @@ +#!/bin/sh /etc/rc.common +# Copyright (C) 2010 Openwrt.org + +START=60 + +ZNC_CONFIG_PATH=/tmp/etc/znc +PID_FILE=${ZNC_CONFIG_PATH}/znc.pid +ZNC_CONFIG=${ZNC_CONFIG_PATH}/configs/znc.conf + +EXTERNAL_CONFIG=0 +DISABLED= + +RUNAS_USER= +RUNAS_GROUP= + +add_param() { + echo "$1 = $2" >> $ZNC_CONFIG +} + +add_chan() { + chan=${1% *} + pass=${1#* } + echo " <Chan $chan>" >> $ZNC_CONFIG + [ "$chan" != "$pass" ] && echo " Key = $pass" >> $ZNC_CONFIG + echo " </Chan>" >> $ZNC_CONFIG +} + +add_network() { + local current_user="$1" + local network="$2" + local user + local name + + config_get user "$network" user + + [ "$user" = "$current_user" ] || return 0 + + config_get name "$network" name + echo " <Network $name>" >> $ZNC_CONFIG + config_list_foreach "$network" server "add_param \" Server\"" + config_list_foreach "$network" channel "add_chan" +} + +znc_global() { + local znc="$1" + local anoniplimit + local maxbuffersize + local connectdelay + local serverthrottle + local znc_config_path + local znc_pem_file + + config_get_bool DISABLED "$znc" disabled 0 + + [ "$DISABLED" -eq 0 ] || return 0 + + config_get znc_config_path "$znc" znc_config_path + + config_get RUNAS_USER "$znc" runas_user + config_get RUNAS_GROUP "$znc" runas_group + + if [ "${znc_config_path}" ] + then + ZNC_CONFIG_PATH=$znc_config_path + EXTERNAL_CONFIG=1 + else + mkdir -p $ZNC_CONFIG_PATH/configs/ + [ ! -f "$ZNC_CONFIG" ] || rm "$ZNC_CONFIG" + + add_param "Version" "1.0" + + config_get anoniplimit "$znc" anoniplimit + config_get maxbuffersize "$znc" maxbuffersize + config_get connectdelay "$znc" connectdelay + config_get serverthrottle "$znc" serverthrottle + config_get znc_pem_file "$znc" znc_ssl_cert + + [ -z "$znc_pem_file" ] || ln -sf "$znc_pem_file" $ZNC_CONFIG_PATH/znc.pem + + [ -z $anoniplimit ] || echo "AnonIPLimit = $anoniplimit" >> $ZNC_CONFIG + [ -z $maxbuffersize ] || echo "MaxBufferSize = $maxbuffersize" >> $ZNC_CONFIG + [ -z $connectdelay ] || echo "ConnectDelay = $connectdelay" >> $ZNC_CONFIG + [ -z $serverthrottle ] || echo "ServerThrottle = $anoniplimit" >> $ZNC_CONFIG + + echo "PidFile = $PID_FILE" >> $ZNC_CONFIG + + config_list_foreach "$znc" listener "add_param Listener" + config_list_foreach "$znc" module "add_param LoadModule" + + add_param LoadModule "droproot ${RUNAS_USER:-nobody} ${RUNAS_GROUP:-nogroup}" + fi +} + +add_user() { + local user="$1" + local password + local nick + local altnick + local ident + local realname + local buffer + local quitmsg + local chanmodes + local vhost + local server + + config_get password "$user" password + config_get nick "$user" nick + config_get altnick "$user" altnick + config_get ident "$user" ident + config_get realname "$user" realname + config_get buffer "$user" buffer + config_get quitmsg "$user" quitmsg + config_get chanmodes "$user" chanmodes + config_get vhost "$user" vhost + config_get server "$user" server + + echo "<User $user>" >> $ZNC_CONFIG + + case "$password" in + "md5#"* | "sha256#"* | "plain#"*) + add_param " Pass" "$password" + ;; + *) + add_param " Pass" "plain#$password" + ;; + esac + + add_param " Nick" "$nick" + add_param " AltNick" "${altnick:-$nick"_"}" + add_param " Ident" "${ident:-$nick}" + add_param " RealName" "${realname:-$nick}" + [ -z "$vhost" ] || add_param " VHost" "$vhost" + add_param " Buffer" "${buffer:-50}" + add_param " KeepBuffer" "false" + add_param " ChanModes" "${chanmodes:-"+stn"}" + [ -z "$quitmsg" ] || add_param " QuitMsg" "$quitmsg" + + config_list_foreach "$user" module "add_param \" LoadModule\"" + + # add legacy network + if [ "$server" ]; then + echo " <Network Default>" >> $ZNC_CONFIG + config_list_foreach "$user" server "add_param \" Server\"" + config_list_foreach "$user" channel "add_chan" + echo " </Network>" >> $ZNC_CONFIG + fi + + config_foreach "add_network \"$user\"" network + + echo "</User>" >> $ZNC_CONFIG +} + + +start() { + config_load znc + config_foreach znc_global znc + + if [ "$DISABLED" -eq 1 ]; then + return 0 + fi + + if [ "$EXTERNAL_CONFIG" -eq 0 ] + then + config_foreach add_listener listener + config_foreach add_user user + + chown -hR ${RUNAS_USER:-nobody}:${RUNAS_GROUP:-nogroup} /tmp/etc/znc + fi + + if [ "$EXTERNAL_CONFIG" -eq 1 -a "$RUNAS_USER" ] + then + local SU=$(which su) + if [ "$SU" ] + then + $SU -c "/usr/bin/znc -d$ZNC_CONFIG_PATH >/dev/null &" $RUNAS_USER + else + logger -s -t ZNC -p daemon.err "Could not run ZNC as user $RUNAS_USER: su not found." + exit 1 + fi + else + /usr/bin/znc -d$ZNC_CONFIG_PATH >/dev/null & + fi +} + +stop() { + if [ -f "$PID_FILE" ] + then + kill $(cat "$PID_FILE") + else + killall znc + fi +} + |