︙ | | | ︙ | |
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
|
* FIXME: Errors are not reported to the user.
*/
@interface OFHTTPServer ()
- (bool)of_socket: (OFTCPSocket *)socket
didAcceptSocket: (OFTCPSocket *)clientSocket
context: (id)context
exception: (OFException *)exception;
@end
static const char *
statusCodeToString(short code)
{
switch (code) {
case 100:
|
|
|
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
|
* FIXME: Errors are not reported to the user.
*/
@interface OFHTTPServer ()
- (bool)of_socket: (OFTCPSocket *)socket
didAcceptSocket: (OFTCPSocket *)clientSocket
context: (id)context
exception: (id)exception;
@end
static const char *
statusCodeToString(short code)
{
switch (code) {
case 100:
|
︙ | | | ︙ | |
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
|
}
- initWithSocket: (OFTCPSocket *)socket
server: (OFHTTPServer *)server;
- (bool)socket: (OFTCPSocket *)socket
didReadLine: (OFString *)line
context: (id)context
exception: (OFException *)exception;
- (bool)parseProlog: (OFString *)line;
- (bool)parseHeaders: (OFString *)line;
- (bool)socket: (OFTCPSocket *)socket
didReadIntoBuffer: (char *)buffer
length: (size_t)length
context: (id)context
exception: (OFException *)exception;
- (bool)sendErrorAndClose: (short)statusCode;
- (void)createResponse;
@end
@implementation OFHTTPServer_Connection
- initWithSocket: (OFTCPSocket *)socket
server: (OFHTTPServer *)server
|
|
|
|
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
|
}
- initWithSocket: (OFTCPSocket *)socket
server: (OFHTTPServer *)server;
- (bool)socket: (OFTCPSocket *)socket
didReadLine: (OFString *)line
context: (id)context
exception: (id)exception;
- (bool)parseProlog: (OFString *)line;
- (bool)parseHeaders: (OFString *)line;
- (bool)socket: (OFTCPSocket *)socket
didReadIntoBuffer: (char *)buffer
length: (size_t)length
context: (id)context
exception: (id)exception;
- (bool)sendErrorAndClose: (short)statusCode;
- (void)createResponse;
@end
@implementation OFHTTPServer_Connection
- initWithSocket: (OFTCPSocket *)socket
server: (OFHTTPServer *)server
|
︙ | | | ︙ | |
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
|
[super dealloc];
}
- (bool)socket: (OFTCPSocket *)socket
didReadLine: (OFString *)line
context: (id)context
exception: (OFException *)exception
{
if (line == nil || exception != nil)
return false;
@try {
switch (_state) {
case AWAITING_PROLOG:
|
|
|
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
|
[super dealloc];
}
- (bool)socket: (OFTCPSocket *)socket
didReadLine: (OFString *)line
context: (id)context
exception: (id)exception
{
if (line == nil || exception != nil)
return false;
@try {
switch (_state) {
case AWAITING_PROLOG:
|
︙ | | | ︙ | |
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
|
return true;
}
- (bool)socket: (OFTCPSocket *)socket
didReadIntoBuffer: (char *)buffer
length: (size_t)length
context: (id)context
exception: (OFException *)exception
{
if ([socket isAtEndOfStream] || exception != nil)
return false;
[_body addItems: buffer
count: length];
|
|
|
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
|
return true;
}
- (bool)socket: (OFTCPSocket *)socket
didReadIntoBuffer: (char *)buffer
length: (size_t)length
context: (id)context
exception: (id)exception
{
if ([socket isAtEndOfStream] || exception != nil)
return false;
[_body addItems: buffer
count: length];
|
︙ | | | ︙ | |
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
|
[_listeningSocket release];
_listeningSocket = nil;
}
- (bool)of_socket: (OFTCPSocket *)socket
didAcceptSocket: (OFTCPSocket *)clientSocket
context: (id)context
exception: (OFException *)exception
{
OFHTTPServer_Connection *connection;
if (exception != nil) {
if ([_delegate respondsToSelector:
@selector(server:didReceiveExceptionOnListeningSocket:)])
return [_delegate server: self
|
|
|
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
|
[_listeningSocket release];
_listeningSocket = nil;
}
- (bool)of_socket: (OFTCPSocket *)socket
didAcceptSocket: (OFTCPSocket *)clientSocket
context: (id)context
exception: (id)exception
{
OFHTTPServer_Connection *connection;
if (exception != nil) {
if ([_delegate respondsToSelector:
@selector(server:didReceiveExceptionOnListeningSocket:)])
return [_delegate server: self
|
︙ | | | ︙ | |