Exemplo n.º 1
0
        private ResponseCode _handleGet(HttpListenerRequest req, HttpListenerResponse resp, string accesslog, string origin)
        {
            if (req.QueryString.Count > 0)
            {
                string host = req.QueryString["h"];

                if (host == null || string.IsNullOrEmpty(host.Trim()))
                {
                    return(ResponseCode.NotFound);
                }

                string form = "<form method=post onsubmit=\"result = 'submit'\"><h2>Do you want to allow {0} to print?</h2><input type=hidden name=\"host\" value=\"{0}\" /><input type=hidden name=\"status\" value=\"allow\" /><button >Allow</button><button type=button onclick=\"result = 'blocked'; window.close()\">Block</button></form>";
                form = string.Format(form, host);

                string html = "<html><body>";
                html += "<script>var result = 'closed'; window.addEventListener('beforeunload', (event) => { if (result !== 'submit') window.opener.postMessage(result, '" + host + "'); });</script>";
                html += form;
                html += "</body></html>";
                ServerConfig.appendLog(accesslog);
                server.responseHTML(resp, html);
            }
            else
            {
                PermissionResponse json = new PermissionResponse();
                json.allowed = server.config.isAllowed(origin);

                ServerConfig.appendLog(accesslog);
                server.responseJSON(resp, json);
            }
            return(ResponseCode.OK);
        }
Exemplo n.º 2
0
        private ResponseCode _handlePost(HttpListenerRequest req, HttpListenerResponse resp, string accesslog)
        {
            if (!req.HasEntityBody)
            {
                return(ResponseCode.NotFound);
            }

            PrintJobResponse printjobresp = new PrintJobResponse();

            try
            {
                using (Stream body = req.InputStream)
                {
                    Encoding encoding = req.ContentEncoding;
                    using (StreamReader reader = new StreamReader(body, encoding))
                    {
                        string           json     = reader.ReadToEnd();
                        PrintJobPostBody printjob = ServerConfig.fromJSON <PrintJobPostBody>(json);
                        body.Close();
                        reader.Close();

                        byte[] bindata = printjob.DataToByteArray();

                        bool success = false;
                        if (server.config.testingMode == 1)
                        {
                            success = WritePrintJobFile(printjob.id, bindata);
                        }
                        else if (server.config.testingMode == 0)
                        {
                            success = RawPrintingHelper.SendBytesToPrinter(printjob.printer, bindata, printjob.id);
                        }
                        else
                        {
                            success = RawPrintingHelper.SendBytesToPrinter(printjob.printer, bindata, printjob.id) && WritePrintJobFile(printjob.id, bindata);
                        }

                        accesslog += "\tsuccess\t" + printjob.id + "\t" + printjob.printer;
                        ServerConfig.appendLog(accesslog);
                        printjobresp.success = true;
                        printjobresp.data    = printjob.id;
                    }
                }
            }
            catch (Exception e)
            {
                ServerConfig.appendLog("Error: " + e.Message + "\n" + e.StackTrace);
                printjobresp.success = false;
                printjobresp.data    = "";
                accesslog           += "\tfailed";
                ServerConfig.appendLog(accesslog);
            }
            server.responseJSON(resp, printjobresp);

            return(ResponseCode.OK);
        }
Exemplo n.º 3
0
        private ResponseCode _handleGet(HttpListenerRequest req, HttpListenerResponse resp, string accesslog)
        {
            MachineInfoResponse packet = new MachineInfoResponse
            {
                machineName = System.Environment.MachineName
            };

            packet.printers = ServerConfig.listPrinters();

            ServerConfig.appendLog(accesslog);
            server.responseJSON(resp, packet);
            return(ResponseCode.OK);
        }
        private ResponseCode _handlePost(HttpListenerRequest req, HttpListenerResponse resp, string accesslog)
        {
            if (!req.HasEntityBody)
            {
                return(ResponseCode.NotFound);
            }

            SettingsResponse settingsresp = new SettingsResponse();

            try
            {
                using (Stream body = req.InputStream)
                {
                    Encoding encoding = req.ContentEncoding;
                    using (StreamReader reader = new StreamReader(body, encoding))
                    {
                        string           json        = reader.ReadToEnd();
                        SettingsPostBody newSettings = ServerConfig.fromJSON <SettingsPostBody>(json);
                        body.Close();
                        reader.Close();

                        if (newSettings.testingMode != server.config.testingMode)
                        {
                            server.config.testingMode = newSettings.testingMode;
                        }

                        accesslog += "\tsuccess";
                        ServerConfig.appendLog(accesslog);
                        settingsresp.success = true;
                    }
                }
            }
            catch (Exception e)
            {
                ServerConfig.appendLog("Error: " + e.Message + "\n" + e.StackTrace);
                settingsresp.success = false;
                accesslog           += "\tfailed";
                ServerConfig.appendLog(accesslog);
            }
            server.responseJSON(resp, settingsresp);
            return(ResponseCode.OK);
        }