Adam Rocska
f5b45e7e69
Reader coverage.
...
Signed-off-by: Adam Rocska <adam.rocska@adams.solutions>
2020-06-04 14:35:45 +02:00
Adam Rocska
62484d2cae
Work in progress. A pretty neat pattern is emerging.
...
Signed-off-by: Adam Rocska <adam.rocska@adams.solutions>
2020-06-04 13:47:18 +02:00
Adam Rocska
e1a5976007
Committing the complete mess. I managed to trial&error on converting the php fantasy dictionaries into structs. Though some of the field types are mere blind guesses, so fingers crossed.
...
Signed-off-by: Adam Rocska <adam.rocska@adams.solutions>
2020-06-02 16:38:44 +02:00
Adam Rocska
1bf6817aab
Data can be read nicely. Next stop : Finish the API layer. Once done :
...
- clean up the tests
- refactor parts of the source
- find additional optimization opportunities. I don't like the slow init.
- document
- tell the world it's done
Signed-off-by: Adam Rocska <adam.rocska@adams.solutions>
2020-06-01 14:29:02 +02:00
Adam Rocska
aa6d2958c7
I couldn't let this whole repo go. Eventually I solved the slow index buildup with a lazy normalizataion & solved the one last blocker of properly querying the databases. From a functionality perspective I guess it's complete. Now I gotta:
...
- clean up the tests
- refactor parts of the source
- find additional optimization opportunities. I don't like the slow init.
- document
- tell the world it's done
Signed-off-by: Adam Rocska <adam.rocska@adams.solutions>
2020-06-01 12:11:54 +02:00
Adam Rocska
a1703d884e
postpone...
...
Signed-off-by: Adam Rocska <adam.rocska@adams.solutions>
2020-05-30 22:10:15 +02:00
Adam Rocska
4fe0745b4c
Intentionally committing crap code.
...
Signed-off-by: Adam Rocska <adam.rocska@adams.solutions>
2020-05-30 22:08:07 +02:00
Adam Rocska
7094fa0a5d
Renamed the Index module to IndexReader in hope that it'll help me resolve this small generic issue I have here.
...
Signed-off-by: Adam Rocska <adam.rocska@adams.solutions>
2020-05-30 20:34:28 +02:00
Adam Rocska
94b0ea8673
Temporary dummy code.
...
Signed-off-by: Adam Rocska <adam.rocska@adams.solutions>
2020-05-30 20:29:48 +02:00
Adam Rocska
937587ed92
Simplified formatting.
...
Signed-off-by: Adam Rocska <adam.rocska@adams.solutions>
2020-05-30 17:59:58 +02:00
Adam Rocska
c073af2ec4
Renamed the Metadata internal module to MetadataReader. Hopefully it'll make imports a bit more comfortable.
...
Signed-off-by: Adam Rocska <adam.rocska@adams.solutions>
2020-05-30 17:52:47 +02:00
Adam Rocska
aa11b7c118
sonar scan trigger
...
Signed-off-by: Adam Rocska <adam.rocska@adams.solutions>
2020-05-30 17:02:25 +02:00
Adam Rocska
6cc0926362
Trying to get a grab on the bull's horn somehow.
...
Signed-off-by: Adam Rocska <adam.rocska@adams.solutions>
2020-05-30 16:59:39 +02:00
Adam Rocska
c28c6c640b
Added dependencies in package swift. I still don't get it why did it compile, so I gotta look into this as well at some point.
...
Signed-off-by: Adam Rocska <adam.rocska@adams.solutions>
2020-05-30 16:58:45 +02:00
Adam Rocska
f92a0daf79
Impossible to design a protocol at this point. And there's just no way I would take that php scripter fantasy crap as the fundamentum for this lib, no matter how crippled already it is by inherited scripter stupidity.
...
Signed-off-by: Adam Rocska <adam.rocska@adams.solutions>
2020-05-30 16:58:03 +02:00
Adam Rocska
cb2b939085
Made DBReader interfaces public.
...
Signed-off-by: Adam Rocska <adam.rocska@adams.solutions>
2020-05-30 16:56:05 +02:00
Adam Rocska
278e8b3efb
Created & added a future plans doc' item to remind myself, and other potential readers on what's about to come.
...
Signed-off-by: Adam Rocska <adam.rocska@adams.solutions>
2020-05-30 16:55:26 +02:00
Adam Rocska
9827635299
Added GeoLite DB files for testing purposes. Totally not cool for "unit" testing, but I gotta validate the concepts somehow. Tests will be refactored.
...
Signed-off-by: Adam Rocska <adam.rocska@adams.solutions>
2020-05-30 16:54:59 +02:00
Adam Rocska
5da03ef59d
DataBaseType enum for somehow handling the possiblly valid database metadata types.
...
Signed-off-by: Adam Rocska <adam.rocska@adams.solutions>
2020-05-30 13:27:36 +02:00
Adam Rocska
f4f5352c61
More specific imports. Dunno why.
...
Signed-off-by: Adam Rocska <adam.rocska@adams.solutions>
2020-05-29 22:17:31 +02:00
Adam Rocska
0e44b9422e
Provided a few dumb tests for InMemoryReader and I just realized, that it's not even specific to "in memory-ness". It should work with anything.
...
Signed-off-by: Adam Rocska <adam.rocska@adams.solutions>
2020-05-29 22:16:04 +02:00
Adam Rocska
f2b8c48df5
Reader protocol and foundations for DBReader's testability.
...
Signed-off-by: Adam Rocska <adam.rocska@adams.solutions>
2020-05-29 21:37:38 +02:00
Adam Rocska
7a7664acc6
Found a way around this naming problem.
...
Signed-off-by: Adam Rocska <adam.rocska@adams.solutions>
2020-05-29 20:54:26 +02:00
Adam Rocska
b26f0cf0cf
ReaderError.swift was no longer in use.
...
Signed-off-by: Adam Rocska <adam.rocska@adams.solutions>
2020-05-29 20:54:08 +02:00
Adam Rocska
bf5e436499
Filebased readers have a metadata property. Exposing it, and exposing the DbMetadata concept overaall.
...
Signed-off-by: Adam Rocska <adam.rocska@adams.solutions>
2020-05-29 20:42:46 +02:00
Adam Rocska
26a3219960
Made the LICENSE stricter. After all this madness I don't want these mountebank php scripters forking and redistributing as their own.
...
Signed-off-by: Adam Rocska <adam.rocska@adams.solutions>
2020-05-29 15:05:05 +02:00
Adam Rocska
cd69a4a736
Removed old readme disclaimers. Will be properly documented once this misery ends.
...
Signed-off-by: Adam Rocska <adam.rocska@adams.solutions>
2020-05-29 15:03:08 +02:00
Adam Rocska
fe149cc237
Made the structs public, and created a protocol to allow for a slightly better API to work with maxmind's shitty php designed crap called "database".
...
Signed-off-by: Adam Rocska <adam.rocska@adams.solutions>
2020-05-29 14:54:55 +02:00
Adam Rocska
c82765d9cd
De-phpified ip addresses.
...
Signed-off-by: Adam Rocska <adam.rocska@adams.solutions>
2020-05-29 14:12:32 +02:00
Adam Rocska
9a77a33c78
Forwarding internal module's IpAddress through Api.
...
Signed-off-by: Adam Rocska <adam.rocska@adams.solutions>
2020-05-29 14:12:14 +02:00
Adam Rocska
0f83261f39
The initial port of the php retardness. Next I'll try to de-phpify this crap into a not-so-scrap state. It will eventually remain crappy because of the way it's "modelled" (or lack of modelling aactually).
...
Signed-off-by: Adam Rocska <adam.rocska@adams.solutions>
2020-05-29 12:41:10 +02:00
Adam Rocska
66b90935bc
God knows what the difference between Records and Models are at this point. Starting off with a moderate reproduction of php scripter booboo in swift.
...
Signed-off-by: Adam Rocska <adam.rocska@adams.solutions>
2020-05-29 12:06:25 +02:00
Adam Rocska
1974c1744d
Removed maxmind "branding" from repository wherever it was legally possible.
...
Signed-off-by: Adam Rocska <adam.rocska@adams.solutions>
2020-05-28 15:49:56 +02:00
Adam Rocska
f3b1e5ceaf
Put a primitive assertion in place just to hold my ass until the library comes together. Will make the tests professional & sexy at a later point.
...
Signed-off-by: Adam Rocska <adam.rocska@adams.solutions>
2020-05-28 15:41:26 +02:00
Adam Rocska
c7c3ab44db
Ok, the repo is somewhat exploded at this point. BUT IT WORKS! Now I only gotta provide proper tests instead of the trashy ones, put together the reader & serializer, and represent this maxmind php fantasy crap with some nice Structs. And then the saga is over for now.
...
Signed-off-by: Adam Rocska <adam.rocska@adams.solutions>
2020-05-28 14:23:26 +02:00
Adam Rocska
d7387c8845
Able to decode sequential types
...
Signed-off-by: Adam Rocska <adam.rocska@adams.solutions>
2020-05-27 20:07:25 +02:00
Adam Rocska
7b40c52c9d
Found a bug. I was an unattentive prick & assumed some clean logic in the definition size resolution algorithm. I shouldn't have. Now it's cool.
...
Signed-off-by: Adam Rocska <adam.rocska@adams.solutions>
2020-05-27 15:26:33 +02:00
Adam Rocska
c645dd40c4
Created the intentional duplicate of interpretArray. Intenional duplicate, because I know nothing about this php and perl scripter mountebank fantasy data type.
...
Signed-off-by: Adam Rocska <adam.rocska@adams.solutions>
2020-05-27 09:44:54 +02:00
Adam Rocska
3bd97a83f1
Array interpretation in place, the logic seems to work. Gotta duplicate the data cache container, because there's no word in the spec, nor guarantee that its array-like structure related assumptions are correct.
...
Signed-off-by: Adam Rocska <adam.rocska@adams.solutions>
2020-05-27 08:58:55 +02:00
Adam Rocska
5bcd7ba700
This awful design seems to be able to tackle php scripter stupidity. The code sucks, but at least is testable and works so far. Now I just gotta reconstruct sequence types, and I finally can forget about this horror, and stop taking sedatives.
...
Signed-off-by: Adam Rocska <adam.rocska@adams.solutions>
2020-05-26 16:43:56 +02:00
Adam Rocska
8bbcfb3d3b
Data padding added. Necessary code to handle php retardnesss of having 32bit integers defined in 0, 1, 2, 3 bytes...
...
Signed-off-by: Adam Rocska <adam.rocska@adams.solutions>
2020-05-20 17:44:19 +02:00
Adam Rocska
13fdc79bf9
Attempting a different way of typeconversion in hope, that we can handle the php scripter style stupidifaction of 11bit integers, and God knows what other retarded concepts can arise.
...
Signed-off-by: Adam Rocska <adam.rocska@adams.solutions>
2020-05-19 14:51:32 +02:00
Adam Rocska
ac0abc8607
WIP. Total mess.
...
Signed-off-by: Adam Rocska <adam.rocska@adams.solutions>
2020-05-18 13:48:36 +02:00
Adam Rocska
f6ab2f4cac
Attempting another different approach.
...
Signed-off-by: Adam Rocska <adam.rocska@adams.solutions>
2020-05-18 00:26:10 +02:00
Adam Rocska
966928cfd2
Falling back to the original crap code that emerged from crap php scripters' logic. Too many edge cases and stupidities to bother with. Dumb design can't be made straight.
...
Signed-off-by: Adam Rocska <adam.rocska@adams.solutions>
2020-05-17 19:49:15 +02:00
Adam Rocska
4f3245561e
made code 1 line shorter, but can't make it cleaner. I'm super angry on crappy code.
...
Signed-off-by: Adam Rocska <adam.rocska@adams.solutions>
2020-05-16 18:44:10 +02:00
Adam Rocska
ddd782925d
DataType foundations re-implemented. Can guess from this convoluted unclear non-unequivocal php scripter's fantasy the type of the data.
...
I must say, that it's outrageously stupid, that with this control byte data type definition the scripters "designed" implicitly allows for two different ways of defining map types. One is [0b111X_XXXX] and the other is [0b000X_XXXX, 0b0000_0000], where both resolve to fantasy 7 with that fucking retarded logic, though are not equal.
Signed-off-by: Adam Rocska <adam.rocska@adams.solutions>
2020-05-16 18:24:06 +02:00
Adam Rocska
2969e82f3f
isExtendedType implemented for DataType enum value
...
Signed-off-by: Adam Rocska <adam.rocska@adams.solutions>
2020-05-16 16:44:12 +02:00
Adam Rocska
f02cb01293
Gotta redesign the whole decoder layer. Managed to sketch a way to tackle with these php scripter fantasies in the MaxMind DB spec on the whiteboard.
...
Signed-off-by: Adam Rocska <adam.rocska@adams.solutions>
2020-05-16 15:09:22 +02:00
Adam Rocska
d236f8ce4e
Introduced a few new protocols in hope that it'll make code more manageable.
...
Signed-off-by: Adam Rocska <adam.rocska@adams.solutions>
2020-05-15 19:24:41 +02:00