aboutsummaryrefslogtreecommitdiff
path: root/net/znc/files
diff options
context:
space:
mode:
authorJonas Gorski <jogo@openwrt.org>2014-07-19 17:12:17 +0200
committerJonas Gorski <jogo@openwrt.org>2014-07-19 17:20:24 +0200
commit6a9cdf5d93df26159b98882cc2c761eb1facefbd (patch)
treeb320610338a5ddc8bd619c0ed4d8f6f344234eb8 /net/znc/files
parentf6d2c55587d56edc5b1467e6b3e26eacf968076c (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.conf29
-rw-r--r--net/znc/files/znc.init194
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
+}
+