version 1.2.4.1, 2012/06/29 08:22:50
|
version 1.2.4.2, 2012/06/29 08:44:34
|
Line 52 SUCH DAMAGE.
|
Line 52 SUCH DAMAGE.
|
* @sock = Client socket from accept() |
* @sock = Client socket from accept() |
* @buf = Message buffer |
* @buf = Message buffer |
* @timeout = timeout |
* @timeout = timeout |
|
* @nb = Non block socket |
* return: NULL error or !=NULL allocated server handle |
* return: NULL error or !=NULL allocated server handle |
*/ |
*/ |
mqtt_srv_t * |
mqtt_srv_t * |
mqtt_srv_cliInit(int sock, mqtt_msg_t * __restrict buf, u_short timeout) | mqtt_srv_cliInit(int sock, mqtt_msg_t * __restrict buf, u_short timeout, int nb) |
{ |
{ |
mqtt_srv_t *srv = NULL; |
mqtt_srv_t *srv = NULL; |
|
struct timeval tv = { timeout, 0 }; |
|
int n; |
|
|
if (!buf || !buf->msg_base || !buf->msg_len) |
if (!buf || !buf->msg_base || !buf->msg_len) |
return srv; |
return srv; |
|
else |
|
n = buf->msg_len; |
|
|
srv = malloc(sizeof(mqtt_srv_t)); |
srv = malloc(sizeof(mqtt_srv_t)); |
if (!srv) { |
if (!srv) { |
Line 68 mqtt_srv_cliInit(int sock, mqtt_msg_t * __restrict buf
|
Line 73 mqtt_srv_cliInit(int sock, mqtt_msg_t * __restrict buf
|
return srv; |
return srv; |
} else |
} else |
memset(srv, 0, sizeof(mqtt_srv_t)); |
memset(srv, 0, sizeof(mqtt_srv_t)); |
|
|
|
/* set options of client socket */ |
|
setsockopt(sock, SOL_SOCKET, SO_SNDBUF, &n, sizeof n); |
|
setsockopt(sock, SOL_SOCKET, SO_RCVBUF, &n, sizeof n); |
|
setsockopt(sock, SOL_SOCKET, SO_SNDTIMEO, &tv, sizeof tv); |
|
setsockopt(sock, SOL_SOCKET, SO_RCVTIMEO, &tv, sizeof tv); |
|
ioctl(sock, FIONBIO, nb); |
|
|
srv->sock = sock; |
srv->sock = sock; |
srv->buf = buf; |
srv->buf = buf; |