]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - win/inspircd_win32wrapper.h
Move forking code into a function and remove DaemonSeed.
[user/henk/code/inspircd.git] / win / inspircd_win32wrapper.h
index 8b418928d28be458e1441502ba9920e41a0e1ca9..6b69e1a6d3ced27d083a397048112aec3dbfc20a 100644 (file)
@@ -60,6 +60,9 @@
 #define _CRT_SECURE_NO_DEPRECATE
 #define _WINSOCK_DEPRECATED_NO_WARNINGS
 
+// Windows doesn't support getopt_long so we use ya_getopt instead.
+#include "ya_getopt.h"
+
 /* Normal windows (platform-specific) includes */
 #include <winsock2.h>
 #pragma comment(lib, "Ws2_32.lib")
 #define strcasecmp _stricmp
 #define strncasecmp _strnicmp
 
-typedef int ssize_t;
+typedef SSIZE_T ssize_t;
 
 /* _popen, _pclose */
 #define popen _popen
 #define pclose _pclose
-
-/* getopt() wrapper */
-#define no_argument            0
-#define required_argument      1
-#define optional_argument      2
-struct option
-{
-       char *name;
-       int has_arg;
-       int *flag;
-       int val;
-};
-extern int optind;
-extern char optarg[514];
-int getopt_long(int ___argc, char *const *___argv, const char *__shortopts, const struct option *__longopts, int *__longind);
-
-struct dirent
-{
-       char d_name[MAX_PATH];
-};
-
-struct DIR
-{
-       dirent dirent_pointer;
-       HANDLE find_handle;
-       WIN32_FIND_DATAA find_data;
-       bool first;
-};
-
-CoreExport DIR * opendir(const char * path);
-CoreExport dirent * readdir(DIR * handle);
-CoreExport void closedir(DIR * handle);
+#define getpid _getpid
 
 // warning: 'identifier' : class 'type' needs to have dll-interface to be used by clients of class 'type2'
 // Normally, this is a huge problem, but due to our new/delete remap, we can ignore it.
@@ -198,3 +170,11 @@ inline ssize_t writev(int fd, const WindowsIOVec* iov, int count)
                return sent;
        return -1;
 }
+
+// This wrapper is just so we don't need to do #ifdef _WIN32 everywhere in the socket code. It is
+// not actually used and does not need to be the same size as sockaddr_un on UNIX systems.
+struct sockaddr_un
+{
+       ADDRESS_FAMILY sun_family;
+       char sun_path[6];
+};