summaryrefslogtreecommitdiff
path: root/src/inspircd.cpp
diff options
context:
space:
mode:
authorw00t <w00t@e03df62e-2008-0410-955e-edbf42e46eb7>2007-07-03 11:44:35 +0000
committerw00t <w00t@e03df62e-2008-0410-955e-edbf42e46eb7>2007-07-03 11:44:35 +0000
commitc8c3eaf9f77f7c5e65a1d5c9a0d6595cc812f7a1 (patch)
treecf6dfa09271e784b7cbf83a754daebbe96d9bcd6 /src/inspircd.cpp
parent9ab3cd89031d8c2a45d0837a493d48c42d53d655 (diff)
Fix off-by-one reported by Darom in bug #339
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@7421 e03df62e-2008-0410-955e-edbf42e46eb7
Diffstat (limited to 'src/inspircd.cpp')
-rw-r--r--src/inspircd.cpp89
1 files changed, 89 insertions, 0 deletions
diff --git a/src/inspircd.cpp b/src/inspircd.cpp
index 858862e9d..3ccdfca54 100644
--- a/src/inspircd.cpp
+++ b/src/inspircd.cpp
@@ -40,6 +40,8 @@
#include "typedefs.h"
#include "command_parse.h"
#include "exitcodes.h"
+#include "wildcard.h"
+
#ifdef WIN32
@@ -1150,6 +1152,93 @@ int InspIRCd::Run()
int main(int argc, char** argv)
{
+ struct timeval start, stop;
+ std::string str;
+ std::string pattern;
+ char *strp, *patternp;
+
+ if (argc < 3)
+ {
+ printf("not enough args: pattern string\n");
+ exit(0);
+ }
+
+ pattern = argv[1];
+ str = argv[2];
+
+ patternp = argv[1];
+ strp = argv[2];
+
+ printf("result of std::string.find: ");
+
+ if (str.find(pattern) != string::npos)
+ {
+ printf("true\n");
+ }
+ else
+ {
+ printf("false\n");
+ }
+
+ printf("result of match(): ");
+
+ if (match(strp, patternp))
+ {
+ printf("true\n");
+ }
+ else
+ {
+ printf("false\n");
+ }
+
+
+ printf("result of strstr(): ");
+
+ if (strstr(strp, patternp))
+ {
+ printf("true\n");
+ }
+ else
+ {
+ printf("false\n");
+ }
+
+ gettimeofday(&start, NULL);
+ for (int i = 0; i < 30000; i++)
+ {
+ str.find(pattern);
+ }
+ gettimeofday(&stop, NULL);
+
+ printf("std::string.find: %lds and %ldus\n", stop.tv_sec - start.tv_sec, stop.tv_usec - start.tv_usec);
+
+
+ gettimeofday(&start, NULL);
+ for (int i = 0; i < 30000; i++)
+ {
+ match(strp, patternp);
+ }
+ gettimeofday(&stop, NULL);
+
+ printf("match(): %lds and %ldus\n", stop.tv_sec - start.tv_sec, stop.tv_usec - start.tv_usec);
+
+
+
+ gettimeofday(&start, NULL);
+ for (int i = 0; i < 30000; i++)
+ {
+ strstr(strp, patternp);
+ }
+ gettimeofday(&stop, NULL);
+
+ printf("strstr(): %lds and %ldus\n", stop.tv_sec - start.tv_sec, stop.tv_usec - start.tv_usec);
+
+ exit(0);
+
+
+
+
+
SI = new InspIRCd(argc, argv);
SI->Run();
delete SI;