X-Git-Url: http://git.maemo.org/git/?p=browser-switch;a=blobdiff_plain;f=dbus-server-bindings.c;h=939056b87824910fe95c99eee6625907dfccd9df;hp=2790fd94983c519efb11e995ec91e18b5723d594;hb=63bfe571ee86f00936e30853f4289df6efd2b52d;hpb=7d3b3e8a206bffae1e491f5887ab1aaaf69e4759 diff --git a/dbus-server-bindings.c b/dbus-server-bindings.c index 2790fd9..939056b 100644 --- a/dbus-server-bindings.c +++ b/dbus-server-bindings.c @@ -43,23 +43,28 @@ static void osso_browser_class_init(OssoBrowserClass *klass) #include "dbus-server-glue.h" -static void open_address(const char * uri) { - char * new_uri; +static void open_address(const char *uri) { + char *new_uri; size_t new_uri_len; - if (!uri && uri[0] == '/') { + if (!uri) + /* Not much to do in this case ... */ + return; + + printf("open_address '%s'\n", uri); + if (uri[0] == '/') { + /* URI begins with a '/' -- assume it points to a local file + and prefix with "file://" */ new_uri_len = strlen("file://") + strlen(uri) + 1; if (!(new_uri = calloc(new_uri_len, sizeof(char)))) exit(1); - strncpy(new_uri, "file://", strlen("file://")); - strncat(new_uri, uri, strlen(uri)); + snprintf(new_uri, new_uri_len, "%s%s", "file://", uri); launch_browser(&ctx, new_uri); /* If launch_browser didn't exec something in this process, we need to clean up after ourselves */ free(new_uri); } else { - printf("open_address '%s'\n", uri); launch_browser(&ctx, (char *)uri); } } @@ -69,19 +74,19 @@ static void open_address(const char * uri) { * The com.nokia.osso_browser D-Bus interface */ gboolean osso_browser_load_url(OssoBrowser *obj, - const char * uri, GError **error) { + const char *uri, GError **error) { open_address(uri); return TRUE; } gboolean osso_browser_mime_open(OssoBrowser *obj, - const char * uri, GError **error) { + const char *uri, GError **error) { open_address(uri); return TRUE; } gboolean osso_browser_open_new_window(OssoBrowser *obj, - const char * uri, GError **error) { + const char *uri, GError **error) { open_address(uri); return TRUE; } @@ -95,26 +100,26 @@ gboolean osso_browser_top_application(OssoBrowser *obj, /* This is a "undocumented", non-standard extension to the API, ONLY for use by /usr/bin/browser wrapper to implement --url */ gboolean osso_browser_switchboard_launch_microb(OssoBrowser *obj, - const char * uri, GError **error) { + const char *uri, GError **error) { launch_microb(&ctx, (char *)uri); return TRUE; } /* Register the name com.nokia.osso_browser on the D-Bus session bus */ -void dbus_request_osso_browser_name(struct swb_context * ctx) { - GError * error = NULL; +void dbus_request_osso_browser_name(struct swb_context *ctx) { + GError *error = NULL; guint result; if (!ctx || !ctx->dbus_proxy) return; if (!dbus_g_proxy_call(ctx->dbus_proxy, "RequestName", &error, - G_TYPE_STRING, "com.nokia.osso_browser", - G_TYPE_UINT, DBUS_NAME_FLAG_REPLACE_EXISTING|DBUS_NAME_FLAG_DO_NOT_QUEUE, - G_TYPE_INVALID, - G_TYPE_UINT, &result, - G_TYPE_INVALID)) { + G_TYPE_STRING, "com.nokia.osso_browser", + G_TYPE_UINT, DBUS_NAME_FLAG_REPLACE_EXISTING|DBUS_NAME_FLAG_DO_NOT_QUEUE, + G_TYPE_INVALID, + G_TYPE_UINT, &result, + G_TYPE_INVALID)) { printf("Couldn't acquire name com.nokia.osso_browser\n"); exit(1); } @@ -125,16 +130,16 @@ void dbus_request_osso_browser_name(struct swb_context * ctx) { } /* Release the name com.nokia.osso_browser on the D-Bus session bus */ -void dbus_release_osso_browser_name(struct swb_context * ctx) { - GError * error = NULL; +void dbus_release_osso_browser_name(struct swb_context *ctx) { + GError *error = NULL; guint result; if (!ctx || !ctx->dbus_proxy) return; dbus_g_proxy_call(ctx->dbus_proxy, "ReleaseName", &error, - G_TYPE_STRING, "com.nokia.osso_browser", - G_TYPE_INVALID, - G_TYPE_UINT, &result, - G_TYPE_INVALID); + G_TYPE_STRING, "com.nokia.osso_browser", + G_TYPE_INVALID, + G_TYPE_UINT, &result, + G_TYPE_INVALID); }