]> git.tdb.fi Git - libs/net.git/blobdiff - source/net/resolve.cpp
Use the auto type to shorten long declarations
[libs/net.git] / source / net / resolve.cpp
index ce47b51f8a4155e3de43b6651459b160e6b0a629..c30d62a7bd9f471f1d621477d5f3536fc39e4adf 100644 (file)
@@ -1,9 +1,4 @@
-#ifdef _WIN32
-#define _WIN32_WINNT 0x0501
-#include <ws2tcpip.h>
-#else
-#include <netdb.h>
-#endif
+#include "platform_api.h"
 #include <msp/core/systemerror.h>
 #include <msp/strings/format.h>
 #include "sockaddr_private.h"
@@ -137,7 +132,16 @@ void Resolver::task_done()
                if(task->addr)
                        signal_address_resolved.emit(task->tag, *task->addr);
                else if(task->error)
+               {
+                       if(signal_resolve_failed.empty())
+                       {
+                               RefPtr<runtime_error> err = task->error;
+                               task->error = 0;
+                               thread.pop_complete_task();
+                               throw *err;
+                       }
                        signal_resolve_failed.emit(task->tag, *task->error);
+               }
                thread.pop_complete_task();
        }
 }
@@ -207,7 +211,7 @@ void Resolver::WorkerThread::main()
                Task *task = 0;
                {
                        MutexLock lock(queue_mutex);
-                       for(list<Task>::iterator i=queue.begin(); (!task && i!=queue.end()); ++i)
+                       for(auto i=queue.begin(); (!task && i!=queue.end()); ++i)
                                if(!i->is_complete())
                                        task = &*i;
                }
@@ -234,16 +238,5 @@ void Resolver::WorkerThread::main()
        }
 }
 
-               /*sockaddr sa;
-               unsigned size = fill_sockaddr(sa);
-               char hst[128];
-               char srv[128];
-               int err = getnameinfo(&sa, size, hst, 128, srv, 128, 0);
-               if(err==0)
-               {
-                       host = hst;
-                       serv = srv;
-               }*/
-
 } // namespace Net
 } // namespace Msp