#define MAX_INBUF_SIZE 8192
#define MAX_OUTBUF_SIZE 1024
-struct auth_connection {
+struct auth_master_connection {
char *auth_socket_path;
int fd;
unsigned int aborted:1;
};
-static void auth_input(struct auth_connection *conn);
+static void auth_input(struct auth_master_connection *conn);
-struct auth_connection *
+struct auth_master_connection *
auth_master_init(const char *auth_socket_path, bool debug)
{
- struct auth_connection *conn;
+ struct auth_master_connection *conn;
- conn = i_new(struct auth_connection, 1);
+ conn = i_new(struct auth_master_connection, 1);
conn->auth_socket_path = i_strdup(auth_socket_path);
conn->fd = -1;
conn->debug = debug;
return conn;
}
-static void auth_connection_close(struct auth_connection *conn)
+static void auth_connection_close(struct auth_master_connection *conn)
{
if (conn->to != NULL)
timeout_remove(&conn->to);
conn->handshaked = FALSE;
}
-void auth_master_deinit(struct auth_connection **_conn)
+void auth_master_deinit(struct auth_master_connection **_conn)
{
- struct auth_connection *conn = *_conn;
+ struct auth_master_connection *conn = *_conn;
*_conn = NULL;
auth_connection_close(conn);
i_free(conn);
}
-static void auth_request_lookup_abort(struct auth_connection *conn)
+static void auth_request_lookup_abort(struct auth_master_connection *conn)
{
io_loop_stop(conn->ioloop);
conn->aborted = TRUE;
}
-static void auth_parse_input(struct auth_connection *conn,
+static void auth_parse_input(struct auth_master_connection *conn,
const char *const *args)
{
struct auth_user_reply *reply = conn->user_reply;
}
}
-static int auth_input_handshake(struct auth_connection *conn)
+static int auth_input_handshake(struct auth_master_connection *conn)
{
const char *line, *const *tmp;
return 0;
}
-static void auth_input(struct auth_connection *conn)
+static void auth_input(struct auth_master_connection *conn)
{
const char *line, *cmd, *const *args, *id, *wanted_id;
auth_request_lookup_abort(conn);
}
-static int auth_master_connect(struct auth_connection *conn)
+static int auth_master_connect(struct auth_master_connection *conn)
{
int fd, try;
return 0;
}
-static void auth_request_timeout(struct auth_connection *conn)
+static void auth_request_timeout(struct auth_master_connection *conn)
{
if (!conn->handshaked)
i_error("userdb lookup(%s): Connecting timed out", conn->user);
auth_request_lookup_abort(conn);
}
-static void auth_idle_timeout(struct auth_connection *conn)
+static void auth_idle_timeout(struct auth_master_connection *conn)
{
auth_connection_close(conn);
}
-static void auth_master_set_io(struct auth_connection *conn)
+static void auth_master_set_io(struct auth_master_connection *conn)
{
if (conn->to != NULL)
timeout_remove(&conn->to);
lib_signals_reset_ioloop();
}
-static void auth_master_unset_io(struct auth_connection *conn,
+static void auth_master_unset_io(struct auth_master_connection *conn,
struct ioloop *prev_ioloop)
{
io_loop_set_current(prev_ioloop);
return TRUE;
}
-int auth_master_user_lookup(struct auth_connection *conn,
+int auth_master_user_lookup(struct auth_master_connection *conn,
const char *user, const char *service,
pool_t pool, struct auth_user_reply *reply_r)
{
#ifndef AUTH_MASTER_H
#define AUTH_MASTER_H
+#define AUTH_SERVICE_INTERNAL "internal"
+
struct auth_user_reply {
uid_t uid;
gid_t gid;
ARRAY_TYPE(const_string) extra_fields;
};
-struct auth_connection *
+struct auth_master_connection *
auth_master_init(const char *auth_socket_path, bool debug);
-void auth_master_deinit(struct auth_connection **conn);
+void auth_master_deinit(struct auth_master_connection **conn);
/* Returns -1 = error, 0 = user not found, 1 = ok */
-int auth_master_user_lookup(struct auth_connection *conn,
+int auth_master_user_lookup(struct auth_master_connection *conn,
const char *user, const char *service,
pool_t pool, struct auth_user_reply *reply_r);
env_put(t_strconcat("HOME=", reply->home, NULL));
}
-int auth_client_put_user_env(struct auth_connection *conn,
+int auth_client_put_user_env(struct auth_master_connection *conn,
const char *user)
{
struct auth_user_reply reply;
int ret;
pool = pool_alloconly_create("userdb lookup", 512);
- ret = auth_master_user_lookup(conn, user, "expire", pool, &reply);
+ ret = auth_master_user_lookup(conn, user, AUTH_SERVICE_INTERNAL,
+ pool, &reply);
if (ret > 0)
auth_set_env(user, &reply);
pool_unref(&pool);