# HG changeset patch # User John "Elwin" Edwards # Date 1420814601 18000 # Node ID 6f4b7e1b32e8abf0289006884a704c557e1bea33 # Parent 0ceaca924b4cbd308254d7b2848677266891dcfc rlgwebd.js: clean up TermSession parameters. Use the player name instead of a login key that has already been verified and resolved to a player name. diff -r 0ceaca924b4c -r 6f4b7e1b32e8 rlgwebd.js --- a/rlgwebd.js Fri Jan 09 08:55:38 2015 -0500 +++ b/rlgwebd.js Fri Jan 09 09:43:21 2015 -0500 @@ -67,8 +67,8 @@ var gamemux = new events.EventEmitter(); /* Constructor. A TermSession handles a pty and the game running on it. - * game: (String) Name of the game to launch. - * lkey: (String, key) The user's id, a key into logins. + * gname: (String) Name of the game to launch. + * pname: (String) The player's name. * dims: (Array [Number, Number]) Height and width of the pty. * handlers: (Object) Key-value pairs, event names and functions to * install to handle them. @@ -76,28 +76,21 @@ * "data": Data generated by child. Parameters: buf (Buffer) * "exit": Child terminated. Parameters: none */ -function TermSession(game, lkey, dims, handlers) { +function TermSession(gname, pname, dims, handlers) { var ss = this; /* Subclass EventEmitter to do the hard work. */ events.EventEmitter.call(this); for (var evname in handlers) this.on(evname, handlers[evname]); /* Don't launch anything that's not a real game. */ - if (game in games) { - this.game = games[game]; + if (gname in games) { + this.game = games[gname]; } else { this.failed = true; return; } - if (lkey in logins) { - this.key = lkey; - this.pname = logins[lkey].name; - } - else { - this.failed = true; - return; - } + this.pname = pname; /* Grab a spot in the sessions table. */ sessions[this.game.uname + "/" + this.pname] = this; /* Set up the sizes. */ @@ -322,8 +315,8 @@ "d": session.framebuf.toString("hex", 0, session.frameoff)})); } -function wsPlay(wsReq, game, lkey, dims) { - tslog("wsPlay: running for %s/%s", game, logins[lkey].name); +function wsPlay(wsReq, game, pname, dims) { + tslog("wsPlay: running for %s/%s", game, pname); tslog("Request is for %s", logins[wsReq.resourceURL.query["key"]].name); var conn; var session; @@ -360,7 +353,7 @@ session.removeListener('exit', exitH); } var handlers = {'data': dataH, 'exit': exitH}; - session = new TermSession(game, lkey, dims, handlers); + session = new TermSession(game, pname, dims, handlers); if (!session.failed) { var tag = session.game.uname + "/" + session.pname; var reply = {"t": "s", "tag": tag, "w": session.w, "h": session.h, @@ -407,7 +400,7 @@ tslog("%s is already playing %s", pname, gname); } else - wsPlay(wsReq, gname, lkey, dims); + wsPlay(wsReq, gname, pname, dims); }; checkprogress(pname, games[gname], progcallback, []); }