]> git.ipfire.org Git - thirdparty/ntp.git/commitdiff
[Bug 1348] ntpd Windows port should wait for sendto() completion.
authorDave Hart <hart@ntp.org>
Fri, 16 Oct 2009 21:00:05 +0000 (21:00 +0000)
committerDave Hart <hart@ntp.org>
Fri, 16 Oct 2009 21:00:05 +0000 (21:00 +0000)
bk: 4ad8ded5_RnMcSedP0wrZkcxddsYCQ

13 files changed:
ChangeLog
ntpd/ntp_io.c
ports/winnt/include/transmitbuff.h [deleted file]
ports/winnt/libntp/transmitbuff.c [deleted file]
ports/winnt/ntpd/ntp_iocompletionport.c
ports/winnt/vc6/libntp.dsp
ports/winnt/vc6/ntpd.dsp
ports/winnt/vs2003/libntp.vcproj
ports/winnt/vs2003/ntpd.vcproj
ports/winnt/vs2005/libntp.vcproj
ports/winnt/vs2005/ntpd.vcproj
ports/winnt/vs2008/libntp/libntp.vcproj
ports/winnt/vs2008/ntpd/ntpd.vcproj

index 3692ca0ed52637e302f5ab6250e8b61177c644e2..5c89c91d95a6dcb2f89ec93faf3428190807bfbf 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,4 @@
+* [Bug 1348] ntpd Windows port should wait for sendto() completion.
 (4.2.5p234-RC) 2009/10/16 Released by Harlan Stenn <stenn@ntp.org>
 * [Bug 1339] redux, use unmodified lib/isc/win32/strerror.c and
   move #define strerror... to a header not used by lib/isc code.
index 1f439f22a2e836f61328f051516326de9a121234..b4e19b59edcef39964d5afd7476c00e4ffdcb677 100644 (file)
@@ -2984,18 +2984,17 @@ sendpkt(
 
 #endif /* MCAST */
 
-#if defined(HAVE_IO_COMPLETION_PORT)
-       cc = io_completion_port_sendto(inter, pkt, len, dest);
-       if (cc != ERROR_SUCCESS) {
-#else
 #ifdef SIM
        cc = simulate_server(dest, inter, pkt);
 #else /* SIM */
+#ifndef HAVE_IO_COMPLETION_PORT
        cc = sendto(inter->fd, (char *)pkt, (unsigned int)len, 0, 
                    (struct sockaddr *)dest, SOCKLEN(dest));
+#else
+       cc = io_completion_port_sendto(inter, pkt, len, dest);
+#endif /* HAVE_IO_COMPLETION_PORT */
 #endif /* SIM */
        if (cc == -1) {
-#endif
                inter->notsent++;
                packets_notsent++;
        } else  {
diff --git a/ports/winnt/include/transmitbuff.h b/ports/winnt/include/transmitbuff.h
deleted file mode 100644 (file)
index aef37fa..0000000
+++ /dev/null
@@ -1,46 +0,0 @@
-#ifndef TRANSMITBUFF_H
-#define TRANSMITBUFF_H
-
-#include "ntp.h"
-#include <isc/list.h>
-
-/*
- * Format of a transmitbuf.  These are used by the asynchronous receive
- * routine to store outgoing packets and related information.
- */
-
-typedef struct transmitbuf transmitbuf_t;
-
-typedef struct transmitbuf {
-       ISC_LINK(transmitbuf_t) link;
-
-       time_t  ts;             /* Time stamp for the request */
-
-       /*
-        * union {
-        *      struct  pkt             pkt;
-        *      struct  ntp_control     ctlpkt;
-        *} pkt;
-        */
-       char pkt[512];
-
-} transmitbuf;
-
-
-extern void    init_transmitbuff       (void);
-
-
-/* freetransmitbuf - make a single transmitbuf available for reuse
- */
-extern void    free_transmit_buffer    (transmitbuf_t *);
-
-/*  Get a free buffer (typically used so an async
- *  read can directly place data into the buffer
- *
- *  The buffer is removed from the free list. Make sure
- *  you put it back with freetransmitbuf() or 
- */
-extern transmitbuf_t *get_free_transmit_buffer (void);
-
-#endif /* TRANSMITBUFF_H */
-
diff --git a/ports/winnt/libntp/transmitbuff.c b/ports/winnt/libntp/transmitbuff.c
deleted file mode 100644 (file)
index 8fcd302..0000000
+++ /dev/null
@@ -1,139 +0,0 @@
-/*
- * DEAD CODE ALERT  --  for whatever reason all this wonderful stuff is
- *                     unused.  The initialization was the only code
- *                     exercised as of May 2009 when that was nipped.
- */
-
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <stdio.h>
-#include "ntp_machine.h"
-#include "ntp_fp.h"
-#include "ntp_stdlib.h"
-#include "ntp_syslog.h"
-
-#include <isc/list.h>
-#include "transmitbuff.h"
-
-/*
- * transmitbuf memory management
- */
-#define TRANSMIT_INIT          10      /* 10 buffers initially */
-#define TRANSMIT_LOWAT          3      /* when we're down to three buffers get more */
-#define TRANSMIT_INC            5      /* get 5 more at a time */
-#define TRANSMIT_TOOMANY       40      /* this is way too many buffers */
-
-/*
- * Memory allocation
- */
-static volatile u_long full_transmitbufs = 0;  /* number of transmitbufs on fulllist */
-static volatile u_long free_transmitbufs = 0;  /* number of transmitbufs on freelist */
-
-ISC_LIST(transmitbuf_t)        free_transmit_list;     /* Currently used transmit buffers */
-ISC_LIST(transmitbuf_t)        full_transmit_list;     /* Currently used transmit buffers */
-
-static u_long total_transmitbufs = 0;          /* total transmitbufs currently in use */
-static u_long lowater_additions = 0;           /* number of times we have added memory */
-
-static CRITICAL_SECTION TransmitLock;
-# define LOCK(lock)    EnterCriticalSection(lock)
-# define UNLOCK(lock)  LeaveCriticalSection(lock)
-
-static inline void 
-initialise_buffer(transmitbuf *buff)
-{
-       memset(buff, 0, sizeof(*buff));
-}
-
-static void
-add_buffer_to_freelist(transmitbuf *tb)
-{
-       ISC_LIST_APPEND(free_transmit_list, tb, link);
-       free_transmitbufs++;
-}
-
-static void
-create_buffers(int nbufs)
-{
-       transmitbuf_t *buf;
-       int i;
-
-       buf = emalloc(nbufs * sizeof(*buf));
-       for (i = 0; i < nbufs; i++)
-       {
-               initialise_buffer(buf);
-               add_buffer_to_freelist(buf);
-               total_transmitbufs++;
-               buf++;
-       }
-
-       lowater_additions++;
-}
-
-extern void
-init_transmitbuff(void)
-{
-       /*
-        * Init buffer free list and stat counters
-        */
-       ISC_LIST_INIT(full_transmit_list);
-       ISC_LIST_INIT(free_transmit_list);
-       free_transmitbufs = total_transmitbufs = 0;
-       full_transmitbufs = lowater_additions = 0;
-       create_buffers(TRANSMIT_INIT);
-
-       InitializeCriticalSection(&TransmitLock);
-}
-
-static void
-delete_buffer_from_full_list(transmitbuf_t *tb) {
-
-       transmitbuf_t *next = NULL;
-       transmitbuf_t *lbuf = ISC_LIST_HEAD(full_transmit_list);
-
-       while (lbuf != NULL) {
-               next = ISC_LIST_NEXT(lbuf, link);
-               if (lbuf == tb) {
-                       ISC_LIST_DEQUEUE(full_transmit_list, lbuf, link);
-                       break;
-               }
-               else
-                       lbuf = next;
-       }
-       full_transmitbufs--;
-}
-
-extern void
-free_transmit_buffer(transmitbuf_t *rb)
-{
-       LOCK(&TransmitLock);
-       delete_buffer_from_full_list(rb);
-       add_buffer_to_freelist(rb);
-       UNLOCK(&TransmitLock);
-}
-
-
-extern transmitbuf *
-get_free_transmit_buffer(void)
-{
-
-       transmitbuf_t * buffer = NULL;
-       LOCK(&TransmitLock);
-       if (free_transmitbufs <= 0) {
-               create_buffers(TRANSMIT_INC);
-       }
-       buffer = ISC_LIST_HEAD(free_transmit_list);
-       if (buffer != NULL)
-       {
-               ISC_LIST_DEQUEUE(free_transmit_list, buffer, link);
-               free_transmitbufs--;
-               ISC_LIST_APPEND(full_transmit_list, buffer, link);
-               full_transmitbufs++;
-       }
-       UNLOCK(&TransmitLock);
-       return (buffer);
-}
-
index 731613eda173be159782cb58d1b8580134bc8000..c00118f9d8e0dc1a0919cab50fa303c78f73b256 100644 (file)
@@ -45,7 +45,7 @@ typedef struct IoCompletionInfo {
        int                     request_type;
        union {
                recvbuf_t *     recv_buf;
-               transmitbuf_t * trans_buf;
+               void *          trans_buf;
        };
 #ifdef DEBUG
        struct IoCompletionInfo *link;
@@ -140,26 +140,14 @@ FreeHeap(IoCompletionInfo *lpo, char *fromfunc)
 #endif
 }
 
-transmitbuf_t *
-get_trans_buf()
-{
-       transmitbuf_t *tb  = emalloc(sizeof(*tb));
-       return (tb);
-}
-
-void
-free_trans_buf(transmitbuf_t *tb)
-{
-       free(tb);
-}
-
 HANDLE
-get_io_event()
+get_io_event(void)
 {
        return( WaitableIoEventHandle );
 }
+
 HANDLE
-get_exit_event()
+get_exit_event(void)
 {
        return( WaitableExitEventHandle );
 }
@@ -184,7 +172,6 @@ iocompletionthread(void *NotUsed)
        DWORD BytesTransferred = 0;
        ULONG_PTR Key = 0;
        IoCompletionInfo * lpo = NULL;
-       u_long time_next_ifscan_after_error = 0;
 
        UNUSED_ARG(NotUsed);
 
@@ -212,8 +199,7 @@ iocompletionthread(void *NotUsed)
                                        &Key, 
                                        (LPOVERLAPPED *) &lpo, 
                                        INFINITE);
-               if (lpo == NULL)
-               {
+               if (lpo == NULL) {
                        DPRINTF(2, ("Overlapped IO Thread Exiting\n"));
                        break; /* fail */
                }
@@ -224,32 +210,7 @@ iocompletionthread(void *NotUsed)
                if (bSuccess)
                        errstatus = 0;
                else
-               {
                        errstatus = GetLastError();
-                       if (BytesTransferred == 0)
-                       {
-                               if (WSA_OPERATION_ABORTED == errstatus) {
-                                       DPRINTF(4, ("Transfer Operation aborted\n"));
-                               } else if (ERROR_UNEXP_NET_ERR == errstatus) {
-                                       /*
-                                        * We get this error when trying to send an the network
-                                        * interface is gone or has lost link.  Rescan interfaces
-                                        * to catch on sooner, but no more than once per minute.
-                                        * Once ntp is able to detect changes without polling
-                                        * this should be unneccessary
-                                        */
-                                       if (time_next_ifscan_after_error < current_time) {
-                                               time_next_ifscan_after_error = current_time + 60;
-                                               timer_interfacetimeout(current_time);
-                                       }
-                                       DPRINTF(4, ("sendto unexpected network error, interface may be down\n"));
-                               }
-                       }
-                       else
-                       {
-                               msyslog(LOG_ERR, "sendto error after %d bytes: %m", BytesTransferred);
-                       }
-               }
 
                /*
                 * Invoke the appropriate function based on
@@ -267,6 +228,8 @@ iocompletionthread(void *NotUsed)
                        OnSocketRecv(Key, lpo, BytesTransferred, errstatus);
                        break;
                case SOCK_SEND:
+                       NTP_INSIST(0);
+                       break;
                case SERIAL_WRITE:
                        OnWriteComplete(Key, lpo, BytesTransferred, errstatus);
                        break;
@@ -307,10 +270,6 @@ init_io_completion_port(
        }
 #endif
 
-#if 0  /* transmitbuff.c unused, no need to initialize it */
-       init_transmitbuff();
-#endif
-
        /* Create the event used to signal an IO event
         */
        WaitableIoEventHandle = CreateEvent(NULL, FALSE, FALSE, WAITABLEIOEVENTHANDLE);
@@ -794,45 +753,30 @@ io_completion_port_add_socket(SOCKET fd, struct interface *inter)
        return 0;
 }
 
+
 static int 
 OnWriteComplete(ULONG_PTR i, IoCompletionInfo *lpo, DWORD Bytes, int errstatus)
 {
-       transmitbuf_t *buff;
-       struct interface *inter;
+       void *buff;
 
        UNUSED_ARG(Bytes);
+       UNUSED_ARG(errstatus);
 
        buff = lpo->trans_buf;
-
-       free_trans_buf(buff);
+       free(buff);
        lpo->trans_buf = NULL;
+       FreeHeap(lpo, "OnWriteComplete");
 
-       if (SOCK_SEND == lpo->request_type) {
-               switch (errstatus) {
-               case WSA_OPERATION_ABORTED:
-               case NO_ERROR:
-                       break;
-
-               default:
-                       inter = (struct interface *)i;
-                       packets_notsent++;
-                       inter->notsent++;
-                       break;
-               }
-       }
-
-       if (errstatus == WSA_OPERATION_ABORTED)
-               FreeHeap(lpo, "OnWriteComplete: Socket Closed");
-       else
-               FreeHeap(lpo, "OnWriteComplete");
        return 1;
 }
 
 
 /*
- * Return value is really GetLastError-style error code
- * which is a DWORD but using int, which is large enough,
- * decreases #ifdef forest in ntp_io.c harmlessly.
+ * io_completion_port_sendto() -- sendto() replacement for Windows
+ *
+ * Returns 0 after successful send.
+ * Returns -1 for any error, with the error code available via
+ *     msyslog() %m, or GetLastError().
  */
 int    
 io_completion_port_sendto(
@@ -842,77 +786,54 @@ io_completion_port_sendto(
        sockaddr_u* dest
        )
 {
+       static u_long time_next_ifscan_after_error;
        WSABUF wsabuf;
-       transmitbuf_t *buff;
-       DWORD Result = ERROR_SUCCESS;
+       DWORD octets_sent;
+       DWORD Result;
        int errval;
        int AddrLen;
-       IoCompletionInfo *lpo;
-       DWORD Flags;
-
-       lpo = (IoCompletionInfo *) GetHeapAlloc("io_completion_port_sendto");
 
-       if (lpo == NULL)
-               return ERROR_OUTOFMEMORY;
+       wsabuf.buf = (void *)pkt;
+       wsabuf.len = len;
+       AddrLen = SOCKLEN(dest);
+       octets_sent = 0;
 
-       if (len <= sizeof(buff->pkt)) {
-               buff = get_trans_buf();
-
-               if (buff == NULL) {
-                       msyslog(LOG_ERR, "No more transmit buffers left - data discarded");
-                       FreeHeap(lpo, "io_completion_port_sendto");
-                       return ERROR_OUTOFMEMORY;
-               }
-
-
-               memcpy(&buff->pkt, pkt, len);
-               wsabuf.buf = buff->pkt;
-               wsabuf.len = len;
-
-               AddrLen = SOCKLEN(dest);
-               lpo->request_type = SOCK_SEND;
-               lpo->trans_buf = buff;
-               Flags = 0;
-
-               Result = WSASendTo(inter->fd, &wsabuf, 1, NULL, Flags,
-                                  &dest->sa, AddrLen, 
-                                  (LPOVERLAPPED)lpo, NULL);
-
-               if(Result == SOCKET_ERROR)
-               {
-                       errval = WSAGetLastError();
-                       switch (errval) {
-
-                       case NO_ERROR :
-                       case WSA_IO_PENDING :
-                               Result = ERROR_SUCCESS;
-                               break ;
+       Result = WSASendTo(inter->fd, &wsabuf, 1, &octets_sent, 0,
+                          &dest->sa, AddrLen, NULL, NULL);
 
+       if (SOCKET_ERROR == Result) {
+               errval = GetLastError();
+               if (ERROR_UNEXP_NET_ERR == errval) {
                        /*
-                        * Something bad happened
+                        * We get this error when trying to send if the
+                        * network interface is gone or has lost link.
+                        * Rescan interfaces to catch on sooner, but no
+                        * more often than once per minute.  Once ntpd
+                        * is able to detect changes without polling
+                        * this should be unneccessary
                         */
-                       default :
-                               msyslog(LOG_ERR,
-                                       "WSASendTo(%s) error %d: %s",
-                                       stoa(dest), errval, strerror(errval));
-                               free_trans_buf(buff);
-                               lpo->trans_buf = NULL;
-                               FreeHeap(lpo, "io_completion_port_sendto");
-                               break;
+                       if (time_next_ifscan_after_error < current_time) {
+                               time_next_ifscan_after_error = current_time + 60;
+                               timer_interfacetimeout(current_time);
                        }
-               }
-#ifdef DEBUG
-               if (debug > 3)
-                       printf("WSASendTo - %d bytes to %s : %d\n", len, stoa(dest), Result);
-#endif
-               return (Result);
+                       DPRINTF(4, ("sendto unexpected network error, interface may be down\n"));
+               } else
+                       msyslog(LOG_ERR, "WSASendTo(%s) error %m",
+                               stoa(dest));
+               SetLastError(errval);
+               return -1;
        }
-       else {
-#ifdef DEBUG
-               if (debug) printf("Packet too large: %d Bytes\n", len);
-#endif
-               return ERROR_INSUFFICIENT_BUFFER;
+
+       if (len != (int)octets_sent) {
+               msyslog(LOG_ERR, "WSASendTo(%s) sent %u of %d octets",
+                       stoa(dest), octets_sent, len);
+               SetLastError(ERROR_BAD_LENGTH);
+               return -1;
        }
+
+       DPRINTF(4, ("sendto %s %d octets\n", stoa(dest), len));
+
+       return 0;
 }
 
 
@@ -925,47 +846,29 @@ async_write(
        const void *data,
        unsigned int count)
 {
-       transmitbuf_t *buff;
+       void *buff;
        IoCompletionInfo *lpo;
        DWORD BytesWritten;
 
-       if (count > sizeof buff->pkt) {
-#ifdef DEBUG
-               if (debug) {
-                       printf("async_write: %d bytes too large, limit is %d\n",
-                               count, sizeof buff->pkt);
-                       exit(-1);
-               }
-#endif
-               errno = ENOMEM;
-               return -1;
-       }
-
-       buff = get_trans_buf();
-       lpo = (IoCompletionInfo *) GetHeapAlloc("async_write");
-
-       if (! buff || ! lpo) {
-               if (buff) {
-                       free_trans_buf(buff);
-                       DPRINTF(1, ("async_write: out of memory\n"));
-               } else
-                       msyslog(LOG_ERR, "No more transmit buffers left - data discarded");
-
+       buff = emalloc(count);
+       lpo = GetHeapAlloc("async_write");
+       if (lpo == NULL) {
+               free(buff);
+               DPRINTF(1, ("async_write: out of memory\n"));
                errno = ENOMEM;
                return -1;
        }
 
        lpo->request_type = SERIAL_WRITE;
        lpo->trans_buf = buff;
-       memcpy(&buff->pkt, data, count);
+       memcpy(buff, data, count);
 
-       if (!WriteFile((HANDLE)_get_osfhandle(fd), buff->pkt, count,
+       if (!WriteFile((HANDLE)_get_osfhandle(fd), buff, count,
                &BytesWritten, (LPOVERLAPPED)lpo)
                && ERROR_IO_PENDING != GetLastError()) {
 
                msyslog(LOG_ERR, "async_write - error %m");
-               free_trans_buf(buff);
-               lpo->trans_buf = NULL;
+               free(buff);
                FreeHeap(lpo, "async_write");
                errno = EBADF;
                return -1;
index d54810ae0b068ae758259c7fb1dd9ea6a00edff9..5f58abe88002d65c54505d8383ffbdb243a08802 100644 (file)
@@ -418,10 +418,6 @@ SOURCE=..\..\..\lib\isc\win32\time.c
 # End Source File
 # Begin Source File
 
-SOURCE=..\libntp\transmitbuff.c
-# End Source File
-# Begin Source File
-
 SOURCE=..\..\..\libntp\tsftomsu.c
 # End Source File
 # Begin Source File
@@ -650,10 +646,6 @@ SOURCE=..\include\sys\time.h
 # End Source File
 # Begin Source File
 
-SOURCE=..\include\transmitbuff.h
-# End Source File
-# Begin Source File
-
 SOURCE=..\include\win32_io.h
 # End Source File
 # Begin Source File
index 8d0f42b6a2c4da42d7ef75c60cd2e259e6ad42cb..35431b5e6fbdb602856e1d8b1ea7e21ba7d45ed8 100644 (file)
@@ -448,10 +448,6 @@ SOURCE=..\include\termios.h
 # End Source File
 # Begin Source File
 
-SOURCE=..\include\transmitbuff.h
-# End Source File
-# Begin Source File
-
 SOURCE=..\include\sys\wait.h
 # End Source File
 # Begin Source File
index ba1dce414cee7fd983dfed4006ca2296b54d65cc..dfb71bdbe19a1a8e8ed67209282a49b48aef670c 100644 (file)
                        <File
                                RelativePath="..\..\..\lib\isc\win32\time.c">
                        </File>
-                       <File
-                               RelativePath="..\libntp\transmitbuff.c">
-                               <FileConfiguration
-                                       Name="Debug|Win32">
-                                       <Tool
-                                               Name="VCCLCompilerTool"
-                                               Optimization="0"
-                                               AdditionalIncludeDirectories=""
-                                               PreprocessorDefinitions=""
-                                               BasicRuntimeChecks="3"
-                                               BrowseInformation="1"/>
-                               </FileConfiguration>
-                               <FileConfiguration
-                                       Name="Release|Win32">
-                                       <Tool
-                                               Name="VCCLCompilerTool"
-                                               Optimization="2"
-                                               AdditionalIncludeDirectories=""
-                                               PreprocessorDefinitions=""/>
-                               </FileConfiguration>
-                       </File>
                        <File
                                RelativePath="..\..\..\libntp\tsftomsu.c">
                                <FileConfiguration
                        <File
                                RelativePath="..\..\..\lib\isc\win32\include\isc\time.h">
                        </File>
-                       <File
-                               RelativePath="..\include\transmitbuff.h">
-                       </File>
                        <File
                                RelativePath="..\include\win32_io.h">
                        </File>
index 9e6580d9ddabc207e4f7b9423996bc3f876e3d1b..7799ce91e463687f15a35a00fb8ac838ab7208f7 100644 (file)
                        <File
                                RelativePath="..\include\termios.h">
                        </File>
-                       <File
-                               RelativePath="..\include\transmitbuff.h">
-                       </File>
                        <File
                                RelativePath="..\include\sys\wait.h">
                        </File>
index fc34adcd4729ec753535afa8ec179d44c44c12bf..81e803add307bb1c6b2fe6d5cdab61f76bb3c50b 100644 (file)
                                RelativePath="..\..\..\lib\isc\win32\time.c"
                                >
                        </File>
-                       <File
-                               RelativePath="..\libntp\transmitbuff.c"
-                               >
-                               <FileConfiguration
-                                       Name="Debug|Win32"
-                                       >
-                                       <Tool
-                                               Name="VCCLCompilerTool"
-                                               AdditionalIncludeDirectories=""
-                                               PreprocessorDefinitions=""
-                                       />
-                               </FileConfiguration>
-                               <FileConfiguration
-                                       Name="Release|Win32"
-                                       >
-                                       <Tool
-                                               Name="VCCLCompilerTool"
-                                               AdditionalIncludeDirectories=""
-                                               PreprocessorDefinitions=""
-                                       />
-                               </FileConfiguration>
-                       </File>
                        <File
                                RelativePath="..\..\..\libntp\tsftomsu.c"
                                >
                                RelativePath="..\..\..\lib\isc\win32\include\isc\time.h"
                                >
                        </File>
-                       <File
-                               RelativePath="..\include\transmitbuff.h"
-                               >
-                       </File>
                        <File
                                RelativePath="..\include\win32_io.h"
                                >
index 36a5b433bebe15c12926495081a2e33783d80228..a417c1a9ddc7b7da1ea3de207a9edfcc16ab147f 100644 (file)
                                RelativePath="..\include\termios.h"
                                >
                        </File>
-                       <File
-                               RelativePath="..\include\transmitbuff.h"
-                               >
-                       </File>
                        <File
                                RelativePath="..\include\sys\wait.h"
                                >
index 35811a51859ecf0644590e34eb4e3330d3d24e37..fe493f726531a8a99526d415c849315b21f3baaa 100644 (file)
                                RelativePath="..\..\..\..\lib\isc\win32\time.c"
                                >
                        </File>
-                       <File
-                               RelativePath="..\..\libntp\transmitbuff.c"
-                               >
-                       </File>
                        <File
                                RelativePath="..\..\..\..\libntp\tsftomsu.c"
                                >
                                RelativePath="..\..\..\..\lib\isc\win32\include\isc\thread.h"
                                >
                        </File>
-                       <File
-                               RelativePath="..\..\..\..\lib\isc\win32\include\isc\time.h"
-                               >
-                       </File>
                        <File
                                RelativePath="..\..\include\sys\time.h"
                                >
                        </File>
                        <File
-                               RelativePath="..\..\include\transmitbuff.h"
+                               RelativePath="..\..\..\..\lib\isc\win32\include\isc\time.h"
                                >
                        </File>
                        <File
index 6d6f73e8500ca4783cdcfaba0c7b73a2a8882f1b..8f96e8e9dea2225f78519b3f702ada23ea0caa31 100644 (file)
                                RelativePath="..\..\include\timepps.h"
                                >
                        </File>
-                       <File
-                               RelativePath="..\..\include\transmitbuff.h"
-                               >
-                       </File>
                        <File
                                RelativePath="..\..\include\sys\wait.h"
                                >