diff options
author | Christian Grothoff <christian@grothoff.org> | 2010-04-02 20:21:58 +0000 |
---|---|---|
committer | Christian Grothoff <christian@grothoff.org> | 2010-04-02 20:21:58 +0000 |
commit | 5cb7ca34a4c2c9b473f0b38363172c3694330f52 (patch) | |
tree | 1c7e0227810a4730e6e5d171a2818110d8864f6f | |
parent | 305c5eb36f73d1665df416fb21467c828139e135 (diff) | |
download | gnunet-5cb7ca34a4c2c9b473f0b38363172c3694330f52.tar.gz gnunet-5cb7ca34a4c2c9b473f0b38363172c3694330f52.zip |
misc fixes
-rw-r--r-- | src/fs/fs.h | 2 | ||||
-rw-r--r-- | src/fs/fs_download.c | 169 | ||||
-rw-r--r-- | src/fs/fs_file_information.c | 30 | ||||
-rw-r--r-- | src/fs/gnunet-publish.c | 86 |
4 files changed, 114 insertions, 173 deletions
diff --git a/src/fs/fs.h b/src/fs/fs.h index 77a73c3d6..0b3b25955 100644 --- a/src/fs/fs.h +++ b/src/fs/fs.h | |||
@@ -401,7 +401,7 @@ struct GNUNET_FS_FileInformation | |||
401 | struct { | 401 | struct { |
402 | 402 | ||
403 | /** | 403 | /** |
404 | * Name of the directory. FIXME: currently never set! | 404 | * Name of the directory. |
405 | */ | 405 | */ |
406 | char *dirname; | 406 | char *dirname; |
407 | 407 | ||
diff --git a/src/fs/fs_download.c b/src/fs/fs_download.c index 4b5af3789..b4f16518d 100644 --- a/src/fs/fs_download.c +++ b/src/fs/fs_download.c | |||
@@ -322,14 +322,19 @@ GNUNET_FS_meta_data_suggest_filename (const struct GNUNET_CONTAINER_MetaData *md | |||
322 | {"video/x-msvideo", ".avi"}, | 322 | {"video/x-msvideo", ".avi"}, |
323 | {NULL, NULL}, | 323 | {NULL, NULL}, |
324 | }; | 324 | }; |
325 | 325 | char *ret; | |
326 | unsigned int i; | 326 | unsigned int i; |
327 | char *mime; | 327 | char *mime; |
328 | char *base; | ||
328 | const char *ext; | 329 | const char *ext; |
329 | 330 | ||
330 | ext = ""; | 331 | ret = GNUNET_CONTAINER_meta_data_get_by_type (md, |
331 | mime = NULL; | 332 | EXTRACTOR_METATYPE_FILENAME); |
332 | // FIXME: get mime from meta data | 333 | if (ret != NULL) |
334 | return ret; | ||
335 | ext = NULL; | ||
336 | mime = GNUNET_CONTAINER_meta_data_get_by_type (md, | ||
337 | EXTRACTOR_METATYPE_MIMETYPE); | ||
333 | if (mime != NULL) | 338 | if (mime != NULL) |
334 | { | 339 | { |
335 | i = 0; | 340 | i = 0; |
@@ -343,70 +348,39 @@ GNUNET_FS_meta_data_suggest_filename (const struct GNUNET_CONTAINER_MetaData *md | |||
343 | mime); | 348 | mime); |
344 | else | 349 | else |
345 | ext = mimeMap[i][1]; | 350 | ext = mimeMap[i][1]; |
351 | GNUNET_free (mime); | ||
346 | } | 352 | } |
347 | // FIXME: try to get some base name... | 353 | base = GNUNET_CONTAINER_meta_data_get_first_by_types (md, |
348 | #if 0 | 354 | EXTRACTOR_METATYPE_TITLE, |
349 | const char *key; | 355 | EXTRACTOR_METATYPE_BOOK_TITLE, |
350 | const char *mime; | 356 | EXTRACTOR_METATYPE_ORIGINAL_TITLE, |
351 | char *path; | 357 | EXTRACTOR_METATYPE_PACKAGE_NAME, |
352 | unsigned int j; | 358 | EXTRACTOR_METATYPE_URL, |
353 | char *renameTo; | 359 | EXTRACTOR_METATYPE_URI, |
354 | char *ret; | 360 | EXTRACTOR_METATYPE_DESCRIPTION, |
355 | size_t max; | 361 | EXTRACTOR_METATYPE_ISRC, |
356 | struct stat filestat; | 362 | EXTRACTOR_METATYPE_JOURNAL_NAME, |
357 | 363 | EXTRACTOR_METATYPE_AUTHOR_NAME, | |
358 | key = EXTRACTOR_extractLast (EXTRACTOR_TITLE, list); | 364 | EXTRACTOR_METATYPE_SUBJECT, |
359 | if (key == NULL) | 365 | EXTRACTOR_METATYPE_ALBUM, |
360 | key = EXTRACTOR_extractLast (EXTRACTOR_SOFTWARE, list); | 366 | EXTRACTOR_METATYPE_ARTIST, |
361 | if (key == NULL) | 367 | EXTRACTOR_METATYPE_KEYWORDS, |
362 | key = EXTRACTOR_extractLast (EXTRACTOR_DESCRIPTION, list); | 368 | EXTRACTOR_METATYPE_COMMENT, |
363 | if (key == NULL) | 369 | EXTRACTOR_METATYPE_UNKNOWN, |
364 | key = EXTRACTOR_extractLast (EXTRACTOR_COMMENT, list); | 370 | -1); |
365 | if (key == NULL) | 371 | if ( (base == NULL) && |
366 | key = EXTRACTOR_extractLast (EXTRACTOR_SUBJECT, list); | 372 | (ext == NULL) ) |
367 | if (key == NULL) | 373 | return NULL; |
368 | key = EXTRACTOR_extractLast (EXTRACTOR_ALBUM, list); | 374 | if (base == NULL) |
369 | if (key == NULL) | 375 | return GNUNET_strdup (ext); |
370 | key = EXTRACTOR_extractLast (EXTRACTOR_UNKNOWN, list); | 376 | if (ext == NULL) |
371 | mime = EXTRACTOR_extractLast (EXTRACTOR_MIMETYPE, list); | 377 | return base; |
372 | if (mime != NULL) | 378 | GNUNET_asprintf (&ret, |
373 | { | 379 | "%s%s", |
374 | } | 380 | base, |
375 | if (key == NULL) | 381 | ext); |
376 | { | 382 | GNUNET_free (base); |
377 | key = &filename[strlen (filename) - 1]; | 383 | return ret; |
378 | while ((key != filename) && (key[0] != DIR_SEPARATOR)) | ||
379 | key--; | ||
380 | if (key[0] == DIR_SEPARATOR) | ||
381 | key++; | ||
382 | } | ||
383 | GNUNET_snprintf (renameTo, | ||
384 | max, | ||
385 | "%s%s%.*s%s", | ||
386 | path, | ||
387 | (path[strlen (path) - 1] != | ||
388 | DIR_SEPARATOR) ? DIR_SEPARATOR_STR : "", | ||
389 | GNUNET_MIN (255 - strlen (mime), | ||
390 | PATH_MAX - strlen (path) - 64), key, | ||
391 | (strcasecmp | ||
392 | (renameTo + strlen (renameTo) - strlen (mime), | ||
393 | mime) != 0) ? mime : ""); | ||
394 | |||
395 | |||
396 | } | ||
397 | for (i = strlen (renameTo) - 1; i >= 0; i--) | ||
398 | if (!isprint (renameTo[i])) | ||
399 | renameTo[i] = '_'; | ||
400 | else if (renameTo[i] == '.' && i > 0 && renameTo[i - 1] == '.') | ||
401 | { | ||
402 | /* remove .. to avoid directory traversal */ | ||
403 | renameTo[i - 1] = renameTo[i] = '_'; | ||
404 | i--; | ||
405 | } | ||
406 | #endif | ||
407 | |||
408 | GNUNET_break (0); // FIXME: not implemented | ||
409 | return NULL; | ||
410 | } | 384 | } |
411 | 385 | ||
412 | 386 | ||
@@ -521,6 +495,7 @@ trigger_recursive_download (void *cls, | |||
521 | { | 495 | { |
522 | struct GNUNET_FS_DownloadContext *dc = cls; | 496 | struct GNUNET_FS_DownloadContext *dc = cls; |
523 | struct GNUNET_FS_DownloadContext *cpos; | 497 | struct GNUNET_FS_DownloadContext *cpos; |
498 | struct GNUNET_DISK_FileHandle *fh; | ||
524 | char *fn; | 499 | char *fn; |
525 | char *us; | 500 | char *us; |
526 | char *ext; | 501 | char *ext; |
@@ -573,11 +548,15 @@ trigger_recursive_download (void *cls, | |||
573 | else | 548 | else |
574 | { | 549 | { |
575 | dn = GNUNET_strdup (dc->filename); | 550 | dn = GNUNET_strdup (dc->filename); |
576 | GNUNET_break ( (strlen (dn) < strlen (GNUNET_FS_DIRECTORY_EXT)) || | 551 | GNUNET_break ( (strlen (dn) >= strlen (GNUNET_FS_DIRECTORY_EXT)) && |
577 | (NULL == | 552 | (NULL != |
578 | strstr (dn + strlen(dn) - strlen(GNUNET_FS_DIRECTORY_EXT), | 553 | strstr (dn + strlen(dn) - strlen(GNUNET_FS_DIRECTORY_EXT), |
579 | GNUNET_FS_DIRECTORY_EXT)) ); | 554 | GNUNET_FS_DIRECTORY_EXT)) ); |
580 | dn[strlen(dn) - strlen (GNUNET_FS_DIRECTORY_EXT)] = '\0'; | 555 | if ( (strlen (dn) >= strlen (GNUNET_FS_DIRECTORY_EXT)) && |
556 | (NULL != | ||
557 | strstr (dn + strlen(dn) - strlen(GNUNET_FS_DIRECTORY_EXT), | ||
558 | GNUNET_FS_DIRECTORY_EXT)) ) | ||
559 | dn[strlen(dn) - strlen (GNUNET_FS_DIRECTORY_EXT)] = '\0'; | ||
581 | if ( (GNUNET_YES == GNUNET_FS_meta_data_test_for_directory (meta)) && | 560 | if ( (GNUNET_YES == GNUNET_FS_meta_data_test_for_directory (meta)) && |
582 | ( (strlen (filename) < strlen (GNUNET_FS_DIRECTORY_EXT)) || | 561 | ( (strlen (filename) < strlen (GNUNET_FS_DIRECTORY_EXT)) || |
583 | (NULL == | 562 | (NULL == |
@@ -617,8 +596,28 @@ trigger_recursive_download (void *cls, | |||
617 | { | 596 | { |
618 | if (full_name != NULL) | 597 | if (full_name != NULL) |
619 | { | 598 | { |
620 | /* determine on-disk filename, write data! */ | 599 | fh = GNUNET_DISK_file_open (full_name, |
621 | GNUNET_break (0); // FIXME: not implemented | 600 | GNUNET_DISK_OPEN_WRITE | GNUNET_DISK_OPEN_TRUNCATE | GNUNET_DISK_OPEN_CREATE, |
601 | GNUNET_DISK_PERM_USER_READ | GNUNET_DISK_PERM_USER_WRITE); | ||
602 | if (fh == NULL) | ||
603 | { | ||
604 | GNUNET_log_strerror_file (GNUNET_ERROR_TYPE_ERROR, | ||
605 | "open", | ||
606 | full_name); | ||
607 | GNUNET_free (full_name); | ||
608 | GNUNET_free_non_null (fn); | ||
609 | return; | ||
610 | } | ||
611 | if (length != | ||
612 | GNUNET_DISK_file_write (fh, | ||
613 | data, | ||
614 | length)) | ||
615 | { | ||
616 | GNUNET_log_strerror_file (GNUNET_ERROR_TYPE_ERROR, | ||
617 | "write", | ||
618 | full_name); | ||
619 | } | ||
620 | GNUNET_DISK_file_close (fh); | ||
622 | } | 621 | } |
623 | else | 622 | else |
624 | { | 623 | { |
@@ -866,15 +865,13 @@ process_result_with_request (void *cls, | |||
866 | ( (strlen (dc->filename) >= strlen (GNUNET_FS_DIRECTORY_EXT)) && | 865 | ( (strlen (dc->filename) >= strlen (GNUNET_FS_DIRECTORY_EXT)) && |
867 | (NULL != | 866 | (NULL != |
868 | strstr (dc->filename + strlen(dc->filename) - strlen(GNUNET_FS_DIRECTORY_EXT), | 867 | strstr (dc->filename + strlen(dc->filename) - strlen(GNUNET_FS_DIRECTORY_EXT), |
869 | GNUNET_FS_DIRECTORY_EXT)) ) ) ) ) ) | 868 | GNUNET_FS_DIRECTORY_EXT)) ) ) ) ) ) |
870 | { | 869 | GNUNET_FS_directory_list_contents (prc->size, |
871 | GNUNET_FS_directory_list_contents (prc->size, | 870 | pt, |
872 | pt, | 871 | off, |
873 | off, | 872 | &trigger_recursive_download, |
874 | &trigger_recursive_download, | 873 | dc); |
875 | dc); | 874 | |
876 | } | ||
877 | |||
878 | } | 875 | } |
879 | 876 | ||
880 | pi.status = GNUNET_FS_STATUS_DOWNLOAD_PROGRESS; | 877 | pi.status = GNUNET_FS_STATUS_DOWNLOAD_PROGRESS; |
@@ -906,7 +903,13 @@ process_result_with_request (void *cls, | |||
906 | } | 903 | } |
907 | 904 | ||
908 | if ( (0 != (dc->options & GNUNET_FS_DOWNLOAD_OPTION_RECURSIVE)) && | 905 | if ( (0 != (dc->options & GNUNET_FS_DOWNLOAD_OPTION_RECURSIVE)) && |
909 | (GNUNET_NO != GNUNET_FS_meta_data_test_for_directory (dc->meta)) ) | 906 | ( (GNUNET_YES == GNUNET_FS_meta_data_test_for_directory (dc->meta)) || |
907 | ( (dc->meta == NULL) && | ||
908 | ( (NULL == dc->filename) || | ||
909 | ( (strlen (dc->filename) >= strlen (GNUNET_FS_DIRECTORY_EXT)) && | ||
910 | (NULL != | ||
911 | strstr (dc->filename + strlen(dc->filename) - strlen(GNUNET_FS_DIRECTORY_EXT), | ||
912 | GNUNET_FS_DIRECTORY_EXT)) ) ) ) ) ) | ||
910 | full_recursive_download (dc); | 913 | full_recursive_download (dc); |
911 | if (dc->child_head == NULL) | 914 | if (dc->child_head == NULL) |
912 | { | 915 | { |
diff --git a/src/fs/fs_file_information.c b/src/fs/fs_file_information.c index 88d0ca386..e0504be71 100644 --- a/src/fs/fs_file_information.c +++ b/src/fs/fs_file_information.c | |||
@@ -204,6 +204,8 @@ GNUNET_FS_file_information_create_from_file (void *client_info, | |||
204 | struct FileInfo *fi; | 204 | struct FileInfo *fi; |
205 | struct stat sbuf; | 205 | struct stat sbuf; |
206 | struct GNUNET_FS_FileInformation *ret; | 206 | struct GNUNET_FS_FileInformation *ret; |
207 | const char *fn; | ||
208 | const char *ss; | ||
207 | 209 | ||
208 | if (0 != STAT (filename, &sbuf)) | 210 | if (0 != STAT (filename, &sbuf)) |
209 | { | 211 | { |
@@ -230,6 +232,17 @@ GNUNET_FS_file_information_create_from_file (void *client_info, | |||
230 | priority, | 232 | priority, |
231 | expirationTime); | 233 | expirationTime); |
232 | ret->data.file.filename = GNUNET_strdup (filename); | 234 | ret->data.file.filename = GNUNET_strdup (filename); |
235 | fn = filename; | ||
236 | while (NULL != (ss = strstr (fn, | ||
237 | DIR_SEPARATOR_STR))) | ||
238 | fn = ss + 1; | ||
239 | GNUNET_CONTAINER_meta_data_insert (ret->meta, | ||
240 | "<gnunet>", | ||
241 | EXTRACTOR_METATYPE_FILENAME, | ||
242 | EXTRACTOR_METAFORMAT_C_STRING, | ||
243 | "text/plain", | ||
244 | fn, | ||
245 | strlen (fn) + 1); | ||
233 | return ret; | 246 | return ret; |
234 | } | 247 | } |
235 | 248 | ||
@@ -622,13 +635,12 @@ GNUNET_FS_file_information_create_from_directory (void *client_info, | |||
622 | struct EntryProcCls dc; | 635 | struct EntryProcCls dc; |
623 | struct GNUNET_FS_Uri *ksk; | 636 | struct GNUNET_FS_Uri *ksk; |
624 | struct GNUNET_CONTAINER_MetaData *meta; | 637 | struct GNUNET_CONTAINER_MetaData *meta; |
625 | 638 | const char *fn; | |
626 | 639 | const char *ss; | |
627 | 640 | ||
628 | dc.entries = NULL; | 641 | dc.entries = NULL; |
629 | meta = GNUNET_CONTAINER_meta_data_create (); | 642 | meta = GNUNET_CONTAINER_meta_data_create (); |
630 | GNUNET_FS_meta_data_make_directory (meta); | 643 | GNUNET_FS_meta_data_make_directory (meta); |
631 | |||
632 | scanner (scanner_cls, | 644 | scanner (scanner_cls, |
633 | filename, | 645 | filename, |
634 | do_index, | 646 | do_index, |
@@ -654,6 +666,18 @@ GNUNET_FS_file_information_create_from_directory (void *client_info, | |||
654 | GNUNET_FS_file_information_sync (dc.entries); | 666 | GNUNET_FS_file_information_sync (dc.entries); |
655 | dc.entries = dc.entries->next; | 667 | dc.entries = dc.entries->next; |
656 | } | 668 | } |
669 | fn = filename; | ||
670 | while (NULL != (ss = strstr (fn, | ||
671 | DIR_SEPARATOR_STR))) | ||
672 | fn = ss + 1; | ||
673 | GNUNET_CONTAINER_meta_data_insert (ret->meta, | ||
674 | "<gnunet>", | ||
675 | EXTRACTOR_METATYPE_FILENAME, | ||
676 | EXTRACTOR_METAFORMAT_C_STRING, | ||
677 | "text/plain", | ||
678 | fn, | ||
679 | strlen (fn) + 1); | ||
680 | ret->data.dir.dirname = GNUNET_strdup (filename); | ||
657 | GNUNET_FS_file_information_sync (ret); | 681 | GNUNET_FS_file_information_sync (ret); |
658 | return ret; | 682 | return ret; |
659 | } | 683 | } |
diff --git a/src/fs/gnunet-publish.c b/src/fs/gnunet-publish.c index b8017886e..bcfc8967b 100644 --- a/src/fs/gnunet-publish.c +++ b/src/fs/gnunet-publish.c | |||
@@ -601,7 +601,6 @@ static struct GNUNET_GETOPT_CommandLineOption options[] = { | |||
601 | ("add an additional keyword for the top-level file or directory" | 601 | ("add an additional keyword for the top-level file or directory" |
602 | " (this option can be specified multiple times)"), | 602 | " (this option can be specified multiple times)"), |
603 | 1, &GNUNET_FS_getopt_set_keywords, &topKeywords}, | 603 | 1, &GNUNET_FS_getopt_set_keywords, &topKeywords}, |
604 | // *: option not yet used... (can handle in a pass over FI) | ||
605 | {'m', "meta", "TYPE:VALUE", | 604 | {'m', "meta", "TYPE:VALUE", |
606 | gettext_noop ("set the meta-data for the given TYPE to the given VALUE"), | 605 | gettext_noop ("set the meta-data for the given TYPE to the given VALUE"), |
607 | 1, &GNUNET_FS_getopt_set_metadata, &meta}, | 606 | 1, &GNUNET_FS_getopt_set_metadata, &meta}, |
@@ -621,7 +620,6 @@ static struct GNUNET_GETOPT_CommandLineOption options[] = { | |||
621 | gettext_noop | 620 | gettext_noop |
622 | ("publish the files under the pseudonym NAME (place file into namespace)"), | 621 | ("publish the files under the pseudonym NAME (place file into namespace)"), |
623 | 1, &GNUNET_GETOPT_set_string, &pseudonym}, | 622 | 1, &GNUNET_GETOPT_set_string, &pseudonym}, |
624 | // *: option not yet used... (need FS API support!) | ||
625 | {'s', "simulate-only", NULL, | 623 | {'s', "simulate-only", NULL, |
626 | gettext_noop ("only simulate the process but do not do any " | 624 | gettext_noop ("only simulate the process but do not do any " |
627 | "actual publishing (useful to compute URIs)"), | 625 | "actual publishing (useful to compute URIs)"), |
@@ -630,7 +628,6 @@ static struct GNUNET_GETOPT_CommandLineOption options[] = { | |||
630 | gettext_noop ("set the ID of this version of the publication" | 628 | gettext_noop ("set the ID of this version of the publication" |
631 | " (for namespace insertions only)"), | 629 | " (for namespace insertions only)"), |
632 | 1, &GNUNET_GETOPT_set_string, &this_id}, | 630 | 1, &GNUNET_GETOPT_set_string, &this_id}, |
633 | // *: option not yet used... (need FS API support!) | ||
634 | {'u', "uri", "URI", | 631 | {'u', "uri", "URI", |
635 | gettext_noop ("URI to be published (can be used instead of passing a " | 632 | gettext_noop ("URI to be published (can be used instead of passing a " |
636 | "file to add keywords to the file with the respective URI)"), | 633 | "file to add keywords to the file with the respective URI)"), |
@@ -662,86 +659,3 @@ main (int argc, char *const *argv) | |||
662 | } | 659 | } |
663 | 660 | ||
664 | /* end of gnunet-publish.c */ | 661 | /* end of gnunet-publish.c */ |
665 | |||
666 | //////////////////////////////////////////////////////////////// | ||
667 | |||
668 | #if 0 | ||
669 | /** | ||
670 | * Print progess message. | ||
671 | */ | ||
672 | static void * | ||
673 | printstatus (void *ctx, const GNUNET_FSUI_Event * event) | ||
674 | { | ||
675 | unsigned long long delta; | ||
676 | char *fstring; | ||
677 | |||
678 | switch (event->type) | ||
679 | { | ||
680 | case GNUNET_FSUI_upload_progress: | ||
681 | if (*verboselevel) | ||
682 | { | ||
683 | char *ret; | ||
684 | GNUNET_CronTime now; | ||
685 | |||
686 | now = GNUNET_get_time (); | ||
687 | delta = event->data.UploadProgress.eta - now; | ||
688 | if (event->data.UploadProgress.eta < now) | ||
689 | delta = 0; | ||
690 | ret = GNUNET_get_time_interval_as_fancy_string (delta); | ||
691 | PRINTF (_("%16llu of %16llu bytes inserted " | ||
692 | "(estimating %6s to completion) - %s\n"), | ||
693 | event->data.UploadProgress.completed, | ||
694 | event->data.UploadProgress.total, | ||
695 | ret, event->data.UploadProgress.filename); | ||
696 | GNUNET_free (ret); | ||
697 | } | ||
698 | break; | ||
699 | case GNUNET_FSUI_upload_completed: | ||
700 | if (*verboselevel) | ||
701 | { | ||
702 | delta = GNUNET_get_time () - start_time; | ||
703 | PRINTF (_("Upload of `%s' complete, " | ||
704 | "%llu bytes took %llu seconds (%8.3f KiB/s).\n"), | ||
705 | event->data.UploadCompleted.filename, | ||
706 | event->data.UploadCompleted.total, | ||
707 | delta / GNUNET_CRON_SECONDS, | ||
708 | (delta == 0) | ||
709 | ? (double) (-1.0) | ||
710 | : (double) (event->data.UploadCompleted.total | ||
711 | / 1024.0 * GNUNET_CRON_SECONDS / delta)); | ||
712 | } | ||
713 | fstring = GNUNET_ECRS_uri_to_string (event->data.UploadCompleted.uri); | ||
714 | printf (_("File `%s' has URI: %s\n"), | ||
715 | event->data.UploadCompleted.filename, fstring); | ||
716 | GNUNET_free (fstring); | ||
717 | if (ul == event->data.UploadCompleted.uc.pos) | ||
718 | { | ||
719 | postProcess (event->data.UploadCompleted.uri); | ||
720 | errorCode = 0; | ||
721 | GNUNET_shutdown_initiate (); | ||
722 | } | ||
723 | break; | ||
724 | case GNUNET_FSUI_upload_aborted: | ||
725 | printf (_("\nUpload aborted.\n")); | ||
726 | errorCode = 2; | ||
727 | GNUNET_shutdown_initiate (); | ||
728 | break; | ||
729 | case GNUNET_FSUI_upload_error: | ||
730 | printf (_("\nError uploading file: %s"), | ||
731 | event->data.UploadError.message); | ||
732 | errorCode = 3; | ||
733 | GNUNET_shutdown_initiate (); | ||
734 | break; | ||
735 | case GNUNET_FSUI_upload_started: | ||
736 | case GNUNET_FSUI_upload_stopped: | ||
737 | break; | ||
738 | default: | ||
739 | printf (_("\nUnexpected event: %d\n"), event->type); | ||
740 | GNUNET_GE_BREAK (ectx, 0); | ||
741 | break; | ||
742 | } | ||
743 | return NULL; | ||
744 | } | ||
745 | #endif | ||
746 | |||
747 | /* end of gnunet-publish.c */ | ||