update for multi-database code
git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@7335 ec53bebd-3082-4978-b11e-865c3cabbd6b
This commit is contained in:
		
							
								
								
									
										28
									
								
								kdc/misc.c
									
									
									
									
									
								
							
							
						
						
									
										28
									
								
								kdc/misc.c
									
									
									
									
									
								
							| @@ -47,20 +47,22 @@ db_fetch(krb5_principal principal) | ||||
| { | ||||
|     hdb_entry *ent; | ||||
|     krb5_error_code ret; | ||||
|  | ||||
|     ret = db->open(context, db, O_RDONLY, 0); | ||||
|     if (ret) { | ||||
| 	kdc_log(0, "Failed to open database: %s",  | ||||
| 		krb5_get_err_text(context, ret)); | ||||
| 	return NULL; | ||||
|     } | ||||
|     int i; | ||||
|     ALLOC(ent); | ||||
|     ent->principal = principal; | ||||
|     ret = db->fetch(context, db, HDB_F_DECRYPT, ent); | ||||
|     db->close(context, db); | ||||
|     if(ret){ | ||||
| 	free(ent); | ||||
| 	return NULL; | ||||
|  | ||||
|     for(i = 0; i < num_db; i++) { | ||||
| 	ret = db[i]->open(context, db[i], O_RDONLY, 0); | ||||
| 	if (ret) { | ||||
| 	    kdc_log(0, "Failed to open database: %s",  | ||||
| 		    krb5_get_err_text(context, ret)); | ||||
| 	    continue; | ||||
| 	} | ||||
| 	ret = db[i]->fetch(context, db[i], HDB_F_DECRYPT, ent); | ||||
| 	db[i]->close(context, db[i]); | ||||
| 	if(ret == 0) | ||||
| 	    return ent; | ||||
|     } | ||||
|     return ent; | ||||
|     free(ent); | ||||
|     return NULL; | ||||
| } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Johan Danielsson
					Johan Danielsson