diff options
author | LRN <lrn1986@gmail.com> | 2012-11-01 16:43:11 +0000 |
---|---|---|
committer | LRN <lrn1986@gmail.com> | 2012-11-01 16:43:11 +0000 |
commit | 4df851487dba3f31f2bfd1e5fc1c78d2c26ca66c (patch) | |
tree | 122b1fceec325d9f232cfb10dff278d053e3b8ca /src | |
parent | b9d0c35af63d28f00e1a482fe8e6047d1281d76c (diff) | |
download | gnunet-4df851487dba3f31f2bfd1e5fc1c78d2c26ca66c.tar.gz gnunet-4df851487dba3f31f2bfd1e5fc1c78d2c26ca66c.zip |
W32: optimize GNUNET_NETWORK_fdset_add
Diffstat (limited to 'src')
-rw-r--r-- | src/util/network.c | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/src/util/network.c b/src/util/network.c index fd6687c0f..125eaca8b 100644 --- a/src/util/network.c +++ b/src/util/network.c | |||
@@ -896,6 +896,7 @@ void | |||
896 | GNUNET_NETWORK_fdset_add (struct GNUNET_NETWORK_FDSet *dst, | 896 | GNUNET_NETWORK_fdset_add (struct GNUNET_NETWORK_FDSet *dst, |
897 | const struct GNUNET_NETWORK_FDSet *src) | 897 | const struct GNUNET_NETWORK_FDSet *src) |
898 | { | 898 | { |
899 | #ifndef MINGW | ||
899 | int nfds; | 900 | int nfds; |
900 | 901 | ||
901 | for (nfds = src->nsds; nfds > 0; nfds--) | 902 | for (nfds = src->nsds; nfds > 0; nfds--) |
@@ -906,7 +907,18 @@ GNUNET_NETWORK_fdset_add (struct GNUNET_NETWORK_FDSet *dst, | |||
906 | if (nfds + 1 > dst->nsds) | 907 | if (nfds + 1 > dst->nsds) |
907 | dst->nsds = nfds + 1; | 908 | dst->nsds = nfds + 1; |
908 | } | 909 | } |
909 | #ifdef MINGW | 910 | #else |
911 | /* This is MinGW32-specific implementation that relies on the code that | ||
912 | * winsock2.h defines for FD_SET. Namely, it relies on FD_SET checking | ||
913 | * that fd being added is not already in the set. | ||
914 | * Also relies on us knowing what's inside fd_set (fd_count and fd_array). | ||
915 | */ | ||
916 | int i; | ||
917 | for (i = 0; i < src->sds.fd_count; i++) | ||
918 | FD_SET (src->sds.fd_array[i], &dst->sds); | ||
919 | if (src->nsds > dst->nsds) | ||
920 | dst->nsds = src->nsds; | ||
921 | |||
910 | GNUNET_CONTAINER_slist_append (dst->handles, src->handles); | 922 | GNUNET_CONTAINER_slist_append (dst->handles, src->handles); |
911 | #endif | 923 | #endif |
912 | } | 924 | } |