From 5df78b3c4e77f7f54234cbe8d5e63aa8c352c2d5 Mon Sep 17 00:00:00 2001 From: losinshi Date: Fri, 8 Sep 2006 15:05:55 +0000 Subject: [PATCH] Adding timeout to deamon git-svn-id: file:///home/jan/tmp/wetterstation/trunk@72 dd492736-c11a-0410-ad51-8c26713eaf7f --- deamon/seriell/config.c | 2 ++ deamon/seriell/definitions.h | 1 + deamon/seriell/main.h | 1 + deamon/seriell/weatherd.conf | 1 + deamon/seriell/write.c | 4 ++-- 5 files changed, 7 insertions(+), 2 deletions(-) diff --git a/deamon/seriell/config.c b/deamon/seriell/config.c index 471949d..6adc200 100644 --- a/deamon/seriell/config.c +++ b/deamon/seriell/config.c @@ -59,6 +59,8 @@ static const struct config_keyword keywords[] = { {"pg_user", read_str, &(global_opts.pg_user), DEFAULT_PG_USER}, {"pg_pass", read_str, &(global_opts.pg_pass), DEFAULT_PG_PASS}, {"pg_database", read_str, &(global_opts.pg_database), DEFAULT_PG_DATABASE}, + {"pg_timeout", read_str, &(global_opts.pg_timeout), DEFAULT_PG_TIMEOUT}, + {"", NULL, NULL, ""} }; diff --git a/deamon/seriell/definitions.h b/deamon/seriell/definitions.h index 03f889c..a864499 100644 --- a/deamon/seriell/definitions.h +++ b/deamon/seriell/definitions.h @@ -31,6 +31,7 @@ #define DEFAULT_PG_USER "localuser" /* Postgres-Username */ #define DEFAULT_PG_PASS "" /* Postgres-Passwort */ #define DEFAULT_PG_DATABASE "localbase" /* Postgres-Datenbank */ +#define DEFAULT_PG_TIMEOUT "20" /* Postgres-Timeout */ #define DEFAULT_CONFIG_FILE "./weather.conf" /* Standart-Configdatei */ diff --git a/deamon/seriell/main.h b/deamon/seriell/main.h index 58fac18..aaa38fb 100644 --- a/deamon/seriell/main.h +++ b/deamon/seriell/main.h @@ -34,6 +34,7 @@ typedef struct { char *pg_user; /* Postgres-Username */ char *pg_pass; /* Postgres-Password */ char *pg_database; /* Postgres-Datenbank */ + char *pg_timeout; /* Postgres-Timeout */ #ifndef NO_LOGING char *data_log; /* Das Daten-Logfile */ char *error_log; /* Das Fehler-Logfile */ diff --git a/deamon/seriell/weatherd.conf b/deamon/seriell/weatherd.conf index f6b9216..781ff5e 100644 --- a/deamon/seriell/weatherd.conf +++ b/deamon/seriell/weatherd.conf @@ -24,3 +24,4 @@ pg_host 141.30.228.39 pg_user losinshi #pg_pass pg_database wetter +pg_timeout 30 diff --git a/deamon/seriell/write.c b/deamon/seriell/write.c index 55ad438..d7f0eb2 100644 --- a/deamon/seriell/write.c +++ b/deamon/seriell/write.c @@ -116,8 +116,8 @@ static int pg_connect(){ if(PQstatus(connection) != CONNECTION_OK){ if (connection == NULL){ if(conn_string == NULL){ - conn_string = malloc(sizeof(char)*255); - snprintf(conn_string, 255, "host=%s dbname=%s user=%s password=%s", global_opts.pg_host, global_opts.pg_database, global_opts.pg_user, global_opts.pg_pass); + conn_string = malloc(sizeof(char)*512); + snprintf(conn_string, 512, "host=%s dbname=%s user=%s password=%s connect_timeout=%s", global_opts.pg_host, global_opts.pg_database, global_opts.pg_user, global_opts.pg_pass, global_opts.pg_timeout); } connection = PQconnectdb(conn_string); /* Connection aufbauen */ add_clean(clean_write, connection); /* Callbackfunktion zum Aufräumen registrieren */