aboutsummaryrefslogtreecommitdiff
path: root/src/dns.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Windows: In-depth cleanup (see details)Gravatar ChrisTX2012-10-121-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | -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
* Fix more undefined behavior caused by referencing the returned buffer by ↵Gravatar attilamolnar2012-09-301-1/+3
| | | | | | std::string::c_str() when the object is temporary See 83c7cc45daf6fb1f8c36f15297a4657e45a34e88
* Replace copyright headers with headers granting specific authors copyrightGravatar Robby-2012-04-191-8/+19
|
* Fixed infinite loop cauesd by invalid dns packetsGravatar Adam2012-03-271-2/+9
|
* Fixed out of bounds memory access from malformed DNS queries that have an ↵Gravatar Adam2012-03-261-1/+1
| | | | invalid length label. Introduced in a6a07de0daa353bcd29056a4535a9c4784c113c8.
* dns: cleanup ResultIsReady() prototypeGravatar William Pitcock2012-03-201-6/+6
|
* dns: more hardeningGravatar William Pitcock2012-03-201-2/+7
| | | | | | | - don't trust rr.rdlength - don't accept replies we know are impossible for AAAA/A records - don't try to process record types we do not know about specifically (this behaviour just leads to disaster)
* dns: reject messages with lengths larger than DNSHeader with prejudiceGravatar William Pitcock2012-03-201-10/+33
| | | | This also includes when decompressing name entries.
* dns: iterators which are integer should always be unsigned, else an integer ↵Gravatar William Pitcock2012-03-201-1/+1
| | | | | | underflow is possible. Signed-off-by: William Pitcock <nenolod@dereferenced.org>
* Define comparator for irc::sockets::sockaddrsGravatar Daniel De Graaf2010-04-261-1/+1
| | | | | This only compares IP/port, which ignores IPv6 flow information and scope ID, which aren't important in testing for equality.
* Add debug output for received DNS packetsGravatar Daniel De Graaf2010-04-261-0/+4
|
* Change DNS binding to avoid BindSocket which could use the wrong address familyGravatar Daniel De Graaf2010-04-251-20/+11
|
* Add better debug output to dns.cppGravatar Daniel De Graaf2010-04-241-4/+24
|
* Calling OnError from Resolver's constructor is broken; just use the exceptionGravatar danieldg2010-03-231-4/+1
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@12657 e03df62e-2008-0410-955e-edbf42e46eb7
* Add random number generation functions to InspIRCd class.Gravatar danieldg2010-02-091-16/+3
| | | | | | | Default implementation uses libc random(), which can be better than rand(). If gnutls is loaded, gcrypt will be used to provide random numbers. git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@12404 e03df62e-2008-0410-955e-edbf42e46eb7
* Remove excessive gettimeofday system callsGravatar danieldg2010-01-181-5/+14
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@12293 e03df62e-2008-0410-955e-edbf42e46eb7
* ...because every now and again, i have to do a massive commit.Gravatar brain2010-01-111-1/+1
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@12248 e03df62e-2008-0410-955e-edbf42e46eb7
* Get rid of OpenTCPSocketGravatar danieldg2009-10-241-2/+3
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11969 e03df62e-2008-0410-955e-edbf42e46eb7
* Make irc::sockets::* parameters consistent, add irc::sockets::maskGravatar danieldg2009-10-221-1/+1
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11953 e03df62e-2008-0410-955e-edbf42e46eb7
* Fix crash due to null address in DNSGravatar danieldg2009-10-031-13/+2
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11797 e03df62e-2008-0410-955e-edbf42e46eb7
* Get rid of a bunch of memory-wasting C-style stringsGravatar danieldg2009-10-031-58/+13
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11796 e03df62e-2008-0410-955e-edbf42e46eb7
* Remove include/inspircd_se_config.h and socketengine-specific headersGravatar danieldg2009-09-301-1/+0
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11784 e03df62e-2008-0410-955e-edbf42e46eb7
* Remove InspIRCd* parameters and fieldsGravatar danieldg2009-09-261-14/+11
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11763 e03df62e-2008-0410-955e-edbf42e46eb7
* Clean up SocketEngine interface to allow edge-triggered I/O and sockets that ↵Gravatar danieldg2009-09-261-1/+1
| | | | | | do not force readability. git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11760 e03df62e-2008-0410-955e-edbf42e46eb7
* Change Extensible to use strongly typed entriesGravatar danieldg2009-09-131-1/+0
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11696 e03df62e-2008-0410-955e-edbf42e46eb7
* Valgrind cleanup: fix segfault on exitGravatar danieldg2009-09-021-1/+2
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11616 e03df62e-2008-0410-955e-edbf42e46eb7
* Valgrind cleanup: finish destructor creationGravatar danieldg2009-09-021-1/+6
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11615 e03df62e-2008-0410-955e-edbf42e46eb7
* Remove unneeded #ifdef IPV6 linesGravatar danieldg2009-09-011-8/+0
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11582 e03df62e-2008-0410-955e-edbf42e46eb7
* Remove now-unused insp_sockaddr and insp_inaddr typesGravatar danieldg2009-09-011-48/+0
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11579 e03df62e-2008-0410-955e-edbf42e46eb7
* Remove needless sockaddr[2] allocations, replace with ↵Gravatar danieldg2009-09-011-13/+6
| | | | | | irc::sockets::sockaddrs union git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11574 e03df62e-2008-0410-955e-edbf42e46eb7
* Strip SUPPORT_IP6LINKS #defineGravatar danieldg2009-09-011-6/+1
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11572 e03df62e-2008-0410-955e-edbf42e46eb7
* Move list of open ports out of Config objectGravatar danieldg2009-07-011-1/+1
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11423 e03df62e-2008-0410-955e-edbf42e46eb7
* Roll back mysterious DNS change from 2007 which broke multiple-answerGravatar w00t2009-06-301-14/+11
| | | | | | | DNS requests (CNAME, A). It looks like this was to be related to bitmask dnsbl support, but it would never have worked anyway (resultnum was always 0..). git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11419 e03df62e-2008-0410-955e-edbf42e46eb7
* Remove the unused RESOLVER_NOTREADY define and fix the spelling of ↵Gravatar psychon2009-04-051-1/+1
| | | | | | RESLOVER_FORCEUNLOAD git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11286 e03df62e-2008-0410-955e-edbf42e46eb7
* Update all wiki links to point to the new wiki. This was done automatically ↵Gravatar psychon2009-03-151-1/+1
| | | | | | | | | 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
* Nuke trailing spacesGravatar peavey2009-02-141-13/+10
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11105 e03df62e-2008-0410-955e-edbf42e46eb7
* Update copyrights for 2009.Gravatar w00t2009-01-021-1/+1
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@10932 e03df62e-2008-0410-955e-edbf42e46eb7
* Second attempt at time() -> SI->Time(), now problems with the original were ↵Gravatar w00t2008-11-011-1/+1
| | | | | | | | | fixed. (SI::TIME was not initialised). Thanks Namegduf! (Please test, all, valdebug etc, report odd behaviour/warnings!) git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@10783 e03df62e-2008-0410-955e-edbf42e46eb7
* Revert earlier time() -> SI->Time() diff for now, this causes problems with ↵Gravatar w00t2008-10-231-1/+1
| | | | | | dns.cpp in mysterious ways.. seemingly a bad pointer there somehow..? git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@10695 e03df62e-2008-0410-955e-edbf42e46eb7
* Patch from Namegduf converting all instances (where possible) of time() -> ↵Gravatar w00t2008-10-231-1/+1
| | | | | | ServerInstance->Time(). Thanks! git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@10691 e03df62e-2008-0410-955e-edbf42e46eb7
* Merge commit 'danieldg/out-12'Gravatar w00t2008-09-131-10/+5
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@10540 e03df62e-2008-0410-955e-edbf42e46eb7
* Remove last vestige of libircdfoo, by changing tag into a single ↵Gravatar w00t2008-07-291-1/+1
| | | | | | identifier marking object as requiring compilation into a .o (minor commit) git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@10076 e03df62e-2008-0410-955e-edbf42e46eb7
* Now builds ok on gcc 4.3, not tested fully. Also UGLY, oh we hate you GCC, ↵Gravatar brain2008-06-121-2/+2
| | | | | | why couldnt you just use TR1 from the start??? git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@9894 e03df62e-2008-0410-955e-edbf42e46eb7
* Merge in large patchset from GreenReaper, useful fixes for freeing a ton of ↵Gravatar brain2008-04-211-1/+0
| | | | | | different things on shutdown for tidyness, and a few stack corruption fixes in the mode handler git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@9565 e03df62e-2008-0410-955e-edbf42e46eb7
* Apply patches to remove 200-odd dll limit on windows, made by GreenReaper, ↵Gravatar brain2008-04-181-0/+2
| | | | | | lots of thanks! git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@9533 e03df62e-2008-0410-955e-edbf42e46eb7
* Commit -Wformat=2 -Wmissing-format-attributes, printf-like functions in ↵Gravatar aquanight2008-03-301-1/+1
| | | | | | inspircd now get treated like printf (meaning compile-time check goodness) in GCC git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@9217 e03df62e-2008-0410-955e-edbf42e46eb7
* Convert remaining InspIRCd::Log() calls to new logging systemGravatar aquanight2008-02-221-14/+14
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@9001 e03df62e-2008-0410-955e-edbf42e46eb7
* Add -Wshadow to cflags, and fix a bunch of warnings that come with it. Add a ↵Gravatar w00t2008-02-111-2/+2
| | | | | | note to webirc that needs looking at. git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8892 e03df62e-2008-0410-955e-edbf42e46eb7
* Header update: 2007 -> 2008Gravatar w00t2008-01-101-1/+1
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8694 e03df62e-2008-0410-955e-edbf42e46eb7
* NOTE: our stuff for parsing multiple dns replies for dnsbl with an 'A record ↵Gravatar brain2007-11-121-39/+37
| | | | | | | | | reply' is broken. We will fix this at some later date. It was breaking other stuff git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8591 e03df62e-2008-0410-955e-edbf42e46eb7