weezing

Tracks DNS changes via AXFR/IXFR
git clone https://git.zluudg.se/weezing.git
Log | Files | Refs | README | LICENSE

DateCommit messageAuthorFiles+-
2026-08-19 22:03Added licenseLeon Fernandez1+17-0
2026-08-19 21:47Set distribution in buildinfoLeon Fernandez1+2-1
2026-07-29 10:39Mega overhaul.zluudg109+2003-4137
2026-07-26 20:53Minor gitignore changeLeon Fernandez1+1-0
2026-07-10 21:41Update LICENSELeon Fernandez1+1-1
2026-05-22 22:52Cascade delete reports properlyzluudg1+3-3
2026-03-06 16:03Removed comment in graph scriptzluudg1+0-6
2026-03-06 16:02Scripts that spits out a dotfile representing a domain's historyzluudg1+194-0
2026-02-15 21:29Skip conflicts in Resolution_Ipinfo junction tablezluudg1+1-1
2026-02-10 21:26different sql for detecting observed domain creations and recently created. beutify flux sqlzluudg3+30-1
2026-02-05 22:40go fmtzluudg4+52-52
2026-02-05 22:39config to set report limit and to sample one nameserver or use all when resolving IPszluudg5+44-6
2026-02-04 20:55go fmt and also more robust error handling in whois fetcher/parserzluudg5+22-8
2026-02-04 19:54don't poll inactive nameserverszluudg2+4-4
2026-02-04 08:29removed some unused functions and change dial timeout in udp53 dns clientzluudg3+2-62
2026-02-03 21:55adjustable timeout for dns clientzluudg4+15-3
2026-02-02 22:09lower owner reports limit, hardcoded for nowzluudg2+53-1
2026-01-24 21:42Folder for storing some useful SQL commandszluudg3+51-0
2026-01-23 21:53shorten dial timeout specificallyzluudg1+1-1
2026-01-23 21:50shorter timeout for clientzluudg1+2-0
2026-01-23 21:41don't let a bad envelope ruin the entire zone transferzluudg1+2-2
2026-01-22 23:36go fmtzluudg1+14-14
2026-01-22 23:36sample randomly if too many reportszluudg1+12-3
2026-01-22 22:59owner reports limitzluudg1+6-0
2026-01-14 12:10support for custom user agent stringzluudg1+4-1
2026-01-14 11:20single quotes in database schemazluudg1+21-21
2026-01-13 20:17go fmtzluudg10+471-473
2026-01-09 23:37RAM friendly AXFR handling Zone snapshots are stored in separate filezluudg27+942-263
2025-12-18 20:30go fmtzluudg2+2-3
2025-12-18 20:30save space, only store unique ipinfo rowszluudg6+36-17
2025-12-15 10:24trim space in looker responsezluudg1+2-1
2025-12-15 09:51go fmtzluudg8+222-222
2025-12-15 09:50make sure raw incoming records strings have spaces regularized when streaming to dbzluudg1+9-1
2025-12-14 20:30If zone is received via AXFR, stream it to database to save RAMzluudg13+339-158
2025-12-13 21:44removed unused .go filezluudg1+0-31
2025-12-13 20:56go fmtzluudg1+24-24
2025-12-13 20:56print warning for unrecognized reporter moduleszluudg1+10-0
2025-12-12 21:05slightly refined geo and asn looker implzluudg1+42-9
2025-12-11 23:38first attempt at geo looker implementationzluudg3+51-23
2025-12-11 23:06fake lookerzluudg4+57-7
2025-12-06 21:32skeleton code for geo and ASN lookupszluudg4+54-4
2025-12-04 12:40go fmtzluudg5+52-53
2025-11-27 22:46Support for reverse IP lookups Rename UDP queryer modulezluudg5+137-96
2025-11-24 10:36do not panic while resolving addresseszluudg1+11-2
2025-11-23 20:09do IP reports also on deleted nameserverszluudg13+78-53
2025-11-22 22:54re-use whois rows if info hasn't changed to save spacezluudg5+23-5
2025-11-22 21:52slightly more stable reporter when comms with server is shakyzluudg1+3-2
2025-11-19 22:20comment for my good memory about recursive queries triggered by DS changeszluudg1+1-0
2025-11-19 22:00comment for my good memory about saving space on whois reportszluudg1+2-0
2025-11-19 21:00actually query for ip addresseszluudg1+47-15
2025-11-19 19:30go fmtzluudg7+166-168
2025-11-19 16:18Skeleton code for udp queryer. Include fake ipinfo querying in app testzluudg9+133-35
2025-11-18 23:32use two report workers for app testzluudg1+1-1
2025-11-18 23:30for owner reports, send requests for authoritative nameservers to get multiple resolutions per reportzluudg11+154-97
2025-11-18 19:17stub for making queries during IP info gatheringzluudg6+76-19
2025-11-14 22:01slight change to resolution table to allow both recursive and non-recursive requestszluudg5+9-5
2025-11-13 22:21preserve line breaks when reading in whois over tcpzluudg1+1-0
2025-11-13 22:04go fmtzluudg4+39-39
2025-11-13 22:04possible to use WHOIS, but it fails for some reasonzluudg3+8-3
2025-11-13 21:36error check after scanning raw whoiszluudg1+5-0
2025-11-13 20:34first attempt att parser of whois datazluudg4+135-17
2025-11-13 15:55signed tarball with makefilezluudg1+3-0
2025-11-13 10:22Less verbose output when buildingzluudg1+2-2
2025-11-12 23:13Atomic report storing to avoid race conditions with multiple workers accidentally storing the same ip infozluudg3+52-84
2025-11-12 22:40go fmtzluudg13+276-278
2025-11-12 08:51Added test to make sure ipinfo is only collected once per ip and invocation. Currently failing :(zluudg4+57-0
2025-11-11 14:07Framework for controlling whois fetchers/parsers from config file Do not fetch ipinfo for same ip multiple times in one invocation Minor restructure of fakeszluudg18+475-143
2025-11-10 12:32basic test for owner reportszluudg6+39-0
2025-11-09 23:24go fmtzluudg7+137-138
2025-11-09 23:02removed unused sql files fake reporter used in tests, but no checks yet refactor types folder into several smaller fileszluudg21+369-297
2025-11-08 22:34Query for getting recently modified owners now uses invocation timestamp instead of unixepoch('now')zluudg1+1-1
2025-11-08 21:40go fmtzluudg3+22-22
2025-11-07 22:35basic structure for handling reporting with a thread poolzluudg4+47-1
2025-11-07 21:40minor changes to time faking. SQL for retrieving owners with recent changeszluudg10+57-44
2025-11-07 10:54uncomment/remove unused sql stuff for nowzluudg5+75-88
2025-11-07 10:37refactored main work() function int several smaller functions for readabilityzluudg1+147-121
2025-11-06 22:26make sure first invocation only populates zone tablezluudg7+72-16
2025-11-06 21:09test to ensure that first zone transfer doesn't count as changeszluudg1+18-1
2025-11-06 21:01dont make any new pseudo-types for RRSIGzluudg1+0-6
2025-11-06 21:00changed unique constraint for change in schemazluudg1+1-1
2025-11-06 20:37store changeszluudg9+77-63
2025-11-06 19:20handle disassociation of nameservers-ownerszluudg9+69-16
2025-11-06 16:14begun handling nameserver-owner associations. also tests for thiszluudg12+194-79
2025-11-06 14:41added new test for when new owners get added to the Owner tablezluudg3+29-0
2025-11-06 11:47store owners in database, againzluudg5+61-44
2025-11-06 10:11deleted reporters folder, not used atmzluudg1+0-185
2025-11-05 12:29Override working dir with env var Make sure db is closed after checks in testszluudg1+12-1
2025-11-05 21:29go fmtzluudg15+558-559
2025-11-05 21:28back to modernc sqlitezluudg5+60-7
2025-11-05 11:46added some tests that check the zone contents after invocation(s)zluudg12+194-58
2025-10-10 22:24Began refactor for more polling-driven collection Refactored app tests to use xfrs stored on disk as input datazluudg25+453-601
2025-11-04 22:51set version to 0.0.0 during developmentzluudg1+1-1
2025-11-04 22:50release 0.1.1zluudg1+1-1
2025-10-22 21:14use mattn sqlite database instead of modernczluudg4+7-54
2025-10-19 19:35minor bump of go versionzluudg1+1-3
2025-10-19 19:34rename modulezluudg15+31-31
2025-10-18 22:44use tarball's COMMIT file when building, if existszluudg1+1-1
2025-10-18 21:27set version to 0.0.0 while developingzluudg1+1-1
2025-10-18 21:26release 0.1.0zluudg1+1-1
2025-10-18 21:08Revert "styling for use with stagit"zluudg3+0-3
2025-10-18 21:02styling for use with stagitzluudg3+3-0
2025-10-18 20:55bump sqlite depszluudg2+51-54
2025-10-18 20:38Also create sha256 hash for tarballzluudg1+1-0
2025-10-16 23:09plot output in epszluudg1+1-1
2025-10-16 20:25simple vectorization and clustering of dna stringszluudg1+71-6
2025-10-16 10:37small tokenizer for DNA stringszluudg1+40-1
2025-10-13 21:16extract into strings with IP info and compressed timingszluudg2+58-7
2025-10-13 08:42minor usability fixes to extraction scriptzluudg1+9-2
2025-10-13 08:27sample extraction scriptzluudg1+74-0
2025-10-09 22:10attempt at more Debian-friendly makefilezluudg2+3-3
2025-10-08 20:04Place COMMIT file in outdir while building tarballzluudg1+2-2
2025-09-24 21:17ignore database filezluudg1+3-0
2025-09-22 21:47ignore temporary todo list (a file named TODO)zluudg1+3-0
2025-09-22 21:36make sure all reports have invocation IDzluudg9+33-27
2025-09-20 19:26spread out reporting in time, don't do all at oncezluudg2+9-1
2025-09-13 22:58don't track owners seen in first invocation as they are usually too manyzluudg2+4-1
2025-09-13 22:47some error info in owner reports, if occuringzluudg3+15-7
2025-09-13 22:28use distinct owner IDs when querying for tracked ownerszluudg1+1-1
2025-09-13 22:22sample systemd fileszluudg2+16-0
2025-09-13 22:18attempt to track IP addresses for domains with fluxing nameserver postszluudg5+77-2
2025-09-12 21:52take into account skipped reports for report counterszluudg3+19-12
2025-09-12 21:33less noisy failure reporting for ownerszluudg1+20-2
2025-09-12 21:14updated sample config in READMEzluudg1+7-1
2025-09-12 21:11Call reporters on all latest changes (not just recently discovered changes)zluudg6+86-41
2025-09-12 10:30tmpzluudg8+115-118
2025-09-12 08:44keep track of most recent changes per owner in a viewzluudg1+5-0
2025-09-11 09:12distinguish between zone revisiouns rather than invocations in flux viewzluudg1+1-1
2025-09-11 09:05group to see individual changes in flux viewzluudg1+4-4
2025-09-10 21:45prototype reporter triggered by NS changeszluudg3+61-6
2025-09-10 20:43dns client can do both rec and auth querieszluudg2+18-5
2025-09-10 19:29plumbing for nameserver reporterzluudg7+243-58
2025-09-10 11:52less ambiguous column names for identifiers, use natural joins mostlyzluudg10+60-50
2025-09-09 22:56fake reporter that seems to workzluudg10+117-14
2025-09-09 20:48skeleton for reporting frameworkzluudg2+62-19
2025-09-09 12:11special handling when invoked with SOA=0, don't do reports, just bootstrap with a copy of the zonezluudg1+3-1
2025-09-09 07:37store zonerev-owner-changegroup-changes as transactionzluudg3+153-16
2025-09-08 20:57dont log that database was created when it wasn'tzluudg1+6-4
2025-09-08 20:53less specific pattern for gitignoring config fileszluudg1+1-1
2025-09-08 20:52go fmtzluudg5+13-14
2025-09-08 20:52changed module name to full pathzluudg11+24-24
2025-09-08 20:47Distinguish between RRSIGs over different record typeszluudg1+7-0
2025-09-08 19:25Do actual networked zone transferzluudg3+47-53
2025-09-08 12:14go fmtzluudg8+203-203
2025-09-08 12:14now with pruningzluudg7+51-10
2025-09-08 06:34Tests refactoring. Dummy mode for getting xfr from a local filezluudg30+492-989
2025-09-07 17:40go fmtzluudg23+737-739
2025-09-06 23:04store changes. untestedzluudg10+141-26
2025-09-05 22:55xfr handling, fake xfr client and some basic tests for handling ixfr/axfrzluudg29+586-163
2025-09-04 21:35in various states of refactoring and catastrophezluudg59+1669-629
2025-08-19 22:11store invocation info in db. little test for itzluudg11+133-4
2025-08-19 20:21close dbzluudg4+30-26
2025-08-19 19:36go fmtzluudg7+111-111
2025-08-19 19:36injectable timerzluudg5+57-0
2025-08-19 18:12major refactoring start. Draft database schemazluudg67+762-5701
2025-04-14 07:30Made plotscript executablezluudg1+0-0
2025-04-09 11:19Ignore duplicate fullzone data in tablezluudg1+2-2
2025-04-09 10:50Some error handling and go fmtzluudg2+27-11
2025-04-09 10:32More info traces when interacting with storagezluudg2+6-0
2025-03-22 21:29New plotting for new RRSIG handlingzluudg5+143-8
2025-03-17 21:17New connection each time when doing client stuffzluudg5+158-146
2025-03-14 22:09RRSIG fluctuations now also take into account the type that the signature coverszluudg6+109-83
2025-03-14 22:04Fixed faulty IXFR in prune testzluudg1+2-1
2025-03-14 20:12Attempt to handle IXFR that fail with EOFzluudg2+8-3
2025-03-13 23:08Some more plotscriptszluudg2+211-0
2025-03-07 08:28Plot distribution of fluctuation lenghts per RRtypezluudg1+67-0
2025-03-07 07:32Get title right in plotscript for 24h distzluudg1+1-1
2025-03-05 22:41plotscript for plotting flux distribution over 24hzluudg2+70-65
2025-03-04 22:20Store nameserver IPs per NS-sequence in separate tablezluudg5+109-5
2025-03-03 22:50Fixed bug where AXFR caused from_soa to be 0. Ran go fmtzluudg2+36-36
2025-01-29 21:53Store full zone in chunkszluudg1+56-36
2025-01-28 20:13Ran go fmtzluudg4+188-191
2025-01-28 20:10Use Ixfr functionality and mock testing from tdns forkzluudg42+3125-3869
2025-01-28 11:14AXFR support, first attempt. All tests passzluudg15+273-28
2025-01-27 20:38individual plots for different rrtypeszluudg1+13-12
2025-01-23 21:53An attempt at a little plotting scriptzluudg2+65-0
2025-01-16 15:50Updated README for web stuffzluudg1+3-5
2025-01-12 22:21Some db-wide stats about the fluctuationszluudg2+64-1
2025-01-10 22:50Listing of domains starting with numerical value is now workingzluudg1+1-1
2025-01-10 22:26Refactored zone web view and added another level of headers of legibilityzluudg1+36-41
2025-01-10 21:43Change key datatype in RRtype conversion mapzluudg1+8-8
2025-01-09 22:59Only include zone links once in alphabetic listszluudg1+3-1
2025-01-09 22:47use archlinux image instead. copy database to image and serve it chunkedzluudg3+37-4
2025-01-09 20:57Use chunked database insteadzluudg2+4-12
2025-01-09 16:48Web GUI now makes fluctuations almost readable New database schema for easier display of untracked fluctuationszluudg3+95-15
2025-01-06 22:09Horizontal clicky-click list in overviewzluudg1+29-29
2025-01-06 20:48go fmtzluudg1+11-11
2025-01-06 20:46Fail at AXFR responses slightly less pathetically. Also a testzluudg2+40-7
2025-01-05 23:36Ran go fmtzluudg1+15-15
2025-01-05 23:36Ixfr now returns AXFR format when response is of that type. Added (failing) tests for this scenariozluudg4+110-0
2025-01-05 23:35Prune test now passeszluudg1+6-5
2025-01-04 23:31Almost browseable and legible GUIzluudg3+120-47
2025-01-03 23:07Added favicon for generated webpagezluudg2+1-0
2025-01-03 22:53Two webpack entry points, one page for overview and one page for zone detailszluudg6+52-15
2025-01-02 22:08go fmtzluudg1+6-6
2025-01-02 22:07Use make for docker stuff. Also bind mount database when running demo. Slightly less illegible webpage.zluudg4+38-12
2025-01-01 23:11Long timeout for client connections. Store SOA even if crash during ixfrzluudg3+8-2
2024-12-29 21:31ran go fmtzluudg3+121-123
2024-12-29 21:29Created some potentially useful views for webappzluudg1+18-0
2024-12-28 23:23Properly close databasezluudg1+7-0
2024-12-28 23:12Re-ordered Dockerfile to save a li'l bit of time when rebuilding with new dbzluudg1+2-1
2024-12-28 23:01Added a one-go prepare statement for pruning entries Get current time in application rather than through SQL command when untracking Added index for zone to speed up sequence lookup during insertion of changes Removed some table-driven benchmarks for less cluttered output Removed benchmark using pre-populated database from real deploymentzluudg3+52-120
2024-12-28 23:00Remove SQLite temporary files for WALzluudg1+2-0
2024-12-26 23:03Added pragmas and an index to speed things up in the dbzluudg2+55-5
2024-12-26 22:17Added a profile command for the makefilezluudg2+8-0
2024-12-26 22:06Added some parameterized benchmarks where the db is created from scratchzluudg1+115-9
2024-12-26 21:41Added a benchmark test that deletes entries too slowlyzluudg3+67-0
2024-12-21 22:49Now passes new prune testzluudg1+1-1
2024-12-21 22:47Added (failing) prune test for when two changes are added in the same updatezluudg1+62-1
2024-12-19 09:26Changed title of generated pagezluudg1+1-2
2024-12-18 21:23Stub web interface for ''browsing'' dbzluudg7+221-0
2024-12-18 13:06go gmtzluudg1+20-20
2024-12-18 13:05Do proper DNS transferzluudg1+22-11
2024-12-18 10:22go fmtzluudg4+27-27
2024-12-18 10:22added quiet flag, use it in integration testszluudg10+15-0
2024-12-18 10:18fixed some build errors during testzluudg2+2-2
2024-12-18 10:14Added an even bigger update with even more A postszluudg1+1668-0
2024-12-18 09:22Don't use dns.Client.Timeout (dunno what it does). Also some debug printout changes (minor)zluudg2+3-2
2024-12-18 09:21Disabled debugging output for prune integration testzluudg1+0-1
2024-12-18 09:20Added a test with a big IXFR (many A records being added at once)zluudg1+850-0
2024-12-17 21:33Enable som logging in ixfr packagezluudg3+40-2
2024-12-17 20:44Ran 'go fmt'zluudg6+186-186
2024-12-17 20:44Added pruning testzluudg3+59-7
2024-12-17 15:55Refactored database again, one row per change in changes table. Added 'mode' columnzluudg10+137-73
2024-12-17 12:49Fake flow of time in integration testszluudg3+25-3
2024-12-17 10:47Overhaul of database. All changes tracked, not just long-livedzluudg15+310-911
2024-12-16 19:55Makeover of DB for tracking more general changeszluudg1+30-22
2024-12-16 10:39ran go fmtzluudg5+27-28
2024-12-16 10:39Version command now prints real versionzluudg4+12-2
2024-12-16 10:21Introducing the slog std lib for loggingzluudg1+26-1
2024-12-16 09:05Added test for shortlivedzluudg2+40-1
2024-12-14 23:27Use Unix epoch timestamps instead. Prune integration test passeszluudg4+16-19
2024-12-13 23:361s sleep between app runs in integration testszluudg1+2-2
2024-12-13 23:31Fixed some time format errors in testdata fileszluudg8+8-8
2024-12-13 23:13go fmtzluudg4+11-3
2024-12-13 23:12Specify application conf in integration testfiles. Test pruning (which fails)zluudg14+70-19
2024-12-12 22:37Fixed long add test plus added an IDN test, which currently failszluudg2+18-16
2024-12-12 21:50Some new tests with larger zone transfers and longer rr strings, plus unordered set checker. Longest integration test fails :(zluudg4+775-0
2024-12-12 17:07Ran go fmtzluudg16+452-452
2024-12-12 17:05Moved things round a bit so integration tests build with 'make test' toozluudg2+11-6
2024-12-12 17:00Moved all integration tests to new frameworkzluudg8+118-241
2024-12-12 15:45Prototype integration testing framework using YAMLzluudg8+323-197
2024-12-11 22:38Retries while connecting with client, makes integration tests less flakyzluudg1+11-2
2024-12-11 22:28Wait groups and randomized ports to make integration tests run together. Still flaky, thoughzluudg3+52-10
2024-12-11 22:01CLI support for port argumentzluudg1+2-0
2024-12-11 21:25Refactored mock dns server into singletonzluudg2+30-41
2024-12-11 21:06Integration tests. Flaky when running all in sequence.zluudg8+358-10
2024-12-10 21:51Less picky about what is a changed record. If domain+rrtype shows up as both deleted and added, it is considered to be changedzluudg4+145-107
2024-12-10 19:59Fixed Scan with wrong pointer type again in a different placezluudg1+1-1
2024-12-10 15:04Fixed wrong variable pointer ordering for sql Scan. Now it should work. For sure.zluudg1+1-3
2024-12-10 15:00Definitely working prototype. Absolutely. Maybe.zluudg10+378-32
2024-12-09 12:47(stubbed) wrappers for persistent storage and dns clientzluudg6+121-71
2024-12-09 09:25Debug flag now reflected in config. Minor refactor of root commandzluudg2+13-9
2024-12-09 08:55go fmt, of course. Yes, yes. Very prettyzluudg7+369-373
2024-12-09 08:39Ignore misc folder contents by defaultzluudg1+3-0
2024-12-06 22:11New folder structure, new tests, more funcionality for ixfr and diffsequencezluudg8+513-362
2024-12-05 23:32Get added functionality for IXFRzluudg2+144-46
2024-12-05 22:11Simple test for basic IXFR functionalityzluudg3+307-3
2024-12-02 21:50only care about NS and SOA answerszluudg1+6-1
2024-11-30 23:00Make an ixfrzluudg3+35-4
2024-11-29 11:01removed some unecessary stuff and added a config filezluudg3+1-3
2024-11-29 10:48go fmt, as is the traditionzluudg4+73-75
2024-11-29 10:47Boilerplate done, maybezluudg9+38-128
2024-11-29 10:37Fixed syntax error and ran go mod tidyzluudg4+97-2
2024-11-29 10:35Initial commit using template revision 1zluudg11+282-0