Lines Matching defs:tctx

194 	struct tcp_ctx *tctx;
202 tctx = malloc(sizeof(*tctx));
203 if (tctx == NULL)
207 if ((ret = tcp_addr(addr, PROTO_TCP_DEFAULT_PORT, &tctx->tc_sa)) != 0) {
208 free(tctx);
212 PJDLOG_ASSERT(tctx->tc_sa.ss_family != AF_UNSPEC);
214 tctx->tc_fd = socket(tctx->tc_sa.ss_family, SOCK_STREAM, 0);
215 if (tctx->tc_fd == -1) {
217 free(tctx);
221 PJDLOG_ASSERT(tctx->tc_sa.ss_family != AF_UNSPEC);
225 if (setsockopt(tctx->tc_fd, IPPROTO_TCP, TCP_NODELAY, &nodelay,
230 tctx->tc_side = side;
231 tctx->tc_magic = TCP_CTX_MAGIC;
232 *ctxp = tctx;
240 struct tcp_ctx *tctx;
247 tctx = malloc(sizeof(*tctx));
248 if (tctx == NULL)
251 tctx->tc_fd = fd;
252 tctx->tc_sa.ss_family = AF_UNSPEC;
253 tctx->tc_side = side;
254 tctx->tc_magic = TCP_CTX_MAGIC;
255 *ctxp = tctx;
263 struct tcp_ctx *tctx;
270 tctx = *ctxp;
275 tcp_close(tctx);
278 if (bind(tctx->tc_fd, (struct sockaddr *)&sa, sa.ss_len) == -1) {
280 tcp_close(tctx);
289 struct tcp_ctx *tctx = ctx;
292 PJDLOG_ASSERT(tctx != NULL);
293 PJDLOG_ASSERT(tctx->tc_magic == TCP_CTX_MAGIC);
294 PJDLOG_ASSERT(tctx->tc_side == TCP_SIDE_CLIENT);
295 PJDLOG_ASSERT(tctx->tc_fd >= 0);
296 PJDLOG_ASSERT(tctx->tc_sa.ss_family != AF_UNSPEC);
299 flags = fcntl(tctx->tc_fd, F_GETFL);
309 if (fcntl(tctx->tc_fd, F_SETFL, flags) == -1) {
315 if (connect(tctx->tc_fd, (struct sockaddr *)&tctx->tc_sa,
316 tctx->tc_sa.ss_len) == 0) {
332 if (fcntl(tctx->tc_fd, F_SETFL, flags) == -1) {
344 struct tcp_ctx *tctx = ctx;
350 PJDLOG_ASSERT(tctx != NULL);
351 PJDLOG_ASSERT(tctx->tc_magic == TCP_CTX_MAGIC);
352 PJDLOG_ASSERT(tctx->tc_side == TCP_SIDE_CLIENT);
353 PJDLOG_ASSERT(tctx->tc_fd >= 0);
360 FD_SET(tctx->tc_fd, &fdset);
361 ret = select(tctx->tc_fd + 1, NULL, &fdset, NULL, &tv);
373 PJDLOG_ASSERT(FD_ISSET(tctx->tc_fd, &fdset));
375 if (getsockopt(tctx->tc_fd, SOL_SOCKET, SO_ERROR, &error,
389 flags = fcntl(tctx->tc_fd, F_GETFL);
397 if (fcntl(tctx->tc_fd, F_SETFL, flags) == -1) {
409 struct tcp_ctx *tctx;
416 tctx = *ctxp;
420 (void)setsockopt(tctx->tc_fd, SOL_SOCKET, SO_REUSEADDR, &val,
423 PJDLOG_ASSERT(tctx->tc_sa.ss_family != AF_UNSPEC);
425 if (bind(tctx->tc_fd, (struct sockaddr *)&tctx->tc_sa,
426 tctx->tc_sa.ss_len) == -1) {
428 tcp_close(tctx);
431 if (listen(tctx->tc_fd, 8) == -1) {
433 tcp_close(tctx);
443 struct tcp_ctx *tctx = ctx;
448 PJDLOG_ASSERT(tctx != NULL);
449 PJDLOG_ASSERT(tctx->tc_magic == TCP_CTX_MAGIC);
450 PJDLOG_ASSERT(tctx->tc_side == TCP_SIDE_SERVER_LISTEN);
451 PJDLOG_ASSERT(tctx->tc_fd >= 0);
452 PJDLOG_ASSERT(tctx->tc_sa.ss_family != AF_UNSPEC);
458 fromlen = tctx->tc_sa.ss_len;
459 newtctx->tc_fd = accept(tctx->tc_fd, (struct sockaddr *)&tctx->tc_sa,
485 struct tcp_ctx *tctx = ctx;
487 PJDLOG_ASSERT(tctx != NULL);
488 PJDLOG_ASSERT(tctx->tc_magic == TCP_CTX_MAGIC);
489 PJDLOG_ASSERT(tctx->tc_fd >= 0);
492 return (proto_common_send(tctx->tc_fd, data, size, -1));
498 struct tcp_ctx *tctx = ctx;
500 PJDLOG_ASSERT(tctx != NULL);
501 PJDLOG_ASSERT(tctx->tc_magic == TCP_CTX_MAGIC);
502 PJDLOG_ASSERT(tctx->tc_fd >= 0);
505 return (proto_common_recv(tctx->tc_fd, data, size, NULL));
511 const struct tcp_ctx *tctx = ctx;
513 PJDLOG_ASSERT(tctx != NULL);
514 PJDLOG_ASSERT(tctx->tc_magic == TCP_CTX_MAGIC);
516 return (tctx->tc_fd);
522 const struct tcp_ctx *tctx = ctx;
526 PJDLOG_ASSERT(tctx != NULL);
527 PJDLOG_ASSERT(tctx->tc_magic == TCP_CTX_MAGIC);
533 if (getpeername(tctx->tc_fd, (struct sockaddr *)&sa2, &salen) == -1)
568 const struct tcp_ctx *tctx = ctx;
572 PJDLOG_ASSERT(tctx != NULL);
573 PJDLOG_ASSERT(tctx->tc_magic == TCP_CTX_MAGIC);
576 if (getsockname(tctx->tc_fd, (struct sockaddr *)&sa, &salen) == -1) {
586 const struct tcp_ctx *tctx = ctx;
590 PJDLOG_ASSERT(tctx != NULL);
591 PJDLOG_ASSERT(tctx->tc_magic == TCP_CTX_MAGIC);
594 if (getpeername(tctx->tc_fd, (struct sockaddr *)&sa, &salen) == -1) {
604 struct tcp_ctx *tctx = ctx;
606 PJDLOG_ASSERT(tctx != NULL);
607 PJDLOG_ASSERT(tctx->tc_magic == TCP_CTX_MAGIC);
609 if (tctx->tc_fd >= 0)
610 close(tctx->tc_fd);
611 tctx->tc_magic = 0;
612 free(tctx);