View/Edit #142:extract_name

Switch to edit mode.

Name(s): extract_name
1:  "Usage:  {name, position} = $dns_utils:extract_name(data, position)"
2:  if (caller != this)
3:    raise(E_PERM)
4:  endif
5:  {data, pos} = args
6:  name = ""
7:  while (!(data[pos] == 0 || data[pos] > 63))
8:    name = encode_binary(name, @data[pos + 1..pos + data[pos]])
9:    pos = pos + data[pos] + 1
10:   name = name + "."
11: endwhile
12: if (data[pos])
13:   suspend(0)
14:   NewPos = (data[pos] - 192) * 256 + data[pos + 1] + 1
15:   name = name + this:extract_name(data, NewPos)[1]
16:   pos = pos + 2
17: else
18:   pos = pos + 1
19: endif
20: if (name && name[$] == ".")
21:   name = name[1..$ - 1]
22: endif
23: return {name, pos}
24: "Last modified by manta (#7165) on Mon Feb 28 01:50:19 2000 MST."
25: "This verb previously owned by manta (#7165), and chowned to $slacker upon dewizarding (Sat Aug 17 14:50:06 2002 MDT)."
26: "Last modified by Dax (#789) on Sat Aug 17 14:50:06 2002 MDT."

Verb arguments: this none this
Verb perms: Readable eXecutable NOT-Debug
Verb owned by: Slacker (#55)

You are not logged in.

[home | help | who | search | setup | code]