imap.rb/lib/imap_server.rb

34 lines
729 B
Ruby

require "dotenv"
Dotenv.load!
require_relative "local_logger"
require "openssl"
require "pry"
require_relative "models"
class ImapServer
require_relative "imap_server/client_message"
require_relative "imap_server/server_message"
require_relative "imap_server/client_handler"
def initialize(host:, port:)
@host = host
@port = port
end
attr_reader :port, :host, :socket
def start
$logger.info "Starting server #{@host}:#{@port}"
@socket = TCPServer.open(@host, @port)
loop do
$logger.info "Server accept new connections now"
Thread.start(@socket.accept) do |client_socket|
ClientHandler.new(server: self, socket: client_socket).start
end
end
end
end