2 * This file is part of Command-Line Sharing Plugin
4 * Copyright (C) 2010 Tuomas Kulve.
5 * Copyright (C) 2008-2009 Nokia Corporation. All rights reserved.
7 * This maemo code example is licensed under a MIT-style license,
8 * that can be found in the file called "COPYING" in the root
16 #include <sharing-http.h>
25 #define ULOG_DEBUG_L(FMT, ARG...) {FILE *f = fopen("/tmp/cli.log", "a"); fprintf(f, "%s:%d: " FMT, __FILE__, __LINE__, ## ARG); fprintf(f, "\n"); fclose(f);}
30 * @account: #SharingTransfer to be send
31 * @con: Connection used
32 * @dead_mans_switch: Turn to %FALSE at least every 30 seconds.
34 * Sends #SharingTransfer to service.
36 * Returns: #SharingPluginInterfaceSendResult
38 SharingPluginInterfaceSendResult cli_send (SharingTransfer* transfer,
39 ConIcConnection* con, gboolean* dead_mans_switch)
42 SharingAccount *account;
44 entry = sharing_transfer_get_entry(transfer);
45 account = sharing_entry_get_account(entry);
47 ULOG_DEBUG_L("Sending");
49 for (GSList* p = sharing_entry_get_media (entry);
51 p = g_slist_next(p)) {
53 SharingEntryMedia* media = p->data;
56 if (!sharing_entry_media_get_sent (media)) {
61 const gchar *local_file;
64 local_file = sharing_entry_media_get_localpath(media);
66 ULOG_DEBUG_L("Local file: %s", local_file);
68 if (local_file == NULL) {
69 ULOG_DEBUG_L("No local file: %s", error->message);
70 return SHARING_SEND_ERROR_UNKNOWN;
74 sharing_transfer_set_progress(transfer, 0.3);
76 command_line = sharing_account_get_param (account, "command_line");
78 ULOG_DEBUG_L("service command line: %s", command_line);
83 sharing_entry_media_get_filename(media));
85 ULOG_DEBUG_L("Executing: %s", cmd);
87 retval = g_spawn_command_line_sync(cmd,
92 ULOG_DEBUG_L("Failed to scp: %s", error->message);
94 return SHARING_SEND_ERROR_UNKNOWN;
97 sharing_transfer_set_progress(transfer, 1.0);
98 sharing_entry_media_set_sent (media, TRUE);
103 return SHARING_SEND_SUCCESS;