2021-08-28 20:09:02 +00:00
|
|
|
import tls from "tls";
|
|
|
|
import fs from "fs";
|
|
|
|
|
2021-08-28 21:34:09 +00:00
|
|
|
import GeminiServer from "./GeminiServer.js"
|
2021-08-28 18:32:40 +00:00
|
|
|
|
|
|
|
const options = {
|
2021-08-28 19:01:47 +00:00
|
|
|
//cert: fs.readFileSync("public-cert.pem"),
|
|
|
|
//key: fs.readFileSync("private-key.pem"),
|
|
|
|
SNICallback: function (servername, callback) {
|
|
|
|
console.log(servername);
|
|
|
|
if (servername === "localhost") {
|
|
|
|
callback(null, tls.createSecureContext({
|
|
|
|
cert: fs.readFileSync("public-cert.pem"),
|
|
|
|
key: fs.readFileSync("private-key.pem"),
|
|
|
|
}));
|
|
|
|
}else {
|
|
|
|
callback(null, tls.createSecureContext({
|
|
|
|
cert: fs.readFileSync("mac-gamma-pub-cert.pem"),
|
|
|
|
key: fs.readFileSync("mac-gamma-key.pem")
|
|
|
|
}))
|
|
|
|
}
|
|
|
|
}
|
2021-08-28 18:32:40 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
const server = tls.createServer(options);
|
|
|
|
server.on("secureConnection", socket => {
|
2021-08-28 19:01:47 +00:00
|
|
|
socket.setEncoding("utf8");
|
|
|
|
socket.write("20 text/gemini\r\n");
|
|
|
|
socket.write("Hello, world!\r\n");
|
|
|
|
socket.write(`You're connecting from ${socket.servername}`)
|
|
|
|
socket.end();
|
2021-08-28 18:32:40 +00:00
|
|
|
});
|
|
|
|
server.listen(1965);
|
2021-08-28 21:34:09 +00:00
|
|
|
|
|
|
|
export { GeminiServer }
|