Lines Matching refs:conn

76 	struct proto_conn *conn;
83 conn = malloc(sizeof(*conn));
84 if (conn != NULL) {
85 conn->pc_proto = proto;
86 conn->pc_side = side;
87 conn->pc_magic = PROTO_CONN_MAGIC;
89 return (conn);
93 proto_free(struct proto_conn *conn)
96 PJDLOG_ASSERT(conn != NULL);
97 PJDLOG_ASSERT(conn->pc_magic == PROTO_CONN_MAGIC);
98 PJDLOG_ASSERT(conn->pc_side == PROTO_SIDE_CLIENT ||
99 conn->pc_side == PROTO_SIDE_SERVER_LISTEN ||
100 conn->pc_side == PROTO_SIDE_SERVER_WORK);
101 PJDLOG_ASSERT(conn->pc_proto != NULL);
103 bzero(conn, sizeof(*conn));
104 free(conn);
112 struct proto_conn *conn;
149 conn = proto_alloc(proto, side);
150 if (conn == NULL) {
156 conn->pc_ctx = ctx;
157 *connp = conn;
171 proto_connect(struct proto_conn *conn, int timeout)
175 PJDLOG_ASSERT(conn != NULL);
176 PJDLOG_ASSERT(conn->pc_magic == PROTO_CONN_MAGIC);
177 PJDLOG_ASSERT(conn->pc_side == PROTO_SIDE_CLIENT);
178 PJDLOG_ASSERT(conn->pc_proto != NULL);
179 PJDLOG_ASSERT(conn->pc_proto->prt_connect != NULL);
182 ret = conn->pc_proto->prt_connect(conn->pc_ctx, timeout);
192 proto_connect_wait(struct proto_conn *conn, int timeout)
196 PJDLOG_ASSERT(conn != NULL);
197 PJDLOG_ASSERT(conn->pc_magic == PROTO_CONN_MAGIC);
198 PJDLOG_ASSERT(conn->pc_side == PROTO_SIDE_CLIENT);
199 PJDLOG_ASSERT(conn->pc_proto != NULL);
200 PJDLOG_ASSERT(conn->pc_proto->prt_connect_wait != NULL);
203 ret = conn->pc_proto->prt_connect_wait(conn->pc_ctx, timeout);
220 proto_accept(struct proto_conn *conn, struct proto_conn **newconnp)
225 PJDLOG_ASSERT(conn != NULL);
226 PJDLOG_ASSERT(conn->pc_magic == PROTO_CONN_MAGIC);
227 PJDLOG_ASSERT(conn->pc_side == PROTO_SIDE_SERVER_LISTEN);
228 PJDLOG_ASSERT(conn->pc_proto != NULL);
229 PJDLOG_ASSERT(conn->pc_proto->prt_accept != NULL);
231 newconn = proto_alloc(conn->pc_proto, PROTO_SIDE_SERVER_WORK);
235 ret = conn->pc_proto->prt_accept(conn->pc_ctx, &newconn->pc_ctx);
248 proto_send(const struct proto_conn *conn, const void *data, size_t size)
252 PJDLOG_ASSERT(conn != NULL);
253 PJDLOG_ASSERT(conn->pc_magic == PROTO_CONN_MAGIC);
254 PJDLOG_ASSERT(conn->pc_proto != NULL);
255 PJDLOG_ASSERT(conn->pc_proto->prt_send != NULL);
257 ret = conn->pc_proto->prt_send(conn->pc_ctx, data, size, -1);
266 proto_recv(const struct proto_conn *conn, void *data, size_t size)
270 PJDLOG_ASSERT(conn != NULL);
271 PJDLOG_ASSERT(conn->pc_magic == PROTO_CONN_MAGIC);
272 PJDLOG_ASSERT(conn->pc_proto != NULL);
273 PJDLOG_ASSERT(conn->pc_proto->prt_recv != NULL);
275 ret = conn->pc_proto->prt_recv(conn->pc_ctx, data, size, NULL);
284 proto_connection_send(const struct proto_conn *conn, struct proto_conn *mconn)
289 PJDLOG_ASSERT(conn != NULL);
290 PJDLOG_ASSERT(conn->pc_magic == PROTO_CONN_MAGIC);
291 PJDLOG_ASSERT(conn->pc_proto != NULL);
292 PJDLOG_ASSERT(conn->pc_proto->prt_send != NULL);
301 ret = conn->pc_proto->prt_send(conn->pc_ctx,
312 proto_connection_recv(const struct proto_conn *conn, bool client,
320 PJDLOG_ASSERT(conn != NULL);
321 PJDLOG_ASSERT(conn->pc_magic == PROTO_CONN_MAGIC);
322 PJDLOG_ASSERT(conn->pc_proto != NULL);
323 PJDLOG_ASSERT(conn->pc_proto->prt_recv != NULL);
328 ret = conn->pc_proto->prt_recv(conn->pc_ctx, (unsigned char *)protoname,
364 proto_descriptor(const struct proto_conn *conn)
367 PJDLOG_ASSERT(conn != NULL);
368 PJDLOG_ASSERT(conn->pc_magic == PROTO_CONN_MAGIC);
369 PJDLOG_ASSERT(conn->pc_proto != NULL);
370 PJDLOG_ASSERT(conn->pc_proto->prt_descriptor != NULL);
372 return (conn->pc_proto->prt_descriptor(conn->pc_ctx));
376 proto_address_match(const struct proto_conn *conn, const char *addr)
379 PJDLOG_ASSERT(conn != NULL);
380 PJDLOG_ASSERT(conn->pc_magic == PROTO_CONN_MAGIC);
381 PJDLOG_ASSERT(conn->pc_proto != NULL);
382 PJDLOG_ASSERT(conn->pc_proto->prt_address_match != NULL);
384 return (conn->pc_proto->prt_address_match(conn->pc_ctx, addr));
388 proto_local_address(const struct proto_conn *conn, char *addr, size_t size)
391 PJDLOG_ASSERT(conn != NULL);
392 PJDLOG_ASSERT(conn->pc_magic == PROTO_CONN_MAGIC);
393 PJDLOG_ASSERT(conn->pc_proto != NULL);
394 PJDLOG_ASSERT(conn->pc_proto->prt_local_address != NULL);
396 conn->pc_proto->prt_local_address(conn->pc_ctx, addr, size);
400 proto_remote_address(const struct proto_conn *conn, char *addr, size_t size)
403 PJDLOG_ASSERT(conn != NULL);
404 PJDLOG_ASSERT(conn->pc_magic == PROTO_CONN_MAGIC);
405 PJDLOG_ASSERT(conn->pc_proto != NULL);
406 PJDLOG_ASSERT(conn->pc_proto->prt_remote_address != NULL);
408 conn->pc_proto->prt_remote_address(conn->pc_ctx, addr, size);
412 proto_timeout(const struct proto_conn *conn, int timeout)
417 PJDLOG_ASSERT(conn != NULL);
418 PJDLOG_ASSERT(conn->pc_magic == PROTO_CONN_MAGIC);
419 PJDLOG_ASSERT(conn->pc_proto != NULL);
421 fd = proto_descriptor(conn);
436 proto_close(struct proto_conn *conn)
439 PJDLOG_ASSERT(conn != NULL);
440 PJDLOG_ASSERT(conn->pc_magic == PROTO_CONN_MAGIC);
441 PJDLOG_ASSERT(conn->pc_proto != NULL);
442 PJDLOG_ASSERT(conn->pc_proto->prt_close != NULL);
444 conn->pc_proto->prt_close(conn->pc_ctx);
445 proto_free(conn);