⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 search_linked_download_persistence_test.c

📁 GNUnet是一个安全的点对点网络框架
💻 C
📖 第 1 页 / 共 2 页
字号:
      GNUNET_GE_BREAK (ectx, 0);      break;    case GNUNET_FSUI_download_aborted:#if DEBUG_VERBOSE      printf ("Received download aborted event.\n");#endif      break;    case GNUNET_FSUI_unindex_suspended:    case GNUNET_FSUI_upload_suspended:#if DEBUG_VERBOSE      fprintf (stderr, "Received SUSPENDING: %d\n", event->type);#endif      break;    case GNUNET_FSUI_download_started:      if (download == NULL)        download = event->data.DownloadStarted.dc.pos;      if (event->data.DownloadStarted.dc.spos != search)        {          fprintf (stderr,                   "Download started but search reference not set correctly.\n");          have_error = 1;        }      if ((event->data.DownloadStarted.dc.pos == download) &&          (event->data.DownloadStarted.dc.ppos != NULL))        {          fprintf (stderr,                   "Download started but parent reference not set to NULL.\n");          have_error = 1;        }      if ((event->data.DownloadStarted.dc.pos != download) &&          (event->data.DownloadStarted.dc.ppos != download))        {          fprintf (stderr,                   "Download started but parent reference not set correctly.\n");          have_error = 1;        }      break;    case GNUNET_FSUI_download_stopped:      if (event->data.DownloadStopped.dc.spos != search)        {          fprintf (stderr,                   "Download stopped but search reference not set correctly.\n");          have_error = 1;        }      if ((event->data.DownloadStopped.dc.pos == download) &&          (event->data.DownloadStopped.dc.ppos != NULL))        {          fprintf (stderr,                   "Download stopped but parent reference not set to NULL.\n");          have_error = 1;        }      if ((event->data.DownloadStopped.dc.pos != download) &&          (event->data.DownloadStopped.dc.ppos != download))        {          fprintf (stderr,                   "Download stopped but parent reference not set correctly.\n");          have_error = 1;        }      break;    case GNUNET_FSUI_search_update:    case GNUNET_FSUI_upload_started:    case GNUNET_FSUI_upload_stopped:    case GNUNET_FSUI_search_started:    case GNUNET_FSUI_search_aborted:    case GNUNET_FSUI_search_stopped:    case GNUNET_FSUI_unindex_started:    case GNUNET_FSUI_unindex_stopped:      break;    default:      printf ("Unexpected event: %d\n", event->type);      break;    }  return NULL;}#define FILESIZE (1024)#define START_DAEMON 1intmain (int argc, char *argv[]){#if START_DAEMON  pid_t daemon;#endif  int ok;  int i;  int j;  struct GNUNET_ECRS_URI *uri = NULL;  char *fn = NULL;  char *keywords[] = {    "down_foo",    "down_bar",  };  char keyword[40];  int prog;  char *buf;  struct GNUNET_MetaData *meta;  struct GNUNET_ECRS_URI *kuri = NULL;  struct GNUNET_GC_Configuration *cfg;  struct GNUNET_FSUI_UnindexList *unindex = NULL;  struct GNUNET_FSUI_UploadList *upload = NULL;  int suspendRestart = 0;  ok = GNUNET_YES;  cfg = GNUNET_GC_create ();  if (-1 == GNUNET_GC_parse_configuration (cfg, "check.conf"))    {      GNUNET_GC_free (cfg);      return -1;    }#if START_DAEMON  daemon = GNUNET_daemon_start (NULL, cfg, "peer.conf", GNUNET_NO);  GNUNET_GE_ASSERT (NULL, daemon > 0);  CHECK (GNUNET_OK ==         GNUNET_wait_for_daemon_running (NULL, cfg,                                         30 * GNUNET_CRON_SECONDS));  GNUNET_thread_sleep (5 * GNUNET_CRON_SECONDS);        /* give apps time to start */  /* ACTUAL TEST CODE */#endif  ctx = GNUNET_FSUI_start (NULL,                           cfg, "search_linked_download_persistence_test", 32,                           GNUNET_YES, &eventCallback, NULL);  CHECK (ctx != NULL);  for (j = 4; j < 256; j += 4)    {      fn = makeName (j);      buf = GNUNET_malloc (FILESIZE * j);      for (i = 0; i < FILESIZE; i++)        buf[i] = GNUNET_random_u32 (GNUNET_RANDOM_QUALITY_WEAK, 256);      GNUNET_disk_file_write (ectx, fn, buf, FILESIZE, "600");      GNUNET_free (buf);      GNUNET_free (fn);    }  meta = GNUNET_meta_data_create ();  kuri =    GNUNET_ECRS_keyword_command_line_to_uri (ectx, 2,                                             (const char **) keywords);  GNUNET_meta_data_insert (meta, EXTRACTOR_MIMETYPE, GNUNET_DIRECTORY_MIME);  upload =    GNUNET_FSUI_upload_start (ctx, UPLOAD_PREFIX,                              (GNUNET_FSUI_DirectoryScanCallback) &                              GNUNET_disk_directory_scan, NULL, 0, 0,                              GNUNET_YES, GNUNET_NO, GNUNET_NO,                              GNUNET_get_time () + 5 * GNUNET_CRON_HOURS,                              meta, kuri, kuri);  CHECK (upload != NULL);  GNUNET_ECRS_uri_destroy (kuri);  kuri = NULL;  GNUNET_FSUI_upload_stop (upload);  CHECK (upURI != NULL);  GNUNET_snprintf (keyword, 40, "+%s +%s", keywords[0], keywords[1]);  uri = GNUNET_ECRS_keyword_string_to_uri (ectx, keyword);  search = GNUNET_FSUI_search_start (ctx, 0, uri);  CHECK (search != NULL);  download = GNUNET_FSUI_download_start (ctx,                                         0,                                         GNUNET_YES,                                         upURI,                                         meta,                                         UPLOAD_PREFIX "-download", search,                                         NULL);  GNUNET_meta_data_destroy (meta);  prog = 0;  suspendRestart = 10;  while (prog < 1000)    {      prog++;      GNUNET_thread_sleep (50 * GNUNET_CRON_MILLISECONDS);      if ((suspendRestart > 0)          && (GNUNET_random_u32 (GNUNET_RANDOM_QUALITY_WEAK, 100) == 0))        {#if 1#if DEBUG_VERBOSE          printf ("Testing FSUI suspend-resume\n");#endif          GNUNET_FSUI_stop (ctx);       /* download possibly incomplete                                           at this point, thus testing resume */          CHECK (search == NULL);          CHECK (download == NULL);          ctx = GNUNET_FSUI_start (NULL,                                   cfg,                                   "search_linked_download_persistence_test",                                   32, GNUNET_YES, &eventCallback, NULL);#if DEBUG_VERBOSE          printf ("Resumed...\n");#endif#endif          suspendRestart--;        }      if ((search != NULL) && (suspendRestart >= 5))        {          no_check = 1;          GNUNET_thread_sleep (50 * GNUNET_CRON_MILLISECONDS);          GNUNET_FSUI_search_abort (search);          GNUNET_FSUI_search_stop (search);          search = NULL;          no_check = 0;        }      if (GNUNET_shutdown_test () == GNUNET_YES)        break;    }  GNUNET_FSUI_download_stop (download);  for (j = 4; j < 256; j += 4)    {      fn = makeName (j);      unindex = GNUNET_FSUI_unindex_start (ctx, fn);      GNUNET_FSUI_unindex_stop (unindex);      UNLINK (fn);      GNUNET_free (fn);    }  /* END OF TEST CODE */FAILURE:  if (ctx != NULL)    GNUNET_FSUI_stop (ctx);  if (uri != NULL)    GNUNET_ECRS_uri_destroy (uri);  if (kuri != NULL)    GNUNET_ECRS_uri_destroy (kuri);  if (upURI != NULL)    GNUNET_ECRS_uri_destroy (upURI);#if START_DAEMON  GNUNET_GE_BREAK (NULL, GNUNET_OK == GNUNET_daemon_stop (NULL, daemon));#endif  GNUNET_GC_free (cfg);  if (have_error)    ok = GNUNET_NO;  return (ok == GNUNET_YES) ? 0 : 1;}/* end of search_linked_download_persistence_test.c */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -