ipp-server
Version:
Create a printer on the network
46 lines (37 loc) • 1.06 kB
JavaScript
;
var config = require("rc")("ipp-server", {
name : "ipp-server",
dir : process.cwd(),
port : 3000,
authorize : function (req, res, body, next) {
console.log("authorize", req.url);
if (!req.headers.authorization) {
res.writeHead(401, {
"WWW-Authenticate" : "Basic realm=\"ipp-server\""
});
return res.end();
}
console.log("auth", req.headers.authorization);
return next();
}
});
var nonPrivate = require("non-private-ip");
var url = require("url");
var fs = require("fs");
var ip = nonPrivate() || nonPrivate.private();
var Printer = require("./");
var p = new Printer(config);
p.on("job", function (job) {
var filename = "printjob-" + job.id + "-" + Date.now() + ".ps";
job.pipe(fs.createWriteStream(filename)).on("finish", function () {
console.log("printed:", filename);
});
});
p.server.on("listening", function () {
console.log("ipp-server listening on:", url.format({
protocol : "http",
hostname : ip,
port : config.port
}));
});