diff options
| author | Autumn <git@autumnfo.rest> | 2026-05-17 11:00:48 +0100 |
|---|---|---|
| committer | Autumn <git@autumnfo.rest> | 2026-05-17 11:00:48 +0100 |
| commit | 1d34c2e5e144728c16807bb53b8eda278a350b4d (patch) | |
| tree | 5842eec8576f4a7622b334ab2986fbb3eb3479a8 | |
| parent | e5ee58920ad5c5c4209efd9c8f114da7ecf2f698 (diff) | |
[pawsd] added service fetching utils
| -rw-r--r-- | src/pawsd/service.lua | 72 |
1 files changed, 72 insertions, 0 deletions
diff --git a/src/pawsd/service.lua b/src/pawsd/service.lua new file mode 100644 index 0000000..8cbce77 --- /dev/null +++ b/src/pawsd/service.lua @@ -0,0 +1,72 @@ +-- +-- ~~~ response service utils +-- + +require("src/utils") + +-- setup pawsd +local pawsd = {} +pawsd.signature = require("src/pawsd/signature") +pawsd.record = require("src/pawsd/record") +pawsd.tag = require("src/pawsd/tag") + +-- get index of service +function getserviceindex (response) + + local indexStart = 15 + pawsd.signature.length(response) + return table.extracthex(response, indexStart, indexStart + 1) + +end + +-- get service flags +function getserviceflags (response) + + local flagsStart = 17 + pawsd.signature.length(response) + return table.extracthex(response, flagsStart, flagsStart + 3) + +end + +-- get number of records +function getrecordnumber (response) + + local recordsStart = 21 + pawsd.signature.length(response) + return tonumber(table.extracthex(response, recordsStart, recordsStart + 1), 16) + +end + +-- get all records +function getallrecords (response) + + print("\nR>--- Getting Records...") + + local records = {} + local recordoffset = 23 + pawsd.signature.length(response) + local recordnumber = getrecordnumber(response) + + print("\nR>--- Record Offset: " .. recordoffset) + print("R>--- Number Of Records: " .. recordnumber) + + for recordindex = 1, recordnumber , 1 do + + print("\nR>--- Getting Record " .. recordindex .. "...") + + local record = pawsd.record.get(response, recordoffset) + + records[recordindex] = record.tags + recordoffset = record.endoffset + + end + + return records + +end + +-- return +return { + index = getserviceindex, + flags = getserviceflags, + records = { + count = getrecordnumber, + all = getallrecords + } +} |
