Fixed: The -connection:failedToOpen: delegate method wasn't being called.
     5 //  Created by Jens Alfke on 5/10/08.
 
     6 //  Copyright 2008 Jens Alfke. All rights reserved.
 
     9 #import "BLIPConnection.h"
 
    10 #import "BLIPRequest.h"
 
    11 #import "BLIPProperties.h"
 
    15 /* Private declarations and APIs for BLIP implementation. Not for use by clients! */
 
    18 /* BLIP message types; encoded in each frame's header. */
 
    20     kBLIP_MSG,                      // initiating message
 
    21     kBLIP_RPY,                      // response to a MSG
 
    22     kBLIP_ERR                       // error response to a MSG
 
    25 /* Flag bits in a BLIP frame header */
 
    27     kBLIP_TypeMask  = 0x000F,       // bits reserved for storing message type
 
    28     kBLIP_Compressed= 0x0010,       // data is gzipped
 
    29     kBLIP_Urgent    = 0x0020,       // please send sooner/faster
 
    30     kBLIP_NoReply   = 0x0040,       // no RPY needed
 
    31     kBLIP_MoreComing= 0x0080,       // More frames coming (Applies only to individual frame)
 
    33 typedef UInt16 BLIPMessageFlags;
 
    36 /** Header of a BLIP frame as sent across the wire. All fields are big-endian. */
 
    38     UInt32           magic;         // magic number (kBLIPFrameHeaderMagicNumber)
 
    39     UInt32           number;        // serial number of MSG
 
    40     BLIPMessageFlags flags;         // encodes frame type, "more" flag, and other delivery options
 
    41     UInt16           size;          // total size of frame, _including_ this header
 
    44 #define kBLIPFrameHeaderMagicNumber 0x9B34F205
 
    47 NSError *BLIPMakeError( int errorCode, NSString *message, ... ) __attribute__ ((format (__NSString__, 2, 3)));
 
    50 @interface BLIPConnection ()
 
    51 - (void) _dispatchRequest: (BLIPRequest*)request;
 
    52 - (void) _dispatchResponse: (BLIPResponse*)response;
 
    56 @interface BLIPMessage ()
 
    57 @property BOOL sent, propertiesAvailable, complete;
 
    58 - (void) _setFlag: (BLIPMessageFlags)flag value: (BOOL)value;
 
    63 @interface BLIPMessage ()
 
    64 - (id) _initWithConnection: (BLIPConnection*)connection
 
    66                      flags: (BLIPMessageFlags)flags
 
    69 - (BOOL) _writeFrameTo: (BLIPWriter*)writer maxSize: (UInt16)maxSize;
 
    70 @property (readonly) SInt32 _bytesWritten;
 
    71 - (void) _assignedNumber: (UInt32)number;
 
    72 - (BOOL) _receivedFrameWithHeader: (const BLIPFrameHeader*)header body: (NSData*)body;
 
    73 - (void) _connectionClosed;
 
    77 @interface BLIPRequest ()
 
    78 - (id) _initWithConnection: (BLIPConnection*)connection
 
    80                 properties: (NSDictionary*)properties;
 
    84 @interface BLIPResponse ()
 
    85 - (id) _initWithRequest: (BLIPRequest*)request;