summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorcertus certus@31f1291d-b8d6-0310-a050-a5561fc1590b <certus certus@31f1291d-b8d6-0310-a050-a5561fc1590b@5417fbe8-f217-4b02-8779-1006273d7864>2006-03-14 15:01:51 +0000
committercertus certus@31f1291d-b8d6-0310-a050-a5561fc1590b <certus certus@31f1291d-b8d6-0310-a050-a5561fc1590b@5417fbe8-f217-4b02-8779-1006273d7864>2006-03-14 15:01:51 +0000
commitf6531372757188ad4853eb7d355299317603216f (patch)
treebebbc53549b185d18352badb52c1efe36ea458b1
parentba935451d8eb2e90d334676f06c5bf5c8898a4f0 (diff)
# BUILD : 1.7.13 (1008) # BUGS : 473 474 # NOTES : gcc switches and win98 stop, thx 2 trystan
git-svn-id: svn://svn.anope.org/anope/trunk@1008 31f1291d-b8d6-0310-a050-a5561fc1590b git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/trunk@733 5417fbe8-f217-4b02-8779-1006273d7864
-rw-r--r--Changes6
-rw-r--r--include/extern.h5
-rw-r--r--src/core/Makefile2
-rw-r--r--src/core/Makefile.sub2
-rw-r--r--src/init.c10
-rw-r--r--src/main.c6
-rw-r--r--src/misc.c148
-rw-r--r--src/modules/Makefile2
-rw-r--r--src/modules/Makefile.sub2
-rw-r--r--src/protocol/Makefile2
-rw-r--r--src/protocol/Makefile.sub2
-rw-r--r--version.log6
12 files changed, 181 insertions, 12 deletions
diff --git a/Changes b/Changes
index 8cf768b2d..9012c049b 100644
--- a/Changes
+++ b/Changes
@@ -46,10 +46,12 @@ Provided by illu. <illu@rs2i.net> - 2006
01/25 F Updated the french language file. [ #00]
Provided by Trystan <trystan@nomadirc.net> - 2006
-03/05 F Fixed moduleNoteiceLang() issue. [#469]
+03/14 A Anope will now terminate on Win98. Added version check. [#473]
+03/01 A Clarity on module loading status numbers. [#435]
+03/14 F Fixed gcc switches for modules. [#474]
03/12 F moduleGetLastBuffer() returning NULL on alias and pseudo clients [#476]
03/12 F nickIsServices() returns correctly for aliases [ #00]
-03/01 A Clarity on module loading status numbers. [#435]
+03/05 F Fixed moduleNoteiceLang() issue. [#469]
03/01 F Applied ultiamte3 chan sqline patch. [#412]
03/01 F Crash when not giving user for moduleGetLangString. [#454]
02/23 F Usermatching possible null arg on sstrdup. [ #00]
diff --git a/include/extern.h b/include/extern.h
index 5fc1ff1c5..2f4feb434 100644
--- a/include/extern.h
+++ b/include/extern.h
@@ -1350,4 +1350,9 @@ E void eventprintf(char *fmt, ...);
E void event_process_hook(char *name, int argc, char **argv);
E void send_event(char *name, int argc, ...);
+#ifdef _WIN32
+E char *GetWindowsVersion(void) ;
+E int SupportedWindowsVersion(void);
+#endif
+
#endif /* EXTERN_H */
diff --git a/src/core/Makefile b/src/core/Makefile
index 602d43bec..254e8d0d3 100644
--- a/src/core/Makefile
+++ b/src/core/Makefile
@@ -9,7 +9,7 @@ MAKEARGS = 'CFLAGS=${CFLAGS}' 'CC=${CC}' 'ANOPELIBS=${ANOPELIBS}' \
OBJECTS= $(SRCS:.c=.o)
SO_FILES=$(OBJECTS:.o=.s)
-CDEFS= -g -rdynamic -Wall
+CDEFS= -rdynamic -Wall
all: modules subs
diff --git a/src/core/Makefile.sub b/src/core/Makefile.sub
index 7c4744ce8..21dfab3d7 100644
--- a/src/core/Makefile.sub
+++ b/src/core/Makefile.sub
@@ -7,7 +7,7 @@ MAKEARGS = 'CFLAGS=${CFLAGS}' 'CC=${CC}' 'ANOPELIBS=${ANOPELIBS}' \
OBJECTS= $(SRCS:.c=.o)
SO_FILES=$(OBJECTS:.o=.s)
-CDEFS= -g -rdynamic -Wall
+CDEFS= -rdynamic -Wall
all: module
diff --git a/src/init.c b/src/init.c
index f0212cc70..04f2e64b9 100644
--- a/src/init.c
+++ b/src/init.c
@@ -405,6 +405,9 @@ int openlog_failed = 0, openlog_errno = 0;
int init_primary(int ac, char **av)
{
int started_from_term = isatty(0) && isatty(1) && isatty(2);
+#ifdef _WIN32
+ char *winver;
+#endif
/* Set file creation mask and group ID. */
#if defined(DEFUMASK) && HAVE_UMASK
@@ -484,6 +487,13 @@ int init_secondary(int ac, char **av)
return -1;
}
}
+ if (!SupportedWindowsVersion()) {
+ winver = GetWindowsVersion();
+ alog("%s is not a supported version of Windows", winver);
+ free(winver);
+ return -1;
+ }
+
if (!nofork) {
alog("Launching Anope into the background");
FreeConsole();
diff --git a/src/main.c b/src/main.c
index beb488d23..06c4bb550 100644
--- a/src/main.c
+++ b/src/main.c
@@ -655,6 +655,10 @@ void do_backtrace(int show_segheader)
alog("Backtrace: not available on this platform");
#endif
#else
- alog("Backtrace: not available on this windows");
+ char *winver;
+ winver = GetWindowsVersion();
+ alog("Backtrace: not available on Windows");
+ alog("Running %S", winver);
+ free(winver);
#endif
}
diff --git a/src/misc.c b/src/misc.c
index 563b39e86..855de4725 100644
--- a/src/misc.c
+++ b/src/misc.c
@@ -1188,5 +1188,149 @@ char **buildStringList(char *src, int *number)
return list;
}
-
-/* EOF */
+#ifdef _WIN32
+char *GetWindowsVersion(void)
+{
+ OSVERSIONINFOEX osvi;
+ BOOL bOsVersionInfoEx;
+ char buf[BUFSIZE];
+ char *extra;
+
+ ZeroMemory(&osvi, sizeof(OSVERSIONINFOEX));
+ osvi.dwOSVersionInfoSize = sizeof(OSVERSIONINFOEX);
+
+ if(!(bOsVersionInfoEx = GetVersionEx((OSVERSIONINFO *) &osvi))) {
+ osvi.dwOSVersionInfoSize = sizeof (OSVERSIONINFO);
+ if (!GetVersionEx((OSVERSIONINFO *)&osvi)) {
+ return sstrdup("");
+ }
+ }
+
+ switch (osvi.dwPlatformId) {
+ // test for the Windows NT product family.
+ case VER_PLATFORM_WIN32_NT:
+ if (osvi.dwMajorVersion == 6 && osvi.dwMinorVersion == 0) {
+ if (osvi.wSuiteMask & VER_SUITE_ENTERPRISE) {
+ extra = sstrdup("Enterprise Edition");
+ } else if (osvi.wSuiteMask & VER_SUITE_DATACENTER) {
+ extra = sstrdup("Datacenter Edition");
+ } else {
+ extra = sstrdup(" ");
+ }
+ snprintf(buf, sizeof(buf), "Microsoft Windows Vista %s", extra);
+ free(extra);
+ }
+ if (osvi.dwMajorVersion == 5 && osvi.dwMinorVersion == 2) {
+ if (osvi.wSuiteMask & VER_SUITE_DATACENTER) {
+ extra = sstrdup("Datacenter Edition");
+ } else if (osvi.wSuiteMask & VER_SUITE_ENTERPRISE) {
+ extra = sstrdup("Enterprise Edition");
+ } else if (osvi.wSuiteMask & VER_SUITE_COMPUTE_SERVER) {
+ extra = sstrdup("Compute Cluster Edition");
+ } else if (osvi.wSuiteMask == VER_SUITE_BLADE) {
+ extra = sstrdup("Web Edition");
+ } else {
+ extra = sstrdup("Standard Edition");
+ }
+ snprintf(buf, sizeof(buf), "Microsoft Windows Server 2003 Family %s", extra);
+ free(extra);
+ }
+ if (osvi.dwMajorVersion == 5 && osvi.dwMinorVersion == 1) {
+ if (osvi.wSuiteMask & VER_SUITE_EMBEDDEDNT) {
+ extra = sstrdup("Embedded");
+ } else if (osvi.wSuiteMask & VER_SUITE_PERSONAL) {
+ extra = sstrdup("Home Edition");
+#ifdef SM_MEDIACENTER
+ } else if (GetSystemMetrics(SM_MEDIACENTER)) {
+ extra = sstrdup("Media Center Edition");
+#endif
+#ifdef SM_TABLETPC
+ } else if (GetSystemMetrics(SM_TABLETPC)) {
+ extra = sstrdup("Tablet Edition");
+#endif
+ } else {
+ extra = sstrdup(" ");
+ }
+ snprintf(buf, sizeof(buf), "Microsoft Windows XP %s", extra);
+ free(extra);
+ }
+ if (osvi.dwMajorVersion == 5 && osvi.dwMinorVersion == 0) {
+ if (osvi.wSuiteMask & VER_SUITE_DATACENTER) {
+ extra = sstrdup("Datacenter Server");
+ } else if (osvi.wSuiteMask & VER_SUITE_ENTERPRISE) {
+ extra = sstrdup("Advanced Server");
+ } else {
+ extra = sstrdup("Server");
+ }
+ snprintf(buf, sizeof(buf), "Microsoft Windows 2000 %s", extra);
+ free(extra);
+ }
+ if (osvi.dwMajorVersion <= 4) {
+ if (osvi.wSuiteMask & VER_SUITE_ENTERPRISE) {
+ extra = sstrdup("Server 4.0, Enterprise Edition");
+ } else {
+ extra = sstrdup("Server 4.0");
+ }
+ snprintf(buf, sizeof(buf), "Microsoft Windows NT %s", extra);
+ free(extra);
+ }
+ case VER_PLATFORM_WIN32_WINDOWS:
+ if (osvi.dwMajorVersion == 4 && osvi.dwMinorVersion == 0) {
+ if (osvi.szCSDVersion[1] == 'C' || osvi.szCSDVersion[1] == 'B') {
+ extra = sstrdup("OSR2");
+ } else {
+ extra = sstrdup(" ");
+ }
+ snprintf(buf, sizeof(buf), "Microsoft Windows 95 %s", extra);
+ free(extra);
+ }
+ if (osvi.dwMajorVersion == 4 && osvi.dwMinorVersion == 10) {
+ if (osvi.szCSDVersion[1] == 'A') {
+ extra = sstrdup("SE");
+ } else {
+ extra = sstrdup(" ");
+ }
+ snprintf(buf, sizeof(buf), "Microsoft Windows 98 %s", extra);
+ free(extra);
+ }
+ if (osvi.dwMajorVersion == 4 && osvi.dwMinorVersion == 90) {
+ snprintf(buf, sizeof(buf), "Microsoft Windows Millennium Edition");
+ }
+ }
+ return sstrdup(buf);
+}
+
+int SupportedWindowsVersion(void)
+{
+ OSVERSIONINFOEX osvi;
+ BOOL bOsVersionInfoEx;
+
+ ZeroMemory(&osvi, sizeof(OSVERSIONINFOEX));
+ osvi.dwOSVersionInfoSize = sizeof(OSVERSIONINFOEX);
+
+ if(!(bOsVersionInfoEx = GetVersionEx((OSVERSIONINFO *) &osvi))) {
+ osvi.dwOSVersionInfoSize = sizeof (OSVERSIONINFO);
+ if (!GetVersionEx((OSVERSIONINFO *)&osvi)) {
+ return 0;
+ }
+ }
+
+ switch (osvi.dwPlatformId) {
+ // test for the Windows NT product family.
+ case VER_PLATFORM_WIN32_NT:
+ /* win nt4 */
+ if (osvi.dwMajorVersion <= 4) {
+ return 0;
+ }
+ /* the rest */
+ return 1;
+ /* win95 win98 winME */
+ case VER_PLATFORM_WIN32_WINDOWS:
+ return 0;
+ }
+ return 0;
+}
+
+#endif
+
+/* EOF */
diff --git a/src/modules/Makefile b/src/modules/Makefile
index 602d43bec..254e8d0d3 100644
--- a/src/modules/Makefile
+++ b/src/modules/Makefile
@@ -9,7 +9,7 @@ MAKEARGS = 'CFLAGS=${CFLAGS}' 'CC=${CC}' 'ANOPELIBS=${ANOPELIBS}' \
OBJECTS= $(SRCS:.c=.o)
SO_FILES=$(OBJECTS:.o=.s)
-CDEFS= -g -rdynamic -Wall
+CDEFS= -rdynamic -Wall
all: modules subs
diff --git a/src/modules/Makefile.sub b/src/modules/Makefile.sub
index 67b9c2763..300b13116 100644
--- a/src/modules/Makefile.sub
+++ b/src/modules/Makefile.sub
@@ -7,7 +7,7 @@ MAKEARGS = 'CFLAGS=${CFLAGS}' 'CC=${CC}' 'ANOPELIBS=${ANOPELIBS}' \
OBJECTS= $(SRCS:.c=.o)
SO_FILES=$(OBJECTS:.o=.s)
-CDEFS= -g -rdynamic -Wall
+CDEFS= -rdynamic -Wall
all: module
diff --git a/src/protocol/Makefile b/src/protocol/Makefile
index 602d43bec..254e8d0d3 100644
--- a/src/protocol/Makefile
+++ b/src/protocol/Makefile
@@ -9,7 +9,7 @@ MAKEARGS = 'CFLAGS=${CFLAGS}' 'CC=${CC}' 'ANOPELIBS=${ANOPELIBS}' \
OBJECTS= $(SRCS:.c=.o)
SO_FILES=$(OBJECTS:.o=.s)
-CDEFS= -g -rdynamic -Wall
+CDEFS= -rdynamic -Wall
all: modules subs
diff --git a/src/protocol/Makefile.sub b/src/protocol/Makefile.sub
index 67b9c2763..300b13116 100644
--- a/src/protocol/Makefile.sub
+++ b/src/protocol/Makefile.sub
@@ -7,7 +7,7 @@ MAKEARGS = 'CFLAGS=${CFLAGS}' 'CC=${CC}' 'ANOPELIBS=${ANOPELIBS}' \
OBJECTS= $(SRCS:.c=.o)
SO_FILES=$(OBJECTS:.o=.s)
-CDEFS= -g -rdynamic -Wall
+CDEFS= -rdynamic -Wall
all: module
diff --git a/version.log b/version.log
index eca13372e..866595387 100644
--- a/version.log
+++ b/version.log
@@ -9,10 +9,14 @@ VERSION_MAJOR="1"
VERSION_MINOR="7"
VERSION_PATCH="13"
VERSION_EXTRA="-svn"
-VERSION_BUILD="1007"
+VERSION_BUILD="1008"
# $Log$
#
+# BUILD : 1.7.13 (1008)
+# BUGS : 473 474
+# NOTES : gcc switches and win98 stop, thx 2 trystan
+#
# BUILD : 1.7.13 (1007)
# BUGS : 476
# NOTES : Applied Trystan's patch.