diff options
author | Jukka Rissanen <jukka.rissanen@linux.intel.com> | 2012-11-12 14:07:54 +0200 |
---|---|---|
committer | Patrik Flykt <patrik.flykt@linux.intel.com> | 2012-11-23 12:58:52 +0200 |
commit | 7270920bf73fe37ff15a25360dd1e63bad239515 (patch) | |
tree | 3cf743b93dad7fdcdd49f360391a35ca01ff7c59 /scripts | |
parent | d3910ab6489d16082543215ffaa780981e520e31 (diff) | |
download | connman-7270920bf73fe37ff15a25360dd1e63bad239515.tar.gz connman-7270920bf73fe37ff15a25360dd1e63bad239515.tar.bz2 connman-7270920bf73fe37ff15a25360dd1e63bad239515.zip |
openvpn-script: Print errors to syslog instead of stderr
Use syslog for error printing because normally the stderr
goes to /dev/null and we do not see the errors.
Diffstat (limited to 'scripts')
-rw-r--r-- | scripts/openvpn-script.c | 42 |
1 files changed, 32 insertions, 10 deletions
diff --git a/scripts/openvpn-script.c b/scripts/openvpn-script.c index 3d463843..e359c314 100644 --- a/scripts/openvpn-script.c +++ b/scripts/openvpn-script.c @@ -27,11 +27,23 @@ #include <stdio.h> #include <stdlib.h> #include <string.h> +#include <syslog.h> +#include <libgen.h> #include <dbus/dbus.h> extern char **environ; +static void print(const char *format, ...) +{ + va_list ap; + + va_start(ap, format); + vsyslog(LOG_INFO, format, ap); + va_end(ap); +} + + static void append(DBusMessageIter *dict, const char *pattern) { DBusMessageIter entry; @@ -61,6 +73,9 @@ int main(int argc, char *argv[]) DBusMessage *msg; DBusMessageIter iter, dict; char **envp, *busname, *interface, *path, *reason; + int ret = 0; + + openlog(basename(argv[0]), LOG_NDELAY | LOG_PID, LOG_DAEMON); busname = getenv("CONNMAN_BUSNAME"); interface = getenv("CONNMAN_INTERFACE"); @@ -69,27 +84,29 @@ int main(int argc, char *argv[]) reason = getenv("script_type"); if (!busname || !interface || !path || !reason) { - fprintf(stderr, "Required environment variables not set\n"); - return 1; + print("Required environment variables not set"); + ret = 1; + goto out; } dbus_error_init(&error); conn = dbus_bus_get(DBUS_BUS_SYSTEM, &error); if (conn == NULL) { if (dbus_error_is_set(&error) == TRUE) { - fprintf(stderr, "%s\n", error.message); + print("%s", error.message); dbus_error_free(&error); } else - fprintf(stderr, "Failed to get on system bus\n"); - return 0; + print("Failed to get on system bus"); + + goto out; } msg = dbus_message_new_method_call(busname, path, interface, "notify"); if (msg == NULL) { dbus_connection_unref(conn); - fprintf(stderr, "Failed to allocate method call\n"); - return 0; + print("Failed to allocate method call"); + goto out; } dbus_message_set_no_reply(msg, TRUE); @@ -110,8 +127,10 @@ int main(int argc, char *argv[]) dbus_message_iter_close_container(&iter, &dict); - if (dbus_connection_send(conn, msg, NULL) == FALSE) - fprintf(stderr, "Failed to send message\n"); + if (dbus_connection_send(conn, msg, NULL) == FALSE) { + print("Failed to send message"); + goto out; + } dbus_connection_flush(conn); @@ -119,5 +138,8 @@ int main(int argc, char *argv[]) dbus_connection_unref(conn); - return 0; +out: + closelog(); + + return ret; } |