-extern char optarg[514];\r
-int getopt_long_only (int ___argc, char *const *___argv, const char *__shortopts, const struct option *__longopts, int *__longind);\r
-\r
-/* Accept Handlers */\r
-int CoreExport __accept_socket(SOCKET s, sockaddr * addr, int * addrlen, void * acceptevent);\r
-int CoreExport __getsockname(SOCKET s, sockaddr * name, int * namelen, void * acceptevent);\r
-\r
-/* Module Loading */\r
-#define dlopen(path, state) (void*)LoadLibrary(path)\r
-#define dlsym(handle, export) (void*)GetProcAddress((HMODULE)handle, export)\r
-#define dlclose(handle) FreeLibrary((HMODULE)handle)\r
-const char * dlerror();\r
-\r
-/* Unix-style directory searching functions */\r
-#define chmod(filename, mode) \r
-struct dirent\r
-{\r
- char d_name[MAX_PATH];\r
-};\r
-\r
-struct DIR\r
-{\r
- dirent dirent_pointer;\r
- HANDLE find_handle;\r
- WIN32_FIND_DATA find_data;\r
- bool first;\r
-};\r
-\r
-CoreExport DIR * opendir(const char * path);\r
-CoreExport dirent * readdir(DIR * handle);\r
-CoreExport void closedir(DIR * handle);\r
-\r
-/* Disable these stupid warnings.. */\r
-#pragma warning(disable:4800)\r
-#pragma warning(disable:4251)\r
-#pragma warning(disable:4275)\r
-#pragma warning(disable:4996)\r
-#pragma warning(disable:4244) // warning C4244: '=' : conversion from 'long' to 'short', possible loss of data\r
-#pragma warning(disable:4267) // warning C4267: 'argument' : conversion from 'size_t' to 'int', possible loss of data\r
-#pragma warning(disable:4805) // warning C4805: '!=' : unsafe mix of type 'char' and type 'bool' in operation\r
-#pragma warning(disable:4311) // warning C4311: 'type cast' : pointer truncation from 'accept_overlap *' to 'int'\r
-#pragma warning(disable:4312) // warning C4312: 'type cast' : conversion from 'int' to 'HANDLE' of greater size\r
-#pragma warning(disable:4355) // warning C4355: 'this' : used in base member initializer list\r
-\r
-/* Mehhhh... typedefs. */\r
-\r
-typedef unsigned char uint8_t;\r
-typedef unsigned long long uint64_t;\r
-typedef signed char int8_t;\r
-typedef signed long int32_t;\r
-typedef signed long long int64_t;\r
-\r
-void * ::operator new(size_t iSize);\r
-void ::operator delete(void * ptr);\r
-\r
-/* IPC Handlers */\r
-class InspIRCd;\r
-\r
-void InitIPC();\r
-void CheckIPC(InspIRCd * Instance);\r
-void CloseIPC();\r
-\r
-#endif\r
-\r
+extern char optarg[514];
+int getopt_long_only (int ___argc, char *const *___argv, const char *__shortopts, const struct option *__longopts, int *__longind);
+
+/* Module Loading */
+#define dlopen(path, state) (void*)LoadLibrary(path)
+#define dlsym(handle, export) (void*)GetProcAddress((HMODULE)handle, export)
+#define dlclose(handle) FreeLibrary((HMODULE)handle)
+const char * dlerror();
+
+/* Unix-style directory searching functions */
+#define chmod(filename, mode)
+
+struct dirent
+{
+ char d_name[MAX_PATH];
+};
+
+struct DIR
+{
+ dirent dirent_pointer;
+ HANDLE find_handle;
+ WIN32_FIND_DATA find_data;
+ bool first;
+};
+
+CoreExport DIR * opendir(const char * path);
+CoreExport dirent * readdir(DIR * handle);
+CoreExport void closedir(DIR * handle);
+
+CoreExport int gettimeofday(struct timeval * tv, void * tz);
+
+/* Disable these stupid warnings.. */
+#pragma warning(disable:4800)
+#pragma warning(disable:4251)
+#pragma warning(disable:4275)
+#pragma warning(disable:4244) // warning C4244: '=' : conversion from 'long' to 'short', possible loss of data
+#pragma warning(disable:4267) // warning C4267: 'argument' : conversion from 'size_t' to 'int', possible loss of data
+#pragma warning(disable:4805) // warning C4805: '!=' : unsafe mix of type 'char' and type 'bool' in operation
+#pragma warning(disable:4311) // warning C4311: 'type cast' : pointer truncation from 'accept_overlap *' to 'int'
+#pragma warning(disable:4312) // warning C4312: 'type cast' : conversion from 'int' to 'HANDLE' of greater size
+#pragma warning(disable:4355) // warning C4355: 'this' : used in base member initializer list
+#pragma warning(disable:4996) // warning C4996: 'std::_Traits_helper::move_s' was declared deprecated
+
+/* Mehhhh... typedefs. */
+
+typedef unsigned char uint8_t;
+typedef unsigned long long uint64_t;
+typedef signed char int8_t;
+typedef signed long int32_t;
+typedef signed long long int64_t;
+
+/* Shared memory allocation functions */
+void * ::operator new(size_t iSize);
+void ::operator delete(void * ptr);
+
+/* IPC Handlers */
+class InspIRCd;
+class ValueItem;
+class ServerConfig;
+
+class IPC
+{
+ private:
+ InspIRCd* Instance;
+ HANDLE hIPCPipe;
+ public:
+ IPC(InspIRCd* Srv);
+ void Check();
+ ~IPC();
+};
+
+/* Look up the nameserver in use from the registry on windows */
+std::string FindNameServerWin();
+
+/* Clear a windows console */
+void ClearConsole();
+
+DWORD WindowsForkStart(InspIRCd* Instance);
+
+void WindowsForkKillOwner(InspIRCd* Instance);
+
+void ChangeWindowsSpecificPointers(InspIRCd* Instance);
+
+bool ValidateWindowsDnsServer(ServerConfig* conf, const char* tag, const char* value, ValueItem &data);
+
+#endif
+