* "Network Programming For Microsoft Windows, 2Nd Edition".
*/
-#define INITGUID
#include <stdint.h>
#include <ws2tcpip.h>
#include <ws2spi.h>
#endif
#endif
#endif
-#include "gnunet_w32nsp_lib.h"
#include "w32resolver.h"
+#define INITGUID
+#include "gnunet_w32nsp_lib.h"
+#undef INITGUID
#define NSPAPI_VERSION_MAJOR 4
#define NSPAPI_VERSION_MINOR 4
#define STATE_REPLY 0x04
#define STATE_GHBN 0x08
-CRITICAL_SECTION records_cs;
+static CRITICAL_SECTION records_cs;
struct record
{
static size_t records_len = 0;
static size_t records_size = 0;
-int
+static int
resize_records ()
{
size_t new_size = records_len > 0 ? records_len * 2 : 5;
return 1;
}
-int
+static int
add_record (SOCKET s, const wchar_t *name, DWORD flags)
{
int res = 1;
return res;
}
-void
+static void
free_record (int i)
{
if (records[i].name)
return ret;
}
-int WSPAPI
+static int WSPAPI
NSPCleanup (LPGUID lpProviderId)
{
DEBUGLOG ("NSPCleanup\n");
-int WSPAPI
+static int WSPAPI
GNUNET_W32NSP_LookupServiceBegin (LPGUID lpProviderId, LPWSAQUERYSETW lpqsRestrictions,
LPWSASERVICECLASSINFOW lpServiceClassInfo, DWORD dwControlFlags,
LPHANDLE lphLookup)
if (ptr) \
ptr = (ptrtype *) (base + (uintptr_t) ptr)
-void
+static void
UnmarshallWSAQUERYSETW (LPWSAQUERYSETW req)
{
int i;
UnmarshallPtr (req->lpBlob->pBlobData, BYTE, base);
}
-int WSAAPI
+static int WSAAPI
GNUNET_W32NSP_LookupServiceNext (HANDLE hLookup, DWORD dwControlFlags,
LPDWORD lpdwBufferLength, LPWSAQUERYSETW lpqsResults)
{
return NO_ERROR;
}
-int WSPAPI
+static int WSPAPI
GNUNET_W32NSP_LookupServiceEnd (HANDLE hLookup)
{
DWORD effective_flags;
return NO_ERROR;
}
-int WSAAPI
+static int WSAAPI
GNUNET_W32NSP_SetService (LPGUID lpProviderId,
LPWSASERVICECLASSINFOW lpServiceClassInfo, LPWSAQUERYSETW lpqsRegInfo,
WSAESETSERVICEOP essOperation, DWORD dwControlFlags)
return SOCKET_ERROR;
}
-int WSAAPI
+static int WSAAPI
GNUNET_W32NSP_InstallServiceClass (LPGUID lpProviderId,
LPWSASERVICECLASSINFOW lpServiceClassInfo)
{
}
-int WSAAPI
+static int WSAAPI
GNUNET_W32NSP_RemoveServiceClass (LPGUID lpProviderId, LPGUID lpServiceClassId)
{
DEBUGLOG ("GNUNET_W32NSP_RemoveServiceClass\n");
return SOCKET_ERROR;
}
-int WSAAPI
+static int WSAAPI
GNUNET_W32NSP_GetServiceClassInfo (LPGUID lpProviderId, LPDWORD lpdwBufSize,
LPWSASERVICECLASSINFOW lpServiceClassInfo)
{
return SOCKET_ERROR;
}
-int WSAAPI
+static int WSAAPI
GNUNET_W32NSP_Ioctl (HANDLE hLookup, DWORD dwControlCode, LPVOID lpvInBuffer,
DWORD cbInBuffer, LPVOID lpvOutBuffer, DWORD cbOutBuffer,
LPDWORD lpcbBytesReturned, LPWSACOMPLETION lpCompletion,
* It is the only function that [should be/is] exported by the
* provider. All other routines are passed as pointers in lpnspRoutines.
*/
-int WSPAPI
-NSPStartup (LPGUID lpProviderId, LPNSP_ROUTINE lpnspRoutines)
+int WSAAPI
+GNUNET_W32NSP_NSPStartup (LPGUID lpProviderId, LPNSP_ROUTINE lpnspRoutines)
{
if (IsEqualGUID (lpProviderId, &GNUNET_NAMESPACE_PROVIDER_DNS))
{
* If it does, you need to use FIELD_OFFSET() macro to get offset of NSPIoctl
* and use that offset as cbSize.
*/
- lpnspRoutines->cbSize = sizeof(NSP_ROUTINE_XP);
+ lpnspRoutines->cbSize = sizeof(NSP_ROUTINE);
lpnspRoutines->dwMajorVersion = NSPAPI_VERSION_MAJOR;
lpnspRoutines->dwMinorVersion = NSPAPI_VERSION_MINOR;
lpnspRoutines->NSPInstallServiceClass = GNUNET_W32NSP_InstallServiceClass;
lpnspRoutines->NSPRemoveServiceClass = GNUNET_W32NSP_RemoveServiceClass;
lpnspRoutines->NSPGetServiceClassInfo = GNUNET_W32NSP_GetServiceClassInfo;
- ((NSP_ROUTINE_XP *) lpnspRoutines)->NSPIoctl = GNUNET_W32NSP_Ioctl;
+ /*((NSP_ROUTINE_XP *) lpnspRoutines)->NSPIoctl = GNUNET_W32NSP_Ioctl;*/
+ lpnspRoutines->NSPIoctl = GNUNET_W32NSP_Ioctl;
return NO_ERROR;
}
SetLastError (WSAEINVALIDPROVIDER);