rb07
Joined: 31 May 2009 Posts: 8
|
Posted: Sun May 31, 2009 1:34 am Post subject: [patch] Changes for MinGW (using Fedora cross-tools) |
|
|
As part of building Transmission (1.61) for Windows I had to make the following changes (plus others to libnatpmp):
Code: | diff -NaurX diff-excludes.txt transmission-1.61-orig/third-party/miniupnp/minissdpc.c transmission-1.61/third-party/miniupnp/minissdpc.c
--- transmission-1.61-orig/third-party/miniupnp/minissdpc.c 2009-05-12 00:32:38.000000000 +0000
+++ transmission-1.61/third-party/miniupnp/minissdpc.c 2009-05-23 03:17:26.395365582 +0000
@@ -12,8 +12,14 @@
#include <sys/types.h>
#ifdef WIN32
#include <winsock2.h>
-#include <Ws2tcpip.h>
+#include <ws2tcpip.h>
#include <io.h>
+/* Hack */
+#define UNIX_PATH_LEN 108
+struct sockaddr_un {
+ uint16_t sun_family;
+ char sun_path[UNIX_PATH_LEN];
+};
#else
#include <sys/socket.h>
#include <sys/un.h>
diff -NaurX diff-excludes.txt transmission-1.61-orig/third-party/miniupnp/miniupnpc.c transmission-1.61/third-party/miniupnp/miniupnpc.c
--- transmission-1.61-orig/third-party/miniupnp/miniupnpc.c 2009-05-12 00:32:38.000000000 +0000
+++ transmission-1.61/third-party/miniupnp/miniupnpc.c 2009-05-23 08:07:56.859450767 +0000
@@ -10,7 +10,7 @@
#ifdef WIN32
/* Win32 Specific includes and defines */
#include <winsock2.h>
-#include <Ws2tcpip.h>
+#include <ws2tcpip.h>
#include <io.h>
#define snprintf _snprintf
#if defined(_MSC_VER) && (_MSC_VER >= 1400)
@@ -49,7 +49,7 @@
#define SERVICEPREFIX2 'u'
/* root description parsing */
-void parserootdesc(const char * buffer, int bufsize, struct IGDdatas * data)
+LIBSPEC void parserootdesc(const char * buffer, int bufsize, struct IGDdatas * data)
{
struct xmlparser parser;
/* xmlparser object */
@@ -340,7 +340,7 @@
* no devices was found.
* It is up to the caller to free the chained list
* delay is in millisecond (poll) */
-struct UPNPDev * upnpDiscover(int delay, const char * multicastif,
+LIBSPEC struct UPNPDev * upnpDiscover(int delay, const char * multicastif,
const char * minissdpdsock, int sameport)
{
struct UPNPDev * tmp;
@@ -489,7 +489,7 @@
/* freeUPNPDevlist() should be used to
* free the chained list returned by upnpDiscover() */
-void freeUPNPDevlist(struct UPNPDev * devlist)
+LIBSPEC void freeUPNPDevlist(struct UPNPDev * devlist)
{
struct UPNPDev * next;
while(devlist)
@@ -525,7 +525,7 @@
/* Prepare the Urls for usage...
*/
-void GetUPNPUrls(struct UPNPUrls * urls, struct IGDdatas * data,
+LIBSPEC void GetUPNPUrls(struct UPNPUrls * urls, struct IGDdatas * data,
const char * descURL)
{
char * p;
@@ -568,7 +568,7 @@
#endif
}
-void
+LIBSPEC void
FreeUPNPUrls(struct UPNPUrls * urls)
{
if(!urls)
@@ -655,7 +655,7 @@
* passed as parameters are set. Donc forget to call FreeUPNPUrls(urls) to
* free allocated memory.
*/
-int
+LIBSPEC int
UPNP_GetValidIGD(struct UPNPDev * devlist,
struct UPNPUrls * urls,
struct IGDdatas * data,
@@ -722,7 +722,7 @@
* return value :
* 0 - Not ok
* 1 - OK */
-int
+LIBSPEC int
UPNP_GetIGDFromUrl(const char * rootdescurl,
struct UPNPUrls * urls,
struct IGDdatas * data,
diff -NaurX diff-excludes.txt transmission-1.61-orig/third-party/miniupnp/upnpcommands.c transmission-1.61/third-party/miniupnp/upnpcommands.c
--- transmission-1.61-orig/third-party/miniupnp/upnpcommands.c 2009-05-12 00:32:38.000000000 +0000
+++ transmission-1.61/third-party/miniupnp/upnpcommands.c 2009-05-23 08:12:56.793365936 +0000
@@ -19,7 +19,7 @@
/*
* */
-UNSIGNED_INTEGER
+LIBSPEC UNSIGNED_INTEGER
UPNP_GetTotalBytesSent(const char * controlURL,
const char * servicetype)
{
@@ -39,7 +39,7 @@
/*
* */
-UNSIGNED_INTEGER
+LIBSPEC UNSIGNED_INTEGER
UPNP_GetTotalBytesReceived(const char * controlURL,
const char * servicetype)
{
@@ -59,7 +59,7 @@
/*
* */
-UNSIGNED_INTEGER
+LIBSPEC UNSIGNED_INTEGER
UPNP_GetTotalPacketsSent(const char * controlURL,
const char * servicetype)
{
@@ -79,7 +79,7 @@
/*
* */
-UNSIGNED_INTEGER
+LIBSPEC UNSIGNED_INTEGER
UPNP_GetTotalPacketsReceived(const char * controlURL,
const char * servicetype)
{
@@ -99,7 +99,7 @@
/* UPNP_GetStatusInfo() call the corresponding UPNP method
* returns the current status and uptime */
-int UPNP_GetStatusInfo(const char * controlURL,
+LIBSPEC int UPNP_GetStatusInfo(const char * controlURL,
const char * servicetype,
char * status,
unsigned int * uptime,
@@ -159,7 +159,7 @@
/* UPNP_GetConnectionTypeInfo() call the corresponding UPNP method
* returns the connection type */
-int UPNP_GetConnectionTypeInfo(const char * controlURL,
+LIBSPEC int UPNP_GetConnectionTypeInfo(const char * controlURL,
const char * servicetype,
char * connectionType)
{
@@ -198,7 +198,7 @@
* One of the values can be null
* Note : GetLinkLayerMaxBitRates belongs to WANPPPConnection:1 only
* We can use the GetCommonLinkProperties from WANCommonInterfaceConfig:1 */
-int UPNP_GetLinkLayerMaxBitRates(const char * controlURL, const char * servicetype, unsigned int * bitrateDown, unsigned int* bitrateUp)
+LIBSPEC int UPNP_GetLinkLayerMaxBitRates(const char * controlURL, const char * servicetype, unsigned int * bitrateDown, unsigned int* bitrateUp)
{
struct NameValueParserData pdata;
char buffer[4096];
@@ -262,7 +262,7 @@
* 402 Invalid Args - See UPnP Device Architecture section on Control.
* 501 Action Failed - See UPnP Device Architecture section on Control.
*/
-int UPNP_GetExternalIPAddress(const char * controlURL,
+LIBSPEC int UPNP_GetExternalIPAddress(const char * controlURL,
const char * servicetype,
char * extIpAdd)
{
@@ -297,7 +297,7 @@
return ret;
}
-int
+LIBSPEC int
UPNP_AddPortMapping(const char * controlURL, const char * servicetype,
const char * extPort,
const char * inPort,
@@ -351,7 +351,7 @@
return ret;
}
-int
+LIBSPEC int
UPNP_DeletePortMapping(const char * controlURL, const char * servicetype,
const char * extPort, const char * proto,
const char * remoteHost)
@@ -391,7 +391,7 @@
return ret;
}
-int UPNP_GetGenericPortMappingEntry(const char * controlURL,
+LIBSPEC int UPNP_GetGenericPortMappingEntry(const char * controlURL,
const char * servicetype,
const char * index,
char * extPort,
@@ -480,7 +480,7 @@
return r;
}
-int UPNP_GetPortMappingNumberOfEntries(const char * controlURL, const char * servicetype, unsigned int * numEntries)
+LIBSPEC int UPNP_GetPortMappingNumberOfEntries(const char * controlURL, const char * servicetype, unsigned int * numEntries)
{
struct NameValueParserData pdata;
char buffer[4096];
@@ -513,7 +513,7 @@
/* UPNP_GetSpecificPortMappingEntry retrieves an existing port mapping
* the result is returned in the intClient and intPort strings
* please provide 16 and 6 bytes of data */
-int
+LIBSPEC int
UPNP_GetSpecificPortMappingEntry(const char * controlURL,
const char * servicetype,
const char * extPort,
|
As you may well know, Transmission includes miniupnpc-1.3; the build was made as a cross-build from Fedora (Linux) to MinGW (Windows).
The case sensitive build environment did create problems that a pure MinGW build won't find. On the other hand, making those changes won't affect a pure MinGW build. _________________ R.B. |
|