diff options
Diffstat (limited to 'src')
| -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 + } +} |
