#ifndef DISABLE_LIBSSH if (session->ssh_chan != NULL) { /* we are getting data from libssh's channel */ status = ssh_channel_poll_timeout(session->ssh_chan, timeout, 0); if (status > 0) { revents = POLLIN; } } else #endif #ifdef ENABLE_TLS if (session->tls != NULL) { /* we are getting data from TLS session using OpenSSL */ fds.fd = SSL_get_fd(session->tls); fds.events = POLLIN; fds.revents = 0; status = poll(&fds, 1, timeout); revents = (unsigned long int) fds.revents; } else #endif
时间: 2024-04-24 15:22:01 浏览: 169
C++ 中pragma once 与 #ifndef _XXX_H_ #define _XXX_H_的区别
5星 · 资源好评率100%
这段代码是一个网络库的代码,主要是用于从网络通道中读取数据。其中,该代码使用了条件编译,根据是否定义了DISABLE_LIBSSH和ENABLE_TLS宏来选择不同的代码路径。当DISABLE_LIBSSH宏被定义时,该代码段会从libssh的channel中获取数据;当ENABLE_TLS宏被定义时,该代码段会从OpenSSL的TLS session中获取数据。poll函数会等待timeout时间,直到有数据可读或者等待超时返回。如果有数据可读,则将revents设置为POLLIN表示有数据可读。
阅读全文