Lines Matching defs:conn

232 static int	room_conn(struct servtab *sep, struct conninfo *conn);
233 static void addchild_conn(struct conninfo *conn, pid_t pid);
235 static void free_conn(struct conninfo *conn);
335 struct conninfo *conn;
613 conn = NULL;
642 (conn = search_conn(sep, ctrl)) != NULL &&
643 !room_conn(sep, conn)) {
699 free_conn(conn);
715 free_conn(conn);
721 addchild_conn(conn, pid);
2351 struct conninfo *conn;
2388 LIST_FOREACH(conn, &sep->se_conn[hv], co_link) {
2389 if (getnameinfo((struct sockaddr *)&conn->co_addr,
2390 conn->co_addr.ss_len, pname2, sizeof(pname2), NULL, 0,
2396 if (conn == NULL) {
2397 if ((conn = malloc(sizeof(struct conninfo))) == NULL) {
2401 conn->co_proc = malloc(sep->se_maxperip * sizeof(*conn->co_proc));
2402 if (conn->co_proc == NULL) {
2406 memcpy(&conn->co_addr, (struct sockaddr *)&ss, sslen);
2407 conn->co_numchild = 0;
2408 LIST_INSERT_HEAD(&sep->se_conn[hv], conn, co_link);
2417 return conn;
2421 room_conn(struct servtab *sep, struct conninfo *conn)
2425 if (conn->co_numchild >= sep->se_maxperip) {
2426 getnameinfo((struct sockaddr *)&conn->co_addr,
2427 conn->co_addr.ss_len, pname, sizeof(pname), NULL, 0,
2437 addchild_conn(struct conninfo *conn, pid_t pid)
2441 if (conn == NULL)
2450 proc->pr_conn = conn;
2453 conn->co_proc[conn->co_numchild++] = proc;
2460 struct conninfo *conn;
2465 if ((conn = proc->pr_conn) == NULL)
2467 for (i = 0; i < conn->co_numchild; ++i)
2468 if (conn->co_proc[i] == proc) {
2469 conn->co_proc[i] = conn->co_proc[--conn->co_numchild];
2473 free_conn(conn);
2479 struct conninfo *conn;
2489 LIST_FOREACH(conn, &sep->se_conn[i], co_link) {
2490 for (j = maxpip; j < conn->co_numchild; ++j)
2491 free_proc(conn->co_proc[j]);
2492 conn->co_proc = realloc(conn->co_proc,
2493 maxpip * sizeof(*conn->co_proc));
2494 if (conn->co_proc == NULL) {
2498 if (conn->co_numchild > maxpip)
2499 conn->co_numchild = maxpip;
2507 struct conninfo *conn;
2511 while ((conn = LIST_FIRST(&sep->se_conn[i])) != NULL) {
2512 for (j = 0; j < conn->co_numchild; ++j)
2513 free_proc(conn->co_proc[j]);
2514 conn->co_numchild = 0;
2515 free_conn(conn);
2521 free_conn(struct conninfo *conn)
2523 if (conn == NULL)
2525 if (conn->co_numchild <= 0) {
2526 LIST_REMOVE(conn, co_link);
2527 free(conn->co_proc);
2528 free(conn);