[Spice-devel] [spice-gtk][PATCH] Added INFO messages about a file transfer

Fabiano Fidêncio fidencio at redhat.com
Tue Sep 16 15:47:04 PDT 2014


On Tue, 2014-09-16 at 16:47 -0500, Jonathon Jongsma wrote:
> On Mon, 2014-09-15 at 12:07 +0200, Pavel Grunt wrote:
> > https://bugzilla.redhat.com/show_bug.cgi?id=1140512
> > 
> > When a file transfer starts / finishes an information message is printed (in INFO log level)
> > 
> > ---
> >  gtk/channel-main.c | 23 +++++++++++++++++++++++
> >  1 file changed, 23 insertions(+)
> > 
> > diff --git a/gtk/channel-main.c b/gtk/channel-main.c
> > index 021fa83..7a59613 100644
> > --- a/gtk/channel-main.c
> > +++ b/gtk/channel-main.c
> > @@ -70,6 +70,7 @@ typedef struct SpiceFileXferTask {
> >      char                           buffer[FILE_XFER_CHUNK_SIZE];
> >      uint64_t                       read_bytes;
> >      uint64_t                       file_size;
> > +    GDateTime                      *start_time;
> >      GError                         *error;
> >  } SpiceFileXferTask;
> >  
> > @@ -1538,6 +1539,7 @@ static void file_xfer_task_free(SpiceFileXferTask *task)
> >      g_clear_object(&task->channel);
> >      g_clear_object(&task->file);
> >      g_clear_object(&task->file_stream);
> > +    g_date_time_unref(task->start_time);
> >      g_free(task);
> >  }
> >  
> > @@ -1548,6 +1550,9 @@ static void file_xfer_close_cb(GObject      *object,
> >  {
> >      GSimpleAsyncResult *res;
> >      SpiceFileXferTask *task;
> > +    GDateTime *end;
> > +    char *basename;
> > +    double seconds;
> >      GError *error = NULL;
> >  
> >      task = user_data;
> > @@ -1572,6 +1577,17 @@ static void file_xfer_close_cb(GObject      *object,
> >          g_simple_async_result_take_error(res, task->error);
> >          g_simple_async_result_set_op_res_gboolean(res, FALSE);
> >      } else {
> > +        end = g_date_time_new_now_local();
> > +        seconds = (double) g_date_time_difference(end, task->start_time) / 1000000.0;
> > +        g_date_time_unref(end);
> > +        basename = g_file_get_basename(task->file);
> > +        if (basename != NULL) {
> > +            g_log(G_LOG_DOMAIN, G_LOG_LEVEL_INFO, 
> > +                  "transferred file %s of %.2f kB size in %.2f seconds (%.1f MB/s)",
> > +                   basename, task->file_size / 1000.0, seconds, 
> > +                   (task->file_size/1000000.0)/seconds);
> > +            g_free(basename);
> > +        }
> >          g_simple_async_result_set_op_res_gboolean(res, TRUE);
> >      }
> >      g_simple_async_result_complete_in_idle(res);
> > @@ -2739,6 +2755,7 @@ static void file_xfer_send_start_msg_async(SpiceMainChannel *channel,
> >  {
> >      SpiceMainChannelPrivate *c = channel->priv;
> >      SpiceFileXferTask *task;
> > +    char *basename;
> >      static uint32_t xfer_id;    /* Used to identify task id */
> >  
> >      task = g_malloc0(sizeof(SpiceFileXferTask));
> > @@ -2751,7 +2768,13 @@ static void file_xfer_send_start_msg_async(SpiceMainChannel *channel,
> >      task->progress_callback_data = progress_callback_data;
> >      task->callback = callback;
> >      task->user_data = user_data;
> > +    task->start_time = g_date_time_new_now_local();
> >  
> > +    basename = g_file_get_basename(task->file);
> > +    if (basename != NULL) {
> > +        g_log(G_LOG_DOMAIN, G_LOG_LEVEL_INFO, "transfer of file %s has started", basename);
> > +        g_free(basename);
> > +    }
> >      CHANNEL_DEBUG(task->channel, "Insert a xfer task:%d to task list", task->id);
> >      g_hash_table_insert(c->file_xfer_tasks, GUINT_TO_POINTER(task->id), task);
> >  
> 
> 
> ACK. patch looks fine to me. Thanks.


Please, do *not* push this patch.
Seems that David Jasa asked Pavel to improve a few things, he will
submit a v2.

Best Regards,
--
Fabiano Fidêncio



More information about the Spice-devel mailing list