Overview
Comment: | Add -[initWithSocket:]. |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA3-256: |
c10ce0877b222e1032c68258545f3341 |
User & Date: | js on 2011-03-28 20:26:45 |
Other Links: | manifest | tags |
Context
2011-03-28
| ||
20:32 | Move sources to src and add install and clean targets to Makefile. check-in: 218a219fe5 user: js tags: trunk | |
20:26 | Add -[initWithSocket:]. check-in: c10ce0877b user: js tags: trunk | |
20:05 | Initial import. check-in: fe3303caf8 user: js tags: trunk | |
Changes
Modified SSLSocket.h from [af6ab49c20] to [247b5540e4].
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | #include <openssl/ssl.h> #import <ObjFW/OFTCPSocket.h> @interface SSLSocket: OFTCPSocket { SSL_CTX *ctx; SSL *ssl; BOOL handsShaken; } /* Change the return type */ - (SSLSocket*)accept; @end | > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | #include <openssl/ssl.h> #import <ObjFW/OFTCPSocket.h> @interface SSLSocket: OFTCPSocket { SSL_CTX *ctx; SSL *ssl; BOOL handsShaken; } - initWithSocket: (OFTCPSocket*)socket; /* Change the return type */ - (SSLSocket*)accept; @end |
Modified SSLSocket.m from [150693395a] to [81aea29e44].
1 2 3 4 5 6 7 8 | #include <errno.h> #import <ObjFW/OFHTTPRequest.h> #import "SSLSocket.h" #import <ObjFW/OFAcceptFailedException.h> #import <ObjFw/OFConnectionFailedException.h> | > > | 1 2 3 4 5 6 7 8 9 10 | #include <unistd.h> #include <errno.h> #include <assert.h> #import <ObjFW/OFHTTPRequest.h> #import "SSLSocket.h" #import <ObjFW/OFAcceptFailedException.h> #import <ObjFw/OFConnectionFailedException.h> |
︙ | ︙ | |||
33 34 35 36 37 38 39 | self = [super init]; @try { if ((ctx = SSL_CTX_new(SSLv23_method())) == NULL) @throw [OFInitializationFailedException newWithClass: isa]; | | | | | > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 | self = [super init]; @try { if ((ctx = SSL_CTX_new(SSLv23_method())) == NULL) @throw [OFInitializationFailedException newWithClass: isa]; if ((SSL_CTX_set_options(ctx, SSL_OP_NO_SSLv2) & SSL_OP_NO_SSLv2) == 0) @throw [OFInitializationFailedException newWithClass: isa]; } @catch (id e) { [self release]; @throw e; } return self; } - initWithSocket: (OFTCPSocket*)socket { self = [self init]; @try { sock = dup(socket->sock); if ((ssl = SSL_new(ctx)) == NULL || !SSL_set_fd(ssl, sock)) { close(sock); sock = INVALID_SOCKET; @throw [OFInitializationFailedException newWithClass: isa]; } SSL_set_connect_state(ssl); if (SSL_connect(ssl) != 1) { close(sock); sock = INVALID_SOCKET; @throw [OFInitializationFailedException newWithClass: isa]; } } @catch (id e) { [self release]; @throw e; } return self; } |
︙ | ︙ | |||
65 66 67 68 69 70 71 | - (void)connectToHost: (OFString*)host onPort: (uint16_t)port { [super connectToHost: host onPort: port]; if ((ssl = SSL_new(ctx)) == NULL || !SSL_set_fd(ssl, sock)) { | | | | | | 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 | - (void)connectToHost: (OFString*)host onPort: (uint16_t)port { [super connectToHost: host onPort: port]; if ((ssl = SSL_new(ctx)) == NULL || !SSL_set_fd(ssl, sock)) { [super close]; @throw [OFConnectionFailedException newWithClass: isa socket: self host: host port: port]; } SSL_set_connect_state(ssl); if (SSL_connect(ssl) != 1) { [super close]; @throw [OFConnectionFailedException newWithClass: isa socket: self host: host port: port]; } } - (SSLSocket*)accept { SSLSocket *newsock = (SSLSocket*)[super accept]; if ((ssl = SSL_new(ctx)) == NULL || !SSL_set_fd(ssl, sock)) { [super close]; @throw [OFAcceptFailedException newWithClass: isa socket: self]; } SSL_set_accept_state(ssl); if (SSL_connect(ssl) != 1) { [super close]; @throw [OFAcceptFailedException newWithClass: isa socket: self]; } return newsock; } |
︙ | ︙ |