Index: /trunk/src/VBox/NetworkServices/NAT/proxy.c
===================================================================
--- /trunk/src/VBox/NetworkServices/NAT/proxy.c	(revision 49859)
+++ /trunk/src/VBox/NetworkServices/NAT/proxy.c	(revision 49860)
@@ -400,5 +400,5 @@
 
 
-void
+int
 proxy_sendto(SOCKET sock, struct pbuf *p, void *name, size_t namelen)
 {
@@ -416,4 +416,5 @@
     IOVEC *dyniov;       /* dynamically sized */
     IOVEC *iov;
+    int error = 0;
 
     /*
@@ -428,4 +429,5 @@
         dyniov = (IOVEC *)malloc(clen * sizeof(*dyniov));
         if (dyniov == NULL) {
+            error = -errno;
             goto out;
         }
@@ -454,4 +456,5 @@
     nsent = sendmsg(sock, &mh, 0);
     if (nsent < 0) {
+        error = -errno;
         DPRINTF(("%s: fd %d: sendmsg errno %d\n",
                  __func__, sock, errno));
@@ -463,4 +466,5 @@
          DPRINTF(("%s: fd %d: sendmsg errno %d\n",
                   __func__, sock, WSAGetLastError()));
+         error = -WSAGetLastError();
     }
 #endif
@@ -471,4 +475,5 @@
     }
     pbuf_free(p);
+    return error;
 }
 
Index: /trunk/src/VBox/NetworkServices/NAT/proxy.h
===================================================================
--- /trunk/src/VBox/NetworkServices/NAT/proxy.h	(revision 49859)
+++ /trunk/src/VBox/NetworkServices/NAT/proxy.h	(revision 49860)
@@ -49,5 +49,5 @@
 SOCKET proxy_bound_socket(int, int, struct sockaddr *);
 void proxy_reset_socket(SOCKET);
-void proxy_sendto(SOCKET, struct pbuf *, void *, size_t);
+int proxy_sendto(SOCKET, struct pbuf *, void *, size_t);
 void proxy_lwip_post(struct tcpip_msg *);
 const char *proxy_lwip_strerr(err_t);
