[dovecot-cvs] dovecot/src/lib-auth auth-server-request.c,1.4,1.5
cras at procontrol.fi
cras at procontrol.fi
Fri Aug 22 22:57:02 EEST 2003
Update of /home/cvs/dovecot/src/lib-auth
In directory danu:/tmp/cvs-serv15227/lib-auth
Modified Files:
auth-server-request.c
Log Message:
fixes. maybe it works now.
Index: auth-server-request.c
===================================================================
RCS file: /home/cvs/dovecot/src/lib-auth/auth-server-request.c,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -d -r1.4 -r1.5
--- auth-server-request.c 22 Aug 2003 06:37:57 -0000 1.4
+++ auth-server-request.c 22 Aug 2003 18:57:00 -0000 1.5
@@ -147,17 +147,28 @@
}
static void request_hash_remove(void *key __attr_unused__, void *value,
- void *context __attr_unused__)
+ void *context)
{
struct auth_request *request = value;
+ struct auth_server_connection *conn = context;
- request->callback(request, NULL, NULL, request->context);
- request->conn = NULL;
+ if (request->conn == conn) {
+ if (request->next_conn == NULL) {
+ request->callback(request, NULL, NULL,
+ request->context);
+ request->conn = NULL;
+ } else {
+ request->conn = request->next_conn;
+ request->next_conn = NULL;
+ }
+ } else {
+ request->next_conn = NULL;
+ }
}
void auth_server_requests_remove_all(struct auth_server_connection *conn)
{
- hash_foreach(conn->requests, request_hash_remove, NULL);
+ hash_foreach(conn->requests, request_hash_remove, conn);
}
struct auth_request *
@@ -223,6 +234,8 @@
hash_remove(request->conn->requests, id);
if (request->next_conn != NULL)
hash_remove(request->next_conn->requests, id);
+
+ request->callback(request, NULL, NULL, request->context);
i_free(request->plaintext_data);
i_free(request);
More information about the dovecot-cvs
mailing list