blob: 1a97a33bbfcc57708ce2f65b0f0aebe3c07ef4ed [file]
;;; System dependent functions
;; Author: Milan Zamazal <pdm@brailcom.org>
;; Copyright (C) 2004 Brailcom, o.p.s.
;; COPYRIGHT NOTICE
;; This program is free software; you can redistribute it and/or modify
;; it under the terms of the GNU Lesser General Public License as published by
;; the Free Software Foundation; either version 2.1 of the License, or
;; (at your option) any later version.
;; This program is distributed in the hope that it will be useful, but
;; WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
;; or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License
;; for more details.
;; You should have received a copy of the GNU Lesser General Public License
;; along with this program. If not, see <https://www.gnu.org/licenses/>.
(in-package :ssip)
(defun getenv (var)
#+SBCL
(sb-ext:posix-getenv var)
#+CLISP
(ext:getenv var))
#+CLISP
(defparameter +encoding+
(ext:make-encoding :charset 'charset:utf-8 :line-terminator :unix))
(defun open-network-stream (host port)
#+CLISP
(socket:socket-connect port host :external-format +encoding+)
#+SBCL
(let ((s (make-instance 'sb-bsd-sockets:inet-socket :type :stream
:protocol :tcp)))
(sb-bsd-sockets:socket-connect
s
(sb-bsd-sockets:host-ent-address (sb-bsd-sockets:get-host-by-name host))
port)
(sb-bsd-sockets:socket-make-stream s :input t :output t :buffering :none))
)
(defun close-network-stream (stream)
#+(or SBCL CLISP)
(close stream))