Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
View | Details | Raw Unified | Return to bug 122236 | Differences between
and this patch

Collapse All | Expand All

(-)ecl-0.9h.orig/contrib/sockets/sockets.lisp (-12 / +12 lines)
Lines 1-5 Link Here
1
;; -*- Mode: Lisp; Syntax: Common-Lisp -*-
1
;; -*- Mode: Lisp; Syntax: Common-Lisp -*-
2
;; $Id$
2
;; $Id: sockets.lisp,v 1.17 2005/12/05 09:21:30 goffioul Exp $
3
3
4
;; This file is based on SBCL's SB-BSD-SOCKET module and has been
4
;; This file is based on SBCL's SB-BSD-SOCKET module and has been
5
;; heavily modified to work with ECL by Julian Stecklina.
5
;; heavily modified to work with ECL by Julian Stecklina.
Lines 518-524 Link Here
518
"{
518
"{
519
        struct sockaddr_in sockaddr;
519
        struct sockaddr_in sockaddr;
520
        int addr_len = sizeof(struct sockaddr_in);
520
        int addr_len = sizeof(struct sockaddr_in);
521
        int new_fd = accept(#0, (struct sockaddr*)&sockaddr, &addr_len);
521
        int new_fd = accept(#0, (struct sockaddr*)&sockaddr, (socklen_t *) &addr_len);
522
522
523
	@(return 0) = new_fd;
523
	@(return 0) = new_fd;
524
	@(return 1) = Cnil;
524
	@(return 1) = Cnil;
Lines 651-660 Link Here
651
        sockaddr.sun_len = sizeof(struct sockaddr_un);
651
        sockaddr.sun_len = sizeof(struct sockaddr_un);
652
#endif
652
#endif
653
        sockaddr.sun_family = #2;
653
        sockaddr.sun_family = #2;
654
        strncpy(&sockaddr.sun_path,#1,sizeof(sockaddr.sun_path));
654
        strncpy((char *) &sockaddr.sun_path,#1,sizeof(sockaddr.sun_path));
655
	sockaddr.sun_path[sizeof(sockaddr.sun_path)-1] = '\0';
655
	sockaddr.sun_path[sizeof(sockaddr.sun_path)-1] = '\0';
656
656
657
        @(return) = bind(#0,&sockaddr, sizeof(struct sockaddr_un));
657
        @(return) = bind(#0,(struct sockaddr *) &sockaddr, sizeof(struct sockaddr_un));
658
}"))
658
}"))
659
	(socket-error "bind"))))
659
	(socket-error "bind"))))
660
660
Lines 664-672 Link Here
664
"{
664
"{
665
        struct sockaddr_un sockaddr;
665
        struct sockaddr_un sockaddr;
666
        int addr_len = sizeof(struct sockaddr_un);
666
        int addr_len = sizeof(struct sockaddr_un);
667
        int new_fd = accept(#0, &sockaddr, &addr_len);
667
        int new_fd = accept(#0, (struct sockaddr *) &sockaddr, (socklen_t *) &addr_len);
668
	@(return 0) = new_fd;
668
	@(return 0) = new_fd;
669
	@(return 1) = (new_fd == -1) ? Cnil : make_string_copy(&sockaddr.sun_path);
669
	@(return 1) = (new_fd == -1) ? Cnil : make_string_copy((char *) &sockaddr.sun_path);
670
}")
670
}")
671
    (cond
671
    (cond
672
      ((= fd -1)
672
      ((= fd -1)
Lines 694-703 Link Here
694
        sockaddr.sun_len = sizeof(struct sockaddr_un);
694
        sockaddr.sun_len = sizeof(struct sockaddr_un);
695
#endif
695
#endif
696
        sockaddr.sun_family = #1;
696
        sockaddr.sun_family = #1;
697
        strncpy(&sockaddr.sun_path,#2,sizeof(sockaddr.sun_path));
697
        strncpy((char *) &sockaddr.sun_path,#2,sizeof(sockaddr.sun_path));
698
	sockaddr.sun_path[sizeof(sockaddr.sun_path)-1] = '\0';
698
	sockaddr.sun_path[sizeof(sockaddr.sun_path)-1] = '\0';
699
699
700
        @(return) = connect(#0,&sockaddr, sizeof(struct sockaddr_un));
700
        @(return) = connect(#0,(struct sockaddr *) &sockaddr, sizeof(struct sockaddr_un));
701
}"))
701
}"))
702
	(socket-error "connect"))))
702
	(socket-error "connect"))))
703
703
Lines 708-717 Link Here
708
{
708
{
709
        struct sockaddr_un name;
709
        struct sockaddr_un name;
710
        socklen_t len = sizeof(struct sockaddr_un);
710
        socklen_t len = sizeof(struct sockaddr_un);
711
        int ret = getpeername(#0,&name,&len);
711
        int ret = getpeername(#0,(struct sockaddr *) &name,&len);
712
712
713
        if (ret == 0) {
713
        if (ret == 0) {
714
                @(return) = make_string_copy(&name.sun_path);
714
                @(return) = make_string_copy((char *) &name.sun_path);
715
        } else {
715
        } else {
716
                @(return) = Cnil;
716
                @(return) = Cnil;
717
        }
717
        }
Lines 985-991 Link Here
985
		       ))
985
		       ))
986
	    (t :int :int)
986
	    (t :int :int)
987
	    t
987
	    t
988
	    "ecl_make_stream_from_fd(#0,#1,#2)"
988
	    "ecl_make_stream_from_fd(#0,#1,(enum ecl_smmode) #2)"
989
	    :one-liner t))
989
	    :one-liner t))
990
990
991
(defgeneric socket-make-stream (socket  &rest args)
991
(defgeneric socket-make-stream (socket  &rest args)
Lines 1017-1023 Link Here
1017
	cl_object in_strm, out_strm;
1017
	cl_object in_strm, out_strm;
1018
	in_strm = ecl_make_stream_from_fd(make_simple_string(\"FD-STREAM\"), #0, smm_input);
1018
	in_strm = ecl_make_stream_from_fd(make_simple_string(\"FD-STREAM\"), #0, smm_input);
1019
	out_strm = ecl_make_stream_from_fd(make_simple_string(\"FD-STREAM\"), #0, smm_output);
1019
	out_strm = ecl_make_stream_from_fd(make_simple_string(\"FD-STREAM\"), #0, smm_output);
1020
	@(return) = make_two_way_stream(in_strm, out_strm);
1020
	@(return) = cl_make_two_way_stream(in_strm, out_strm);
1021
}"
1021
}"
1022
                               :one-liner nil)))
1022
                               :one-liner nil)))
1023
      (setf (slot-value socket 'stream) stream)
1023
      (setf (slot-value socket 'stream) stream)

Return to bug 122236