File: /volume1/@appstore/MailClient/nodejs/push_server/relay_receive.js
"use strict";var e=require("net"),t=["index_done","filter_task","mailbox_index_done","read_change","smtp_change","contact_change","db_upgrade_done"],n=function(e){var t=null,n=-1,o=-1;e.on("data",function(r){for(;;){-1===o&&(o=r.length,n=0,t=Buffer.alloc(o));var i=o-n;if(n+=r.copy(t,n,0,i),r=r.slice(i),n===o){try{e.emit("request",JSON.parse(t.toString()))}catch(n){return console.log("bad request: "+t.toString()),console.log(n.stack),void e.destroy()}o=-1,n=-1,t=null}if(0===r.length)break}})},o=function(e,t){e.on("request",r.bind(this,e)),e.on("toUI",i.bind(this,e,t))},r=function(e,n){var n;n.evt,n.evt&&0<=t.indexOf(n.evt)?e.emit("toUI",n):e.emit("toWebapi",n)},i=function(e,t,n){var o,r,i;o=n.username,i=n.evt||"error",o&&(r=n.data||{},o instanceof Array?o.forEach(function(e){t.to(e).emit(i,r)}):t.to(o).emit(i,r))};module.exports=function(t){return e.createServer(function(e){n(e),o(e,t)})};