diff --git a/src/frontend/sock.c b/src/frontend/sock.c
index 7cb985d9735530c30caba90c26cbe85159ecd027..1827886628ae6236e991251e6b1d8ecd9a5ab34c 100644 (file)
--- a/src/frontend/sock.c
+++ b/src/frontend/sock.c
int type;
int sock_fd;
- int (*accept)(sdb_conn_t *);
- int (*peer)(sdb_conn_t *);
+ int (*setup)(sdb_conn_t *, void *);
} listener_t;
typedef struct {
*/
static int
-unixsock_peer(sdb_conn_t *conn)
+setup_unixsock(sdb_conn_t *conn, void __attribute__((unused)) *user_data)
{
uid_t uid;
return -1;
}
return 0;
-} /* unixsock_peer */
+} /* setup_unixsock */
static int
open_unixsock(listener_t *listener)
return -1;
}
- listener->peer = unixsock_peer;
+ listener->setup = setup_unixsock;
return 0;
} /* open_unixsock */
return NULL;
}
listener->type = type;
- listener->accept = NULL;
- listener->peer = NULL;
+ listener->setup = NULL;
if (listener_impls[type].open(listener)) {
/* prints error */
sdb_object_t *obj;
int status;
- obj = SDB_OBJ(sdb_connection_accept(listener->sock_fd));
+ obj = SDB_OBJ(sdb_connection_accept(listener->sock_fd,
+ listener->setup, NULL));
if (! obj)
return -1;
- if (listener->accept && listener->accept(CONN(obj))) {
- /* accept() is expected to log an error */
- sdb_object_deref(obj);
- return -1;
- }
- if (listener->peer && listener->peer(CONN(obj))) {
- /* peer() is expected to log an error */
- sdb_object_deref(obj);
- return -1;
- }
-
status = sdb_llist_append(sock->open_connections, obj);
if (status)
sdb_log(SDB_LOG_ERR, "frontend: Failed to append "