diff src/auth/passdb-blocking.c @ 4782:2c1cc5bbc260 HEAD

Added auth_request_set_credentials() to modify credentials in passdb and implemented it for SQL passdb. Added passdb_need_set_credentials boolean to mechanisms to indicate that it's required (OTP will need it). Patch by Andrey Panin.
author Timo Sirainen <tss@iki.fi>
date Wed, 08 Nov 2006 22:22:08 +0200
parents 3bfd724bb37a
children 7a8f68b0cc31
line wrap: on
line diff
--- a/src/auth/passdb-blocking.c	Wed Nov 08 22:02:34 2006 +0200
+++ b/src/auth/passdb-blocking.c	Wed Nov 08 22:22:08 2006 +0200
@@ -163,3 +163,24 @@
 
 	auth_worker_call(request, str_c(str), lookup_credentials_callback);
 }
+
+static void
+set_credentials_callback(struct auth_request *request, const char *reply)
+{
+	enum passdb_result result = check_failure(request, &reply);
+
+	request->private_callback.set_credentials(result, request);
+}
+
+void passdb_blocking_set_credentials(struct auth_request *request,
+				     const char *new_credentials)
+{
+	string_t *str;
+
+	str = t_str_new(64);
+	str_printfa(str, "SETCRED\t%u\t%s\t",
+		    request->passdb->id, new_credentials);
+	auth_request_export(request, str);
+
+	auth_worker_call(request, str_c(str), set_credentials_callback);
+}