75 Commits

Author SHA1 Message Date
Adam
88dccdd5f0 Change Windows libraries to be dynamically linked 2014-04-13 16:07:58 +02:00
ChrisTX
25aa230671 Win32: Rewrite the service wrapper
Edited original commit to pass MAX_PATH as nSize to GetModuleFileNameA() instead of 101 after approval from author @ChrisTX (Attila Molnar)

Fixes #404 reported by @crchauffe
2013-03-25 14:57:05 +01:00
ChrisTX
ebdaf368e1 Replace printf(_c) with iostream 2012-10-14 02:13:49 +02:00
ChrisTX
5b9682275e Windows: In-depth cleanup (see details)
-Fix x64 builds for Windows. Now all configurations compile.
-Remove the non-working rebase stuff.
-Remove the Windows fork hack and instead use FreeConsole() to emulate the behavior. This directly allows us to compile with ASLR, which is turned on now.
-Remove the old IPC mechanism for the removed GUI. This is not needed anymore as the GUI wasn't ever supported on anything newer than 1.2
-Remove the WIN32/WINDOWS macros. _WIN32 is supported on all x86-based VC++ targets, so that's what we need.
-Enable optimizations for release builds.
-De-duplicate printf_c(), it was previously copy-pasted into colors.h for configure
-Add the VC++ specific bad files in .gitignore
-Disable PID writing on Windows. This is only making sense for *nix builds.
-Replace the CPU usage retrieval with an algorithm analogous to the *nix behavior. Also supports separated now/total values. (Tested with a dummy busy loop - seems working)
-Removed certain unused functions and variables
-Remove stdint defines from the windows wrapper
-Remove CRT debug alloc. This is a bad idea as it would define a macro to replace free which breaks builds.
-Re-evaluated the warnings list, commented it.
-Moved inspircd_config/_version to include/ to match *nix
-Removed the creation of inspircd_se_config, as it isn't used at all.
-Made non-git builds show as "r0" instead of "r" (thanks to @SaberUK for pointing this out)
-Fixed up m_spanningtree's project paths. Now all configurations (debug/release x86/x64) have been tested and build properly.
-Moved FindDNS out of the wrapper and matched its log behavior with *nix. (It's pointless having it in the wrapper after the recent slimming down)
-Replaced random/srandom wrappers with a mechanism that tries to use Windows' Random API first is no SSL module is loaded.
-Removed more old junk from support for compilers older than VC++ 2010 (we don't have project files for these, so compiling them would be hard anyways)
-Removed the unused ClearConsole()
-Removed unused includes from the wrapper. Also, do not include psapi.h here if we don't link psapi.lib. This should be done where appropriate.
-Made inet_aton an inline function for increased performance
-C4800, performance warning about bool forcing, resolved at all occurrences.
-C4701, uninitialized variable 'cached', resolved at all occurrences.
-dlerror() was migrated out of the wrapper for more thread safety (no global buffer being shared) and increased performance.
-Removed the wrong CRT debug flags. This drains a lot of performance.
-Removed the clock_gettime/gettimeofday wrappers
-Replaced all TCHAR/ANSI mix-ups of functions with the correct respective function.
-Added a block of C4355 for < VS2012
-Update project files for c870714
2012-10-12 22:31:38 +02:00
ChrisTX
84b187eace Windows: Use the WinAPI for DNS server retrieval 2012-10-04 13:49:34 +02:00
Adam
6735f2da27 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.
2012-07-09 01:53:07 -04:00
Robby-
46a3904619 Replace copyright headers with headers granting specific authors copyright 2012-04-19 20:58:29 +02:00
Adam
699a8b2fc8 Fix extras compilation under Windows 2011-06-18 17:25:35 -04:00
Adam
b56565eac2 Fixed Windows build on VS 2010 2011-04-10 17:54:20 -04:00
danieldg
7e46119759 Remove excessive gettimeofday system calls
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@12293 e03df62e-2008-0410-955e-edbf42e46eb7
2010-01-18 19:36:41 +00:00
peavey
8a2e5dcbe4 Fix up finding dns server to use for windows to match latest configreader changes.
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11892 e03df62e-2008-0410-955e-edbf42e46eb7
2009-10-17 20:48:20 +00:00
danieldg
170820cc8d Define DISABLE_WRITEV and use the IOHook single-copy method for Windows send()
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11848 e03df62e-2008-0410-955e-edbf42e46eb7
2009-10-12 01:13:51 +00:00
peavey
60664afca1 Include psapi.h to fix stats.cpp compiling.
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11840 e03df62e-2008-0410-955e-edbf42e46eb7
2009-10-11 20:39:47 +00:00
peavey
64904b639d 3rd time lucky? Fix again for setsockopt.
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11825 e03df62e-2008-0410-955e-edbf42e46eb7
2009-10-10 19:59:04 +00:00
peavey
bfa2a19d96 Slight tweak to setsockopt fix.
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11824 e03df62e-2008-0410-955e-edbf42e46eb7
2009-10-10 19:53:18 +00:00
peavey
1312f2db8e * Fix inspsocket to not include uio.h on windows.
* Wrap writev and some structs to fix inspsocket compile on win.
* Fix a few compile errors due to latest trunk changes in win32wrapper code.

git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11822 e03df62e-2008-0410-955e-edbf42e46eb7
2009-10-10 17:48:04 +00:00
danieldg
6d03943426 Remove InspIRCd* parameters and fields
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11763 e03df62e-2008-0410-955e-edbf42e46eb7
2009-09-26 14:13:13 +00:00
w00t
aefbcfd22f win: vs2010 requires this to link in process memory retrieval stuff
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11521 e03df62e-2008-0410-955e-edbf42e46eb7
2009-08-15 05:16:26 +00:00
w00t
b50bf7a2ce win: don't define error constants on VS2009, they're defined for us (finally)
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11520 e03df62e-2008-0410-955e-edbf42e46eb7
2009-08-15 05:02:29 +00:00
w00t
6d2182da18 Fix types on Windows. Hooray for not supporting stdint.h. Thanks to Special.
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11471 e03df62e-2008-0410-955e-edbf42e46eb7
2009-08-03 17:42:26 +00:00
peavey
9b35fab349 Fix our getops implementation on windows. Have optind available, and make sure it always points to the next entry in the argv list as described by POSIX.
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11466 e03df62e-2008-0410-955e-edbf42e46eb7
2009-08-02 22:36:45 +00:00
peavey
1a9b84820c No forget using windows' broken inet_pton and inet_ntop, they are not POSIX compliant and just causes more compile errors. We use our own, period.
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11460 e03df62e-2008-0410-955e-edbf42e46eb7
2009-08-02 18:08:49 +00:00
peavey
2f1466ee94 Since Windows SDK6.0a inet_pton and inet_ntop is defined if (NTDDI_VERSION >= NTDDI_LONGHORN). I found a similar fix in pythons socketcode and thus think this is fine.
Fixes the breakage Brain mentions in r11407.

git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11459 e03df62e-2008-0410-955e-edbf42e46eb7
2009-08-02 17:42:31 +00:00
brain
2bb40c5b23 more fixes. inet_pton is now in error, this is because the windows 6.0 sdk defines it, we need some kind of ifdef or something around this to not define our own if we have the 6.0 SDK. Again i will check this if i have chance, otherwise... :p
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11407 e03df62e-2008-0410-955e-edbf42e46eb7
2009-06-12 16:34:23 +00:00
danieldg
85a787b92b usleep() is no longer needed, and should not be needed in the future
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11252 e03df62e-2008-0410-955e-edbf42e46eb7
2009-03-23 18:48:58 +00:00
psychon
b6dbd6caab Update all wiki links to point to the new wiki. This was done automatically with the following command, only .Makefile.inc got some indent fixups by hand.
for file in $(find -type f -and -not -path '*/.svn/*' -and -not -name '*.so') ; do sed -e 's#http://www.inspircd.org/wiki#http://wiki.inspircd.org#' -e 's#http://wiki.inspircd.org/index.php/#http://wiki.inspircd.org/#' -i $file ; done


git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11223 e03df62e-2008-0410-955e-edbf42e46eb7
2009-03-15 12:42:35 +00:00
w00t
56d0bc899d Fix win32 build issue.
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11204 e03df62e-2008-0410-955e-edbf42e46eb7
2009-03-10 23:49:55 +00:00
w00t
43847ec9c7 Update copyrights for 2009.
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@10932 e03df62e-2008-0410-955e-edbf42e46eb7
2009-01-02 18:16:05 +00:00
w00t
97cc4bf672 Place CRT debug defines in win32wrapper.h, so they are defined everywhere. This was also incorrectly inside an ifndef WINDOWS, and hadbeen for a while. (oops.)
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@10917 e03df62e-2008-0410-955e-edbf42e46eb7
2008-12-27 03:18:51 +00:00
special
1b290edc9c Patch by dz to remove the one usage of strdup/strtok_r, which is very un-C++ behavior (and silly, since we have sepstream)
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@10543 e03df62e-2008-0410-955e-edbf42e46eb7
2008-09-14 03:30:39 +00:00
brain
d27af79ee0 sql api and m_mysql compile fixes for windows
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@10393 e03df62e-2008-0410-955e-edbf42e46eb7
2008-09-05 08:42:41 +00:00
brain
a539875ecc Properly give the service specific exit code on failure to start. Now we just need to find out how to retrieve this
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@10240 e03df62e-2008-0410-955e-edbf42e46eb7
2008-08-24 19:19:57 +00:00
brain
a6cf47a2cd work in progress
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@10238 e03df62e-2008-0410-955e-edbf42e46eb7
2008-08-24 19:08:36 +00:00
brain
2c5db1dfcb add support for windows service. This now is part of inspircd itself being as we have native build. It doesnt quite work yet in all the ways it should.
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@10193 e03df62e-2008-0410-955e-edbf42e46eb7
2008-08-21 11:01:51 +00:00
brain
bc73d93718 properly coreexport the getcpu() function etc
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@10184 e03df62e-2008-0410-955e-edbf42e46eb7
2008-08-20 11:47:52 +00:00
brain
1bdc61df77 WMI calls for getting cpu percentage of current process. This code was a biatch and a half.
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@10179 e03df62e-2008-0410-955e-edbf42e46eb7
2008-08-20 09:56:16 +00:00
brain
1ee5092d75 fix compile errors under debug profile in windows.
fix some warnings too.

git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@10108 e03df62e-2008-0410-955e-edbf42e46eb7
2008-08-06 11:59:17 +00:00
brain
afe99da316 Base stuff for named pipe IPC
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@9910 e03df62e-2008-0410-955e-edbf42e46eb7
2008-06-15 16:21:09 +00:00
brain
af30d19ff4 Make FD_SETSIZE larger. We wont ever have this many users via select() on windows, this is to test out some stuff mainly.
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@9726 e03df62e-2008-0410-955e-edbf42e46eb7
2008-05-15 19:45:13 +00:00
brain
5862157a08 Mapping for mkdir() to _mkdir() for windows
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@9473 e03df62e-2008-0410-955e-edbf42e46eb7
2008-04-12 17:57:53 +00:00
brain
f5fc5d6fab Why the fuck are standard functions all prefixed with a _ on windows???
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@9046 e03df62e-2008-0410-955e-edbf42e46eb7
2008-02-26 22:27:54 +00:00
brain
a6e0557f91 #define _popen popen
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@9036 e03df62e-2008-0410-955e-edbf42e46eb7
2008-02-26 16:46:07 +00:00
brain
a300841244 Fix here too, to allow FD_SETSIZE > 64. If this doesnt work it will need to be set with /D on the commandline, but it looks like this is the best place to put it in an include (earliest possible place)
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8890 e03df62e-2008-0410-955e-edbf42e46eb7
2008-02-10 23:30:31 +00:00
w00t
e4acbc95b8 Header update: 2007 -> 2008
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8694 e03df62e-2008-0410-955e-edbf42e46eb7
2008-01-10 13:27:07 +00:00
brain
7c5ab78be2 Fix here too
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8237 e03df62e-2008-0410-955e-edbf42e46eb7
2007-10-20 17:36:47 +00:00
brain
e4aa8c9513 Remove crashdump stuff
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8192 e03df62e-2008-0410-955e-edbf42e46eb7
2007-10-14 20:13:54 +00:00
burlex
e51c8a5cf6 * Fixed some incorrect declarations in IOCPEngine
* Fixed the virtual socket wrapper functions in IOCPEngine {these should really be inlined on unix}
* Fixed several compilation issues under Win32
* Fixed calls to close() which should've been changed to SE->Close()
+ Added a crashdump saving system to Win32 builds. Dumps are saved in the format of dump-<exename>-<year>-<month>-<day>-<hour>-<minute>-<second>.dmp in the working directory. Enabled by default, undefine ENABLE_CRASHDUMPS to disable.
+ Added m_operflood, this is a module I've had lying around for some time but some users may like it as it allows unreal-like behaviour without increasing flood limits for non-opers.

git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8015 e03df62e-2008-0410-955e-edbf42e46eb7
2007-09-04 12:36:05 +00:00
brain
4a91fd0ddf Move the close() wrapper out of the win32wrapper.h, and into its new proper place at SocketEngine::Close()
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@7812 e03df62e-2008-0410-955e-edbf42e46eb7
2007-08-23 22:30:46 +00:00
brain
d0d36795e8 Craquity craq De-craq!
This is probably broken on windows, do not attempt to use there yet unless you like broken stuff. Cant say for sure as i havent even tried to build yet and most likely wont tonight.
--- Abstract most of the berkely socket API out into SocketEngine derived classes. SocketEngine base class implements standard berkely sockets that 'real mens systems' like linux
and freebsd have. For socketengine_iocp we implement the windows specific nonesense like the special things needed for udp and accept (ick).
All this to eliminate a bunch of ifdefs.


git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@7810 e03df62e-2008-0410-955e-edbf42e46eb7
2007-08-23 22:06:04 +00:00
burlex
8cebdce093 * include/caller.h will now compile correctly on Windows platforms.
+ Implemented gettimeofday in win32 wrapper, link rtt's will now display in milliseconds.
* SocketEngine::BoundsCheckFd will now handle Windows event handler cases correctly. (fixing writing to sockets not working)
* Fixed VC71 project.

git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@7723 e03df62e-2008-0410-955e-edbf42e46eb7
2007-08-15 20:41:30 +00:00