Merge branch 'master' of github.com:janvidar/uhub into sans_libevent

This commit is contained in:
Jan Vidar Krey 2010-01-19 19:35:20 +01:00
commit f84f3b1fff
6 changed files with 148 additions and 5 deletions

0
TODO Normal file
View File

101
doc/init.d.RedHat/etc/init.d/uhub Executable file
View File

@ -0,0 +1,101 @@
#!/bin/sh
#
# chkconfig: - 91 35
# description: Starts and stops the Uhub ( http://www.extatic.org/uhub ) daemons on RHEL\CentOS \
# used to provide p2p network services.
#
# pidfile: /var/run/uhub.pid
# config: /etc/uhub/uhub.conf
# Source function library.
if [ -f /etc/init.d/functions ] ; then
. /etc/init.d/functions
elif [ -f /etc/rc.d/init.d/functions ] ; then
. /etc/rc.d/init.d/functions
else
exit 1
fi
# Avoid using root's TMPDIR
unset TMPDIR
# Source networking configuration.
. /etc/sysconfig/network
if [ -f /etc/sysconfig/uhub ]; then
. /etc/sysconfig/uhub
fi
# Check that networking is up.
[ ${NETWORKING} = "no" ] && exit 1
# Check that uhub.conf exists.
[ -f /etc/uhub/uhub.conf ] || exit 6
RETVAL=0
start() {
KIND="UHUB"
echo -n $"Starting $KIND services: "
daemon uhub $UHUBOPTIONS
RETVAL=$?
echo ""
return $RETVAL
}
stop() {
KIND="UHUB"
echo -n $"Shutting down $KIND services: "
killproc uhub
RETVAL=$?
echo ""
return $RETVAL
}
restart() {
stop
start
}
reload() {
echo -n $"Reloading uhub.conf / user.conf file: "
killproc uhub -HUP
RETVAL=$?
echo ""
return $RETVAL
}
rhstatus() {
status uhub
RETVAL=$?
if [ $RETVAL -ne 0 ] ; then
return $RETVAL
fi
}
case "$1" in
start)
start
;;
stop)
stop
;;
restart)
restart
;;
reload)
reload
;;
status)
rhstatus
;;
*)
echo $"Usage: $0 {start|stop|restart|reload|status}"
exit 2
esac
exit $?

View File

@ -0,0 +1,15 @@
# Options to UHUB
# -v Verbose mode. Add more -v's for higher verbosity.
# -q Quiet mode - no output
# -f Fork to background
# -l <file> Log messages to given file (default: stderr)
# -L Log messages to syslog
# -c <file> Specify configuration file (default: /etc/uhub/uhub.conf)
# -S Show configuration parameters, but ignore defaults
# -u <user> Run as given user
# -g <group> Run with given group permissions
# -p <file> Store pid in file (process id)
UHUBOPTIONS=" -u uhub -f -p /var/run/uhub.pid -l /var/log/uhub.log"

View File

@ -4,7 +4,8 @@
#
# This file is read only to the uhub deamon, and if you
# make changes to it while uhub is running you can send a
# HUP signal to it, to reparse configuration (only on UNIX).
# HUP signal to it ( $ killall -HUP uhub ), to reparse configuration (only on UNIX).
# All configuration directives: http://www.uhub.org/config.php
# Bind to this port and address
# server_bind_addr=any means listen to "::" if IPv6 is supported
@ -38,6 +39,23 @@ file_acl=/etc/uhub/users.conf
# Normally this message is sent to clients when connecting.
file_motd=/etc/uhub/motd.txt
# Slots\share\hubs limits
limit_max_hubs_user = 0
limit_max_hubs_reg = 0
limit_max_hubs_op = 0
limit_max_hubs = 0
limit_min_hubs_user = 0
limit_min_hubs_reg = 0
limit_min_hubs_op = 0
limit_min_share = 0
# Example:
# To require users to share at least 1 GB in order to enter the hub:
# limit_min_share = 1024
limit_max_share = 0
limit_min_slots = 0
limit_max_slots = 0
# Configure status message as sent to clients in different circumstances.
msg_hub_full = Hub is full
msg_hub_disabled = Hub is disabled
@ -61,6 +79,12 @@ msg_ban_permanently = Banned permanently
msg_ban_temporarily = Banned temporarily
msg_auth_invalid_password = Password is wrong
msg_auth_user_not_found = User not found in password database
msg_user_share_size_low = User is not sharing enough
msg_user_share_size_high = User is sharing too much
msg_user_slots_low = User have too few upload slots
msg_user_slots_high = User have too many upload slots
msg_user_hub_limit_low = User is on too few hubs
msg_user_hub_limit_high = User is on too many hubs
msg_error_no_memory = No memory

View File

@ -183,7 +183,10 @@ int hub_handle_chat_message(struct hub_info* hub, struct hub_user* u, struct adc
char* message = adc_msg_get_argument(cmd, 0);
int ret = 0;
int relay = 1;
if (!message || !user_is_logged_in(u))
return 0;
if ((cmd->cache[0] == 'B') && (message[0] == '!' || message[0] == '+'))
{
/*
@ -208,7 +211,7 @@ int hub_handle_chat_message(struct hub_info* hub, struct hub_user* u, struct adc
relay = 0;
}
if (relay && user_is_logged_in(u))
if (relay)
{
/* adc_msg_remove_named_argument(cmd, "PM"); */
if (cmd->cache[0] == 'B')

View File

@ -111,11 +111,11 @@ int handle_net_read(struct hub_user* user)
start = pos;
}
if (lastPos)
if (lastPos || remaining)
{
if (remaining < g_hub->config->max_recv_buffer)
{
hub_recvq_set(q, lastPos, remaining);
hub_recvq_set(q, lastPos ? lastPos : buf, remaining);
}
else
{