diff options
author | deraadt <> | 2014-04-13 23:31:37 +0000 |
---|---|---|
committer | deraadt <> | 2014-04-13 23:31:37 +0000 |
commit | cda33257f58f8db3c1ca537b69068295429016a8 (patch) | |
tree | 89065e5111041f7b870af1a24c15040904c5bf5f /src/lib/libcrypto/bio/b_sock.c | |
parent | 9d346dca94e1cec09cd98f01e0431d371ef03467 (diff) | |
download | openbsd-cda33257f58f8db3c1ca537b69068295429016a8.tar.gz openbsd-cda33257f58f8db3c1ca537b69068295429016a8.tar.bz2 openbsd-cda33257f58f8db3c1ca537b69068295429016a8.zip |
Remove various horrible socket syscall wrappers, especially SHUTDOWN*
which did shutdown + close, all nasty and surprising. Use the raw
syscalls that everyone knows the behaviour of.
ok beck matthew
Diffstat (limited to 'src/lib/libcrypto/bio/b_sock.c')
-rw-r--r-- | src/lib/libcrypto/bio/b_sock.c | 42 |
1 files changed, 21 insertions, 21 deletions
diff --git a/src/lib/libcrypto/bio/b_sock.c b/src/lib/libcrypto/bio/b_sock.c index 41f958be71..779acbaaf5 100644 --- a/src/lib/libcrypto/bio/b_sock.c +++ b/src/lib/libcrypto/bio/b_sock.c | |||
@@ -221,7 +221,7 @@ int BIO_get_port(const char *str, unsigned short *port_ptr) | |||
221 | #endif | 221 | #endif |
222 | else | 222 | else |
223 | { | 223 | { |
224 | SYSerr(SYS_F_GETSERVBYNAME,get_last_socket_error()); | 224 | SYSerr(SYS_F_GETSERVBYNAME,errno); |
225 | ERR_add_error_data(3,"service='",str,"'"); | 225 | ERR_add_error_data(3,"service='",str,"'"); |
226 | return(0); | 226 | return(0); |
227 | } | 227 | } |
@@ -549,7 +549,7 @@ int BIO_socket_ioctl(int fd, long type, void *arg) | |||
549 | int i; | 549 | int i; |
550 | 550 | ||
551 | #ifdef __DJGPP__ | 551 | #ifdef __DJGPP__ |
552 | i=ioctlsocket(fd,type,(char *)arg); | 552 | i=ioctl(fd,type,(char *)arg); |
553 | #else | 553 | #else |
554 | # if defined(OPENSSL_SYS_VMS) | 554 | # if defined(OPENSSL_SYS_VMS) |
555 | /* 2011-02-18 SMS. | 555 | /* 2011-02-18 SMS. |
@@ -574,10 +574,10 @@ int BIO_socket_ioctl(int fd, long type, void *arg) | |||
574 | # define ARG arg | 574 | # define ARG arg |
575 | # endif /* defined(OPENSSL_SYS_VMS) [else] */ | 575 | # endif /* defined(OPENSSL_SYS_VMS) [else] */ |
576 | 576 | ||
577 | i=ioctlsocket(fd,type,ARG); | 577 | i=ioctl(fd,type,ARG); |
578 | #endif /* __DJGPP__ */ | 578 | #endif /* __DJGPP__ */ |
579 | if (i < 0) | 579 | if (i < 0) |
580 | SYSerr(SYS_F_IOCTLSOCKET,get_last_socket_error()); | 580 | SYSerr(SYS_F_IOCTLSOCKET,errno); |
581 | return(i); | 581 | return(i); |
582 | } | 582 | } |
583 | #endif /* __VMS_VER */ | 583 | #endif /* __VMS_VER */ |
@@ -629,7 +629,7 @@ int BIO_get_accept_socket(char *host, int bind_mode) | |||
629 | struct sockaddr_in6 sa_in6; | 629 | struct sockaddr_in6 sa_in6; |
630 | #endif | 630 | #endif |
631 | } server,client; | 631 | } server,client; |
632 | int s=INVALID_SOCKET,cs,addrlen; | 632 | int s=-1,cs,addrlen; |
633 | unsigned char ip[4]; | 633 | unsigned char ip[4]; |
634 | unsigned short port; | 634 | unsigned short port; |
635 | char *str=NULL,*e; | 635 | char *str=NULL,*e; |
@@ -637,9 +637,9 @@ int BIO_get_accept_socket(char *host, int bind_mode) | |||
637 | unsigned long l; | 637 | unsigned long l; |
638 | int err_num; | 638 | int err_num; |
639 | 639 | ||
640 | if (BIO_sock_init() != 1) return(INVALID_SOCKET); | 640 | if (BIO_sock_init() != 1) return(-1); |
641 | 641 | ||
642 | if ((str=BUF_strdup(host)) == NULL) return(INVALID_SOCKET); | 642 | if ((str=BUF_strdup(host)) == NULL) return(-1); |
643 | 643 | ||
644 | h=p=NULL; | 644 | h=p=NULL; |
645 | h=str; | 645 | h=str; |
@@ -736,9 +736,9 @@ int BIO_get_accept_socket(char *host, int bind_mode) | |||
736 | 736 | ||
737 | again: | 737 | again: |
738 | s=socket(server.sa.sa_family,SOCK_STREAM,SOCKET_PROTOCOL); | 738 | s=socket(server.sa.sa_family,SOCK_STREAM,SOCKET_PROTOCOL); |
739 | if (s == INVALID_SOCKET) | 739 | if (s == -1) |
740 | { | 740 | { |
741 | SYSerr(SYS_F_SOCKET,get_last_socket_error()); | 741 | SYSerr(SYS_F_SOCKET,errno); |
742 | ERR_add_error_data(3,"port='",host,"'"); | 742 | ERR_add_error_data(3,"port='",host,"'"); |
743 | BIOerr(BIO_F_BIO_GET_ACCEPT_SOCKET,BIO_R_UNABLE_TO_CREATE_SOCKET); | 743 | BIOerr(BIO_F_BIO_GET_ACCEPT_SOCKET,BIO_R_UNABLE_TO_CREATE_SOCKET); |
744 | goto err; | 744 | goto err; |
@@ -756,7 +756,7 @@ again: | |||
756 | if (bind(s,&server.sa,addrlen) == -1) | 756 | if (bind(s,&server.sa,addrlen) == -1) |
757 | { | 757 | { |
758 | #ifdef SO_REUSEADDR | 758 | #ifdef SO_REUSEADDR |
759 | err_num=get_last_socket_error(); | 759 | err_num=errno; |
760 | if ((bind_mode == BIO_BIND_REUSEADDR_IF_UNUSED) && | 760 | if ((bind_mode == BIO_BIND_REUSEADDR_IF_UNUSED) && |
761 | #ifdef OPENSSL_SYS_WINDOWS | 761 | #ifdef OPENSSL_SYS_WINDOWS |
762 | /* Some versions of Windows define EADDRINUSE to | 762 | /* Some versions of Windows define EADDRINUSE to |
@@ -785,15 +785,15 @@ again: | |||
785 | else goto err; | 785 | else goto err; |
786 | } | 786 | } |
787 | cs=socket(client.sa.sa_family,SOCK_STREAM,SOCKET_PROTOCOL); | 787 | cs=socket(client.sa.sa_family,SOCK_STREAM,SOCKET_PROTOCOL); |
788 | if (cs != INVALID_SOCKET) | 788 | if (cs != -1) |
789 | { | 789 | { |
790 | int ii; | 790 | int ii; |
791 | ii=connect(cs,&client.sa,addrlen); | 791 | ii=connect(cs,&client.sa,addrlen); |
792 | closesocket(cs); | 792 | close(cs); |
793 | if (ii == INVALID_SOCKET) | 793 | if (ii == -1) |
794 | { | 794 | { |
795 | bind_mode=BIO_BIND_REUSEADDR; | 795 | bind_mode=BIO_BIND_REUSEADDR; |
796 | closesocket(s); | 796 | close(s); |
797 | goto again; | 797 | goto again; |
798 | } | 798 | } |
799 | /* else error */ | 799 | /* else error */ |
@@ -808,7 +808,7 @@ again: | |||
808 | } | 808 | } |
809 | if (listen(s,MAX_LISTEN) == -1) | 809 | if (listen(s,MAX_LISTEN) == -1) |
810 | { | 810 | { |
811 | SYSerr(SYS_F_BIND,get_last_socket_error()); | 811 | SYSerr(SYS_F_BIND,errno); |
812 | ERR_add_error_data(3,"port='",host,"'"); | 812 | ERR_add_error_data(3,"port='",host,"'"); |
813 | BIOerr(BIO_F_BIO_GET_ACCEPT_SOCKET,BIO_R_UNABLE_TO_LISTEN_SOCKET); | 813 | BIOerr(BIO_F_BIO_GET_ACCEPT_SOCKET,BIO_R_UNABLE_TO_LISTEN_SOCKET); |
814 | goto err; | 814 | goto err; |
@@ -816,17 +816,17 @@ again: | |||
816 | ret=1; | 816 | ret=1; |
817 | err: | 817 | err: |
818 | if (str != NULL) OPENSSL_free(str); | 818 | if (str != NULL) OPENSSL_free(str); |
819 | if ((ret == 0) && (s != INVALID_SOCKET)) | 819 | if ((ret == 0) && (s != -1)) |
820 | { | 820 | { |
821 | closesocket(s); | 821 | close(s); |
822 | s= INVALID_SOCKET; | 822 | s= -1; |
823 | } | 823 | } |
824 | return(s); | 824 | return(s); |
825 | } | 825 | } |
826 | 826 | ||
827 | int BIO_accept(int sock, char **addr) | 827 | int BIO_accept(int sock, char **addr) |
828 | { | 828 | { |
829 | int ret=INVALID_SOCKET; | 829 | int ret=-1; |
830 | unsigned long l; | 830 | unsigned long l; |
831 | unsigned short port; | 831 | unsigned short port; |
832 | char *p; | 832 | char *p; |
@@ -873,10 +873,10 @@ int BIO_accept(int sock, char **addr) | |||
873 | sa.len.i = (int)sa.len.s; | 873 | sa.len.i = (int)sa.len.s; |
874 | /* use sa.len.i from this point */ | 874 | /* use sa.len.i from this point */ |
875 | } | 875 | } |
876 | if (ret == INVALID_SOCKET) | 876 | if (ret == -1) |
877 | { | 877 | { |
878 | if(BIO_sock_should_retry(ret)) return -2; | 878 | if(BIO_sock_should_retry(ret)) return -2; |
879 | SYSerr(SYS_F_ACCEPT,get_last_socket_error()); | 879 | SYSerr(SYS_F_ACCEPT,errno); |
880 | BIOerr(BIO_F_BIO_ACCEPT,BIO_R_ACCEPT_ERROR); | 880 | BIOerr(BIO_F_BIO_ACCEPT,BIO_R_ACCEPT_ERROR); |
881 | goto end; | 881 | goto end; |
882 | } | 882 | } |