From 4439817d4df10956b884e0d47ac6e3d18c141238 Mon Sep 17 00:00:00 2001 From: Christian Pointner Date: Sun, 5 Dec 2010 07:24:59 +0000 Subject: check wether config file was empty git-svn-id: https://svn.spreadspace.org/tcpproxy/trunk@29 e61f0598-a718-4e21-a8f0-0aadfa62ad6b --- src/slist.c | 13 +++++++++++++ src/slist.h | 1 + src/tcpproxy.c | 8 ++++++++ 3 files changed, 22 insertions(+) (limited to 'src') diff --git a/src/slist.c b/src/slist.c index 8dd1963..24da141 100644 --- a/src/slist.c +++ b/src/slist.c @@ -115,3 +115,16 @@ void slist_clear(slist_t* lst) lst->first_ = NULL; } + +int slist_length(slist_t* lst) +{ + if(!lst || !lst->first_) + return 0; + + int len = 0; + slist_element_t* tmp; + for(tmp = lst->first_; tmp; tmp = tmp->next_) + len++; + + return len; +} diff --git a/src/slist.h b/src/slist.h index 4812192..f036bf3 100644 --- a/src/slist.h +++ b/src/slist.h @@ -46,5 +46,6 @@ int slist_init(slist_t* lst, void (*delete_element)(void*)); slist_element_t* slist_add(slist_t* lst, void* data); void slist_remove(slist_t* lst, void* data); void slist_clear(slist_t* lst); +int slist_length(slist_t* lst); #endif diff --git a/src/tcpproxy.c b/src/tcpproxy.c index ef71cb4..57d86b3 100644 --- a/src/tcpproxy.c +++ b/src/tcpproxy.c @@ -171,6 +171,14 @@ int main(int argc, char* argv[]) yyinit(&opt, &listeners); yyparse(); + + if(!slist_length(&listeners)) { + log_printf(ERROR, "no listeners defined in config file %s", opt.config_file_); + listener_clear(&listeners); + options_clear(&opt); + log_close(); + exit(-1); + } } priv_info_t priv; -- cgit v1.2.3