From a44f896fcdacb3b49567443df7c1a2b398ce959e Mon Sep 17 00:00:00 2001 From: Julian Sparber Date: Mon, 2 Oct 2017 19:59:42 +0200 Subject: [PATCH] [refactor] fix intent in some files --- src/teleport-app.c | 112 ++++++++++++++--------------- src/teleport-browser.c | 155 ++++++++++++++++++++--------------------- src/teleport-get.c | 78 +++++++++++---------- src/teleport-get.h | 10 ++- src/teleport-peer.c | 36 +++++----- src/teleport-publish.c | 102 +++++++++++++-------------- src/teleport-server.c | 54 +++++++------- src/teleport-window.c | 54 +++++++------- 8 files changed, 302 insertions(+), 299 deletions(-) diff --git a/src/teleport-app.c b/src/teleport-app.c index 1c46e1d..217caaa 100644 --- a/src/teleport-app.c +++ b/src/teleport-app.c @@ -10,16 +10,16 @@ void save_file_callback (GSimpleAction *simple, - GVariant *parameter, - gpointer user_data); + GVariant *parameter, + gpointer user_data); void do_nothing_callback (GSimpleAction *simple, - GVariant *parameter, - gpointer user_data); + GVariant *parameter, + gpointer user_data); void open_file_callback (GSimpleAction *simple, - GVariant *parameter, - gpointer user_data); + GVariant *parameter, + gpointer user_data); enum { @@ -28,10 +28,10 @@ enum { static GActionEntry app_entries[] = { - { "save", save_file_callback, "as", NULL, NULL }, - { "decline", do_nothing_callback, "as", NULL, NULL }, - { "do-nothing", do_nothing_callback, "as", NULL, NULL }, - { "open-file", open_file_callback, "as", NULL, NULL } + { "save", save_file_callback, "as", NULL, NULL }, + { "decline", do_nothing_callback, "as", NULL, NULL }, + { "do-nothing", do_nothing_callback, "as", NULL, NULL }, + { "open-file", open_file_callback, "as", NULL, NULL } }; static TeleportAppWindow *win; @@ -46,38 +46,38 @@ G_DEFINE_TYPE (TeleportApp, teleport_app, GTK_TYPE_APPLICATION); void save_file_callback (GSimpleAction *simple, - GVariant *parameter, - gpointer user_data) { - do_downloading(g_variant_get_string (g_variant_get_child_value (parameter, 0), NULL), - g_variant_get_string (g_variant_get_child_value (parameter, 1), NULL), - g_variant_get_string (g_variant_get_child_value (parameter, 2), NULL)); + GVariant *parameter, + gpointer user_data) { + teleport_get_do_downloading(g_variant_get_string (g_variant_get_child_value (parameter, 0), NULL), + g_variant_get_string (g_variant_get_child_value (parameter, 1), NULL), + g_variant_get_string (g_variant_get_child_value (parameter, 2), NULL)); } void do_nothing_callback (GSimpleAction *simple, - GVariant *parameter, - gpointer user_data) { + GVariant *parameter, + gpointer user_data) { } void open_file_callback (GSimpleAction *simple, - GVariant *parameter, - gpointer user_data) { + GVariant *parameter, + gpointer user_data) { g_print("Open file\n %s%s", - g_variant_get_string (g_variant_get_child_value (parameter, 3), NULL), - g_variant_get_string (g_variant_get_child_value (parameter, 2), NULL)); + g_variant_get_string (g_variant_get_child_value (parameter, 3), NULL), + g_variant_get_string (g_variant_get_child_value (parameter, 2), NULL)); g_spawn_command_line_async(g_strdup_printf("xdg-open %s/%s", - g_variant_get_string (g_variant_get_child_value (parameter, 3), NULL), - g_variant_get_string (g_variant_get_child_value (parameter, 2), NULL)), NULL); + g_variant_get_string (g_variant_get_child_value (parameter, 3), NULL), + g_variant_get_string (g_variant_get_child_value (parameter, 2), NULL)), NULL); } void create_user_notification (const char *file_name, const int file_size, const char *origin_device, GVariant *target) { GIcon *icon; GNotification *notification = g_notification_new ("Teleport"); g_notification_set_body (notification, - g_strdup_printf("%s is sending %s (%s)", - origin_device, - file_name, - g_format_size (file_size))); + g_strdup_printf("%s is sending %s (%s)", + origin_device, + file_name, + g_format_size (file_size))); icon = g_themed_icon_new ("dialog-information"); g_notification_set_icon (notification, icon); g_notification_set_default_action_and_target_value (notification, "app.do-nothing", target); @@ -144,8 +144,8 @@ teleport_app_activate (GApplication *app) { gtk_window_present (GTK_WINDOW (win)); g_action_map_add_action_entries (G_ACTION_MAP (app), - app_entries, G_N_ELEMENTS (app_entries), - app); + app_entries, G_N_ELEMENTS (app_entries), + app); g_signal_connect (peerList, "addpeer", (GCallback)callback_add_peer, win); g_signal_connect (peerList, "removepeer", (GCallback)callback_remove_peer, win); @@ -157,27 +157,27 @@ teleport_app_activate (GApplication *app) { */ /*GVariantBuilder *builder; - GVariant *value; + GVariant *value; - builder = g_variant_builder_new (G_VARIANT_TYPE ("as")); - g_variant_builder_add (builder, "s", "devicename"); - g_variant_builder_add (builder, "s", "https://downloadlink"); - g_variant_builder_add (builder, "s", "filename"); - value = g_variant_new ("as", builder); - g_variant_builder_unref (builder); + builder = g_variant_builder_new (G_VARIANT_TYPE ("as")); + g_variant_builder_add (builder, "s", "devicename"); + g_variant_builder_add (builder, "s", "https://downloadlink"); + g_variant_builder_add (builder, "s", "filename"); + value = g_variant_new ("as", builder); + g_variant_builder_unref (builder); - create_finished_notification ("USER", 2000, "FILENAME", value); - */ + create_finished_notification ("USER", 2000, "FILENAME", value); + */ run_http_server(); run_avahi_publish_service((char *) g_get_host_name()); run_avahi_service(peerList); } - static void +static void teleport_app_open (GApplication *app, - GFile **files, - gint n_files, - const gchar *hint) + GFile **files, + gint n_files, + const gchar *hint) { GList *windows; int i; @@ -194,29 +194,29 @@ teleport_app_open (GApplication *app, gtk_window_present (GTK_WINDOW (win)); } - static void +static void teleport_app_class_init (TeleportAppClass *class) { G_APPLICATION_CLASS (class)->activate = teleport_app_activate; G_APPLICATION_CLASS (class)->open = teleport_app_open; signalIds[NOTIFY_USER] = g_signal_new ("notify_user", - G_TYPE_OBJECT, - G_SIGNAL_RUN_LAST | G_SIGNAL_NO_RECURSE | G_SIGNAL_NO_HOOKS, - 0, - NULL /* accumulator */, - NULL /* accumulator data */, - NULL /* C marshaller */, - G_TYPE_NONE /* return_type */, - 1, - G_TYPE_STRING); + G_TYPE_OBJECT, + G_SIGNAL_RUN_LAST | G_SIGNAL_NO_RECURSE | G_SIGNAL_NO_HOOKS, + 0, + NULL /* accumulator */, + NULL /* accumulator data */, + NULL /* C marshaller */, + G_TYPE_NONE /* return_type */, + 1, + G_TYPE_STRING); } - TeleportApp * +TeleportApp * teleport_app_new (void) { return g_object_new (TELEPORT_APP_TYPE, - "application-id", "com.frac_tion.teleport", - "flags", G_APPLICATION_HANDLES_OPEN, - NULL); + "application-id", "com.frac_tion.teleport", + "flags", G_APPLICATION_HANDLES_OPEN, + NULL); } diff --git a/src/teleport-browser.c b/src/teleport-browser.c index 99d4bc8..84f6530 100644 --- a/src/teleport-browser.c +++ b/src/teleport-browser.c @@ -22,96 +22,95 @@ static AvahiThreadedPoll *threaded_poll = NULL; static AvahiClient *client = NULL; static TeleportPeer *peerList = NULL; -static void resolve_callback( - AvahiServiceResolver *r, - AVAHI_GCC_UNUSED AvahiIfIndex interface, - AVAHI_GCC_UNUSED AvahiProtocol protocol, - AvahiResolverEvent event, - const char *name, - const char *type, - const char *domain, - const char *host_name, - const AvahiAddress *address, - uint16_t port, - AvahiStringList *txt, - AvahiLookupResultFlags flags, - AVAHI_GCC_UNUSED void* userdata) { +static void resolve_callback (AvahiServiceResolver *r, + AVAHI_GCC_UNUSED AvahiIfIndex interface, + AVAHI_GCC_UNUSED AvahiProtocol protocol, + AvahiResolverEvent event, + const char *name, + const char *type, + const char *domain, + const char *host_name, + const AvahiAddress *address, + uint16_t port, + AvahiStringList *txt, + AvahiLookupResultFlags flags, + AVAHI_GCC_UNUSED void* userdata) { assert(r); /* Called whenever a service has been resolved successfully or timed out */ switch (event) { - case AVAHI_RESOLVER_FAILURE: - fprintf(stderr, "(Resolver) Failed to resolve service '%s' of type '%s' in domain '%s': %s\n", name, type, domain, avahi_strerror(avahi_client_errno(avahi_service_resolver_get_client(r)))); - break; - case AVAHI_RESOLVER_FOUND: { - char a[AVAHI_ADDRESS_STR_MAX], *t; - fprintf(stderr, "Service '%s' of type '%s' in domain '%s':\n", name, type, domain); - avahi_address_snprint(a, sizeof(a), address); - t = avahi_string_list_to_string(txt); - teleport_peer_add_peer(peerList, g_strdup(name), g_strdup(a), port); - //teleport_app_add_peer(name, port, a); - /*fprintf(stderr, - "\t%s:%u (%s)\n" - "\tTXT=%s\n" - "\tcookie is %u\n" - "\tis_local: %i\n" - "\tour_own: %i\n" - "\twide_area: %i\n" - "\tmulticast: %i\n" - "\tcached: %i\n", - host_name, port, a, - t, - avahi_string_list_get_service_cookie(txt), - !!(flags & AVAHI_LOOKUP_RESULT_LOCAL), - !!(flags & AVAHI_LOOKUP_RESULT_OUR_OWN), - !!(flags & AVAHI_LOOKUP_RESULT_WIDE_AREA), - !!(flags & AVAHI_LOOKUP_RESULT_MULTICAST), - !!(flags & AVAHI_LOOKUP_RESULT_CACHED)); - */ - avahi_free(t); - } + case AVAHI_RESOLVER_FAILURE: + fprintf(stderr, "(Resolver) Failed to resolve service '%s' of type '%s' in domain '%s': %s\n", name, type, domain, avahi_strerror(avahi_client_errno(avahi_service_resolver_get_client(r)))); + break; + case AVAHI_RESOLVER_FOUND: { + char a[AVAHI_ADDRESS_STR_MAX], *t; + fprintf(stderr, "Service '%s' of type '%s' in domain '%s':\n", name, type, domain); + avahi_address_snprint(a, sizeof(a), address); + t = avahi_string_list_to_string(txt); + teleport_peer_add_peer(peerList, g_strdup(name), g_strdup(a), port); + //teleport_app_add_peer(name, port, a); + /*fprintf(stderr, + "\t%s:%u (%s)\n" + "\tTXT=%s\n" + "\tcookie is %u\n" + "\tis_local: %i\n" + "\tour_own: %i\n" + "\twide_area: %i\n" + "\tmulticast: %i\n" + "\tcached: %i\n", + host_name, port, a, + t, + avahi_string_list_get_service_cookie(txt), + !!(flags & AVAHI_LOOKUP_RESULT_LOCAL), + !!(flags & AVAHI_LOOKUP_RESULT_OUR_OWN), + !!(flags & AVAHI_LOOKUP_RESULT_WIDE_AREA), + !!(flags & AVAHI_LOOKUP_RESULT_MULTICAST), + !!(flags & AVAHI_LOOKUP_RESULT_CACHED)); + */ + avahi_free(t); + } } avahi_service_resolver_free(r); } static void browse_callback( - AvahiServiceBrowser *b, - AvahiIfIndex interface, - AvahiProtocol protocol, - AvahiBrowserEvent event, - const char *name, - const char *type, - const char *domain, - AVAHI_GCC_UNUSED AvahiLookupResultFlags flags, - void* userdata) { + AvahiServiceBrowser *b, + AvahiIfIndex interface, + AvahiProtocol protocol, + AvahiBrowserEvent event, + const char *name, + const char *type, + const char *domain, + AVAHI_GCC_UNUSED AvahiLookupResultFlags flags, + void* userdata) { AvahiClient *c = userdata; assert(b); /* Called whenever a new services becomes available on the LAN or is removed from the LAN */ switch (event) { - case AVAHI_BROWSER_FAILURE: - fprintf(stderr, "(Browser) %s\n", avahi_strerror(avahi_client_errno(avahi_service_browser_get_client(b)))); - avahi_shutdown(); - //avahi_simple_poll_quit(simple_poll); - return; - case AVAHI_BROWSER_NEW: - fprintf(stderr, "(Browser) NEW: service '%s' of type '%s' in domain '%s'\n", name, type, domain); - if (flags & AVAHI_LOOKUP_RESULT_LOCAL) - break; - /* We ignore the returned resolver object. In the callback - function we free it. If the server is terminated before - the callback function is called the server will free - the resolver for us. */ - if (!(avahi_service_resolver_new(c, interface, protocol, name, type, domain, AVAHI_PROTO_UNSPEC, 0, resolve_callback, c))) - //if (!(avahi_service_resolver_new(c, interface, protocol, name, type, domain, AVAHI_PROTO_INET, 0, resolve_callback, c))) - fprintf(stderr, "Failed to resolve service '%s': %s\n", name, avahi_strerror(avahi_client_errno(c))); - break; - case AVAHI_BROWSER_REMOVE: - fprintf(stderr, "(Browser) REMOVE: service '%s' of type '%s' in domain '%s'\n", name, type, domain); - //teleport_app_remove_peer(name); - teleport_peer_remove_peer_by_name(peerList, g_strdup(name)); - break; - case AVAHI_BROWSER_ALL_FOR_NOW: - case AVAHI_BROWSER_CACHE_EXHAUSTED: - fprintf(stderr, "(Browser) %s\n", event == AVAHI_BROWSER_CACHE_EXHAUSTED ? "CACHE_EXHAUSTED" : "ALL_FOR_NOW"); + case AVAHI_BROWSER_FAILURE: + fprintf(stderr, "(Browser) %s\n", avahi_strerror(avahi_client_errno(avahi_service_browser_get_client(b)))); + avahi_shutdown(); + //avahi_simple_poll_quit(simple_poll); + return; + case AVAHI_BROWSER_NEW: + fprintf(stderr, "(Browser) NEW: service '%s' of type '%s' in domain '%s'\n", name, type, domain); + if (flags & AVAHI_LOOKUP_RESULT_LOCAL) break; + /* We ignore the returned resolver object. In the callback + function we free it. If the server is terminated before + the callback function is called the server will free + the resolver for us. */ + if (!(avahi_service_resolver_new(c, interface, protocol, name, type, domain, AVAHI_PROTO_UNSPEC, 0, resolve_callback, c))) + //if (!(avahi_service_resolver_new(c, interface, protocol, name, type, domain, AVAHI_PROTO_INET, 0, resolve_callback, c))) + fprintf(stderr, "Failed to resolve service '%s': %s\n", name, avahi_strerror(avahi_client_errno(c))); + break; + case AVAHI_BROWSER_REMOVE: + fprintf(stderr, "(Browser) REMOVE: service '%s' of type '%s' in domain '%s'\n", name, type, domain); + //teleport_app_remove_peer(name); + teleport_peer_remove_peer_by_name(peerList, g_strdup(name)); + break; + case AVAHI_BROWSER_ALL_FOR_NOW: + case AVAHI_BROWSER_CACHE_EXHAUSTED: + fprintf(stderr, "(Browser) %s\n", event == AVAHI_BROWSER_CACHE_EXHAUSTED ? "CACHE_EXHAUSTED" : "ALL_FOR_NOW"); + break; } } static void client_callback(AvahiClient *c, AvahiClientState state, AVAHI_GCC_UNUSED void * userdata) { diff --git a/src/teleport-get.c b/src/teleport-get.c index 25d10aa..37969fe 100644 --- a/src/teleport-get.c +++ b/src/teleport-get.c @@ -2,39 +2,41 @@ #include #endif -#include -#include -#include - #include #include "teleport-app.h" #include "teleport-get.h" +static int saveFile (SoupMessage *, const gchar *, const gchar *); +static gchar * getFilePath (const gchar *, const gchar *); +static int get (const gchar *, const gchar *, const gchar *, const gchar *); + static gboolean debug; static void -finished (SoupSession *session, SoupMessage *msg, gpointer target) +finished (SoupSession *session, + SoupMessage *msg, + gpointer target) { //GVariant *target array: {originDevice, url, filename, downloadDirectory} if ((char *) g_variant_get_string ( - g_variant_get_child_value ((GVariant *) target, 2), NULL) != NULL) { + g_variant_get_child_value ((GVariant *) target, 2), NULL) != NULL) { saveFile(msg, - (char *) g_variant_get_string ( - g_variant_get_child_value ((GVariant *) target, 3), NULL), - (char *) g_variant_get_string ( - g_variant_get_child_value ((GVariant *) target, 2), NULL)); + (char *) g_variant_get_string ( + g_variant_get_child_value ((GVariant *) target, 3), NULL), + (char *) g_variant_get_string ( + g_variant_get_child_value ((GVariant *) target, 2), NULL)); create_finished_notification ((char *) g_variant_get_string ( - g_variant_get_child_value ((GVariant *) target, 0), NULL), - 0, - g_variant_get_string ( - g_variant_get_child_value ((GVariant *) target, 2), NULL), - target); + g_variant_get_child_value ((GVariant *) target, 0), NULL), + 0, + g_variant_get_string ( + g_variant_get_child_value ((GVariant *) target, 2), NULL), + target); } } -int -get (char *url, +static int +get (const gchar *url, const gchar *originDevice, const gchar *downloadDirectory, const gchar *outputFilename) { @@ -48,10 +50,13 @@ get (char *url, } session = g_object_new (SOUP_TYPE_SESSION, - SOUP_SESSION_ADD_FEATURE_BY_TYPE, SOUP_TYPE_CONTENT_DECODER, - SOUP_SESSION_USER_AGENT, "teleport ", - SOUP_SESSION_ACCEPT_LANGUAGE_AUTO, TRUE, - NULL); + SOUP_SESSION_ADD_FEATURE_BY_TYPE, + SOUP_TYPE_CONTENT_DECODER, + SOUP_SESSION_USER_AGENT, + "teleport ", + SOUP_SESSION_ACCEPT_LANGUAGE_AUTO, + TRUE, + NULL); if (debug) { logger = soup_logger_new (SOUP_LOGGER_LOG_BODY, -1); @@ -85,7 +90,7 @@ get (char *url, return 0; } -int +static int saveFile (SoupMessage *msg, const gchar *outputDirectory, const gchar *outputFilename) { @@ -112,9 +117,9 @@ saveFile (SoupMessage *msg, if (outputFile) { fwrite (msg->response_body->data, - 1, - msg->response_body->length, - outputFile); + 1, + msg->response_body->length, + outputFile); fclose (outputFile); } @@ -123,24 +128,25 @@ saveFile (SoupMessage *msg, return 0; } + +static gchar * +getFilePath (const gchar *outputDirectory, + const gchar *outputFilename) { + return g_strdup_printf("%s/%s", outputDirectory, + g_uri_escape_string(outputFilename, NULL, TRUE)); +} + int -do_client_notify (char *url) { +teleport_get_do_client_notify (const gchar *url) { get (g_strdup(url), NULL, NULL, NULL); g_print("Offering selected file to other machine.\n"); return 0; } -gchar * -getFilePath (const gchar *outputDirectory, - const gchar *outputFilename) { - return g_strdup_printf("%s/%s", outputDirectory, - g_uri_escape_string(outputFilename, NULL, TRUE)); -} - int -do_downloading (const char *originDevice, - const char *url, - const char *filename) { +teleport_get_do_downloading (const char *originDevice, + const char *url, + const char *filename) { const gchar *outputDirectory = g_get_user_special_dir(G_USER_DIRECTORY_DOWNLOAD); g_print("Downloading %s to %s\n", url, g_uri_escape_string(filename, NULL, TRUE)); get (g_strdup(url), originDevice, outputDirectory, filename); diff --git a/src/teleport-get.h b/src/teleport-get.h index 684278d..3d42a2e 100644 --- a/src/teleport-get.h +++ b/src/teleport-get.h @@ -3,11 +3,9 @@ #include -extern int do_downloading(const char *, const char *, const char *); -extern int do_client_notify(char *); - -int saveFile (SoupMessage *, const gchar *, const gchar *); -gchar * getFilePath (const gchar *, const gchar *); -int get (char *, const gchar *, const gchar *, const gchar *); +int teleport_get_do_downloading (const gchar *, + const gchar *, + const gchar *); +int teleport_get_do_client_notify (const gchar *); #endif /* __TELEPORT_GET_H */ diff --git a/src/teleport-peer.c b/src/teleport-peer.c index ecdf2be..7032aad 100644 --- a/src/teleport-peer.c +++ b/src/teleport-peer.c @@ -29,26 +29,26 @@ teleport_peer_class_init (TeleportPeerClass *klass) object_class->constructed = teleport_peer_constructed; signalIds[ADD] = g_signal_new ("addpeer", - G_TYPE_OBJECT, - G_SIGNAL_RUN_LAST | G_SIGNAL_NO_RECURSE | G_SIGNAL_NO_HOOKS, - 0, - NULL /* accumulator */, - NULL /* accumulator data */, - NULL /* C marshaller */, - G_TYPE_NONE /* return_type */, - 1, - G_TYPE_POINTER); + G_TYPE_OBJECT, + G_SIGNAL_RUN_LAST | G_SIGNAL_NO_RECURSE | G_SIGNAL_NO_HOOKS, + 0, + NULL /* accumulator */, + NULL /* accumulator data */, + NULL /* C marshaller */, + G_TYPE_NONE /* return_type */, + 1, + G_TYPE_POINTER); signalIds[REMOVE] = g_signal_new ("removepeer", - G_TYPE_OBJECT, - G_SIGNAL_RUN_LAST | G_SIGNAL_NO_RECURSE | G_SIGNAL_NO_HOOKS, - 0, - NULL /* accumulator */, - NULL /* accumulator data */, - NULL /* C marshaller */, - G_TYPE_NONE /* return_type */, - 1, - G_TYPE_POINTER); + G_TYPE_OBJECT, + G_SIGNAL_RUN_LAST | G_SIGNAL_NO_RECURSE | G_SIGNAL_NO_HOOKS, + 0, + NULL /* accumulator */, + NULL /* accumulator data */, + NULL /* C marshaller */, + G_TYPE_NONE /* return_type */, + 1, + G_TYPE_POINTER); } diff --git a/src/teleport-publish.c b/src/teleport-publish.c index 8a095bc..c872eb2 100644 --- a/src/teleport-publish.c +++ b/src/teleport-publish.c @@ -37,39 +37,39 @@ static void entry_group_callback(AvahiEntryGroup *g, AvahiEntryGroupState state, /* Called whenever the entry group state changes */ switch (state) { - case AVAHI_ENTRY_GROUP_ESTABLISHED : - /* The entry group has been established successfully */ - fprintf(stderr, "Service '%s' successfully established.\n", name); - break; + case AVAHI_ENTRY_GROUP_ESTABLISHED : + /* The entry group has been established successfully */ + fprintf(stderr, "Service '%s' successfully established.\n", name); + break; - case AVAHI_ENTRY_GROUP_COLLISION : { - char *n; + case AVAHI_ENTRY_GROUP_COLLISION : { + char *n; - /* A service name collision with a remote service - * happened. Let's pick a new name */ - n = avahi_alternative_service_name(name); - avahi_free(name); - name = n; + /* A service name collision with a remote service + * happened. Let's pick a new name */ + n = avahi_alternative_service_name(name); + avahi_free(name); + name = n; - fprintf(stderr, "Service name collision, renaming service to '%s'\n", name); + fprintf(stderr, "Service name collision, renaming service to '%s'\n", name); - /* And recreate the services */ - create_services(avahi_entry_group_get_client(g)); - break; - } - - case AVAHI_ENTRY_GROUP_FAILURE : - - fprintf(stderr, "Entry group failure: %s\n", avahi_strerror(avahi_client_errno(avahi_entry_group_get_client(g)))); - - /* Some kind of failure happened while we were registering our services */ - //avahi_simple_poll_quit(simple_poll); - shutdown_avahi_publish_service(); + /* And recreate the services */ + create_services(avahi_entry_group_get_client(g)); break; + } - case AVAHI_ENTRY_GROUP_UNCOMMITED: - case AVAHI_ENTRY_GROUP_REGISTERING: - ; + case AVAHI_ENTRY_GROUP_FAILURE : + + fprintf(stderr, "Entry group failure: %s\n", avahi_strerror(avahi_client_errno(avahi_entry_group_get_client(g)))); + + /* Some kind of failure happened while we were registering our services */ + //avahi_simple_poll_quit(simple_poll); + shutdown_avahi_publish_service(); + break; + + case AVAHI_ENTRY_GROUP_UNCOMMITED: + case AVAHI_ENTRY_GROUP_REGISTERING: + ; } } @@ -146,41 +146,41 @@ static void client_callback(AvahiClient *c, AvahiClientState state, AVAHI_GCC_UN /* Called whenever the client or server state changes */ switch (state) { - case AVAHI_CLIENT_S_RUNNING: + case AVAHI_CLIENT_S_RUNNING: - /* The server has startup successfully and registered its host - * name on the network, so it's time to create our services */ - create_services(c); - break; + /* The server has startup successfully and registered its host + * name on the network, so it's time to create our services */ + create_services(c); + break; - case AVAHI_CLIENT_FAILURE: + case AVAHI_CLIENT_FAILURE: - fprintf(stderr, "Client failure: %s\n", avahi_strerror(avahi_client_errno(c))); - //avahi_simple_poll_quit(simple_poll); - shutdown_avahi_publish_service(); + fprintf(stderr, "Client failure: %s\n", avahi_strerror(avahi_client_errno(c))); + //avahi_simple_poll_quit(simple_poll); + shutdown_avahi_publish_service(); - break; + break; - case AVAHI_CLIENT_S_COLLISION: + case AVAHI_CLIENT_S_COLLISION: - /* Let's drop our registered services. When the server is back - * in AVAHI_SERVER_RUNNING state we will register them - * again with the new host name. */ + /* Let's drop our registered services. When the server is back + * in AVAHI_SERVER_RUNNING state we will register them + * again with the new host name. */ - case AVAHI_CLIENT_S_REGISTERING: + case AVAHI_CLIENT_S_REGISTERING: - /* The server records are now being established. This - * might be caused by a host name change. We need to wait - * for our own records to register until the host name is - * properly esatblished. */ + /* The server records are now being established. This + * might be caused by a host name change. We need to wait + * for our own records to register until the host name is + * properly esatblished. */ - if (group) - avahi_entry_group_reset(group); + if (group) + avahi_entry_group_reset(group); - break; + break; - case AVAHI_CLIENT_CONNECTING: - ; + case AVAHI_CLIENT_CONNECTING: + ; } } diff --git a/src/teleport-server.c b/src/teleport-server.c index dedf35f..9646f20 100644 --- a/src/teleport-server.c +++ b/src/teleport-server.c @@ -15,7 +15,7 @@ static int port; static SoupServer *glob_server; //static const char *tls_cert_file, *tls_key_file; - static int +static int compare_strings (gconstpointer a, gconstpointer b) { const char **sa = (const char **)a; @@ -24,7 +24,7 @@ compare_strings (gconstpointer a, gconstpointer b) return strcmp (*sa, *sb); } - static GString * +static GString * get_directory_listing (const char *path) { GPtrArray *entries; @@ -57,8 +57,8 @@ get_directory_listing (const char *path) g_free (escaped); for (i = 0; i < entries->len; i++) { g_string_append_printf (listing, "%s
\r\n", - (char *)entries->pdata[i], - (char *)entries->pdata[i]); + (char *)entries->pdata[i], + (char *)entries->pdata[i]); g_free (entries->pdata[i]); } g_string_append (listing, "\r\n\r\n"); @@ -67,7 +67,7 @@ get_directory_listing (const char *path) return listing; } - static void +static void do_get (SoupServer *server, SoupMessage *msg, const char *path) { char *slash; @@ -94,7 +94,7 @@ do_get (SoupServer *server, SoupMessage *msg, const char *path) redir_uri = g_strdup_printf ("%s/", soup_message_get_uri (msg)->path); soup_message_set_redirect (msg, SOUP_STATUS_MOVED_PERMANENTLY, - redir_uri); + redir_uri); g_free (redir_uri); return; } @@ -109,8 +109,8 @@ do_get (SoupServer *server, SoupMessage *msg, const char *path) listing = get_directory_listing (path); soup_message_set_response (msg, "text/html", - SOUP_MEMORY_TAKE, - listing->str, listing->len); + SOUP_MEMORY_TAKE, + listing->str, listing->len); soup_message_set_status (msg, SOUP_STATUS_OK); g_string_free (listing, FALSE); return; @@ -127,8 +127,8 @@ do_get (SoupServer *server, SoupMessage *msg, const char *path) } buffer = soup_buffer_new_with_owner (g_mapped_file_get_contents (mapping), - g_mapped_file_get_length (mapping), - mapping, (GDestroyNotify)g_mapped_file_unref); + g_mapped_file_get_length (mapping), + mapping, (GDestroyNotify)g_mapped_file_unref); soup_message_body_append_buffer (msg->response_body, buffer); soup_buffer_free (buffer); } else /* msg->method == SOUP_METHOD_HEAD */ { @@ -140,7 +140,7 @@ do_get (SoupServer *server, SoupMessage *msg, const char *path) */ length = g_strdup_printf ("%lu", (gulong)st.st_size); soup_message_headers_append (msg->response_headers, - "Content-Length", length); + "Content-Length", length); g_free (length); } @@ -160,7 +160,7 @@ static void handle_incoming_file(const char *hash, const char *filename, const i origin, port, hash)), - g_variant_builder_add (builder, "s", filename); + g_variant_builder_add (builder, "s", filename); value = g_variant_new ("as", builder); g_variant_builder_unref (builder); @@ -169,10 +169,10 @@ static void handle_incoming_file(const char *hash, const char *filename, const i create_user_notification(filename, size, origin, value); } - static void +static void server_callback (SoupServer *server, SoupMessage *msg, - const char *path, GHashTable *query, - SoupClientContext *context, gpointer data) + const char *path, GHashTable *query, + SoupClientContext *context, gpointer data) { char *file_path; SoupMessageHeadersIter iter; @@ -182,7 +182,7 @@ server_callback (SoupServer *server, SoupMessage *msg, origin_addr = soup_client_context_get_host (context); g_print ("%s %s HTTP/1.%d\n", msg->method, path, - soup_message_get_http_version (msg)); + soup_message_get_http_version (msg)); soup_message_headers_iter_init (&iter, msg->request_headers); while (soup_message_headers_iter_next (&iter, &name, &value)) g_print ("%s: %s\n", name, value); @@ -223,8 +223,8 @@ server_callback (SoupServer *server, SoupMessage *msg, do_get (server, msg, file_path); else { soup_message_set_response (msg, "application/json", - SOUP_MEMORY_TAKE, - response->str, response->len); + SOUP_MEMORY_TAKE, + response->str, response->len); soup_message_set_status (msg, SOUP_STATUS_OK); g_print("Handle response\n"); } @@ -245,19 +245,19 @@ int addRouteToServer(char *name, char *file_to_send, char *destination) { GFile *file; GFileInfo *fileInfo; soup_server_add_handler (glob_server, g_strdup_printf("/transfer/%s", name), - server_callback, g_strdup(file_to_send), NULL); + server_callback, g_strdup(file_to_send), NULL); //send notification of available file to the client //For getting file size //https://developer.gnome.org/gio/stable/GFile.html#g-file-query-info file = g_file_new_for_path(file_to_send); //G_FILE_ATTRIBUTE_STANDARD_DISPLAY_NAME, G_FILE_ATTRIBUTE_STANDARD_SIZE fileInfo = g_file_query_info(file, "standard::display-name,standard::size", G_FILE_QUERY_INFO_NONE, NULL, NULL); - do_client_notify(g_strdup_printf("http://%s:%d/?token=%s&size=%jd&name=%s\n", - destination, - port, - name, - g_file_info_get_size(fileInfo), - g_file_info_get_display_name(fileInfo))); + teleport_get_do_client_notify(g_strdup_printf("http://%s:%d/?token=%s&size=%jd&name=%s\n", + destination, + port, + name, + g_file_info_get_size(fileInfo), + g_file_info_get_display_name(fileInfo))); g_object_unref(fileInfo); g_object_unref(file); return 0; @@ -271,11 +271,11 @@ extern int run_http_server(void) { port = 3000; glob_server = soup_server_new (SOUP_SERVER_SERVER_HEADER, "teleport-httpd ", - NULL); + NULL); soup_server_listen_all (glob_server, port, 0, &error); soup_server_add_handler (glob_server, NULL, - server_callback, NULL, NULL); + server_callback, NULL, NULL); uris = soup_server_get_uris (glob_server); for (u = uris; u; u = u->next) { diff --git a/src/teleport-window.c b/src/teleport-window.c index 1f523c7..a8e77ac 100644 --- a/src/teleport-window.c +++ b/src/teleport-window.c @@ -26,7 +26,7 @@ struct _TeleportAppWindowPrivate G_DEFINE_TYPE_WITH_PRIVATE(TeleportAppWindow, teleport_app_window, GTK_TYPE_APPLICATION_WINDOW); - static void +static void teleport_app_window_init (TeleportAppWindow *win) { TeleportAppWindowPrivate *priv; @@ -62,29 +62,29 @@ open_file_picker(GtkButton *btn, Peer *device) { g_print("Open file chooser for submitting a file to %s with Address %s\n", device->name, device->ip); dialog = gtk_file_chooser_dialog_new ("Open File", - GTK_WINDOW(mainWin), - action, - ("_Cancel"), - GTK_RESPONSE_CANCEL, - ("_Open"), - GTK_RESPONSE_ACCEPT, - NULL); + GTK_WINDOW(mainWin), + action, + ("_Cancel"), + GTK_RESPONSE_CANCEL, + ("_Open"), + GTK_RESPONSE_ACCEPT, + NULL); res = gtk_dialog_run (GTK_DIALOG (dialog)); if (res == GTK_RESPONSE_ACCEPT) - { - char *filename; - GtkFileChooser *chooser = GTK_FILE_CHOOSER (dialog); - filename = gtk_file_chooser_get_filename (chooser); - g_print("Choosen file is %s\n", filename); - gtk_widget_destroy (dialog); - addRouteToServer(g_compute_checksum_for_string (G_CHECKSUM_SHA256, filename, -1), filename, device->ip); - g_free (filename); - } + { + char *filename; + GtkFileChooser *chooser = GTK_FILE_CHOOSER (dialog); + filename = gtk_file_chooser_get_filename (chooser); + g_print("Choosen file is %s\n", filename); + gtk_widget_destroy (dialog); + addRouteToServer(g_compute_checksum_for_string (G_CHECKSUM_SHA256, filename, -1), filename, device->ip); + g_free (filename); + } else - { - gtk_widget_destroy (dialog); - } + { + gtk_widget_destroy (dialog); + } } void update_remote_device_list(TeleportAppWindow *win, Peer *device) { @@ -140,7 +140,7 @@ void update_remote_device_list_remove(TeleportAppWindow *win, Peer *device) { } } - GtkWidget * +GtkWidget * find_child(GtkWidget *parent, const gchar *name) { if (g_strcmp0(gtk_widget_get_name((GtkWidget *)parent), (gchar *)name) == 0) { @@ -166,7 +166,7 @@ find_child(GtkWidget *parent, const gchar *name) } - static void +static void teleport_app_window_dispose (GObject *object) { //TeleportAppWindow *win; @@ -180,13 +180,13 @@ teleport_app_window_dispose (GObject *object) G_OBJECT_CLASS (teleport_app_window_parent_class)->dispose (object); } - static void +static void teleport_app_window_class_init (TeleportAppWindowClass *class) { G_OBJECT_CLASS (class)->dispose = teleport_app_window_dispose; gtk_widget_class_set_template_from_resource (GTK_WIDGET_CLASS (class), - "/com/frac_tion/teleport/window.ui"); + "/com/frac_tion/teleport/window.ui"); gtk_widget_class_bind_template_child_private (GTK_WIDGET_CLASS (class), TeleportAppWindow, gears); gtk_widget_class_bind_template_child_private (GTK_WIDGET_CLASS (class), TeleportAppWindow, this_device_name_label); @@ -194,15 +194,15 @@ teleport_app_window_class_init (TeleportAppWindowClass *class) gtk_widget_class_bind_template_child_private (GTK_WIDGET_CLASS (class), TeleportAppWindow, remote_devices_list); } - TeleportAppWindow * +TeleportAppWindow * teleport_app_window_new (TeleportApp *app) { return g_object_new (TELEPORT_APP_WINDOW_TYPE, "application", app, NULL); } - void +void teleport_app_window_open (TeleportAppWindow *win, - GFile *file) + GFile *file) { //TeleportAppWindowPrivate *priv; //priv = teleport_app_window_get_instance_private (win);