From 6735f2da27df23ee34936a4b17727f4ba44c04e8 Mon Sep 17 00:00:00 2001 From: Adam Date: Mon, 9 Jul 2012 01:53:07 -0400 Subject: [PATCH] Fixed Windows build, int32_t is already defined in stdint.h. Add GnuTLS support for Windows. Made NSIS script include extra DLL files if supplied and include the conf/aliases and conf/modules example configuration files. Added make_gnutls_cert.bat to generate GnuTLS certificates on Windows. Fixed typo in gnutlscert.pm. --- make/gnutlscert.pm | 2 +- src/modules/extra/m_ssl_gnutls.cpp | 11 +++++++++++ win/inspircd.nsi | 12 ++++++++++++ win/inspircd_win32wrapper.h | 1 - win/make_gnutls_cert.bat | 14 ++++++++++++++ 5 files changed, 38 insertions(+), 2 deletions(-) create mode 100644 win/make_gnutls_cert.bat diff --git a/make/gnutlscert.pm b/make/gnutlscert.pm index 1621c2c27..ab8aae427 100644 --- a/make/gnutlscert.pm +++ b/make/gnutlscert.pm @@ -36,7 +36,7 @@ sub make_gnutls_cert() my $timestr = time(); my $org = promptstring_s("Please enter the organization name", "My IRC Network"); my $unit = promptstring_s("Please enter the unit Name", "Server Admins"); - my $state = promptstring_s("Pleae enter your state (two letter code)", "CA"); + my $state = promptstring_s("Please enter your state (two letter code)", "CA"); my $country = promptstring_s("Please enter your country", "Oompa Loompa Land"); my $commonname = promptstring_s("Please enter the certificate common name (hostname)", "irc.mynetwork.com"); my $email = promptstring_s("Please enter a contact email address", "oompa\@loompa.com"); diff --git a/src/modules/extra/m_ssl_gnutls.cpp b/src/modules/extra/m_ssl_gnutls.cpp index 6ca876d4c..c631642ce 100644 --- a/src/modules/extra/m_ssl_gnutls.cpp +++ b/src/modules/extra/m_ssl_gnutls.cpp @@ -28,6 +28,17 @@ #include "ssl.h" #include "m_cap.h" +#ifdef WINDOWS +# pragma comment(lib, "libgnutls.lib") +# pragma comment(lib, "libgcrypt.lib") +# pragma comment(lib, "libgpg-error.lib") +# pragma comment(lib, "user32.lib") +# pragma comment(lib, "advapi32.lib") +# pragma comment(lib, "libgcc.lib") +# pragma comment(lib, "libmingwex.lib") +# pragma comment(lib, "gdi32.lib") +#endif + /* $ModDesc: Provides SSL support for clients */ /* $CompileFlags: pkgconfincludes("gnutls","/gnutls/gnutls.h","") */ /* $LinkerFlags: rpath("pkg-config --libs gnutls") pkgconflibs("gnutls","/libgnutls.so","-lgnutls") -lgcrypt */ diff --git a/win/inspircd.nsi b/win/inspircd.nsi index e263f4561..1fa21c6f9 100644 --- a/win/inspircd.nsi +++ b/win/inspircd.nsi @@ -153,6 +153,10 @@ SectionEnd Section "Config Files" SEC02 SetOutPath "$INSTDIR\conf" File "..\docs\conf\*.example" + SetOutPath "$INSTDIR\conf\aliases" + File "..\docs\conf\aliases\*.example" + SetOutPath "$INSTDIR\conf\modules" + File "..\docs\conf\modules\modules.*" SectionEnd Section "Command Handlers" SEC03 @@ -163,6 +167,10 @@ SectionEnd Section "Modules" SEC04 SetOutPath "$INSTDIR\modules" File "..\bin\${BUILD}\modules\m_*.so" + ; Copy DLLs required for modules + SetOutPath "$INSTDIR" + File /nonfatal "*.dll" + File "make_gnutls_cert.bat" SectionEnd Section -AdditionalIcons @@ -216,9 +224,13 @@ Section Uninstall Delete "$INSTDIR\uninst.exe" Delete "$INSTDIR\modules\*.so" Delete "$INSTDIR\conf\*.example" + Delete "$INSTDIR\conf\aliases\*.example" + Delete "$INSTDIR\conf\modules\*.example" Delete "$INSTDIR\*.log" Delete "$INSTDIR\logs\*" Delete "$INSTDIR\data\*" + Delete "$INSTDIR\*.dll" + Delete "$INSTDIR\make_gnutls_cert.bat" Delete "$INSTDIR\inspircd.exe" Delete "$SMPROGRAMS\InspIRCd\Uninstall.lnk" Delete "$SMPROGRAMS\InspIRCd\InspIRCd Website.lnk" diff --git a/win/inspircd_win32wrapper.h b/win/inspircd_win32wrapper.h index 85572fd64..bc7165262 100644 --- a/win/inspircd_win32wrapper.h +++ b/win/inspircd_win32wrapper.h @@ -231,7 +231,6 @@ CoreExport int clock_gettime(int clock, struct timespec * tv); 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; typedef signed long ssize_t; diff --git a/win/make_gnutls_cert.bat b/win/make_gnutls_cert.bat new file mode 100644 index 000000000..97792cc29 --- /dev/null +++ b/win/make_gnutls_cert.bat @@ -0,0 +1,14 @@ +@echo off + +echo This program will generate SSL certificates for m_ssl_gnutls.so +echo Ensure certtool.exe is in your system path. It can be downloaded +echo at ftp://ftp.gnu.org/gnu/gnutls/w32/. If you do not know the answer +echo to one of the questions just press enter. +echo. + +pause + +certtool --generate-privkey --outfile conf/key.pem +certtool --generate-self-signed --load-privkey conf/key.pem --outfile conf/cert.pem + +pause \ No newline at end of file -- 2.39.5