From eacef28de6f03162b792f07a633e17c6bc5bfe3c Mon Sep 17 00:00:00 2001 From: shawarma <> Date: Sat, 19 Mar 2005 00:45:53 +0000 Subject: [PATCH] Added some error checking --- mbuni/mmlib/mms_detokenize_shell.c | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/mbuni/mmlib/mms_detokenize_shell.c b/mbuni/mmlib/mms_detokenize_shell.c index 167298e..5515f5b 100644 --- a/mbuni/mmlib/mms_detokenize_shell.c +++ b/mbuni/mmlib/mms_detokenize_shell.c @@ -8,6 +8,7 @@ Octstr *script; static int mms_detokenizer_init(char *settings) { script = octstr_create(settings); + info(0, "Detokenizer script set to \"%s\"", settings); return 0; } @@ -18,21 +19,24 @@ static int mms_detokenizer_fini(void) static Octstr *mms_detokenize(Octstr * token) { - Octstr *s; + Octstr *cmd = NULL, *msisdn = NULL; FILE *fp; char buf[4096]; if (script == NULL || octstr_len(script) == 0) return NULL; - s = octstr_format("%s '%s'", octstr_get_cstr(script), octstr_get_cstr(token)); - fp = popen(octstr_get_cstr(s), "r"); - octstr_destroy(s); - fgets(buf, 4096, fp); - s = octstr_create(buf); - octstr_strip_crlfs(s); - pclose(fp); - return s; + cmd = octstr_format("%s '%s'", octstr_get_cstr(script), octstr_get_cstr(token)); + info(0, "Calling \"%s\"", octstr_get_cstr(cmd)); + if ((fp = popen(octstr_get_cstr(cmd), "r"))) { + if (fgets(buf, 4096, fp) == buf) { + msisdn = octstr_create(buf); + octstr_strip_crlfs(msisdn); + } + pclose(fp); + } + octstr_destroy(cmd); + return msisdn; } /* The function itself. */