aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVsevolod Stakhov <vsevolod@rambler-co.ru>2009-02-11 17:39:04 +0300
committerVsevolod Stakhov <vsevolod@rambler-co.ru>2009-02-11 17:39:04 +0300
commit54480f21f115b40e76806210a61bdde00d3842f7 (patch)
treef8e1aad8341c5190d4c73f66db117aa754147cee
parentc07cd514e4ea635a59937cf703107ab075e92400 (diff)
downloadrspamd-54480f21f115b40e76806210a61bdde00d3842f7.tar.gz
rspamd-54480f21f115b40e76806210a61bdde00d3842f7.zip
* By default number of workers is number of active processors in system
* Fix macro detection in configure system
-rwxr-xr-xconfigure33
-rw-r--r--src/cfg_utils.c7
2 files changed, 24 insertions, 16 deletions
diff --git a/configure b/configure
index a906939bc..5861cadc3 100755
--- a/configure
+++ b/configure
@@ -265,11 +265,11 @@ check_function()
check_include()
{
- INCLUDE="$1"
- echo -n "Testing for $INCLUDE: "
+ _INCLUDE="$1"
+ echo -n "Testing for $_INCLUDE: "
echo >> config.log
- echo "Testing for $INCLUDE: " >> config.log
- check_cache "include" "$INCLUDE"
+ echo "Testing for $_INCLUDE: " >> config.log
+ check_cache "include" "$_INCLUDE"
if [ $? -eq 0 ] ; then
echo "-> OK (cached)"
echo "-> OK (cached)" >> config.log
@@ -277,7 +277,7 @@ check_include()
return 0
fi
echo "#include <sys/types.h>" > autotest.c
- echo "#include \"$INCLUDE\"" >> autotest.c
+ echo "#include \"$_INCLUDE\"" >> autotest.c
echo "#include <stdlib.h>" >> autotest.c
echo "int main (int argc, char **argv) { return 0; }" >> autotest.c
echo "$GCC $CFLAGS $PTHREAD_CFLAGS -o autotest $LDFLAGS $LIBS $PTHREAD_LDFLAGS autotest.c" >>config.log
@@ -285,9 +285,9 @@ check_include()
if [ $? -eq 0 ] ; then
echo "found"
echo "-> OK" >> config.log
- _CFLAG=`echo "$INCLUDE" | sed -e 's/[./]/_/g' | tr '[:lower:]' '[:upper:]'`
+ _CFLAG=`echo "$_INCLUDE" | sed -e 's/[./]/_/g' | tr '[:lower:]' '[:upper:]'`
have_opt $_CFLAG
- write_cache "include" "$INCLUDE" "yes" "$_CFLAG"
+ write_cache "include" "$_INCLUDE" "yes" "$_CFLAG"
cleanup
return 0
else
@@ -295,7 +295,7 @@ check_include()
echo "-> FAILED" >> config.log
echo "Failed program was:" >> config.log
cat autotest.c >> config.log
- write_cache "include" "$INCLUDE" "no" ""
+ write_cache "include" "$_INCLUDE" "no" ""
cleanup
return 1
fi
@@ -304,12 +304,13 @@ check_include()
check_macro()
{
MACRO=$1
+ _INCLUDE=""
while [ $# -ne 1 -a -n $1 ] ; do
shift
- if [ "F$INCLUDE" = "F" ] ; then
- INCLUDE="$1"
+ if [ "F$_INCLUDE" = "F" ] ; then
+ _INCLUDE="$1"
else
- INCLUDE="$INCLUDE $1"
+ _INCLUDE="$_INCLUDE $1"
fi
done
echo -n "Testing for $MACRO: "
@@ -322,10 +323,9 @@ check_macro()
return 0
fi
echo "#include <sys/types.h>" > autotest.c
- for inc in $INCLUDE ; do
- echo "#include \"$inc\"" >> autotest.c
+ for _inc in $_INCLUDE ; do
+ echo "#include \"$_inc\"" >> autotest.c
done
- echo "#include \"${INCLUDE}\"" >> autotest.c
echo "#include <stdlib.h>" >> autotest.c
echo "int main (int argc, char **argv) {" >>autotest.c
echo "#ifndef $MACRO" >>autotest.c
@@ -971,6 +971,11 @@ else
fi
fi
+check_macro "_SC_NPROCESSORS_ONLN" "unistd.h"
+if [ $? -eq 0 ] ; then
+ have_opt "SC_NPROCESSORS_ONLN"
+fi
+
check_package "glib-2.0" "glib.h"
check_package "gmime-2.0" "gmime/gmime.h"
if [ $? -eq 1 ] ; then
diff --git a/src/cfg_utils.c b/src/cfg_utils.c
index 7e1e74b28..4616498cc 100644
--- a/src/cfg_utils.c
+++ b/src/cfg_utils.c
@@ -6,14 +6,13 @@
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
+#include <unistd.h>
#include <sys/un.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <syslog.h>
#include <netdb.h>
#include <math.h>
-#include <netinet/in.h>
-#include <arpa/inet.h>
#include "config.h"
#include "cfg_file.h"
@@ -174,7 +173,11 @@ init_defaults (struct config_file *cfg)
cfg->memcached_maxerrors = DEFAULT_UPSTREAM_MAXERRORS;
cfg->memcached_protocol = TCP_TEXT;
+#ifdef HAVE_SC_NPROCESSORS_ONLN
+ cfg->workers_number = sysconf (_SC_NPROCESSORS_ONLN);
+#else
cfg->workers_number = DEFAULT_WORKERS_NUM;
+#endif
cfg->max_statfile_size = DEFAULT_STATFILE_SIZE;
cfg->modules_opts = g_hash_table_new (g_str_hash, g_str_equal);
cfg->variables = g_hash_table_new (g_str_hash, g_str_equal);