const struct GNUNET_DISK_FileHandle *h)
{
#ifdef MINGW
- HANDLE hw;
- GNUNET_DISK_internal_file_handle_ (h, &hw, sizeof (HANDLE));
GNUNET_CONTAINER_slist_add (fds->handles,
GNUNET_CONTAINER_SLIST_DISPOSITION_TRANSIENT,
- &hw, sizeof (HANDLE));
+ h, sizeof (struct GNUNET_DISK_FileHandle));
#else
int fd;
}
-#if MINGW
-/**
- * Add a W32 file handle to the fd set
- * @param fds fd set
- * @param h the file handle to add
- */
-void
-GNUNET_NETWORK_fdset_handle_set_native_w32_handle (struct GNUNET_NETWORK_FDSet *fds,
- HANDLE h)
-{
- GNUNET_CONTAINER_slist_add (fds->handles,
- GNUNET_CONTAINER_SLIST_DISPOSITION_TRANSIENT,
- &h, sizeof (HANDLE));
-}
-#endif
-
-
/**
* Check if a file handle is part of an fd set
* @param fds fd set
{
#ifdef MINGW
- return GNUNET_CONTAINER_slist_contains (fds->handles, &h->h,
- sizeof (HANDLE));
+ return GNUNET_CONTAINER_slist_contains (fds->handles, h,
+ sizeof (struct GNUNET_DISK_FileHandle));
#else
return FD_ISSET (h->fd, &fds->sds);
#endif
}
#else
struct GNUNET_CONTAINER_SList_Iterator *it;
- HANDLE *h;
+ struct GNUNET_DISK_FileHandle *h;
int i;
int j;
it = GNUNET_CONTAINER_slist_begin (fds1->handles);
while (GNUNET_CONTAINER_slist_end (it) != GNUNET_YES)
{
- h = (HANDLE *) GNUNET_CONTAINER_slist_get (it, NULL);
+ h = (struct GNUNET_DISK_FileHandle *) GNUNET_CONTAINER_slist_get (it, NULL);
if (GNUNET_CONTAINER_slist_contains
- (fds2->handles, h, sizeof (HANDLE)))
+ (fds2->handles, h, sizeof (struct GNUNET_DISK_FileHandle)))
{
GNUNET_CONTAINER_slist_iter_destroy (it);
return GNUNET_YES;
* @return unique task identifier for the job
* only valid until "task" is started!
*/
+#ifndef MINGW
GNUNET_SCHEDULER_TaskIdentifier
add_without_sets (struct GNUNET_TIME_Relative delay,
int rfd,
#endif
return t->id;
}
+#endif
struct GNUNET_NETWORK_Handle * rfd,
GNUNET_SCHEDULER_Task task, void *task_cls)
{
+#if MINGW
+ struct GNUNET_NETWORK_FDSet *rs;
+ GNUNET_SCHEDULER_TaskIdentifier ret;
+
+ GNUNET_assert (rfd != NULL);
+ rs = GNUNET_NETWORK_fdset_create ();
+ GNUNET_NETWORK_fdset_set (rs, rfd);
+ ret = GNUNET_SCHEDULER_add_select (check_priority (current_priority),
+ GNUNET_SCHEDULER_NO_TASK, delay,
+ rs, NULL, task, task_cls);
+ GNUNET_NETWORK_fdset_destroy (rs);
+ return ret;
+#else
return add_without_sets (delay,
GNUNET_NETWORK_get_fd (rfd),
-1,
task,
task_cls);
+#endif
}
struct GNUNET_NETWORK_Handle * wfd,
GNUNET_SCHEDULER_Task task, void *task_cls)
{
+#if MINGW
+ struct GNUNET_NETWORK_FDSet *ws;
+ GNUNET_SCHEDULER_TaskIdentifier ret;
+
+ GNUNET_assert (wfd != NULL);
+ ws = GNUNET_NETWORK_fdset_create ();
+ GNUNET_NETWORK_fdset_set (ws, wfd);
+ ret = GNUNET_SCHEDULER_add_select (check_priority (current_priority),
+ GNUNET_SCHEDULER_NO_TASK, delay,
+ NULL, ws, task, task_cls);
+ GNUNET_NETWORK_fdset_destroy (ws);
+ return ret;
+#else
return add_without_sets (delay,
-1,
GNUNET_NETWORK_get_fd (wfd),
task,
task_cls);
+#endif
}
GNUNET_assert (rfd != NULL);
rs = GNUNET_NETWORK_fdset_create ();
GNUNET_NETWORK_fdset_handle_set (rs, rfd);
- ret = GNUNET_SCHEDULER_add_select (GNUNET_SCHEDULER_PRIORITY_KEEP,
+ ret = GNUNET_SCHEDULER_add_select (check_priority (current_priority),
GNUNET_SCHEDULER_NO_TASK, delay,
rs, NULL, task, task_cls);
GNUNET_NETWORK_fdset_destroy (rs);
GNUNET_assert (wfd != NULL);
ws = GNUNET_NETWORK_fdset_create ();
GNUNET_NETWORK_fdset_handle_set (ws, wfd);
- ret = GNUNET_SCHEDULER_add_select (GNUNET_SCHEDULER_PRIORITY_KEEP,
+ ret = GNUNET_SCHEDULER_add_select (check_priority (current_priority),
GNUNET_SCHEDULER_NO_TASK,
delay, NULL, ws, task, task_cls);
GNUNET_NETWORK_fdset_destroy (ws);