Lines Matching refs:conn
46 struct sql_connection *conn;
48 for (conn = connections; conn != NULL; conn = conn->next) {
49 if (strcmp(conn->config_path, config_path) == 0)
50 return conn;
57 struct sql_connection *conn)
59 return parse_setting_from_defs(conn->pool, setting_defs,
60 &conn->set, key, value);
65 struct sql_connection *conn;
69 conn = sql_conn_find(config_path);
70 if (conn != NULL) {
72 conn->userdb_used = TRUE;
73 conn->refcount++;
74 return conn;
81 conn = p_new(pool, struct sql_connection, 1);
82 conn->pool = pool;
83 conn->userdb_used = userdb;
85 conn->refcount = 1;
87 conn->config_path = p_strdup(pool, config_path);
88 conn->set = default_sql_settings;
89 if (!settings_read_nosection(config_path, parse_setting, conn, &error))
92 if (conn->set.password_query == default_sql_settings.password_query)
93 conn->default_password_query = TRUE;
94 if (conn->set.user_query == default_sql_settings.user_query)
95 conn->default_user_query = TRUE;
96 if (conn->set.update_query == default_sql_settings.update_query)
97 conn->default_update_query = TRUE;
98 if (conn->set.iterate_query == default_sql_settings.iterate_query)
99 conn->default_iterate_query = TRUE;
101 if (conn->set.driver == NULL) {
105 if (conn->set.connect == NULL) {
109 conn->db = sql_init(conn->set.driver, conn->set.connect);
111 conn->next = connections;
112 connections = conn;
113 return conn;
118 struct sql_connection *conn = *_conn;
120 /* abort all pending auth requests before setting conn to NULL,
122 sql_disconnect(conn->db);
125 if (--conn->refcount > 0)
128 sql_deinit(&conn->db);
129 pool_unref(&conn->pool);
132 void db_sql_connect(struct sql_connection *conn)
134 if (sql_connect(conn->db) < 0 && worker) {
145 void db_sql_success(struct sql_connection *conn ATTR_UNUSED)
151 void db_sql_check_userdb_warning(struct sql_connection *conn)
153 if (worker || conn->userdb_used || conn->set.userdb_warning_disable)
156 if (strcmp(conn->set.user_query,
161 conn->config_path);
162 } else if (strcmp(conn->set.iterate_query,
167 conn->config_path);