[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[GNUnet-SVN] r7029 - GNUnet/src/applications/fs/fsui
From: |
gnunet |
Subject: |
[GNUnet-SVN] r7029 - GNUnet/src/applications/fs/fsui |
Date: |
Tue, 3 Jun 2008 01:50:54 -0600 (MDT) |
Author: grothoff
Date: 2008-06-03 01:50:53 -0600 (Tue, 03 Jun 2008)
New Revision: 7029
Modified:
GNUnet/src/applications/fs/fsui/fsui.h
GNUnet/src/applications/fs/fsui/upload.c
Log:
final fix for SVN 1345
Modified: GNUnet/src/applications/fs/fsui/fsui.h
===================================================================
--- GNUnet/src/applications/fs/fsui/fsui.h 2008-06-03 06:47:32 UTC (rev
7028)
+++ GNUnet/src/applications/fs/fsui/fsui.h 2008-06-03 07:50:53 UTC (rev
7029)
@@ -453,6 +453,11 @@
*/
GNUNET_FSUI_State state;
+ /**
+ * Is this a directory (or a file)?
+ */
+ int is_directory;
+
} GNUNET_FSUI_UploadList;
/**
Modified: GNUnet/src/applications/fs/fsui/upload.c
===================================================================
--- GNUnet/src/applications/fs/fsui/upload.c 2008-06-03 06:47:32 UTC (rev
7028)
+++ GNUnet/src/applications/fs/fsui/upload.c 2008-06-03 07:50:53 UTC (rev
7029)
@@ -652,6 +652,7 @@
utc->state = GNUNET_FSUI_ACTIVE;
if (GNUNET_YES == GNUNET_disk_file_test (shared->ctx->ectx, filename))
{
+ utc->is_directory = GNUNET_NO;
/* add this file */
if (GNUNET_OK != GNUNET_disk_file_size (shared->ctx->ectx,
filename, &utc->total,
@@ -667,6 +668,7 @@
}
else
{
+ utc->is_directory = GNUNET_YES;
if (GNUNET_SYSERR == shared->dsc (shared->dscClosure,
filename, &addChildUpload, utc))
{
@@ -822,7 +824,9 @@
GNUNET_FSUI_upload_abort (struct GNUNET_FSUI_UploadList *ul)
{
GNUNET_FSUI_UploadList *c;
+ GNUNET_FSUI_UploadList *p;
struct GNUNET_FSUI_Context *ctx;
+ GNUNET_FSUI_Event event;
if (ul == NULL)
return GNUNET_SYSERR;
@@ -839,6 +843,12 @@
c = c->next;
}
GNUNET_thread_stop_sleep (ul->shared->handle);
+ event.type = GNUNET_FSUI_upload_aborted;
+ event.data.UploadAborted.uc.pos = ul;
+ event.data.UploadAborted.uc.cctx = ul->cctx;
+ event.data.UploadAborted.uc.ppos = ul->parent;
+ event.data.UploadAborted.uc.pcctx = ul->parent->cctx;
+ ctx->ecb (ctx->ecbClosure, &event);
}
else
{
@@ -848,8 +858,36 @@
{
GNUNET_FSUI_upload_abort (c);
c = c->next;
- }
+ }
+ event.type = GNUNET_FSUI_upload_aborted;
+ event.data.UploadAborted.uc.pos = ul;
+ event.data.UploadAborted.uc.cctx = ul->cctx;
+ event.data.UploadAborted.uc.ppos = ul->parent;
+ event.data.UploadAborted.uc.pcctx = ul->parent->cctx;
+ ctx->ecb (ctx->ecbClosure, &event);
}
+ if (! ul->is_directory)
+ {
+ /* reduce total size of all parents accordingly
+ and generate progress events */
+ p = ul->parent;
+ while (p != &ctx->activeUploads)
+ {
+ p->total -= ul->total;
+ event.type = GNUNET_FSUI_upload_progress;
+ event.data.UploadProgress.uc.pos = p;
+ event.data.UploadProgress.uc.cctx = p->cctx;
+ event.data.UploadProgress.uc.ppos = p->parent;
+ event.data.UploadProgress.uc.pcctx = p->parent->cctx;
+ event.data.UploadProgress.completed = p->completed;
+ event.data.UploadProgress.total = p->total;
+ /* use "now" for ETA, given that the user is aborting stuff */
+ event.data.UploadProgress.eta = GNUNET_get_time();
+ event.data.UploadProgress.filename = p->filename;
+ ctx->ecb (ctx->ecbClosure, &event);
+ p = p->parent;
+ }
+ }
return GNUNET_OK;
}
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [GNUnet-SVN] r7029 - GNUnet/src/applications/fs/fsui,
gnunet <=