diff options
author | celest <celest@54d463be-8e91-2dee-dedb-b68131a5f0ec> | 2005-04-04 14:48:14 +0000 |
---|---|---|
committer | celest <celest@54d463be-8e91-2dee-dedb-b68131a5f0ec> | 2005-04-04 14:48:14 +0000 |
commit | 7b57637c32ea9c179c4fa694a98afc64e4922e56 (patch) | |
tree | df76223368ddb6b95942e2d67743946047e19553 /src/common | |
parent | 177e5a3af1b7b421c027dfc06abc6e6b8ca10e28 (diff) | |
download | hercules-7b57637c32ea9c179c4fa694a98afc64e4922e56.tar.gz hercules-7b57637c32ea9c179c4fa694a98afc64e4922e56.tar.bz2 hercules-7b57637c32ea9c179c4fa694a98afc64e4922e56.tar.xz hercules-7b57637c32ea9c179c4fa694a98afc64e4922e56.zip |
* Added dll.h
* Update base code for the UPNP plugin loading
git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/branches/stable@1398 54d463be-8e91-2dee-dedb-b68131a5f0ec
Diffstat (limited to 'src/common')
-rw-r--r-- | src/common/Makefile | 2 | ||||
-rw-r--r-- | src/common/dll.h | 25 | ||||
-rw-r--r-- | src/common/socket.c | 26 |
3 files changed, 30 insertions, 23 deletions
diff --git a/src/common/Makefile b/src/common/Makefile index c90940b94..7a00c5a3c 100644 --- a/src/common/Makefile +++ b/src/common/Makefile @@ -9,7 +9,7 @@ obj/%.o: %.c $(COMPILE.c) $(OUTPUT_OPTION) $< obj/core.o: core.c core.h showmsg.h -obj/socket.o: socket.c socket.h mmo.h showmsg.h +obj/socket.o: socket.c socket.h mmo.h showmsg.h dll.h obj/timer.o: timer.c timer.h showmsg.h obj/grfio.o: grfio.c grfio.h showmsg.h obj/db.o: db.c db.h showmsg.h diff --git a/src/common/dll.h b/src/common/dll.h new file mode 100644 index 000000000..ec6f8cbed --- /dev/null +++ b/src/common/dll.h @@ -0,0 +1,25 @@ +
+#ifndef _DLL_H_
+#define _DLL_H_
+
+#ifdef _WIN32
+
+ #include <windows.h>
+ #define DLL_OPEN(x) LoadLibrary(x)
+ #define DLL_SYM(x,y,z) (FARPROC)x=GetProcAddress(y,z)
+ #define DLL_CLOSE(x) FreeLibrary(x)
+ #define DLL HINSTANCE
+
+#else
+
+ #include <dlfcn.h>
+ #define DLL_OPEN(x) dlopen(x,RTLD_NOW)
+ #define DLL_SYM(x,y,z) x=(void *)dlsym(y,z)
+ #define DLL_CLOSE(x) dlclose(x)
+ #define DLL void*
+
+#endif
+
+#endif // _DLL_H_
+
+
diff --git a/src/common/socket.c b/src/common/socket.c index 7178c95e2..6c7d873e0 100644 --- a/src/common/socket.c +++ b/src/common/socket.c @@ -30,6 +30,7 @@ typedef int socklen_t; #include <string.h> #include "socket.h" +#include "../common/dll.h" #include "../common/mmo.h" // [Valaris] thanks to fov #include "../common/timer.h" #include "../common/utils.h" @@ -46,35 +47,16 @@ int ip_rules = 1; #define UPNP #ifdef UPNP - #if defined(CYGWIN) - - #include <dlfcn.h> - void *upnp_dll; + #if defined(CYGWIN) || defined(_WIN32) + DLL upnp_dll; int (*upnp_init)(); int (*upnp_final)(); int (*firewall_addport)(char *desc, int port); int (*upnp_addport)(char *desc, char *ip, int port); - #define DLL_OPEN(x) dlopen(x,RTLD_NOW) - #define DLL_SYM(x,y,z) x=(void *)dlsym(y,z) - #define DLL_CLOSE(x) dlclose(x) - - #elif _WIN32 - - // windows.h already included - HINSTANCE upnp_dll; - int (WINAPI* upnp_init)(); - int (WINAPI* upnp_final)(); - int (WINAPI* firewall_addport)(char *desc, int port); - int (WINAPI* upnp_addport)(char *desc, char *ip, int port); - #define DLL_OPEN(x) LoadLibrary(x) - #define DLL_SYM(x,y,z) (FARPROC)x=GetProcAddress(y,z) - #define DLL_CLOSE(x) FreeLibrary(x) - + extern char server_type[24]; #else #error This doesnt work with non-Windows yet #endif - - extern char server_type[24]; #endif int rfifo_size = 65536; |