void slave_main(int sock, struct sockaddr *addr) { char addrstr[INET_ADDRSTRLEN]; struct sockaddr_in *addr_in = (struct sockaddr_in *)addr; uint32_t msgtype; struct strbuf msg = STRBUF_INIT; if (addr->sa_family != AF_INET) fatal("unsupported address family %d", addr->sa_family); if (!inet_ntop(AF_INET, &addr_in->sin_addr, addrstr, sizeof(addrstr))) fatalpe("inet_ntop"); notice("accepted connection from %s", addrstr); setup_slave_sigs(); while (!terminate) { if (ceo_receive_message(sock, &msg, &msgtype)) break; handle_one_message(sock, &msg, msgtype); } notice("connection closed by peer %s", addrstr); strbuf_release(&msg); /* stuff allocated by dmaster */ free_gss(); free_config(); free_fqdn(); free_ops(); free(prog); }
int cdbb_apply(struct cdbb *a) { int err = 0; err = cdbb_copy(a); err += cdbb_handle_ops(a); rename(a->t, a->f); if (err == 0) unlink(a->f); if (a->t) free(a->t); cdbb_close_read(a); cdbb_close_write(a); free_ops(a); return err; }