|
|
| version 1.21.2.2, 2013/11/14 23:38:41 | version 1.21.2.3, 2013/11/15 00:21:46 |
|---|---|
| Line 537 rxUDPPacket(sched_task_t *task) | Line 537 rxUDPPacket(sched_task_t *task) |
| } | } |
| c = _allocClient(srv, &sa); | c = _allocClient(srv, &sa); |
| if (!c) | if (!c) { |
| EVERBOSE(1, "RPC client quota exceeded! Connection will be shutdown!\n"); | |
| usleep(2000); /* blocked client delay */ | |
| goto end; | goto end; |
| else { | } else { |
| estlen = ntohl(rpc->call_len); | estlen = ntohl(rpc->call_len); |
| if (estlen > AIT_LEN(&c->cli_buf)) | if (estlen > AIT_LEN(&c->cli_buf)) |
| AIT_RE_BUF(&c->cli_buf, estlen); | AIT_RE_BUF(&c->cli_buf, estlen); |
| Line 571 rxUDPPacket(sched_task_t *task) | Line 573 rxUDPPacket(sched_task_t *task) |
| c, 0, NULL, 0); | c, 0, NULL, 0); |
| return NULL; | return NULL; |
| } | } |
| salen = sa.ss.ss_len = sizeof(sockaddr_t); | |
| rlen = recvfrom(TASK_FD(task), buf, len, 0, &sa.sa, &salen); | rlen = recvfrom(TASK_FD(task), buf, len, 0, &sa.sa, &salen); |
| if (rlen == -1) { | if (rlen == -1) { |
| /* close connection */ | /* close connection */ |
| Line 578 rxUDPPacket(sched_task_t *task) | Line 581 rxUDPPacket(sched_task_t *task) |
| c, 0, NULL, 0); | c, 0, NULL, 0); |
| return NULL; | return NULL; |
| } | } |
| if (e_addrcmp(&c->cli_sa, &sa, 42)) | |
| rlen ^= rlen; /* skip if arrive from different address */ | |
| } | } |
| len = estlen; | len = estlen; |