我正在尝试使用TCP/IP上的TLS将iOS应用程序连接到Windows C#服务器.
所述TLS连接使用不受信任的证书由一个创建不可信CA根证书使用makecert实用程序.
为了测试这些证书,我创建了一个简单的C#客户端,并使用这些证书,它能够连接并与服务器通信.
我不擅长iOS开发,但我确实找到了一些将我连接到服务器的代码,如下所示:
-(bool)CreateAndConnect:(NSString *) remoteHost withPort:(NSInteger) serverPort
{
CFReadStreamRef readStream;
CFWriteStreamRef writeStream;
CFStreamCreatePairWithSocketToHost(NULL, (__bridge CFStringRef)(remoteHost),
serverPort, &readStream, &writeStream);
CFReadStreamSetProperty(readStream, kCFStreamPropertySocketSecurityLevel,
kCFStreamSocketSecurityLevelNegotiatedSSL);
NSInputStream *inputStream = (__bridge_transfer NSInputStream *)readStream;
NSOutputStream *outputStream = (__bridge_transfer NSOutputStream *)writeStream;
[inputStream setProperty:NSStreamSocketSecurityLevelNegotiatedSSL forKey:NSStreamSocketSecurityLevelKey];
// load certificate from servers exported p12 file
NSArray *certificates = [[NSArray alloc] init];
[self loadClientCertificates:certificates];
NSDictionary *sslSettings = [NSDictionary dictionaryWithObjectsAndKeys:
(id)kCFBooleanFalse, (id)kCFStreamSSLValidatesCertificateChain,
certificates,(id)kCFStreamSSLCertificates,
nil];
[inputStream setProperty:sslSettings forKey:(__bridge NSString *)kCFStreamPropertySSLSettings];
[inputStream setDelegate:self];
[outputStream setDelegate:self];
[inputStream …Run Code Online (Sandbox Code Playgroud) 我有一个嵌入Lua的程序,并实现了一种惰性函数查找.
它在Lua 5.1中的工作方式,只要符号未定义,解释器就会调用一个全局函数钩子来解析符号.
这是实现这个惰性函数查找的C代码的一小部分:
int function_hook(lua_State *pLuaState)
{
// do the function lookup here
....
return 1;
}
......
//-- create table containing the hook details
lua_newtable(pLuaState);
lua_pushstring(pLuaState, "__index");
lua_pushcfunction(pLuaState, function_hook);
lua_settable(pLuaState, -3);
//-- set global index callback hook
lua_setmetatable(pLuaState, LUA_GLOBALSINDEX);
Run Code Online (Sandbox Code Playgroud)
我现在正试图将此代码移至Lua 5.2并遇到问题.
在Lua 5.2中,不再定义LUA_GLOBALSINDEX值,因此这行代码不再编译.
//-- set global call back hook
lua_setmetatable(pLuaState, LUA_GLOBALSINDEX);
Run Code Online (Sandbox Code Playgroud)
LUA_GLOBALSINDEX 有一个对此更改的引用,但不幸的是它没有帮助.
重写这一行代码以便解释器在找到未解析的符号时调用function_hook的最佳方法是什么?