Lines Matching refs:conn

30 static void auth_connection_disconnected(struct auth_connection **conn);
32 static void auth_connection_input(struct auth_connection *conn)
36 switch (i_stream_read(conn->input)) {
42 auth_connection_disconnected(&conn);
48 auth_connection_disconnected(&conn);
52 while ((line = i_stream_next_line(conn->input)) != NULL) {
54 conn->callback(line, conn->context);
62 struct auth_connection *conn;
64 conn = i_new(struct auth_connection, 1);
65 conn->fd = -1;
66 conn->path = i_strdup(path);
67 DLLIST_PREPEND(&auth_connections, conn);
68 return conn;
71 void auth_connection_set_callback(struct auth_connection *conn,
74 conn->callback = callback;
75 conn->context = context;
78 int auth_connection_connect(struct auth_connection *conn)
80 i_assert(conn->fd == -1);
82 conn->fd = net_connect_unix_with_retries(conn->path, 1000);
83 if (conn->fd == -1) {
84 i_error("connect(%s) failed: %m", conn->path);
88 conn->input = i_stream_create_fd(conn->fd, AUTH_CLIENT_MAX_LINE_LENGTH);
89 conn->output = o_stream_create_fd(conn->fd, (size_t)-1);
90 o_stream_set_no_error_handling(conn->output, TRUE);
91 conn->io = io_add(conn->fd, IO_READ, auth_connection_input, conn);
97 struct auth_connection *conn = *_conn;
101 DLLIST_REMOVE(&auth_connections, conn);
102 if (conn->fd != -1) {
103 io_remove(&conn->io);
104 i_stream_unref(&conn->input);
105 o_stream_unref(&conn->output);
107 if (close(conn->fd) < 0)
110 i_free(conn->path);
111 i_free(conn);
116 struct auth_connection *conn = *_conn;
120 conn->callback(NULL, conn->context);
123 struct ostream *auth_connection_get_output(struct auth_connection *conn)
125 i_assert(conn->output != NULL);
126 return conn->output;
132 struct auth_connection *conn = auth_connections;
134 auth_connection_disconnected(&conn);