Skip to content

Instantly share code, notes, and snippets.

@summer4096
Created July 8, 2012 23:19
Show Gist options
  • Save summer4096/3073398 to your computer and use it in GitHub Desktop.
Save summer4096/3073398 to your computer and use it in GitHub Desktop.
dAmn packet parser
function(rpkt, depth){
try {
rpkt = rpkt.toString();
depth = depth || 0;
var i;
var ppkt = {
cmd: null,
param: null,
args: {},
body: null,
sub: [],
depth: depth,
raw: rpkt
};
var parts = rpkt.split("\n\n");
var head = parts.shift().split('\n');
var cmd = head.shift().split(' ');
ppkt.cmd = cmd.shift();
ppkt.param = cmd.join(' ');
for (i in head){
if (head.hasOwnProperty(i)){
var val = head[i].split('=');
ppkt.args[ val.shift() ] = val.join('=');
}
}
ppkt.body = parts.join('\n\n') || null;
if (parts.length >= 1){
i = parts.length - 1;
if (i === 1){
ppkt.sub.push(arguments.callee(ppkt.body, depth + 1));
} else {
for (i; i >= 0; i--){ ppkt.sub.push(arguments.callee(parts[i], depth + 1)); }
}
}
return ppkt;
} catch (e){
console.error('Died in Packet Parser');
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment