]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
fixes
authorTimo Sirainen <tss@iki.fi>
Fri, 22 Aug 2003 06:51:15 +0000 (09:51 +0300)
committerTimo Sirainen <tss@iki.fi>
Fri, 22 Aug 2003 06:51:15 +0000 (09:51 +0300)
--HG--
branch : HEAD

src/auth/auth-master-connection.c
src/auth/mech.c
src/auth/mech.h

index d717895185021a87de5550b2e102c955edc1d4c8..f5f99862f689eef086c2612d39dcdf2336144ad3 100644 (file)
@@ -153,7 +153,7 @@ static void master_handle_request(struct auth_master_connection *conn,
                               master_request);
 
                /* the auth request is finished, we don't need it anymore */
-               mech_request_free(client_conn, auth_request, request->id);
+               mech_request_free(auth_request, request->id);
        }
 }
 
index 25fb2407cd33922256f7adb61bf0791712766a58..9b3d35c5af2c5ff0ff20bf8e462565b53c3dc920 100644 (file)
@@ -120,15 +120,17 @@ void mech_request_continue(struct auth_client_connection *conn,
        } else {
                if (!auth_request->auth_continue(auth_request,
                                                 request, data, callback))
-                       mech_request_free(conn, auth_request, request->id);
+                       mech_request_free(auth_request, request->id);
        }
 }
 
-void mech_request_free(struct auth_client_connection *conn,
-                      struct auth_request *auth_request, unsigned int id)
+void mech_request_free(struct auth_request *auth_request, unsigned int id)
 {
+       if (auth_request->conn != NULL) {
+               hash_remove(auth_request->conn->auth_requests,
+                           POINTER_CAST(id));
+       }
        auth_request_unref(auth_request);
-       hash_remove(conn->auth_requests, POINTER_CAST(id));
 }
 
 void mech_init_auth_client_reply(struct auth_client_request_reply *reply)
@@ -182,10 +184,8 @@ void mech_auth_finish(struct auth_request *auth_request,
 
        auth_request->callback(&reply, reply_data, auth_request->conn);
 
-       if (!success) {
-               mech_request_free(auth_request->conn, auth_request,
-                                 auth_request->id);
-       }
+       if (!success)
+               mech_request_free(auth_request, auth_request->id);
 }
 
 int mech_is_valid_username(const char *username)
index 2322e29d6d1274b3e6278ca553736f599c58064f..cb50688cba08d2dbcd3bade57eb72818183faea0 100644 (file)
@@ -54,8 +54,7 @@ void mech_request_continue(struct auth_client_connection *conn,
                           struct auth_client_request_continue *request,
                           const unsigned char *data,
                           mech_callback_t *callback);
-void mech_request_free(struct auth_client_connection *conn,
-                      struct auth_request *auth_request, unsigned int id);
+void mech_request_free(struct auth_request *auth_request, unsigned int id);
 
 void mech_init_auth_client_reply(struct auth_client_request_reply *reply);
 void *mech_auth_success(struct auth_client_request_reply *reply,