* Added dll.h

* Update base code for the UPNP plugin loading

git-svn-id: https://svn.code.sf.net/p/rathena/svn/branches/stable@1398 54d463be-8e91-2dee-dedb-b68131a5f0ec
This commit is contained in:
celest
2005-04-04 14:48:14 +00:00
parent 4773e16492
commit 308b7915ff
4 changed files with 31 additions and 23 deletions

View File

@@ -2,6 +2,7 @@
Date Added
04/04
* Update base code for the UPNP plugin loading [celest]
* Removed anti-freeze system for login and char -- Shinomori's update would
be enough to keep inter connections alive [celest]

View File

@@ -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

25
src/common/dll.h Normal file
View File

@@ -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_

View File

@@ -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;