Skip to content

Commit

Permalink
iOS
Browse files Browse the repository at this point in the history
  • Loading branch information
mirek committed Mar 9, 2011
1 parent 335290c commit 450d258
Show file tree
Hide file tree
Showing 9 changed files with 367 additions and 18 deletions.
304 changes: 294 additions & 10 deletions CoreWebSocket.xcodeproj/project.pbxproj

Large diffs are not rendered by default.

30 changes: 30 additions & 0 deletions CoreWebSocket/CoreWebSocket-Info.plist
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleDevelopmentRegion</key>
<string>English</string>
<key>CFBundleExecutable</key>
<string>${EXECUTABLE_NAME}</string>
<key>CFBundleIconFile</key>
<string></string>
<key>CFBundleIdentifier</key>
<string>com.github.mirek.${PRODUCT_NAME:rfc1034identifier}</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
<string>${PRODUCT_NAME}</string>
<key>CFBundlePackageType</key>
<string>FMWK</string>
<key>CFBundleShortVersionString</key>
<string>1.0</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleVersion</key>
<string>1</string>
<key>NSHumanReadableCopyright</key>
<string>Copyright © 2011 Inteliv Ltd. All rights reserved.</string>
<key>NSPrincipalClass</key>
<string></string>
</dict>
</plist>
7 changes: 7 additions & 0 deletions CoreWebSocket/CoreWebSocket-Prefix.pch
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
//
// Prefix header for all source files of the 'CoreWebSocket' target in the 'CoreWebSocket' project
//

#ifdef __OBJC__
#import <Cocoa/Cocoa.h>
#endif
2 changes: 2 additions & 0 deletions CoreWebSocket/en.lproj/InfoPlist.strings
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
/* Localized versions of Info.plist keys */

7 changes: 7 additions & 0 deletions CoreWebSocket_iOS/CoreWebSocket_iOS-Prefix.pch
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
//
// Prefix header for all source files of the 'CoreWebSocket_iOS' target in the 'CoreWebSocket_iOS' project
//

#ifdef __OBJC__
#import <Foundation/Foundation.h>
#endif
2 changes: 1 addition & 1 deletion WebSocketCore/WebSocket.c
Original file line number Diff line number Diff line change
Expand Up @@ -143,5 +143,5 @@ CFIndex __WebSocketRemoveClient(WebSocketRef webSocket, WebSocketClientRef clien

void __WebSocketAcceptCallBack(CFSocketRef socket, CFSocketCallBackType type, CFDataRef address, const void *sock, void *info) {
WebSocketRef webSocket = (WebSocketRef)info;
WebSocketClientRef client = WebSocketClientCreate(webSocket, *(CFSocketNativeHandle *)sock);
WebSocketClientCreate(webSocket, *(CFSocketNativeHandle *)sock);
}
7 changes: 6 additions & 1 deletion WebSocketCore/WebSocket.h
Original file line number Diff line number Diff line change
Expand Up @@ -10,12 +10,17 @@
#define __CORE_WEB_SOCKET__ 1

#include <CoreFoundation/CoreFoundation.h>
#include <CoreServices/CoreServices.h>
#include <unistd.h>
#include <netdb.h>

#if (TARGET_OS_EMBEDDED)
#include <CFNetwork/CFNetwork.h>
#include <CommonCrypto/CommonDigest.h>
#else
#include <CoreServices/CoreServices.h>
#include <openssl/evp.h>
#include <openssl/err.h>
#endif

#include <arpa/inet.h>
#include <sys/socket.h>
Expand Down
14 changes: 14 additions & 0 deletions WebSocketCore/WebSocketClient.c
Original file line number Diff line number Diff line change
Expand Up @@ -349,6 +349,19 @@ void __WebSocketDataAppendKey(CFMutableDataRef data, CFStringRef string) {

// Generates md5 data from two header keys and data
CFDataRef __WebSocketCreateMD5Data(CFAllocatorRef allocator, CFStringRef key1, CFStringRef key2, CFDataRef key3) {
#if (TARGET_OS_EMBEDDED)
CC_MD5_CTX mdctx;
CC_MD5_Init(&mdctx);
unsigned char buffer[CC_MD5_DIGEST_LENGTH];
CFMutableDataRef data = CFDataCreateMutable(allocator, 0);
__WebSocketDataAppendKey(data, key1);
__WebSocketDataAppendKey(data, key2);
CFDataAppendBytes(data, CFDataGetBytePtr(key3), CFDataGetLength(key3));
CC_MD5_Update(&mdctx, CFDataGetBytePtr(data), CFDataGetLength(data));
CC_MD5_Final(buffer, &mdctx);
CFRelease(data);
return CFDataCreate(allocator, buffer, CC_MD5_DIGEST_LENGTH);
#else
EVP_MD_CTX mdctx;
unsigned char buffer[EVP_MAX_MD_SIZE];
unsigned int length = 0;
Expand All @@ -361,6 +374,7 @@ CFDataRef __WebSocketCreateMD5Data(CFAllocatorRef allocator, CFStringRef key1, C
EVP_DigestFinal(&mdctx, buffer, &length);
CFRelease(data);
return CFDataCreate(allocator, buffer, length);
#endif
}

bool WebSocketClientHandShake(WebSocketClientRef client) {
Expand Down
12 changes: 6 additions & 6 deletions WebSocketCore/main.c
Original file line number Diff line number Diff line change
Expand Up @@ -23,12 +23,12 @@ void myread(WebSocketRef webSocket, WebSocketClientRef client, CFDataRef data) {

int main (int argc, const char * argv[]) {

WebSocketRef webSocket = WebSocketCreate(NULL, kWebSocketHostAny, 6001);
if (webSocket) {
webSocket->callbacks.didClientReadCallback = myread;
CFRunLoopRun();
WebSocketRelease(webSocket);
}
// WebSocketRef webSocket = WebSocketCreate(NULL, kWebSocketHostAny, 6001);
// if (webSocket) {
// webSocket->callbacks.didClientReadCallback = myread;
// CFRunLoopRun();
// WebSocketRelease(webSocket);
// }


// CFDataRef key3 = CFDataCreate(NULL, (const void *)"Tm[K T2u", 8);
Expand Down

0 comments on commit 450d258

Please sign in to comment.