2001-04-26 Rebecca Schulman <rebecka@eazel.com>
Fix bugzilla.eazel.com 7934, to remove the ability to
create an index for a regular user from medusa.
reviewed by: <delete if not using a buddy>
* configure.in:
Remove configure time check for medusa configuration files. We need to check
for the existence of these files at installation time instead.
* indexer/medusa-file-index-daemon.c: (main), (do_full_indexing):
Remove code to act as a "listener" for index requests
* libmedusa/medusa-index-progress.c:
(clean_up_index_progress_file),
(clean_up_index_progress_file_at_exit),
(medusa_index_progress_new), (medusa_index_progress_destroy),
(medusa_indexing_is_currently_in_progress),
(medusa_index_progress_get_percentage_complete):
* libmedusa/medusa-index-progress.h:
Clean up the index progress file on exit, and log errors related
to opening and writing to the file.
* libmedusa/medusa-index-service.c:
* libmedusa/medusa-index-service.h:
Remove API related to the "index service"
* index-configuration/medusa-init.in:
* index-configuration/medusa.cron.in:
Remove code that started and stopped the index listener, since it
no longer exists.
* tests/medusa-index-service-test.c: (main):
Remove tests related to the index service
* libmedusa/Makefile.am:
Remove definition of "MEDUSA_SHAREDSTATEDIR", since we no longer
are installing files in this directory.
* libmedusa/medusa-indexed-search.c: (authenticate_connection),
(medusa_indexed_search_new):
Add more debugging output, when debugging is turned on
* search-service/medusa-file-search-parse-transmission.c:
(present_query_results):
Add debugging output when PRESENT_QUERY_RESULTS_DEBUG is on
* libmedusa/medusa-log.c: (medusa_log_error), (medusa_log_event),
(medusa_log_text_index_account_data):
Print log messages to the terminal also, when MEDUSA_LOG_DEBUG is turned
on.
* search-service/medusa-file-search-daemon.c: (main), (query_loop):
Fix bugs that only occur while running the search daemon in debug
mode, meaning that each new request does not fork the daemon.
A daemon running in debug mode would exit on error previously.
2001-04-06 Rebecca Schulman <rebecka@eazel.com>
* tests/test-system-state.c:
Add stdlib.h to the headers to make tinderbox
on redhat 7.0 happy.
2001-04-06 Rebecca Schulman <rebecka@eazel.com>
Fix bugzilla.eazel.com bugs 7923 and 7933
(the medusa half), by removing the feature to
enable/disable medusa as any normal user.
reviewed by: Pavel Cisler <pavel@eazel.com>
* libmedusa/medusa-system-state.c:
(medusa_system_services_are_enabled),
(medusa_get_configuration_file_path),
(call_state_changed_callback), (is_a_onetime_callback),
(get_system_state), (check_for_system_state_changes),
(medusa_setup_callback_for_system_state_change),
(medusa_execute_when_system_state_changes),
(medusa_execute_once_when_system_state_changes):
* libmedusa/medusa-system-state.h:
Change the set of states for medusa on the system
from an enum to a boolean. Remove the argument of the
set of states to watch for in polling callbacks, and
remove the extra logic dedicated to this feature.
Add "medusa_get_configuration_file_path" for nautilus
so the dialog on abling search can be correct if medusa is
installed in a non-standard location.
* index-configuration/medusa-test-indexing-status.c: (main):
Remove the check for the "blocked" state since it no longer exists
* index-configuration/medusa-enable-indexing.c:
* index-configuration/Makefile.am:
Remove medusa enable indexing. Remove gratuitous hack
about trying to decide whether to install the medusa
configuration file at configure time. We should do something
in the future to make the configuration file not get overwritten,
but the current scheme is not working
* index-configuration/medusa.conf:
Remove the "blocked" attribute, and add "enabled".
Make the default value for "enabled" equal "no".
* libmedusa/medusa-unsearched-locations.c:
(medusa_unsearched_locations_initialize),
(medusa_unsearched_locations_shutdown):
* libmedusa/medusa-unsearched-locations.h:
* libmedusa-internal/medusa-master-db.c:
(medusa_master_db_create_index):
* libmedusa/medusa-search-service.c:
(medusa_search_service_connection_destroy):
Make the list of unsearched locations free itself
at exit, and remove the explicit shutdown function
for them, since the list should always be available.
Remove the shutdown function from the unindexed search
connection code, and from the indexing code.
* medusa.spec.in:
Remove all stuff relating to "Shared state dir",
and the removed files
* tests/Makefile.am:
* tests/medusa-system-state-test.c:
Remove
* tests/test-system-state.c: (print_current_system_state),
(standard_callback_count),
(print_current_system_state_and_fail_if_called_twice), (main):
Rewrite system state test functions to test current state, and also
add test for state changed callback, and one time state change callback,
so that I could test new changes.
* libmedusa/medusa-unindexed-search.c:
(search_directory_contents_in_progress):
Remove warning about "search being cancelled"
2001-03-30 Michael K. Fleming <mfleming@eazel.com>
reviewed by: Rebecca Schulman <rebecka@eazel.com>
Bug 7928:
Implement "/etc/medusa/mount-type-stoplist" control file
Externalizes previously hard-coded list of filesystem types that
medusa should ignore when building a filesystem index.
* index-configuration/Makefile.am:
* index-configuration/mount-type-stoplist:
* libmedusa/medusa-unsearched-locations.c:
(mount_type_is_in_skip_list),
(medusa_unsearched_locations_shutdown), (getline_dup),
(file_stoplist_initialize), (load_mount_type_skip_list),
(unsearched_mount_list_initialize_internal),
(unsearched_mount_list_initialize):
* medusa.spec.in:
2001-03-30 Rebecca Schulman <rebecka@eazel.com>
First set of changes anticipating medusa security enhancements.
reviewed by: Maciej Stachowiak <mjs@eazel.com>
* libmedusa-internal/medusa-file-index-queries.c:
(medusa_file_index_uid_can_read_file):
Make sure that the permissions checks are in the correct order,
and correspond to the way UNIX permissions checks work
* search-service/medusa-authenticate.c:
(medusa_authenticate_user_can_see_file), (can_read_this_file),
(calculate_permissions_for_file):
Debug and clarify permissions checks for files we are returning
Do correct check for ability to read "/", and do just an existence
check for the file itself, rather than worrying about being able to read it.
Change name of authentication to be more clear.
* search-service/medusa-file-search-parse-transmission.c:
(present_query_results): change medusa_authenticate_uid_can_read to
medusa_authenticate_user_can_see_file to go along with name change abouve
2001-03-29 Rebecca Schulman <rebecka@eazel.com>
Commit John Harper's <jsh@eazel.com> change that
fixes a double free in my last commit
* libmedusa/medusa-system-state.c:
(medusa_system_services_are_blocked):
Remove second lock release
2001-03-28 Rebecca Schulman <rebecka@eazel.com>
* libmedusa/medusa-system-state.c:
(medusa_system_services_are_blocked):
Fix a leak of a lock that could cause programs using
medusa-system-state to run out of file descriptors
2001-03-24 Fatih Demir <kabalak@gtranslator.org>
* doc/.cvsignore: Hm, now it's really "medusa.conf.5" which
is ignored.
2001-03-18 Fatih Demir <kabalak@gtranslator.org>
* doc/.cvsignore: Added "medusa.conf.5" to the ignores.
2001-03-16 Rebecca Schulman <rebecka@eazel.com>
reviewed by: Pavel Cisler <pavel@eazel.com>
* libmedusa/medusa-index-progress.c: (medusa_index_progress_new):
Remove printf that is lame because of bug 7611
* medusa-idled/x-screensaver-code.c: (BadWindow_ehandler):
Fix bug 7668 by reordering conditions in an if statement
to appease gcc
2001-03-13 Robin * Slomkowski <rslomkow@eazel.com>
* configure.in: upped version to 0.5.1 to be
higher than released
2001-03-12 Rebecca Schulman <rebecka@eazel.com>
reviewed by: Maciej Stachowiak <mjs@eazel.com>
* index-configuration/medusa.cron.in:
Fix a syntax mistake in the shell script
(bugzilla.eazel.com 7691)
2001-03-07 Rebecca Schulman <rebecka@eazel.com>
Fix bugzilla.eazel.com bug 7512,
about a problem uninstalling the medusa package.
reviewed by: Eric Fischer <eric@eazel.com>
* medusa.spec.in:
Make /com/medusa writable by root so it can
be uninstalled correctly.
2001-03-05 Rebecca Schulman <rebecka@eazel.com>
Work to fix bugzilla.eazel.com bug 7165, that turning
medusa on and off isn't working from nautilus.
reviewed by: Maciej Stachowiak <mjs@eazel.com>
* libmedusa/medusa-system-state.c: (medusa_enable_medusa_services),
(get_lock_and_read_enabled_users_file),
(medusa_system_services_are_blocked):
Store lock files in /tmp, rather than in a directory
that users can't write to.
* libmedusa/medusa-lock.c: (medusa_lock_get),
(medusa_lock_release):
Erase the lock file when it gets released.
2001-03-02 Rebecca Schulman <rebecka@eazel.com>
reviewed by: Eric Fischer <eric@eazel.com>
* medusa.spec.in:
Add rc.3d and rc5.d to the levels at which medusa
should start up.
2001-03-02 Rebecca Schulman <rebecka@eazel.com>
Fix bug 7291, that there are no docs to turn medusa
on/off system wide
reviewed by: Josh Barrow <josh@eazel.com>
* configure.in:
* doc/Makefile.am:
* doc/medusa.conf.5.in:
Add a man page for the medusa.conf file
* README:
Add descriptions of the enable/disable indexing feature,
and the blocking feature
2001-03-01 Robin * Slomkowski <rslomkow@eazel.com>
reviewed by: Eric Fischer <eric@eazel.com>
* medusa.spec.in: used %dir directive to make this work
correctly
2001-03-01 Rebecca Schulman <rebecka@eazel.com>
Fix bugzilla.eazel.com bug 7165, that medusa
on/off switch doesn't work in the rpm build.
reviewed by: Robin Slomkowski <rslomkow@eazel.com>
* configure.in:
Add checks so that we don't install
over configuration files if they already exist.
* index-configuration/Makefile.am:
Install the real file, rather than a sample
file, so that we can include it in the rpm.
Don't reinstall it if there is already a config
file to avoid overwriting the file
* index-configuration/enabled_users_file:
Remove the sample file
* index-configuration/sample_enabled_users_file:
Start out with a default configuration file
* libmedusa/medusa-system-state.c:
Change the name of the enabled_users_file
to the new one
* medusa.spec.in:
Change to add the enabled users file
2001-03-01 Rebecca Schulman <rebecka@eazel.com>
Revert accidentally committed changes to
medusa.spec.in, since they aren't complete yet.
* medusa.spec.in: Return to the version used this morning.
2001-02-28 Rebecca Schulman <rebecka@eazel.com>
Fix bug 7138, that an indexed search would crash.
Hopefully this is the same problem as the reporter
of the bug report -- the unindexed search would crash
whenever no results were returned, and a search finished.
reviewed by: Pavel Cisler <pavel@eazel.com>
* libmedusa/medusa-unindexed-search.c:
(cleanup_current_directory_information),
(medusa_unindexed_search_read_search_result), (search_directory):
Make the offending function ignore extra cleanups, rather than
crash. Make it also return a status value so we know when to
"stop" cleaning up, and return no more results.
2001-02-27 Darin Adler <darin@eazel.com>
reviewed by: John Sullivan <sullivan@eazel.com>
and Mike Engber <engber@eazel.com>
Fixed bug 7079 (Medusa build error on Redhat 7.) which was a stray
semicolon. It seems there are updates the Red Hat 7 with an even
newer version of gcc, because this error does not show up on our
Tinderbox.
Oops! kmaraas already fixed it. Well, I commit the rest of my
changes anyway.
* libmedusa/medusa-unsearched-locations.c:
(unsearched_mount_list_initialize): Untangled ifdef strangeness
and removed some unused code.
(mount_point_is_cdrom_internal): New function to be shared by the
mount_point_is_cdrom functions.
(mount_point_is_cdrom): Untangled the ifdef strangeness by using
the new shared function.
* libmedusa-internal/medusa-text-index.c: (medusa_text_index_new):
Slight optimization to take advantage of default key functions.
I did this a long time ago and just never committed the change.
2001-02-27 Kjartan Maraas <kmaraas@gnome.org>
* libmedusa/medusa-unsearched-locations.c: Fix a trailing
; after #endif.
2001-02-26 Robin * Slomkowski <rslomkow@rslomkow.org>
* configure.in: upped version to 0.3.3 for development
2001-02-26 Robin * Slomkowski <rslomkow@rslomkow.org>
* configure.in: upped version to 0.3.2 for release
2001-02-26 Eric Fischer <eric@eazel.com>
reviewed by: Rebecca Schulman <rebecka@eazel.com>
* index-configuration/medusa.cron.in:
For the sake of anacron users who won't want indexing to start
while everything else on their system is trying to start up too,
sleep 10 minutes in the background before restarting the daemons.
(bug 5520)
2001-02-26 Rebecca Schulman <rebecka@eazel.com>
reviewed by: Eric Fischer <eric@eazel.com>
* configure.in:
Fix bugzilla.eazel.com 6817, that variables
in the medusa man pages were not getting substituted
correctly by autoconf. There seem to be
two ways of "exporting" a variable from the
configure script. The first, AC_DEFINE adds
it to the config.h file, and the second AC_SUBST
will use it as a substitution to the AC_OUTPUT
files. Adding AC_SUBST macros for the variables
that weren't getting properly substituted in the
man pages seems to fix this problem.
2001-02-23 Rebecca Schulman <rebecka@eazel.com>
Fix bugzilla.eazel.com bug 6852, that autofs
mounts should not be indexed.
reviewed by: Aaron Brick <aaron@eazel.com>
* libmedusa-internal/medusa-master-db.c:
(medusa_master_db_create_index):
Don't create an index if the specified root
file is in the stoplist.
* libmedusa/medusa-unsearched-locations.c:
Don't index autofs mounts.
2001-02-22 Seth Nickell <seth@eazel.com>
reviewed by: <delete if not using a buddy>
* acconfig.h:
* configure.in:
Add checks for -ldb.
* indexer/medusa-file-index-daemon.c: (exit_if_disk_is_too_full):
* libmedusa-internal/medusa-text-index-mime-module.c:
(is_valid_mime_type), (is_valid_mime_pattern):
* libmedusa/medusa-index-progress.c: (get_disk_used_information):
* libmedusa/medusa-unindexed-search.c: (second_word_of),
(last_word_of):
* libmedusa/medusa-unsearched-locations.c:
Fix various minor issues with casts and using the proper structures
rather than ints ;-)
* medusa-idled/Makefile.am:
Link with -ldb using flags from configure'ing.
2001-02-21 Rebecca Schulman <rebecka@eazel.com>
reviewed by: Ramiro Estrugo <ramiro@eazel.com>
* libmedusa/medusa-system-state.c:
(medusa_setup_callback_for_system_state_change):
Let this call work even if we are not in a main loop.
2001-02-21 Pavel Cisler <pavel@eazel.com>
* libmedusa/medusa-search-service.h:
* libmedusa/medusa-unindexed-search.h:
Fix it even more.
2001-02-21 Pavel Cisler <pavel@eazel.com>
* gnome-vfs-module/search-method.c:
Fix more build breakage.
2001-02-20 Rebecca Schulman <rebecka@eazel.com>
Add a THANKS file, and a few small bug fixes
* libmedusa-internal/medusa-io-handler.c: (medusa_io_handler_open),
(medusa_io_handler_free):
Add g_return_if_fails, so errors will produce criticals, not seg
faults.
* AUTHORS:
Add Seth and Maciej, who wrote the gnome vfs search module and other
parts of medusa.
* THANKS:
Add a THANKS file, and include people who've helped fix portability
problems in medusa
* libmedusa/medusa-unsearched-locations.c:
Remove an old fixme
* search-service/medusa-file-search-daemon.c:
(make_sure_search_socket_is_available):
Fix a leak of the search socket name
2001-02-20 Pavel Cos;er <pavel@eazel.com>
reviewed by: Rebecca Schulman <rebecka@eazel.com>
* gnome-vfs-module/search-method.c:
* libmedusa/medusa-indexed-search.c:
* libmedusa/medusa-search-service.c:
* libmedusa/medusa-unindexed-search.c:
Fix Medusa build breakage, part 2.
Shuffle #includes around to support recent making of
gnome-vfs-private-types.h really private.
2001-02-20 Seth Nickell <snickell@stanford.edu>
reviewed by: Rebecca Schulman <rebecka@eazel.com>
* configure.in:
Add checks for various Solaris items.
* indexer/medusa-file-index-daemon.c: (exit_if_disk_is_too_full):
* libmedusa-internal/medusa-conf.h:
* libmedusa-internal/medusa-file-index-encoders.c:
(medusa_file_database_mime_type_decode),
(medusa_file_database_keywords_decode),
(medusa_file_index_encoders_test):
* libmedusa-internal/medusa-file-index-encoders.h:
* libmedusa-internal/medusa-file-index-queries.c:
(medusa_file_index_is_file), (medusa_file_index_is_text_file),
(medusa_file_index_is_application), (medusa_file_index_is_music),
(medusa_file_index_is_directory),
(medusa_file_index_marked_with_keyword):
* libmedusa-internal/medusa-query-clauses.c:
(value_has_correct_type):
* libmedusa-internal/medusa-rdb-fields.h:
* libmedusa-internal/medusa-text-index-plaintext-module.c:
(read_more_data), (word_contains_digits):
* libmedusa-internal/medusa-uri-list-encoders.c:
(medusa_uri_list_filename_decode),
(medusa_uri_list_directory_name_decode):
* libmedusa-internal/medusa-uri-list-queries.c:
(medusa_uri_list_is_in_directory),
(medusa_uri_list_is_in_directory_tree), (medusa_uri_list_is_named),
(medusa_uri_list_has_name_regexp_matching),
(medusa_uri_list_is_in_directory_regexp_matching),
(medusa_uri_list_has_name_containing),
(medusa_uri_list_is_in_directory_containing),
(medusa_uri_list_has_file_name_starting_with),
(medusa_uri_list_has_file_name_ending_with):
* libmedusa-internal/medusa-uri-list.c: (medusa_uri_number_to_uri):
* libmedusa/medusa-index-progress.c: (get_disk_used_information):
* libmedusa/medusa-search-service.h:
* libmedusa/medusa-system-state.c:
(medusa_system_services_are_enabled):
* libmedusa/medusa-system-state.h:
* libmedusa/medusa-unsearched-locations.c:
(file_stoplist_initialize):
* libmedusa/medusa-utils.h:
* medusa-idled/medusa-idled-client.c:
* search-service/medusa-authenticate.c:
(medusa_authenticate_create_cookie_file):
* search-service/medusa-file-search-daemon.c:
Correct lots of little Solaris build problems.
* medusa-idled/medusa-idled.c: (main):
Correct a couple minor Debian build problems.
2001-02-20 Eric Fischer <eric@eazel.com>
* doc/Makefile.am:
Add how_to_use_msearch and search_uri_rfc to EXTRA_DIST, so
they will get included when you do make dist, so they will
make it into the RPMs, and maybe tinderbox will actually
finally succeed for once.
2001-02-20 Eric Fischer <eric@eazel.com>
* medusa.spec.in:
Actually, follow the example of other gnome .spec files and
use globbing to put anything that ends up in the man directories
into the RPMs, gzipped or not.
2001-02-20 Eric Fischer <eric@eazel.com>
* medusa.spec.in:
Somewhere in the RPM build process, the man pages are getting
gzipped. I do not know where, but update the .spec file to
reflect it so it stops failing.
2001-02-20 Eric Fischer <eric@eazel.com>
* medusa.spec.in:
Add doc/ to paths for how_to_use_msearch, search_uri_rfc
2001-02-20 Eric Fischer <eric@eazel.com>
* medusa.spec.in:
Add medusa-enable-indexing to RPM file list (bug 6678)
2001-02-20 Eric Fischer <eric@eazel.com>
* medusa.spec.in:
Add man pages to RPM file list (bug 6108)
2001-02-20 Eric Fischer <eric@eazel.com>
* medusa.spec.in:
Add %{prefix}/sbin/medusa-test-indexing-status to RPM file list
(bug 6713)
2001-02-20 Rebecca Schulman <rebecka@eazel.com>
Make changes that will go along with nautilus
changes to add an enable/disable medusa preference to
nautilus
* libmedusa/medusa-system-state.h:
* libmedusa/medusa-system-state.c: (medusa_enable_medusa_services),
(get_lock_and_read_enabled_users_file),
(medusa_system_services_are_enabled),
(medusa_system_services_have_been_enabled_by_user):
Have medusa_enable_medusa_services take a boolean, and deprecate
medusa_disable_medusa_services.
Add the medusa_system_services_have_been_enabled_by_user function.
Remove a bad free that was causing a crash after repeated
preference switching.
* index-configuration/medusa-enable-indexing.c: (main):
Use the new enable_medusa_services api
2001-02-14 Rebecca Schulman <rebecka@eazel.com>
Fix bugzilla.eazel.com bug 6452 that medusa
creates a world writeable file that shouldn't
be world writeable.
* libmedusa/medusa-index-progress.c: (medusa_index_progress_new):
Stop making this file world writeable.
2001-02-14 Rebecca Schulman <rebecka@eazel.com>
* libmedusa/medusa-system-state.c:
(medusa_system_services_are_enabled):
Add a check for NULL whose omission was causing
a crash if a configuration file could not be found
2001-02-14 Rebecca Schulman <rebecka@eazel.com>
* gnome-vfs-module/search-method.c: (do_read_directory):
Remove warnings about files returned that give error
GNOME_VFS_ERROR_NOT_FOUND now that we understand that
these files exist, but are broken symbolic links.
this means that
1. There is not a problem with medusa's filtering mechanism
2. We actually want to return these results
* libmedusa/medusa-indexed-search.c: (medusa_indexed_search_new):
Always return SERVICE_NOT_AVAILABLE if indexing is
disabled or blocked. This will prevent us from using
an old outdated index if indexing ever becomes disabled
* libmedusa/medusa-unindexed-search.c:
(medusa_unindexed_search_read_search_result),
(search_directory_contents_in_progress):
Fix crash here that occurred because we sent a NULL
list to the search_in_progress function, by calling
the function before we remove the first element of
a list, not after. Also add asserts to the function
to ensure it's never called with a NULL list.
2001-02-13 Rebecca Schulman <rebecka@eazel.com>
Add callbacks that applications can use when medusa
system state changes, as part of bugzilla.eazel.com bug
6416
reviewed by: Seth Nickell <seth@eazel.com>
* libmedusa/medusa-system-state.c:
(call_callback_if_checking_for_new_state), (is_a_onetime_callback),
(get_system_state), (check_for_system_state_changes),
(medusa_setup_callback_for_system_state_change),
(medusa_execute_when_system_state_changes),
(medusa_execute_once_when_system_state_changes), (has_update_id),
(system_state_poll_destroy_and_set_to_null),
(medusa_remove_state_changed_function):
* libmedusa/medusa-system-state.h:
Add functions that can be used to setup callbacks when system state changes.
* libmedusa/Makefile.am:
Add gtk flags to the build to support the above functions
* libmedusa/medusa-utils.c: (medusa_g_list_remove_deep_custom):
* libmedusa/medusa-utils.h:
Add new list function used by the new api in medusa-system-state
* .cvsignore:
* doc/.cvsignore:
* index-configuration/.cvsignore:
Add missing generated files to the .cvsignore file
2001-02-13 Rebecca Schulman <rebecka@eazel.com>
Fix most of bug 4962, that errors in loading search
directories can produce "Unhandled errors" and display
a dialog to the screen.
* gnome-vfs-module/search-method.c: (do_read_directory): Make
errors in get_file_info a search result not interrupt a directory
load.
2001-02-12 Rebecca Schulman <rebecka@eazel.com>
Fix bugzilla.eazel.com bug 6459, that is_not
searching is backwards.
reviewed by: Maciej Stachowiak <mjs@eazel.com>
* libmedusa-internal/medusa-query-optimizations.c:
(replace_username_with_uid_criterion),
(replace_group_with_gid_criterion),
(modified_query_can_be_rephrased_as_an_and_criterion),
(can_replace_modified_with_mtime),
(replace_modified_with_mtime_criteria):
We optimize most modified queries to
become mtime is_after & mtime is_before queries,
but we can't do this for "modified is_not date"
queries, because medusa doesn't support "or".
Therefore check specially for the is_not case
and don't optimize in this case.
Also remove debugging printfs that seem to have
been left behind.
* libmedusa-internal/medusa-file-index-queries.h:
* libmedusa-internal/medusa-file-index-queries.c:
(medusa_file_index_is_not_modified_on_date),
(medusa_file_index_verify_file_is_not_modified_on_date):
Add regular queries for the modified is_not case.
* libmedusa-internal/medusa-file-index.c:
(file_index_clauses_using_index_only):
Add the new clauses to the file index.
* libmedusa/medusa-indexed-search.c: (authenticate_connection):
Add a timeout when looking for a cookie, instead of spinning.
2001-02-12 Eric Fischer <eric@eazel.com>
* acconfig.h:
add #defines for MEDUSA_LOCALSTATEDIR and MEDUSA_SYSCONFDIR
* configure.in:
dereference localstatedir and sysconfdir, and substitute
them in config.h rather than in the Makefiles
generate man pages that need $prefix
* index-configuration/Makefile.am:
install into localstatedir/medusa and sysconfdir/medusa
* indexer/Makefile.am:
remove special -D flags for localstatedir and sysconfdir
* libmedusa-internal/Makefile.am:
remove special -D flags for localstatedir and sysconfdir
* libmedusa/Makefile.am:
remove special -D flags for localstatedir and sysconfdir
* libmedusa/medusa-index-service.c:
add #include to pick up directory #defines
* libmedusa/medusa-system-state.c:
add #include to pick up directory #defines
* medusa.spec.in:
fix spec file so that RPMs will actually have the right
sysconfdir and localstatedir
All this is to fix the messed-up way I handled the change to
localstatedir and sysconfdir the first time around.
2001-02-12 Eric Fischer <eric@eazel.com>
* doc/msearch.1:
Add manual pages for msearch
2001-02-12 Eric Fischer <eric@eazel.com>
* doc/Makefile.am:
Make Makefile install manual pages
* doc/medusa-searchd.8.in:
Add manual page for medusa-searchd
2001-02-12 Rebecca Schulman <rebecka@eazel.com>
Fix bug 6015, that nautilus will crash if the file stoplist
is not installed in the right place.
* libmedusa/medusa-unsearched-locations.c:
(file_stoplist_initialize):
Add a missing return. We also need to figure out
why the stoplist file is not getting installed in the
right place in the hourly rpms.
2001-02-12 Rebecca Schulman <rebecka@eazel.com>
Fix bug 6464, that medusa seems to continue
searching after "stop" is pressed by correctly
cancelling the unindexed search.
* libmedusa/medusa-utils.c:
* libmedusa/medusa-utils.h:
(medusa_full_path_from_directory_and_file_name),
(medusa_full_uri_from_directory_uri_and_file_name),
* libmedusa-internal/medusa-uri-list.c: (medusa_uri_number_to_uri):
* libmedusa-internal/medusa-master-db.c: (index_directory),
(index_file), (add_public_keywords_to_index),
(add_private_keywords_to_index), (index_public_metafile),
(index_private_metafiles_for_user):
Change names of medusa_full_path_from_directory_and_file to
medusa_full_path_from_directory_and_file_name
and medusa_full_uri_from_directory_and_file to
medusa_full_uri_from_directory_uri_and_file_name
* libmedusa/medusa-search-service.c:
(medusa_search_service_connection_new),
(medusa_search_service_connection_start_search),
(medusa_search_service_connection_read_search_result),
(uri_to_search_method):
Fix a bug that might crash the search module
if the root uri in the search uri was not bracketed.
Now return an INVALID_URI error. Use GNOME_VFS_ERROR_CANCELLED
instead of GNOME_VFS_ERROR_INTERRUPTED, and fix a
check for GNOME_VFS_OK, that was check a pointer instead of its
value
* libmedusa/medusa-unindexed-search.c:
* libmedusa/medusa-unindexed-search.h:
(medusa_unindexed_search_new),
(cleanup_current_directory_information),
(medusa_unindexed_search_read_search_result), (closedir_cover),
(keywords_information_destroy_cover),
(medusa_unindexed_search_destroy), (g_list_remove_first_link),
(pop_keyword_information_and_directory_from_stacks),
(search_directory_contents_in_progress),
(keywords_information_destroy), (search_directory),
(unbracket_root_uri):
Stop doing an unindexed search in a different process, which
was causing it to not cancel properly, and also possibly to
crash nautilus later
* msearch/medusa-command-line-search.c: (main):
Add warnings and criticals in the debugger, and remove
extraneous code
* search-service/medusa-authenticate.c:
(medusa_authenticate_uid_can_read):
Change a g_return_if_fail to a silent check.
2001-02-11 Rebecca Schulman <rebecka@eazel.com>
Some general cleanup, and fix the problem
that medusa was creating zombie processes.
* libmedusa-internal/medusa-text-index.c:
Reduce word hash table size from 22 to 21.
We were going to double this so we wouldn't
worry about full hash tables for 1.0, but it takes
up too much memory.
* search-service/medusa-file-search-daemon.c:
(exit_if_client_closes_socket), (main), (query_loop):
Make it so children correctly exit if the client closes a socket,
and can also terminate correctly, by explicitly telling the search
daemo to ignore its children's termination status on exit.
* search-service/medusa-authenticate.c:
(medusa_authenticate_create_cookie_file):
* search-service/medusa-file-search-parse-transmission.c:
(send_cookie_creation_acknowledgement):
Remove extraneous printfs
2001-02-11 Rebecca Schulman <rebecka@eazel.com>
Fix bug 6413, to make it possible to block medusa
usage.
* index-configuration/medusa-test-indexing-status.c: (main):
* index-configuration/Makefile.am:
Add program to check whether medusa is currently enabled.
* index-configuration/medusa.cron.in:
* index-configuration/medusa-init.in:
Only run these if indexing is enabled on the system
* libmedusa/medusa-stdio-extensions.c: (medusa_read_whole_file):
Fix bug that did not 0 terminate the file contents.
* libmedusa/medusa-system-state.c:
(get_users_with_medusa_already_on_from_system_file),
(medusa_system_services_are_enabled):
Be consistent about return values for
get_users_with_medusa_on_from_system_file
* libmedusa/medusa-system-state.h:
Add glib.h to the includes because gboolean is used
2001-02-09 Ramiro Estrugo <ramiro@eazel.com>
* index-configuration/medusa-enable-indexing.c:
Fix broken build. Need to include <stdlib.h> for exit()
2001-02-09 Rebecca Schulman <rebecka@eazel.com>
Add API to check whether medusa is enabled,
disabled, or blocked, and to enable or disable
the service. Blocking needs to still disable
the cron job completely. Also move a few files
into the public library so that they can be
used by the new code
reviewed by: Maciej Stachowiak <mjs@eazel.com>
* libmedusa/medusa-system-state.c:
(get_users_with_medusa_already_on_from_system_file),
(write_name_and_newline_to_system_file),
(write_explanatory_comment_to_configuration_file),
(write_users_with_medusa_enabled_to_system_file),
(medusa_enable_medusa_services), (medusa_disable_medusa_services),
(medusa_system_services_are_enabled),
(medusa_system_services_are_blocked):
* libmedusa/medusa-system-state.h:
* libmedusa-internal/medusa-lock.c:
* libmedusa-internal/medusa-lock.h:
* libmedusa-internal/medusa-lock-file-paths.h:
* libmedusa-internal/medusa-stdio-extensions.c:
* libmedusa-internal/medusa-stdio-extensions.h:
Move to libmedusa
* libmedusa/medusa-lock.c: (get_unprivileged_lock_file_name),
(medusa_read_lock_unprivileged_get_with_timeout),
(medusa_write_lock_unprivileged_get_with_timeout),
(medusa_lock_get_with_timeout):
* libmedusa/medusa-lock.h:
Add unprivileged locking to the locking API, so we can
lock the configuration files
* libmedusa/medusa-stdio-extensions.c: (medusa_read_whole_file):
Fix a bug that would return a NULL buffer in the case where the
number of bytes read was 0. Now return "".
* indexer/medusa-file-index-daemon.c:
* search-service/medusa-file-search-daemon.c:
* libmedusa-internal/medusa-string-list.c:
Change dependency information based on the above move
* libmedusa-internal/Makefile.am:
* libmedusa/Makefile.am:
Remove and add moved files respective, also
add the new system state files to the latter
Makefile.
* libmedusa/medusa-index-service.c:
Remove invalid dependencies to files in libmedusa-internal
* configure.in:
Add MEDUSA_SHAREDSTATEDIR, to install the list of
enabled users in
* index-configuration/medusa-init.in:
Kill everything when we stop
* index-configuration/medusa.conf:
Configuration file that will allow medusa to be blocked
* index-configuration/sample_enabled_users_file:
Add a sample enabled user file
* index-configuration/medusa-enable-indexing.c: (main):
Add command line tool to turn medusa on and off
* index-configuration/.cvsignore
Update, since now this directory has a compiled binary in it
* index-configuration/Makefile.am:
Add the above new files to the build
* tests/.cvsignore:
* tests/Makefile.am:
* tests/medusa-system-state-test.c: (main):
Add test to show what the current system state is
* README:
Add information on enabling, disabling and blocking,
remove obsolete information, and answer some frequently
asked questions
2001-02-08 Eric Fischer <eric@eazel.com>
* doc/medusa-config.1:
* doc/medusa-file-index-stoplist.5.in:
* doc/medusa-idled.1:
* doc/medusa-search-uri.7:
A first batch of man pages. More, and supporting Makefile
additions, to follow.
2001-02-07 Rebecca Schulman <rebecka@eazel.com>
Make changes to medusa calls that don't properly
cancel for gnome-vfs. Fixing these calls will fix
bugzilla.eazel.com bug 6290, where nautilus
blocks during searches. Also added refs
* libmedusa/medusa-indexed-search.c: (read_cancellable),
(authenticate_connection), (refresh_read_buffer_if_needed),
(read_connection_line), (get_search_uri_parsing_result),
(medusa_indexed_search_new),
(medusa_indexed_search_read_search_result):
* libmedusa/medusa-indexed-search.h: Add cancellation to the
read_search_result and new calls, and fix a crash that occurred
because of an improperly passed NULL buffer when the server
closed the connection to the client early.
(medusa_indexed_search_is_available):
Rewrite this call to not block because it is called
synchronously in nautilus, and can hang it
* libmedusa/medusa-search-service.c:
(medusa_search_service_connection_new),
(medusa_search_service_connection_read_search_result):
* libmedusa/medusa-search-service.h:
Add GnomeVFS context to the connection_new call, so that this
call can be cancelled properly
* gnome-vfs-module/search-method.c: (do_open_directory):
Call connection_new with a cancellation context
* msearch/medusa-command-line-search.c: (main):
Add context to the connection_new call. This call
is synchronous, so the context is just NULL
* search-service/medusa-file-search-daemon.c:
(client_has_sent_information), (query_loop):
Make the forked process ref the database, to avoid
using a freed database that was crashing the search daemon
2001-02-06 Rebecca Schulman <rebecka@eazel.com>
* gnome-vfs-module/search-method.c: (do_get_file_info):
Check for cancellation before completing
* libmedusa/medusa-indexed-search.c:
(medusa_indexed_search_read_search_result):
Handle NULL silently when a load is interrupted,
rather then giving a critical warning.
* search-service/medusa-file-search-daemon.c: (main):
Stop ignoring sigpipe, so that old search daemon processes
will quit transparently.
* search-service/medusa-file-search-parse-transmission.c:
(present_query_results):
Fix off by one buggy string code
2001-02-05 Rebecca Schulman <rebecka@eazel.com>
Fix bug 1353 cheaply for 1.0.
reviewed by: Maciej Stachowiak <mjs@eazel.com>
* libmedusa-internal/medusa-text-index.c:
Double the size of the word hash table for 1.0, as per Don's
advice. The rest of this task we're moving out to 1.0.1
2001-02-05 Rebecca Schulman <rebecka@eazel.com>
reviewed by: Pavel Cisler <pavel@eazel.com>
* search-service/medusa-file-search-daemon.c:
Make the search service split off processes doing
searches, so that several requests can be handled at once.
This seems to remove timing problems that were causing some
searches in nautilus to lock up.
* libmedusa/medusa-search-service-private.h:
* libmedusa/medusa-indexed-search.c (authenticate_connection):
Add "TIMEOUT_ERROR" that we send if the client is not responsive
for 5 seconds.
* search-service/medusa-file-search-parse-transmission.c:
(medusa_file_search_parse_transmission):
Make a transmission of length 0 return silently rather than
display a critical error
2001-02-01 Rebecca Schulman <rebecka@eazel.com>
reviewed by: Maciej Stachowiak <mjs@eazel.com>
* libmedusa/medusa-index-progress.c:
(medusa_index_is_currently_running),
Fixed a bug that was expecting a busy indexer
to return the wrong enum value.
(medusa_index_progress_get_percentage_complete):
Make this function return "0" if indexing is not
occurring.
2001-01-31 Rebecca Schulman <rebecka@eazel.com>
reviewed by: <delete if not using a buddy>
* libmedusa/medusa-search-service.c:
(medusa_search_service_connection_read_search_result):
Check for a cancellation message before reading each
search result, rather than just the unindexed search
results
* libmedusa/medusa-unsearched-locations.c:
(file_stoplist_initialize):
Add afs volumes to the kind of volumes we don't
index.
2001-01-30 Mike Fleming <mfleming@eazel.com>
Updated to the new GnomeVFSMethod format
* gnome-vfs-module/search-method.c:
2001-01-29 Pavel Cisler <pavel@eazel.com>
* tests/search-method-test.c: (async_directory_load_callback),
(main):
Update to match GnomeVFS API changes.
2001-01-29 Josh Barrow <josh@eazel.com>
* medusa.spec.in:
Changed so that the documentation is now installed. Fixes bug 6108
2001-01-29 Robin * Slomkowski <rslomkow@eazel.com>
* configure.in: upped version to 0.3.1 to be higher
than release
2001-01-25 Eric Fischer <eric@eazel.com>
* configure.in:
Add generation of MEDUSA_SYSCONFDIR and MEDUSA_LOCALSTATEDIR
to move stoplist and index files out of /usr/share and into
/etc and /var.
* index-configuration/.dummy:
Dummy file because I don't know how to make a Makefile.am
that installs an empty directory.
* index-configuration/Makefile.am:
Add installation of dummy directory; move file-index-stoplist
* indexer/Makefile.am:
Add defines for MEDUSA_SYSCONFDIR and MEDUSA_LOCALSTATEDIR
* indexer/medusa-file-index-daemon.c: (exit_if_disk_is_too_full):
Change MEDUSA_PREFIX locations to MEDUSA_LOCALSTATEDIR
* libmedusa-internal/Makefile.am:
Add defines for MEDUSA_SYSCONFDIR and MEDUSA_LOCALSTATEDIR
* libmedusa-internal/medusa-conf.h:
Remove define for INDEX_PATH, now implicit in LOCALSTATEDIR
* libmedusa-internal/medusa-index-filenames.c:
(medusa_generate_index_filename):
Change MEDUSA_PREFIX locations to MEDUSA_LOCALSTATEDIR
* libmedusa/Makefile.am:
Add defines for MEDUSA_SYSCONFDIR and MEDUSA_LOCALSTATEDIR
* libmedusa/medusa-index-service.c:
(get_last_index_update_time_by_hack):
Change MEDUSA_PREFIX locations to MEDUSA_LOCALSTATEDIR
* libmedusa/medusa-indexed-search.c:
(medusa_indexed_search_system_index_files_look_available):
Change MEDUSA_PREFIX locations to MEDUSA_LOCALSTATEDIR
* libmedusa/medusa-unsearched-locations.c:
Change MEDUSA_PREFIX location to MEDUSA_SYSCONFDIR
* medusa.spec.in:
Move file-index-stoplist; add $localstatedir
2001-01-24 Rebecca Schulman <rebecka@eazel.com>
Added cancellation support to work around problems
with cancellation in gnome-vfs, and changed the
read loop of the search daemon to make sure it doesn't
get confused by extra or abnormal requests. This bug
was causing searches in nautilus to lock up.
* libmedusa/medusa-search-service.c:
* libmedusa/medusa-search-service.h:
* libmedusa/medusa-unindexed-search.c:
(medusa_unindexed_search_new),
(medusa_unindexed_search_read_search_result),
(medusa_unindexed_search_destroy):
* libmedusa/medusa-unindexed-search.h:
(medusa_search_service_connection_read_search_result):
* gnome-vfs-module/search-method.c: (do_read_directory):
* msearch/medusa-command-line-search.c: (main):
Add gnome-vfs contexts where appropriate so that
we can check the context for the unindexed search and
effectively cancel. The indexed search is fast enough
that not cancelling shouldn't cause problems, at least
for PR3.
* search-service/medusa-file-search-daemon.c: (query_loop): Change
the read loop to not get confused by extra transmissions to the
search daemon, by timing out if we get no response.
This confusion was causing future searches not to
be accepted, and in turn locked nautilus up in gnome-vfs.
* libmedusa/medusa-unsearched-locations.c:
(medusa_unsearched_locations_shutdown):
Make this free NULL tolerant, so you can shutdown
more than once, which was happening and produced spam.
* libmedusa/medusa-indexed-search.c:
(refresh_read_buffer_if_needed), (read_connection_line),
(get_search_uri_parsing_result):
Make changes to prevent one crash that occurred when the
search daemon closed the connection to the search service
early, by explicitly checking for a read return value of -1.
2001-01-22 Eric Fischer <eric@eazel.com>
* index-configuration/medusa-init.in:
Change --with-listener option to medusa-indexd to
its new name, --start-listener
Put medusa-searchd back in the list of daemons to start,
in accordance with Rebecka's comments to bug 4710
2001-01-22 Rebecca Schulman <rebecka@eazel.com>
Fix problems in medusa necessary to
fix bugzilla.eazel.com bug 2659,
and add the new "unindexed_search_is_available_for_uri"
function.
* libmedusa-internal/medusa-search-uri.c:
(medusa_search_uri_parse), (parse_search_criterion):
Remove a g_return_if_fail that should have been a silent
check, and a bogus return that was keeping content searches
from working
* libmedusa/medusa-unindexed-search.c:
* libmedusa/medusa-unindexed-search.h:
(medusa_unindexed_search_new),
(medusa_unindexed_search_is_available_for_uri):
Add new function that only returns GNOME_VFS_OK
for searches where we could do a valid backup search
(ie, that don't contain content requests)
* libmedusa/medusa-search-service.c:
(medusa_search_service_connection_is_available_for_uri),
(medusa_search_service_connection_new):
Change these functions to take into account the
fact that unindexed search is not always an option
2001-01-22 Rebecca Schulman <rebecka@eazel.com>
Fix problems with running searches that occurred
when a search daemon was running but no index was
available.
* libmedusa/medusa-search-service.c:
(medusa_search_service_connection_new):
Deal with errors in the indexed search connection
when searching using "index-with-backup." If no
index is available, we now just do an unindexed search,
instead of sending the NULL indexed search connection
to the wrong places.
* libmedusa/medusa-unindexed-search.c:
(medusa_unindexed_search_start_search), (search_directory):
Exit with the correct codes and if there are problems
returning results.
* libmedusa/medusa-log.c: (medusa_log_error):
Get rid of periods in error log output
2001-01-19 Rebecca Schulman <rebecka@eazel.com>
reviewed by: John Sullivan <sullivan@eazel.com>
* libmedusa-internal/medusa-search-uri.c:
(get_verb_from_criterion):
Fix a bug that could cause us to call "strchr"
on a NULL pointer, by checking for NULL first.
* libmedusa/medusa-index-service.c:
(medusa_index_service_is_available),
Change the return values to be
of type IndexerStatus, rather than
the old type which was the return of
a reindexing request. "REINDEXING_FAILED"
was not a reasonable way to communicate
that an index was already being created.
(get_last_index_update_time_by_hack):
Remove spam that occurred if no
index was present.
* libmedusa/medusa-index-service.h:
Fix indenting
* libmedusa/medusa-indexed-search.h:
* libmedusa/medusa-indexed-search.c:
(medusa_indexed_search_is_available),
(medusa_indexed_search_system_index_files_look_available):
Turn off the debugging flag (!) and add a check for the
presence of index files so that the file search ui in
nautilus can use it to tell the user that their index files
are available, but the medusa search daemons aren't running,
rather than telling them they need to remake an index.
2001-01-18 Eric Fischer <eric@eazel.com>
* index-configuration/medusa-idled.csh.in:
to avoid the error messages csh gives when referring
to unitialized shell variables, just call the /bin/sh
version of the script.
2001-01-17 Rebecca Schulman <rebecka@eazel.com>
Fix bugzilla.eazel.com bug 5422, that
other applications should be able to
query the status of the index service,
and whether indexed searches are currently
available.
* libmedusa/medusa-index-service.c:
* libmedusa/medusa-index-service.h:
(open_index_socket_and_send_message),
(medusa_index_service_request_reindex),
(medusa_index_service_is_available):
Add the new index service is available call,
that asks the indexer if it's up, and if so,
if an index is currently being made.
* libmedusa/medusa-index-service-private.h:
Add the protocol for the new "is the index service
available" request of the indexer.
* tests/medusa-index-service-test.c: (main):
Update the test program to use the new call.
* libmedusa/medusa-index-progress.c:
(medusa_index_is_currently_running),
(medusa_index_progress_get_percentage_complete):
Use the new "index_is_available" call, instead of
doing an "access"
* libmedusa-internal/medusa-lock.c: (medusa_write_lock_get),
(medusa_lock_get), (medusa_lock_release):
Fix bugs: make the write lock be a write lock instead of a read lock.
Return an error instead of waiting for the lock, and close the file
descriptor lock when we release instead of leaking it.
* libmedusa-internal/medusa-master-db.c:
(medusa_master_db_create_index):
Start the index progress before we "sleep until idle" so that
nautilus will correctly report the index is being made and is
"0%" complete, instead of giving you the option to make an
index.
* indexer/medusa-file-index-daemon.c: (daemon_init), (main),
(wait_for_indexing_signal), (do_full_indexing),
(initialize_index_server_socket),
(file_indexer_parse_transmission):
Cleanup the listener code, that didn't seem to be working.
Also, make it respond to the new "is indexer available"
request, instead of just accepting requests to reindex.
Make the listener not start indexing automatically.
Log errors when appropriate instead of using "g_return_if_fail"
Fork the reindexing process, and keep listening so that we can
tell future callers that the indexer is busy.
Add a "daemon_init" that starts the listener as a real
daemon, a "--debug-listener" to debug it without forking
and losing the output.
* RENAMING: Recommend changing the name "index-service"
to "reindexing-service" to more clearly differentiate it from
the indexed-search-service.
* medusa-idled/medusa-idled.c: (daemon_init):
Remove a fixme that has been fixed
2001-01-15 Eric Fischer <eric@eazel.com>
* index-configuration/medusa-idled.csh.in:
add check to see whether $DISPLAY is set, because csh
considers uninitialized variables to be errors rather
than simply empty strings.
* index-configuration/medusa-idled.sh.in:
clean up formatting
2001-01-15 Eric Fischer <eric@eazel.com>
* medusa.spec.in:
moved tmp/medusa.init back under %{prefix} because
I don't seem to know how to do absolute pathnames
in .spec files correctly.
2001-01-15 Eskil Heyn Olsen <eskil@eazel.com>
* index-configuration/Makefile.am:
Added medusainit_DATA to extra dist, should make
tinderbox happy
2001-01-15 Eric Fischer <eric@eazel.com>
* medusa.spec.in:
make path to profile.d not depend on %{prefix}, since
the files will only be found at login if they're in
/etc/profile.d, not /usr/local/etc/profile.d
make path to tmp/medusa-init not depend on %{prefix},
since /usr/local/tmp probably doesn't exist, and probably
has no reason to.
2001-01-12 Rebecca Schulman <rebecka@eazel.com>
Reviewed by: John Sullivan <sullivan@eazel.com>
* libmedusa-internal/medusa-master-db.c: (index_directory),
(file_name_looks_invalid):
Skip files with no name, as reading them as is causes an
infinite loop of indexing the same directory.
* libmedusa/medusa-unindexed-search.c:
(medusa_unindexed_search_start_search):
Correctly return an error if we try to
search for a uri that contains invalid criteria.
Also, remove some spam that the unindexed search
would spew when done.
2001-01-12 Rebecca Schulman <rebecka@eazel.com>
Changes to add a --without-idle-checks option
to the indexer for debugging purposes
* indexer/medusa-file-index-daemon.c: (main),
(wait_for_indexing_signal), (do_index_accounting),
(exit_if_disk_is_too_full), (do_full_indexing),
(get_index_socket_name), (initialize_index_server_socket),
(file_indexer_parse_transmission):
Clean this up. Make listeners get created correctly
for different indexer names, and correctly
truncate the path name for the index socket
* libmedusa-internal/medusa-master-db-private.h:
Add a "don't use idle connection" parameter to the
database controller structure.
* libmedusa-internal/medusa-master-db.c:
(medusa_master_db_create_index), (index_directory):
* libmedusa-internal/medusa-master-db.h:
* libmedusa-internal/medusa-text-index.c:
(medusa_text_index_finish_indexing),
(sleep_until_idle_when_idle_check_interval_has_passed),
(sort_temp_index_data_into_permanent_index):
* libmedusa-internal/medusa-text-index.h:
Don't use the idle service if we request not to on the
command line.
* tests/medusa-text-index-test.c: (main):
Change the signature of medusa_master_db_create_index to
accept the added parameter
* libmedusa/medusa-log.c: (open_log_file_if_necessary_or_fail),
(medusa_log_event):
Behave correctly in the case where the log file cannot be created,
and don't accept NULL messages to be logged.
* libmedusa/medusa-utils.c:
(medusa_get_system_time):
* libmedusa/medusa-utils.h:
Add this function for testing purposes
* medusa-idled/medusa-idled-client.c:
(medusa_idle_service_register),
(reregister_idled_connection_if_possible),
(medusa_idle_service_request_current_idle_status):
Correct more file descriptor leaks.
* medusa-idled/medusa-idled.c:
(clean_up_socket_before_exiting_cover), (initialize_server_socket):
Add a function to remove the socket on exit. This prevents the
problem that root running the idled would prevent others from
running it later.
* search-service/medusa-file-search-daemon.c: (main), (query_loop),
(ensure_index_validity), (initialize_socket):
Log search service errors as appropriate instead of sending them
to the command line
2001-01-12 Josh Barrow <josh@eazel.com>
reviewed by: <stephane@eazel.com>
* medusa.spec.in:
Hopefully added medusa-idled to the rpm build. I have no clue
about rpm spec files, but Stephane does and she said this should
work.
2001-01-12 Rebecca Schulman <rebecka@eazel.com>
Some cleanup, and adding specific logging to track down a bug that
I'm working on with a tester who has only daily builds
* indexer/medusa-file-index-daemon.c:
(do_full_indexing):
Remove the "get_current_log_level" function
and use the medusa-log one.
* libmedusa-internal/medusa-io-handler.c: (medusa_io_handler_open):
use stat instead of lstat here because we are accessing the file
size, and we don't want the size of the link itself.
* libmedusa-internal/medusa-master-db.c: (index_directory):
Add abbreviated logs of when we index a file, directory, and
skip a file on the stoplist.
* libmedusa-internal/medusa-stdio-extensions.c:
(medusa_read_whole_file):
Use stat instead of lstat here as we are getting the
file size
* libmedusa/medusa-log.c: (medusa_log_event):
Remove extraneous \n's
2001-01-11 Rebecca Schulman <rebecka@eazel.com>
Fixed the problem that if there was a search service and no index,
the search service would return no results and no error message.
* libmedusa-internal/medusa-master-db.c: (medusa_master_db_open):
Remove extraneous warnings
* libmedusa-internal/medusa-rdb-file.c: (medusa_rdb_file_open):
Change a critical to just be a check.
* libmedusa/medusa-indexed-search.c:
(medusa_indexed_search_is_available), (medusa_indexed_search_new):
Return the correct error if there is a problem
authenticating the connection with the search
(medusa_indexed_search_start_search),
(medusa_indexed_search_read_search_result):
Add g_return_if_fails so NULL's don't get past to these functions,
which would seg fault in this case.
2001-01-11 Eric Fischer <eric@eazel.com>
* medusa.spec.in:
remove %{prefix} from init script search list, because
init script directories are at the root level, not the
prefix level
add a set of quotes I forgot last time, in case %{prefix}
has a space in it.
2001-01-11 Eric Fischer <eric@eazel.com>
* medusa.spec.in:
add quotes to protect against the possibility of file
names containing spaces
remove any existing medusa startup and shutdown scripts
in rc0.d and rc2.d before making new links into these
directories
2001-01-11 Eric Fischer <eric@eazel.com>
reviewed by: <rebecka@eazel.com>
* configure.in:
add generation of medusa-init from medusa-init.in
* index-configuration/Makefile.am:
add medusa-init to files to be installed
* medusa.spec.in:
add medusa-idled.sh and medusa-idled.csh to files
to be installed; add shell coding to determine the
location of the init scripts on the system and
relocate medusa-init there.
2001-01-10 Rebecca Schulman <rebecka@eazel.com>
Fixed bug 5318, that keyword searches were
only working for public keywords and those
marked as root.
* libmedusa-internal/medusa-file-index-queries.c:
(medusa_file_index_marked_with_keyword),
(medusa_file_index_not_marked_with_keyword):
Changed the keyword query functions to also
take the uid of the user making the query.
* libmedusa-internal/medusa-file-index.h:
* libmedusa-internal/medusa-file-index.c:
(file_index_clauses_using_index_only),
(file_index_clauses_using_index_and_uid),
(medusa_file_system_db_get_query_clauses_using_index_only),
(medusa_file_system_db_get_query_clauses_using_index_and_uid):
Create two kinds of queries for this database:
one set that require a uid argument, and another that
require only an index query argument.
(medusa_file_system_db_new), (medusa_file_system_db_open),
(medusa_file_system_db_free):
Only load the clauses when we open the database to do
queries, not when we're indexing.
* libmedusa-internal/medusa-query-clauses.c:
(medusa_query_clauses_unref):
* libmedusa-internal/medusa-query-clauses.h:
Make this NULL tolerant so that we can free the
query clauses even if we didn't load them.
* libmedusa-internal/medusa-master-db.c:
(medusa_master_db_run_search),
(query_execute_from_parsed_search_criterion),
(criterion_check_is_true_for_uri_if_check_exists),
(append_uri_to_results_if_matches),
(content_requests_to_uri_numbers): Change "clause_closure" to
"parsed_search_criterion" to be more clear.
* libmedusa-internal/medusa-search-uri.c:
* libmedusa-internal/medusa-search-uri.h:
(medusa_search_uri_parse), (database_and_uid_data_new),
(parse_search_criterion):
Make the parser take a uid argument, and add this to
the parsed search criteria where it will be needed to execute the
query.
(parsed_search_criterion_free_cover),
(medusa_parsed_search_criterion_free),
(medusa_parsed_search_criterion_list_free),
(medusa_parsed_search_criterion_is
oops
The requested page could not be found. Please use
your browsers 'back' button or the above home button to return to the
Greenstone Digital Library.search),
(medusa_parsed_search_criterion_has_check),
(medusa_parsed_search_criterion_run_check),
(criterion_is
oops
The requested page could not be found. Please use
your browsers 'back' button or the above home button to return to the
Greenstone Digital Library.request), (get_verb_from_criterion),
(get_direct_object_from_criterion):
Change "clause" to "criterion" to be more clear
* search-service/medusa-file-search-parse-transmission.c:
(handle_authenticated_request):
Call the search uri parse argument with the newly added uid argument
* libmedusa-internal/medusa-string-list.c:
(medusa_string_list_get_string):
Fix an off by one error.
* libmedusa/medusa-service-private.c:
Turn off debugging in the checked in copy
* libmedusa/medusa-string.h:
Include <glib.h>
* medusa-idled/Makefile.am:
Compile with glib libraries and use gtk
libraries to get the right X libraries
* medusa-idled/medusa-idled-client.c: (initialize_client_socket):
* medusa-idled/medusa-idled.c:
close the request port when a connect fails to avoid file descriptor leaks
* msearch/medusa-command-line-search.c:
(output_connection_error_message_and_exit), (main):
Add a "\n" to the error message, and a gnome_vfs_shutdown.
* search-service/medusa-file-search-daemon.c: (initialize_socket):
Fix a free that was too early and prevented searches from working
in many cases.
2001-01-08 Rebecca Schulman <rebecka@eazel.com>
* medusa-idled/medusa-idled.c:
Fix the build on redhat 7.0
2001-01-08 Rebecca Schulman <rebecka@eazel.com>
* libmedusa-internal/Makefile.am:
Changed a srcdir -> builddir that
showed up in a make distcheck.
2001-01-08 Rebecca Schulman <rebecka@eazel.com>
Add the medusa idled service. Make other small
fixes, including changing the command line search to output
search results as unescaped path names.
reviewed by: Eric Fischer <eric@eazel.com>,
Pavel Cisler <pavel@eazel.com>
* medusa-idled/medusa-idled.c: (daemon_init),
(idle_status_message), (notify_client of current_idle_status),
(add_new_client_to_client_list),
(notify_clients of current_idle_status),
(clean_up_socket_before_exiting), (initialize_server_socket),
(window_or_its_children_have_idled_tag),
(idled_tag_is_attached_to_an_alive_window),
(make_sure_no_idled_is_running_and_tag_session), (main):
The daemon that detects x session idle status (using the
checks described below), manages a list of clients that
want this status, and updates them when the idle status
changes during a session.
* medusa-idled/x-screensaver-code.c: (get_visual_resource),
(x_screensaver_select_events_from_screen_windows),
(x_screensaver_connect_to_server_and_get_display), (screen_number),
(visual_depth), (x_screensaver_initialize_per_screen_info),
(idle_timer), (reset_timers),
(x_screensaver_schedule_wakeup_event), (check_for_clock_skew),
(timestring), (x_screensaver_check_pointer_timer),
(BadWindow_ehandler), (notice_events), (notice_events_timer),
(start_notice_events_timer),
(x_screensaver_check_for_idle_status_changes),
(query_mit_saver_extension), (query_sgi_saver_extension),
(query_xidle_extension),
(x_screensaver_initialize_server_extensions):
* medusa-idled/x-screensaver-code.h:
The code we've cutted and pasted from x-screensaver.
This includes checks for idleness using pointer location checks,
keyboard events, X screensaver extensions, and /proc/interrupts.
I haven't yet tested any of the X screensaver extensions because
I don't have any of the necessary extensions. We should probably
do this before releasing this code for PR3, or ifdef out the code
completely, even when the necessary extensions are installed.
* medusa-idled/medusa-idled-client.c: (get_current_idle_status),
(find_last_buffer_line), (read_most_current_status),
(initialize_client_socket), (medusa_idle_service_register),
(reregister_idled_connection_if_possible),
(medusa_idle_service_request_current_idle_status),
(medusa_idle_service_sleep_until_idle),
(medusa_idle_service_unregister_and_destroy_connection):
* medusa-idled/medusa-idled-client.h:
The idle client library. This includes commands to register
and unregister from the server, and to request from the server
to request the current activity from the session, and a request
to "sleep until idle"
* medusa-idled/medusa-idled-private.h:
The constants used in the communication between the
idle client and the idled.
* Makefile.am:
* configure.in:
* medusa-idled/.cvsignore:
* medusa-idled/Makefile.am:
Add the new medusa-idled directory to the build.
* libmedusa-internal/Makefile.am:
Compile the medusa-idled library into the index library, so that the
indexer can use it.
* libmedusa-internal/medusa-master-db-private.h:
* libmedusa-internal/medusa-master-db.c:
(medusa_master_db_create_index), (index_directory):
* libmedusa-internal/medusa-text-index.c:
(medusa_text_index_finish_indexing),
(sort_temp_index_data_into_permenant_index):
* libmedusa-internal/medusa-text-index.h:
Add the idled client structure to the database controller
structure, and make calls to "sleep_until_idle" intermittently.
* index-configuration/.cvsignore:
* index-configuration/Makefile.am:
* index-configuration/medusa-idled.csh.in:
* index-configuration/medusa-idled.sh.in:
Add the installation files that will get installed as
part of /etc/profile.d
* msearch/medusa-command-line-search.c: (main):
* search-service/medusa-file-search-daemon.c: (daemon_init):
* indexer/medusa-file-index-daemon.c: (main):
Note that we should be initing a daemon for the
"with_listener" case (where the index daemon runs as a listener
for index requests)
* libmedusa/medusa-index-service.h:
Add "indexer status" that we will use to fix bug 5422
2001-01-08 Rebecca Schulman <rebecka@eazel.com>
Fix bugzilla.eazel.com bug 5432, that file_type
searches stopped working. This turned out to
be an artifact of my change from using hash tables
to using string lists to store mime types.
This change also includes a fix to
ignore a EINTR from a connect call that seems
to occur on Redhat 7.0.
reviewed by: John Harper <jsh@eazel.com>
* libmedusa-internal/medusa-stdio-extensions.c:
(medusa_read_whole_file):
* libmedusa-internal/medusa-stdio-extensions.h:
Change this function to return the number of bytes read,
in addition to the buffer.
* libmedusa-internal/medusa-string-list.c:
(string_list_file_without_header), (medusa_string_list_open),
Use the number of bytes read rather than strlen to determine
the size of the file we read in, since strlen doesn't work
when we read "/000" characters. Also fix an off by
one error in the file header parsing code of the string list.
(medusa_string_list_destroy):
Remove the unnecessary checks for NULL that Pavel recommended
be removed during a previous review session.
* libmedusa/medusa-indexed-search.c: (medusa_indexed_search_new):
Add debugging code to the indexed search.
* libmedusa/medusa-service-private.c: (root_owns_search_socket),
(medusa_initialize_socket_for_requests):
Fix a g_return_if_fail that should have just been a check, and
ignore EINTR where appropriate, since it is safe to do so
on connect calls, and we don't want to report than a search
connection is unavailable in that case.
* RENAMING:
Add renaming of uri-list to uri-index, and change
the name of the search_uri_rfc to "Search URI Specification"
2001-01-05 Rebecca Schulman <rebecka@eazel.com>
Fix part of bug 5421, that searches
in the absence of the index service
should be run slowly. I added the new
index-if-available search option that will
do what we want, ie use the index to do a search
if possible, otherwise do an unindexed search.
This is a different option than doing both searches,
which is offered through nautilus using a preference
Also fix two fixmes 3006, 3008 and 2971.
* doc/search_uri_rfc: Add explanation of the new
index-if-available option
* libmedusa-internal/medusa-search-uri.c: (bypass_search_method):
* libmedusa/medusa-search-service.h:
* libmedusa/medusa-search-service.c:
(medusa_search_service_connection_is_available_for_uri),
(medusa_search_service_connection_new),
(medusa_search_service_connection_start_search),
(medusa_search_service_connection_read_search_result),
(uri_has_valid_header), (uri_to_search_method):
Clean up some of the code running the indexed and unindexed
searches. Add the ability to run the indexed search if
available.
* libmedusa/medusa-unindexed-search.c:
(medusa_unindexed_search_read_search_result),
(medusa_indexed_search_destroy), (matches_one_name):
Fix 3006, and clear the read buffer before reading.
Remove functions that are replaced by their gnome-vfs
equivalents.
* libmedusa/medusa-indexed-search.c:
(medusa_indexed_search_destroy):
Change the destroy functions of both the unindexed
and indexed searches to be NULL-tolerant, and call
both from the search service on each connection.
* libmedusa-internal/medusa-rdb-table-async.c:
* libmedusa-internal/medusa-rdb-table-async.h:
Remove these unused stale files.
2000-12-21 Rebecca Schulman <rebecka@eazel.com>
reviewed by: Maciej Stachowiak <mjs@eazel.com>
* libmedusa-internal/medusa-conf.h:
Cleaned up types of the database fields
to use the correct system types for respective
information, (gid_t for group, for example).
* libmedusa-internal/medusa-file-index-encoders.c:
(medusa_file_database_uri_number_encode),
(medusa_file_database_mtime_encode),
(medusa_file_database_owner_encode),
(medusa_file_database_group_encode),
(medusa_file_database_permissions_encode),
(medusa_file_database_size_encode),
(medusa_file_database_uri_number_decode),
(medusa_file_database_mtime_decode),
(medusa_file_database_owner_decode),
(medusa_file_database_group_decode),
(medusa_file_database_permissions_decode),
(medusa_file_database_size_decode),
(medusa_file_database_keywords_decode):
* libmedusa-internal/medusa-file-index-encoders.h:
Fixed the types on these to be correct with the changes to
the types in the database, and greatly
cleaned up encoders and decoders that are
converting strings to tokens and vice versa.
* libmedusa-internal/medusa-file-index-queries.c:
(medusa_file_index_is of type), (medusa_file_index_is_not of type),
(medusa_file_index_is_file), (medusa_file_index_is_text_file),
(medusa_file_index_is_application), (medusa_file_index_is_music),
(medusa_file_index_is_directory), (medusa_file_index_has_uid),
(medusa_file_index_has_gid), (medusa_file_index_does_not_have_uid),
(medusa_file_index_does_not_have_gid),
(medusa_file_index_is_modified_before_time),
(medusa_file_index_is_modified_after_time),
(medusa_file_index_is_larger_than),
(medusa_file_index_is_smaller_than),
(medusa_file_index_is of size),
(medusa_file_index_uid_can_read_file),
(medusa_file_index_marked_with_keyword),
(medusa_file_index_not_marked_with_keyword),
(medusa_file_index_verify_file_is_modified_before_time),
(medusa_file_index_verify_file_is_modified_after_time):
* libmedusa-internal/medusa-file-index-queries.h:
* libmedusa-internal/medusa-uri-list-queries.c
(medusa_uri_list_is_in_directory),
(medusa_uri_list_is_in_directory_tree), (medusa_uri_list_is_named),
(medusa_uri_list_has_name_regexp_matching),
(medusa_uri_list_has_name_not_regexp_matching),
(medusa_uri_list_is_in_directory_regexp_matching),
(medusa_uri_list_is_not_in_directory_regexp_matching),
(medusa_uri_list_has_name_containing),
(medusa_uri_list_has_name_not_containing),
(medusa_uri_list_is_in_directory_containing),
(medusa_uri_list_has_file_name_starting_with),
(medusa_uri_list_has_file_name_ending_with),
(medusa_uri_list_has_name_glob_matching),
(medusa_uri_list_has_full_file_name), (file_glob_to_regexp):
* libmedusa-internal/medusa-uri-list-queries.h:
Totally cleaned these up, and made them use the right
decoder directly, instead of asking the now obsolete
query code to do it, since the query code had
no understanding of how to deal with data of types
other than integer and string.
* libmedusa-internal/medusa-file-information.c:
Changed the types of the elements to be the correct system types
* libmedusa-internal/medusa-query-clauses.c:
(value_has_correct_type):
* libmedusa-internal/medusa-query-clauses.h:
Changed the argument type for numerical values to be
NUMBER from INTEGER since we now use long to represent
all numbers translated from strings, and they're not integers.
* libmedusa-internal/medusa-file-index.c: (file_index_clauses):
Removed deprecated casting of functions, and changed INTEGER to
NUMBER in the argument types to go along with the changes to
the ArgumentType names.
* libmedusa-internal/medusa-search-uri.c:
(clause_to_clause_closure), (medusa_clause_closure_free):
* libmedusa-internal/medusa-search-uri.h:
Use union of gint64 and char * to represent the object
of a search criterion instead of our old lame
gpointer, which was terribly confusing in the numerical case.
* libmedusa-internal/medusa-query-optimizations.c:
(last_time_corresponding_to_query_object):
Fixed a bug that caused within a week of and within a month
of to be interpreted as within a day of, and may have crashed the
search daemon when a criterion beginning with modified that was invalid
was entered.
* libmedusa/medusa-string.c: (medusa_str_has_prefix),
(medusa_str_has_suffix), (medusa_strcase_has_prefix),
(medusa_strcase_has_suffix), (medusa_strstr_case_insensitive):
* libmedusa/medusa-string.h:
* libmedusa/medusa-utils.c:
* libmedusa/medusa-utils.h:
* libmedusa/Makefile.am:
* libmedusa/medusa-unindexed-search.c: (matches_one_name):
Moved the string functions from medusa-utils into
medusa-string, and add a new set of case insensitive ones,
so case sensitivity works correctly in searches. It seemed to
be only working sporadically before. Use the new functions
in the revised query functions (see above), and in the
unindexed search as well.
* search-service/medusa-authenticate.c:
* libmedusa-internal/medusa-master-db.c:
* libmedusa-internal/medusa-rdb-file.h:
* libmedusa-internal/medusa-versioned-file.c:
* libmedusa/medusa-indexed-search.c:
* libmedusa/medusa-search-service.c:
Use the medusa-string header instead of the medusa-utils one,
being deprecated.
* libmedusa/medusa-file-info-utilities.c: (medusa_group_contains):
* libmedusa/medusa-file-info-utilities.h:
Move the group contains function into the file info utilities with
other functions that manipulate stat info.
* libmedusa-internal/Makefile.am:
* libmedusa-internal/medusa-rdb-query-private.h:
* libmedusa-internal/medusa-rdb-query.c:
* libmedusa-internal/medusa-rdb-query.h:
* libmedusa-internal/medusa-master-db.h:
* libmedusa-internal/medusa-rdb-file.h:
Remove the now obsolete rdb query code that caused a lot
of headaches, and type issues, and removed obsolete
mentions of its headers. good riddance!
2000-12-20 Rebecca Schulman <rebecka@eazel.com>
Fix bug 5289, that entering "search:" as a URI
crashes Nautilus. Also, this commit includes
the configure changes medusa will need for
the X activity daemon that is still in production.
reviewed by: Mike Fleming <mfleming@eazel.com>
* libmedusa/medusa-search-service.c:
(medusa_search_service_connection_is_available_for_uri),
(medusa_search_service_connection_new),
(gnome_vfs_uri_to_search_method), (uri_to_search_method):
Fix bug 5289. The problem was that
the uri_to_search_method call assumed it would
be handed a valid uri, which was not the case.
Changed the signatures of the calls to
return whether the uri seemed to be valid
according to these calls' knowledge,
and if not tell the callers,
who then return a GNOME_VFS_ERROR_INVALID_URI
* acconfig.h:
* configure.in:
Configure changes to determine whether any of the
XScreenSaver extensions or /proc/interrupts are
available for use in determining how idle
a system is.
* libmedusa/medusa-log.h:
* libmedusa/medusa-log.c: (open_log_file_if_necessary_or_fail),
(current_time_as_string), (medusa_log_error),
(medusa_log_fatal_error), (medusa_log_event),
(medusa_log_text_index_account_data):
New additions to the log system, that we will
use to fix problems in logging. These changes
are also part of the impending change to
add the X activity daemon. They should
also improve logging around the rest of
medusa, and will be used to fix bug
4557.
2000-12-20 Rebecca Schulman <rebecka@eazel.com>
This change should address the first part of
1353, that medusa uses data structures that can
"fill up." It does not address the more difficult
second part of the bug, which will require reworking
the lexicon of words used by the text index.
reviewed by: Pavel Cisler <pavel@eazel.com>
* libmedusa-internal/medusa-string-list.c:
(string_list_file_without_header), (medusa_string_list_open),
(medusa_string_list_new), (medusa_string_list_get_string),
(store_string_on_disk), (medusa_string_list_store_string),
(free_cache_entry), (medusa_string_list_destroy):
* libmedusa-internal/medusa-string-list.h:
* libmedusa-internal/Makefile.am:
Add a new data structure, called a string list,
which can return tokens that will with a single lookup retrieve
their corresponding string. strings can be stored with varying
degrees of uniqueness, and medusa uses these different levels
depending on the word set. For file names, which are diffuse, no
uniqueness is requested, for directory names, only that
the same name not be added twice in a row, in this case the
last token is re-returned. Lastly, for mime types and other
data sets that occur all the time, keep a full cache in memory
and so tokens and words form a 1-to-1 correspondence. this data
structure, should not fill up, and should be sufficiently
adjustible in size.
* libmedusa-internal/medusa-uri-list-private.h:
* libmedusa-internal/medusa-uri-list.c: (medusa_uri_list_new),
(medusa_uri_list_open), (medusa_uri_list_erase_constructed_index),
(medusa_uri_list_move_completed_index_into_place),
(medusa_uri_list_index_files_are_still_valid).,
(medusa_uri_list_destroy):
* libmedusa-internal/medusa-uri-list.h:
* libmedusa-internal/medusa-file-index.c:
(medusa_file_system_db_new), (medusa_file_system_db_open),
(medusa_file_system_db_free):
* libmedusa-internal/medusa-file-index.h:
* libmedusa-internal/medusa-master-db.c: (medusa_master_db_open),
(medusa_master_db_create_index),
(medusa_master_db_index_files_are_still_valid),
(medusa_master_db_erase_constructed_index),
(medusa_master_db_move_completed_index_into_place), (index_file):
Changed these indices to use string lists rather than
hashes. Also, stop sharing the file and directory name
lists, since the file index has no need for them anymoare.
This considerably simplified a bunch of code, including
removing the top level database's responsibilities regarding
these data structures.
* libmedusa-internal/medusa-uri-list-encoders.c:
(medusa_uri_list_filename_encode),
(medusa_uri_list_directory_name_encode),
(medusa_uri_list_filename_decode),
(medusa_uri_list_directory_name_decode):
* libmedusa-internal/medusa-file-index-encoders.c:
(medusa_file_database_uri_number_encode),
(medusa_file_database_mime_type_encode),
(medusa_file_database_owner_encode),
(medusa_file_database_mime_type_decode),
(medusa_file_database_keywords_encode),
(medusa_file_database_keywords_decode):
Changed the encoders that previously encoded using
hash tables to encode using string lists.
* libmedusa-internal/medusa-stdio-extensions.c:
(medusa_read_whole_file):
* libmedusa-internal/medusa-stdio-extensions.h:
Add a new file for local i/o utilities.
More should be moved here that exist in the future.
* libmedusa-internal/medusa-conf.h:
Fixed some database sizes that needed to be
updated now that tokens are always the size of
guint32's
* libmedusa-internal/medusa-file-index-queries.c:
(medusa_file_index_uid_can_read_file):
Remove an extraneous printf
* libmedusa-internal/medusa-hash.h:
Added ifdef's around the MedusaToken typedef, since we now
also define it in medusa-string-list.h
2000-12-19 Darin Adler <darin@eazel.com>
* libmedusa/medusa-index-progress.c: (medusa_index_progress_new):
Fixed code that assumed size_t is int.
2000-12-13 Rebecca Schulman <rebecka@eazel.com>
Fixed bugzilla.eazel.com bug 3098 that we
log search requests where authentication fails
* libmedusa/Makefile.am:
* libmedusa/medusa-log.c: (medusa_log_get_current_log_level),
(medusa_log_event), (medusa_log_text_index_account_data),
(medusa_close_log_file_on_exit):
* libmedusa/medusa-log.h:
Add the new log class, which can log medusa events to a log file,
and encapsulates functionality that was spread out over medusa before
* search-service/medusa-file-search-daemon.c: (main), (query_loop),
(ensure_index_validity):
use the get_log_level function from the medusa-log class.
* search-service/medusa-file-search-parse-transmission.c:
(medusa_file_search_parse_transmission):
Log an event when authentication fails
* libmedusa-internal/Makefile.am:
* libmedusa-internal/medusa-enums.h:
Remove obsolete header file
* libmedusa-internal/medusa-master-db.h:
* libmedusa-internal/medusa-text-index.c:
* libmedusa-internal/medusa-text-index.h:
* libmedusa-internal/medusa-uri-list-private.h:
* libmedusa-internal/medusa-uri-list.h:
Include the medusa-log.h header which now includes
the MedusaLogLevel type, formerly in medusa-enums.h
2000-12-08 Rebecca Schulman <rebecka@eazel.com>
Fixed bugzilla.eazel.com bug 3006,
that the unindexed search searched files
in the stoplist.
* databases/.cvsignore:
* databases/Makefile.am:
* databases/dummy:
* databases/file-index-stoplist:
Removed the databases directory as we don't
use it anymore.
* libmedusa/medusa-unindexed-search.c: (search_directory):
2000-12-05 Rebecca Schulman <rebecka@eazel.com>
Fixes for bug, that a second search
daemon will overwrite the socket of the
first.
* libmedusa/medusa-service-private.h:
* libmedusa/medusa-service-private.c:
(medusa_initialize_socket_for_requests):
Changed this function's parameter from type
char to const char, since the function doesn't
alter the argument, and so a const char
can be passed in.
* search-service/medusa-file-search-daemon.c:
(main), (query_loop),
(ensure_index_validity), (initialize_socket):
Made index_name a global variable, since there is only
one per invocation of a search daemon.
(make_sure_search_socket_is_available),
(can_write_to_existing_socket),
(remove_listening_socket_on_interrupt),
Added these functions to check if another
search daemon is currently using the socket.
If so we exit. If it is not in use, or if another
user owns the socket file (a possible security issue)
we erase the path and create our own socket there.
2000-12-04 Rebecca Schulman <rebecka@eazel.com>
* indexer/medusa-file-index-daemon.c: (exit_if_disk_is_too_full):
change a struct name
2000-12-04 Rebecca Schulman <rebecka@eazel.com>
* indexer/medusa-file-index-daemon.c: (main),
(exit_if_disk_is_too_full), (do_full_indexing):
Fixed bugzilla bug 4649, that nautilus should refuse
to run without a --force flag if the disk where the
index will go looks very full.
* libmedusa-internal/medusa-conf.h:
Add INDEX_PATH variable, instead of hard coding /share/medusa.
* libmedusa-internal/medusa-text-index.c:
(medusa_text_index_move_completed_index_into_place):
Remove old temporary index files.
* libmedusa/medusa-utils.c: (medusa_group_contains):
add a check for when a getpwnam fails, even when
a getgrnam succeeds.
2000-11-30 Rebecca Schulman <rebecka@eazel.com>
Fixes for bugs 3298 (about critical messages
about null hash tables while running the
search daemon), and 3201, that requestors
should ensure root owns the search socket
before sending requests. Also, a small
leak fix.
reviewed by: Gene Regan <gzr@eazel.com>
* libmedusa-internal/medusa-master-db.c:
(medusa_master_db_create_index),
(medusa_master_db_destroy):
move the responsibility for freeing
unsearched locations information
from the destroy to the create_index function
when done, so that the search daemon doesn't
call it in errro. This fixed 3298.
* libmedusa/medusa-service-private.c: (root_owns_search_socket),
(medusa_initialize_socket_for_requests):
Fixed 3201 by adding a check that root owns the socket
path, before doing any work like opening it.
* search-service/medusa-file-search-parse-transmission.c:
(handle_authenticated_request):
* libmedusa-internal/medusa-master-db.c:
(medusa_master_db_run_search):
Have the caller of medusa_master_db_run_search free
its arguments rather than the function itself,
and fixed a small string leak that occurred during
content searches
* libmedusa-internal/medusa-query-clauses.c:
(value_has_correct_type), (match_search_clause_to_query_clause):
Removed extraneous g_print statements.
2000-11-28 Rebecca Schulman <rebecka@eazel.com>
Added bug numbers to unlabelled fixmes.
* libmedusa-internal/medusa-index-filenames.c:
(medusa_move_completed_index_file_into_place):
* libmedusa-internal/medusa-query-clauses.c:
(value_has_correct_type), (match_search_clause_to_query_clause):
* libmedusa-internal/medusa-search-uri.h:
* libmedusa-internal/medusa-text-index.c: (medusa_text_index_open):
* libmedusa/medusa-index-service.c:
* search-service/medusa-file-search-parse-transmission.c:
(handle_authenticated_request):
2000-11-21 Rebecca Schulman <rebecka@eazel.com>
Patch to deal with typing issues, and to reject a clause if its value
has the wrong type. This prevents destructive uris from crashing the s
search daemoon
* libmedusa-internal/medusa-query-clauses.c:
(value_has_correct_type), (match_search_clause_to_query_clause):
Add a check to the query clause finder to also require that the
value be of the right type
2000-11-16 Rebecca Schulman <rebecka@eazel.com>
This is a FIX for part 3 of bug 3920, which checks
to make sure that files actually have the correct modification
date before returning them. I didn't address other search types for
this bug.
buddy: <delete if not using a buddy>
* libmedusa-internal/medusa-file-index-queries.h:
* libmedusa-internal/medusa-file-index-queries.c:
(medusa_file_index_verify_file_is_modified_before_time),
(medusa_file_index_verify_file_is_modified_after_time):
Added check functions that do the verifying for modtimes
* libmedusa-internal/medusa-file-index.c: (file_index_clauses):
Add not only evaluation functions, but also verification functions
for the mtime queries.
* libmedusa-internal/medusa-master-db.c:
(criterion_check_is_true_for_uri_if_check_exists),
(append_uri_to_results_if_matches):
Add running of check procedures before we check each result.
* libmedusa-internal/medusa-query-clauses.h:
* libmedusa-internal/medusa-query-clauses.c:
(medusa_query_clauses_add_clause_with_check),
(match_search_clause_to_query_clause),
(medusa_query_clauses_get_function), (medusa_query_clause_new),
(medusa_query_clause_new_with_check):
* libmedusa-internal/medusa-search-uri.c:
* libmedusa-internal/medusa-search-uri.h:
(clause_to_clause_closure), (medusa_clause_closure_has_check),
(medusa_clause_closure_run_check):
Add a "Verify" field to the information about each possible
query, and functions to check for and run a verify function
* libmedusa/medusa-utils.c: (medusa_g_list_forall):
* libmedusa/medusa-utils.h:
Add new utility function that returns "TRUE" if a predicate
is true for all elements in a list, false otherwise
2000-11-16 Ramiro Estrugo <ramiro@eazel.com>
* libmedusa-internal/medusa-index-filenames.c:
* msearch/medusa-command-line-search.c:
Include needed system headers.
2000-11-15 Rebecca Schulman <rebecka@eazel.com>
buddy: John Sullivan <sullivan@eazel.com>
* libmedusa-internal/medusa-query-optimizations.c:
(medusa_query_optimizations_initialize),
(request_is_too_new_for_database),
(request_is_newer_than_the_present), (set_error_always_false):
Add a second preprocessor for search uris that will
give an "ALWAYS_FALSE" error when searching for files
modified after the present time. This prevents searches
for files modified in 2001, for example, from returning
a message that you need a more recent index. While true,
it's not exactly the right response.
* libmedusa/medusa-indexed-search.c:
(medusa_indexed_search_new):
Fixed a bug that didn't destroy the search handle
when a parse error occurred and left the search server
hanging.
* DEBUGGING:
Fix the way the --debug flag should be used when working with
gdb.
2000-11-13 Rebecca Schulman <rebecka@eazel.com>
Reviewed by: Maciej Stachowiak
This should be the medusa work for bug 3920, that
search by last modified can return no results if the
index is too new. This involved creating a new
method of reporting errors, so that the error would
occur at the open_directory stage, where nautilus would
catch it. Now there are two stages of report back to the client
after a request is made. The first tells the client the results
of parsing the uri. If there is a serious error, no search is
made, and no results are returned. One of the possible errors
is the error for 3920, the obsoleteness of the index.
The code changes here are split into a few parts, first, the
parsing errors were made public, and they have corresponding strings
which are sent over the socket that both the client and the server
understand.
Next, the parsing must be when the search uri is opened, rather then
when the query is run.
* libmedusa-internal/medusa-master-db.h:
* libmedusa-internal/medusa-master-db.c:
(medusa_master_db_run_search), (medusa_master_db_destroy):
Remove parser from the run_search code, and change a few
function names to have clearer descriptions
* libmedusa-internal/medusa-query-optimizations.c:
* libmedusa-internal/medusa-query-optimizations.h:
(medusa_query_optimizations_initialize),
(medusa_query_optimizations_perform_and_free_deep),
(medusa_query_optimizations_destroy), (optimization_is_applicable),
(result_is_error), (optimization_result_new),
(request_is_too_new_for_database),
(set_error_request_obsoletes_index),
(replace_username_with_uid_criterion),
(replace_group_with_gid_criterion),
(replace_modified_with_mtime_criteria):
Add the "optimization" to detect if the index is not new enough
to return any query results. This case causes an error and the
search to be aborted.
* libmedusa-internal/medusa-search-uri.c:
* libmedusa-internal/medusa-search-uri.h:
(medusa_search_uri_parse), (medusa_search_uri_cleanup_parse_data),
(medusa_uri_is_search_uri):
Clean this up, add consts where appropriate, and changed the
cleanup_parse_data to reflect what it's doing.
Also in the cases of errors, use the new mechanism, and return syntax
errors where appropriate.
* libmedusa/medusa-index-service.c:
(get_last_index_update_time_by_hack):
Fix an error that was using the wrong index name to get the last index time
* libmedusa/medusa-indexed-search.h:
* libmedusa/medusa-indexed-search.c: (authenticate_connection),
(initialize_connection_buffer), (refresh_read_buffer_if_needed),
(read_connection_line), (get_search_uri_parsing_result),
(medusa_indexed_search_is_available), (send_search_uri),
(medusa_indexed_search_new), (medusa_indexed_search_start_search),
(medusa_indexed_search_read_search_result):
Move a bunch of stuff around. There are two stages to reading the
socket output, the parsing and the results read, so share the low
level code between them
* libmedusa/medusa-search-service-private.h:
Add the new protocol strings necessary, and separate and label
the various types of protocol strings stored in this header
* libmedusa/medusa-search-service.h:
* libmedusa/medusa-search-service.c:
(medusa_search_service_connection_new):
Update to reflect the change in signature to indexed_search_new,
which now takes a uri, so the parsing can occur.
* msearch/medusa-command-line-search.c:
(output_connection_error_message_and_exit), (main):
output error messages corresponding to the newly generated messages.
* search-service/medusa-authenticate.c:
(medusa_authenticate_create_cookie_file):
Remove real statements enclosed in g_return_if_fail
wrappers, and let provide warnings in their case instead
* search-service/medusa-file-search-parse-transmission.c:
(medusa_file_search_parse_transmission), (transmit_string),
(send_back_parsing_results), (handle_authenticated_request),
(present_query_results), (send_cookie_creation_acknowledgement):
Move around a bunch of code to reflect the two stage
return process.
2000-11-08 Rebecca Schulman <rebecka@eazel.com>
Finished bug 1778. There is now a test harness for
medusa, in tests/run-search-uri-test.pl that can be
run as root. The data for the tests is in
tests/search-uri-test-data, and the format should be
fairly self-explanatory.
* libmedusa-internal/medusa-index-filenames.c:
(medusa_move_completed_index_file_into_place):
Removed extraneous printf
* libmedusa-internal/medusa-master-db.c: (medusa_master_db_open),
(medusa_master_db_create_index):
Corrected incorrect error messages, and fixed a small string leak
* libmedusa/medusa-index-progress.c: (medusa_index_progress_new),
(medusa_index_progress_update), (medusa_index_progress_destroy),
(get_disk_used_information):
Deal nicely with the failure of statfs and just don't keep track of
indexing progress
* tests/run-search-uri-tests.pl:
Correct remaining bugs and give decent output. Also change to
the script to read a newer, saner file format
* tests/search-uri-test-data:
Change the file format to be saner
2000-11-08 Rebecca Schulman <rebecka@eazel.com>
* index-configuration/.cvsignore:
Added medusa.cron
* search-service/medusa-file-search-daemon.c:
(get_search_socket_name):
Fixed a problem creating the name of the socket
by the server in the default index name case
* tests/run-search-uri-tests.pl:
2000-11-08 Rebecca Schulman <rebecka@eazel.com>
* libmedusa/medusa-index-service.c:
(get_last_index_update_time_by_hack):
Fix a problem that was breaking the nautilus build
* tests/run-search-uri-tests.pl:
More work on bug 1778. Still not complete
2000-11-08 Rebecca Schulman <rebecka@eazel.com>
* libmedusa-internal/medusa-file-index.c:
* libmedusa-internal/medusa-uri-list.c:
Remove invalid header strings
2000-11-07 Rebecca Schulman <rebecka@eazel.com>
Made medusa be able to create named, subsequent indices,
and search and index them at the same time as the main index.
This is most of the fix for bug 1778, which is to create a series
of index tests. We'll create a separate index called "test".
* indexer/medusa-file-index-daemon.c: (main),
(do_index_accounting), (get_current_log_level), (do_full_indexing),
(file_indexer_parse_transmission):
Get rid of all of the old lists of removes, and use calls to the
central database instead.
* libmedusa-internal/medusa-conf.h:
Gut this file, and move to the relevant objects. This file
should be deprecated at some point.
* libmedusa-internal/medusa-file-index.c:
(medusa_file_system_db_new), (medusa_file_system_db_open),
(medusa_file_system_db_free),
(medusa_file_system_db_erase_constructed_index),
(medusa_file_system_db_move_completed_index_into_place),
(medusa_file_system_db_index_files_are_still_valid):
* libmedusa-internal/medusa-file-index.h:
* libmedusa-internal/medusa-master-db.c: (medusa_master_db_open),
(medusa_master_db_create_index),
(medusa_master_db_index_files_are_still_valid),
(medusa_master_db_erase_constructed_index),
(medusa_master_db_move_completed_index_into_place):
* libmedusa-internal/medusa-master-db.h:
Added three new api calls to each of the indices.
These are to erase indices, move the index files when
finished, and check if the index files are still valid.
Each index is now responsible for managing its own
index files, and the master index manages files that
are shared between indices.
* libmedusa-internal/medusa-index-filenames.c:
(medusa_generate_index_filename),
(medusa_erase_constructed_index_file),
(medusa_move_completed_index_file_into_place),
(medusa_index_file_is_newer_than_time):
* libmedusa-internal/medusa-index-filenames.h:
Added new set of functions that know how to generate
and manage index file names
* libmedusa-internal/medusa-lock.c: (get_lock_file_name),
(medusa_read_lock_get), (medusa_write_lock_get):
* libmedusa-internal/medusa-lock.h:
Create locks based on index names, rather than just having
a single lock
* libmedusa-internal/medusa-text-index-private.h:
Removed unneeded fields from the structure.
* libmedusa/medusa-file-info-utilities.c:
(medusa_file_is_newer_than_time):
* libmedusa/medusa-file-info-utilities.h:
Add new function to check if a file is newer,
used by the indices to determine if their files are still valid.
* libmedusa/medusa-index-service.c:
(get_last_index_update_time_by_hack):
Make this even more of a hack, and generate a sample filename by hand
* libmedusa/medusa-indexed-search.c: (get_search_socket_name),
(medusa_indexed_search_new):
Generate a socket name based on the index name
* libmedusa/medusa-unindexed-search.c:
* search-service/medusa-file-search-daemon.c:
(get_search_socket_name), (main), (get_current_log_level),
(query_loop), (ensure_index_validity), (initialize_socket):
* libmedusa-internal/Makefile.am:
Add the new files
* tests/medusa-text-index-test.c: (main):
Use the new api for the tests
* libmedusa-internal/medusa-file-index-encoders.c:
(medusa_file_index_encoders_test):
Deprecate the old tests. There's a bug to revive them
* libmedusa-internal/medusa-debug.c: (medusa_stop_in_debugger),
(medusa_stop_after_default_log_handler),
(medusa_set_stop_after_default_log_handler),
(medusa_make_warnings_and_criticals_stop_in_debugger),
(medusa_get_available_file_descriptor_count),
(medusa_str_equal_with_free):
Cut and paste this from nautilus
* libmedusa-internal/medusa-debug.h:
* RENAMING:
Update and add.
2000-11-06 Rebecca Schulman <rebecka@eazel.com>
Added bug numbers to all the fixmes.
* libmedusa-internal/medusa-hash.c: (medusa_hash_open),
(medusa_hash_new):
* libmedusa-internal/medusa-io-handler.c: (medusa_io_handler_open),
(medusa_io_handler_free):
* libmedusa-internal/medusa-master-db.c: (medusa_master_db_open),
(medusa_master_db_query):
* libmedusa-internal/medusa-text-index-plaintext-module.c:
* libmedusa-internal/medusa-text-index-queries.c:
(word_to_uri_numbers):
* libmedusa-internal/medusa-text-index.c:
* libmedusa-internal/medusa-versioned-file.h:
* libmedusa/medusa-search-service.c:
(medusa_search_service_connection_is_available_for_uri):
* libmedusa/medusa-unsearched-locations.c:
(unsearched_mount_list_initialize):
* tests/run-search-uri-tests.pl:
Edits to comments
2000-11-06 Rebecca Schulman <rebecka@eazel.com>
Fixed bug 4043, so that the cron script is relocatable.
Also added debugging flag to the search daemon so that
it won't fork when debugging
* configure.in: Add generation of cron job to configure.in
* index-configuration/medusa.cron:
Remove this
* index-configuration/medusa.cron.in:
Add this, with @prefix@ relocatable directory
* indexer/medusa-file-index-daemon.c: (main),
(register_command_line_options):
Rename some unclear variables
* search-service/medusa-file-search-daemon.c: (main),
(register_command_line_options):
Add command line parsing to the search daemon and the
new debug flag.
* DEBUGGING: Documentation for the new debugging flag.
2000-11-01 Robin * Slomkowski <rslomkow@eazel.com>
* configure.in: upped version number for development
after the tag to 0.2.3
2000-11-01 Robin * Slomkowski <rslomkow@eazel.com>
* configure.in: Just giving medusa version number 0.2.2
2000-10-31 Darin Adler <darin@eazel.com>
* medusa.spec.in: Got rid of vendor and packager. Checking these
in is a bad idea. See the discussion in bug 3461 for details.
2000-10-31 Darin Adler <darin@eazel.com>
* configure.in: Fix gcc option check so it works properly.
* indexer/modules/Makefile.am: Remove bogus "CPPFLAGS=" line that
was overriding CPPFLAGS set by autoconf.
* medusa.spec.in: Got rid of "Distribution: GNOME" since no one
uses that field. Fixed "Eazel Inc." to say "Eazel, Inc."
instead. Turned on "make -k" and "make check" so the Tinderbox
does more better error reporting and testing.
2000-10-29 Eskil Heyn Olsen <eskil@eazel.com>
* medusa.spec.in:
Yes, 1.10 breaks sleipnir rpm build. I'll stick
with 1.9 for now.
2000-10-29 Eskil Heyn Olsen <eskil@eazel.com>
* medusa.spec.in:
Reverted to 1.10 to make sure if it's the
crontab changes that borks sleipnir
2000-10-29 Eskil Heyn Olsen <eskil@eazel.com>
* medusa.spec.in:
Reverted to 1.9
2000-10-29 Eskil Heyn Olsen <eskil@eazel.com>
* medusa.spec.in:
Reinserted the cron stuff, it didn't
help sleipnir.
2000-10-29 Eskil Heyn Olsen <eskil@eazel.com>
* medusa.spec.in:
Removing the cron stuff to see if that is
responsible for killing the buildserver on
sleipnir.
2000-10-29 Eskil Heyn Olsen <eskil@eazel.com>
* medusa.spec.in:
Removed the obsolete in -devel
if $prefix/lib not in /etc/ld.so.conf, add it.
2000-10-28 Ramiro Estrugo <ramiro@eazel.com>
* medusa.spec.in: Change the %post and %postun sections a bit to
prevent warnings being spewed by rpm at install time.
2000-10-27 Rebecca Schulman <rebecka@eazel.com>
* medusa.spec.in: Changed the cron job
to have the correct (Executable) permissions
2000-10-27 Robin * Slomkowski <rslomkow@eazel.com>
* medusa.spec.in:just added Vendor fields and new descriptions
want Maciej to vet
2000-10-27 Rebecca Schulman <rebecka@eazel.com>
* index-configuration/Makefile.am:
Added medusa.cron to EXTRA_DIST, which
should fix the rpm build problem
2000-10-27 Rebecca Schulman <rebecka@eazel.com>
Fixed cron issues in medusa, with Ramiro's
help, and also made the search daemon behave
like a real daemon thanks to help from
Advanced Programming in the UNIX Environment
* index-configuration/Makefile.am:
Get rid of the install script. The spec file
now just copies the cron file to the right directory
* index-configuration/medusa-install-cron.sh:
get rid of this file
* index-configuration/medusa.cron:
revise the cron job to have the right directories
for the rpm (/usr/bin) on the executables
* medusa.spec.in:
update to do above
* search-service/medusa-file-search-daemon.c: (daemon_init),
(main):
add daemon_init.
2000-10-25 Rebecca Schulman <rebecka@eazel.com>
* libmedusa-internal/medusa-search-uri.c:
(medusa_parsed_search_uri_free):
Don't free a list that was already emptied.
* libmedusa-internal/medusa-text-index-plaintext-module.c:
(read_more_data), (word_contains_digits):
Don't index words containing digits
* search-service/medusa-file-search-daemon.c:
(index_files_have_changed):
fix a true <-> false swap. Think this fixed
another seemingly unrelated bug as well.
2000-10-24 Rebecca Schulman <rebecka@eazel.com>
* index-configuration/medusa-install-cron.sh:
fixed this so it works for inclusion in rpms.
* libmedusa-internal/medusa-conf.h:
Upped the default directory hash table size.
2000-10-23 Rebecca Schulman <rebecka@eazel.com>
More leak fixes
* libmedusa-internal/medusa-master-db.c: (medusa_master_db_query):
Free the elements of a list that ended up in two partitioned lists,
by freeing each of the partitioned lists.
* libmedusa-internal/medusa-query-clauses.c:
(medusa_query_clauses_get_function):
free the word array on one of the return paths
* libmedusa-internal/medusa-query-clauses.h:
add MEDUSA_ARGUMENT_TYPE_NONE. This way all clause closues have an argument type,
and we can free the strings correctly.
* libmedusa-internal/medusa-search-uri.c:
(medusa_search_uri_parse), (medusa_parsed_search_uri_free),
(clause_to_clause_closure), (medusa_clause_closure_free),
(medusa_clause_closure_list_free), (get_verb_from_clause),
(get_direct_object_from_clause):
Various leak issues. This code needs work.
* libmedusa-internal/medusa-search-uri.h:
add the medusa_clause_closure_list_free functio
* libmedusa/medusa-search-service.c:
(medusa_search_service_connection_new):
Return the right error in the case where a nonsense uri is given (INVALID_URI)
and so the command line search gives a better error message
* libmedusa/medusa-utils.c:
Fixed a spelling error in a comment
* msearch/medusa-command-line-search.c: (main):
Correct punctuation in the error message, and add a new error message about invalid uris.
* search-service/medusa-file-search-daemon.c: (main):
ignore sigpipe instead of trying to handle it. This should prevent massive leakage in some cases.
* search-service/medusa-file-search-parse-transmission.c:
(present_query_results):
Fix a huge leak caused by using a list element as an iterator, and then not freeing any of the
list, since the current list pointer was to the end of the list, instead of the beginning.
2000-10-21 Eskil Heyn Olsen <eskil@eazel.com>
* configure.in:
Bonged version to 0.2.1 for pr2.
2000-10-20 Rebecca Schulman <rebecka@eazel.com>
A few small leak fixes
* libmedusa-internal/medusa-lock.c: (medusa_lock_release):
* libmedusa-internal/medusa-search-uri.c:
(medusa_search_uri_parse), (clause_to_clause_closure):
* libmedusa-internal/medusa-text-index-mime-module.c:
(medusa_text_index_mime_module_unref_cover):
* libmedusa-internal/medusa-text-index-mime-module.h:
* libmedusa-internal/medusa-text-index.c:
(medusa_text_index_destroy):
2000-10-18 Rebecca Schulman <rebecka@eazel.com>
* libmedusa-internal/medusa-tokenize.c: (medusa_string_to_token):
Added a check for the condition of the hash table being
full, and exit on this case with a relevant error.
2000-10-18 Rebecca Schulman <rebecka@eazel.com>
* libmedusa-internal/medusa-conf.h:
Changed the confusing ".bak" suffix to ".in_progress"
* libmedusa-internal/medusa-hash.c: (medusa_hash_new):
Added a warning if a file is not successfully made,
so we can debug this in the future.
2000-10-18 Josh Barrow <josh@eazel.com>
* indexer/medusa-file-index-daemon.c: (main):
Change --help instance of "directory" to "folder."
This fixes bug 3844.
2000-10-16 Rebecca Schulman <rebecka@eazel.com>
* libmedusa/medusa-index-progress.c:
(medusa_index_progress_update):
Turn off progress warnings.
2000-10-16 Rebecca Schulman <rebecka@eazel.com>
* index-configuration/medusa-install-cron.sh:
Improved installation as per Ramiro's instructions
* libmedusa/medusa-index-progress.c: (medusa_index_progress_new),
(medusa_index_progress_update):
added a check for a 0 total space calculation on the drive,
to prevent spurious warnings from resulting if there is a
problem with the progress measurements
2000-10-10 Rebecca Schulman <rebecka@eazel.com>
* index-configuration/medusa-install-cron.sh:
Added a check to start and run cron.
I need to replace it with what ramiro recommended
* search-service/medusa-authenticate.c:
(calculate_permissions_for_file):
Stop spewing annoying "critical" warning when
a file in the index isn't found on disk, since
this is normal
* tests/run-search-uri-tests.pl:
First cut at the test script
* tests/search-uri-test-data:
Sample for the test data, to be filled out
2000-10-10 Josh Barrow <josh@eazel.com>
* doc/smoketests.html:
Made what to type clearer.
2000-10-06 Rebecca Schulman <rebecka@eazel.com>
* libmedusa-internal/medusa-io-handler.c: (medusa_io_handler_open),
(medusa_io_handler_write_blank_data),
(medusa_adjust_filesize_to_pagesize):
Removed a few calls that were trapped inside g_return_if_fails,
and only check their error codes there. Fix an off by one
error in the adjust filesize code. This should make things
minorly more efficient.
* libmedusa-internal/medusa-rdb-file.h:
* libmedusa-internal/medusa-rdb-file.c: (medusa_rdb_file_new),
(medusa_rdb_file_open), (medusa_rdb_file_free):
Don't write the number of records on free if you are only reading the
database
2000-10-04 Ramiro Estrugo <ramiro@eazel.com>
* acconfig.h:
* configure.in:
Add profiling support via --enable-profiler.
2000-10-04 Rebecca Schulman <rebecka@eazel.com>
Fixed some problems that were causing make
distcheck to fail
* index-configuration/Makefile.am:
Added an EXTRA_DIST field, that was
needed to properly install
* indexer/Makefile.am:
* search-service/Makefile.am:
* tests/Makefile.am:
Changed library directories to be
builddir instead of srcdir
* tests/medusa-index-service-test.c:
* tests/medusa-queue-test.c: (main):
* tests/medusa-versioned-file-test.c:
* tests/search-method-test.c:
Fixed header file path issues
2000-10-03 Josh Barrow <josh@eazel.com>
* doc/medusa-smoke-tests/.nautilus-metafile.xml:
Forgot one file. Yes, this is intentional.
2000-10-03 Josh Barrow <josh@eazel.com>
* doc/medusa-smoke-tests/Medusa-application-document.c: (main):
* doc/medusa-smoke-tests/Medusa-emblem-document:
* doc/medusa-smoke-tests/Medusa-folder-test-1/Medusa-test-1.txt:
* doc/medusa-smoke-tests/Medusa-folder-test-1/Medusa-test-2.txt:
* doc/medusa-smoke-tests/Medusa-folder-test-1/Medusa-test-3.txt:
* doc/medusa-smoke-tests/Medusa-folder-test-1/Medusa-test.txt:
* doc/medusa-smoke-tests/Medusa-folder-test-2/Medusa-test-1.txt:
* doc/medusa-smoke-tests/Medusa-folder-test-2/Medusa-test-2.txt:
* doc/medusa-smoke-tests/Medusa-folder-test-2/Medusa-test-3.txt:
* doc/medusa-smoke-tests/Medusa-folder-test-2/Medusa-test.txt:
* doc/medusa-smoke-tests/Medusa-folder-test-3/Medusa-test-1.txt:
* doc/medusa-smoke-tests/Medusa-folder-test-3/Medusa-test-2.txt:
* doc/medusa-smoke-tests/Medusa-folder-test-3/Medusa-test-3.txt:
* doc/medusa-smoke-tests/Medusa-folder-test-3/Medusa-test.txt:
* doc/medusa-smoke-tests/Medusa-folder-test/Medusa-test-1.txt:
* doc/medusa-smoke-tests/Medusa-folder-test/Medusa-test-2.txt:
* doc/medusa-smoke-tests/Medusa-folder-test/Medusa-test-3.txt:
* doc/medusa-smoke-tests/Medusa-folder-test/Medusa-test.txt:
* doc/medusa-smoke-tests/Medusa-other-user-owned-document:
* doc/medusa-smoke-tests/Medusa-root-owned-document:
* doc/medusa-smoke-tests/Medusa-test-1.txt:
* doc/medusa-smoke-tests/Medusa-test-2.txt:
* doc/medusa-smoke-tests/Medusa-test-3.txt:
* doc/medusa-smoke-tests/Medusa-test.txt:
* doc/medusa-smoke-tests/Oddly-named-document:
* doc/medusa-smoke-tests/Oddly-named-document-1:
* doc/medusa-smoke-tests/Oddly-named-document-2:
* doc/medusa-smoke-tests/Oddly-named-document-3:
Added a folder that testers can index that tests the capibilities
of Medusa.
2000-10-03 Rebecca Schulman <rebecka@eazel.com>
* libmedusa-internal/medusa-file-index.h:
Update fixme to reflect actual bug number
2000-10-03 Rebecca Schulman <rebecka@eazel.com>
Removed the obsolete "databases" directory,
and added the "index-configuration" directory.
Added a cron job and a script for the rpm to use
to install it. This should do most of the work
for bug 3202, to have the indexer run by default
at night
* Makefile.am:
* configure.in:
removed "databases" and added "index-configuration"
to the list of SUBDIRs
* index-configuration/.cvsignore:
* index-configuration/Makefile.am:
* index-configuration/file-index-stoplist:
* index-configuration/medusa-install-cron.sh:
The new shell script to install the cron job
* index-configuration/medusa.cron:
The cron job
* indexer/medusa-file-index-daemon.c: (main),
(wait_for_indexing_signal), (do_full_indexing),
(register_command_line_options):
Added some nice happy command line options,
so the indexer is nice to normal humans now.
Removed the loop, and by default the index
will index once and exit
* libmedusa-internal/medusa-conf.h:
Fixed an error in hash table sizes that was probably
causing problems in searches by file type
* libmedusa-internal/medusa-file-index-encoders.c:
(medusa_file_index_encoders_test):
Changed the strncpy's to g_strdup's which should
still work for the purposes of the test, and will
compile right with the new gcc
* libmedusa-internal/medusa-uri-list-queries.h:
Added braces around the endif comment to be
ansi compliant
* libmedusa-internal/medusa-versioned-file.h:
removed the comment at the end of an enum
to be ansi compliant
* libmedusa/medusa-unsearched-locations.c:
(file_stoplist_initialize):
Added the ability to include comments in the
stoplist
* tests/.cvsignore:
comment out the new search file test executale
2000-10-03 Rebecca Schulman <rebecka@eazel.com>
Performance and bug fixes. Also added an async
test for gnome-vfs results
* configure.in:
added check for gtk, so we can include the
async test
* libmedusa-internal/Makefile.am:
Removed old unnecessary files, the table-async files.
* libmedusa-internal/medusa-file-index.c:
(medusa_file_system_db_free):
* libmedusa-internal/medusa-file-index.h:
Fix memory leaks and remove unnecessary functions
* libmedusa-internal/medusa-io-handler.c: (medusa_io_handler_free):
fix memory leak
* libmedusa-internal/medusa-master-db.c: (medusa_master_db_query),
(medusa_master_db_destroy), (index_private_metafiles):
* libmedusa-internal/medusa-query-clauses.c:
(medusa_query_clauses_get_function):
more memory leak fixes
* libmedusa-internal/medusa-query-optimizations-private.h:
* libmedusa-internal/medusa-query-optimizations.h:
* libmedusa-internal/medusa-query-optimizations.c:
(medusa_query_optimizations_destroy),
(medusa_optimization_result_destroy):
move destroy function to make it public
* libmedusa-internal/medusa-rdb-query.c: (medusa_rdb_query_free),
(medusa_rdb_query_criterion_free),
(medusa_rdb_query_criterion_match):
Simplify query caching, so we don't store large number of
unnecessary regex patterns
* libmedusa-internal/medusa-rdb-table.c:
(medusa_rdb_table_all_rows), (medusa_rdb_table_insert),
(medusa_rdb_table_free):
* libmedusa-internal/medusa-rdb-table.h:
Get rid of data we were keeping that was never used
* libmedusa-internal/medusa-search-uri.c:
(medusa_search_uri_parse), (medusa_parsed_search_uri_free),
(medusa_search_uri_parse_shutdown),
(medusa_clause_closure_free_cover):
* libmedusa-internal/medusa-search-uri.h:
Added free functions and fixed memory leaks
* libmedusa-internal/medusa-uri-list.h:
* libmedusa-internal/medusa-uri-list.c: (medusa_uri_list_new),
(medusa_uri_list_open), (medusa_uri_list_destroy),
(read_index_info_from_database):
Got rid of unnecessary fields, and freed metainfo correctly.
* libmedusa-internal/medusa-versioned-file.c: (read_file_header):
fix memory leak
* libmedusa/medusa-unsearched-locations.c:
(unsearched_mount_list_initialize):
memory fixes
* libmedusa/medusa-utils.c: (medusa_group_contains):
Moved a check for group validity, to the function that only uses
* search-service/medusa-authenticate.c:
(calculate_permissions_for_file):
Remove moved check for group validity
* search-service/medusa-file-search-daemon.c:
(exit_search_service), (query_loop):
Added options to run searches once or a few times for testing
purposes
* tests/Makefile.am:
added search-method-test
* tests/search-method-test.c:
added test for the search method
2000-09-30 Josh Barrow <josh@eazel.com>
* doc/smoketests.html:
Added a a set of smoke tests for Medusa. These tests only
test a small number of the actual things that Medusa can
search for. These are not intended to be a complete set of
test cases. They only test one way of searching for each
thing Medusa can search for.
2000-09-29 J Shane Culpepper <pepper@eazel.com>
* libmedusa-internal/medusa-enums.h:
* libmedusa-internal/medusa-query-clauses.c:
* libmedusa-internal/medusa-test.c:
* libmedusa/medusa-unsearched-locations.c:
* tests/medusa-text-index-test.c:
Fixing inlined function stuff so that the new compiler
on Redhat will build.
2000-09-29 Ramiro Estrugo <ramiro@eazel.com>
* configure.in:
Removed GConf and OAF checks cause medusa doesnt seem to use
either of these anywhere. These can be added back in the future
if medusa uses them.
2000-09-27 Rebecca Schulman <rebecka@eazel.com>
* doc/how_to_use_msearch:
Removed old useless information
* indexer/medusa-file-index-daemon.c: (main):
Set to run on lowest priority by default.
2000-09-27 Rebecca Schulman <rebecka@eazel.com>
* libmedusa/medusa-unsearched-locations.c:
(mount_type_is_in_skip_list), (unsearched_mount_list_initialize):
Fixed bugzilla.eazel.com bug 2051, to skip shm mounts.
2000-09-25 Rebecca Schulman <rebecka@eazel.com>
* indexer/medusa-file-index-daemon.c: (do_full_indexing),
(exit_indexer):
Added an exit function instead of using exit () to do a gnome-vfs-shutdown,
and do cleanup at exit.
* libmedusa-internal/medusa-file-index.c:
(medusa_file_system_db_update_keywords):
Fixed a leak that resulted from not freeing a result of
medusa_uri_number_to_uri
* libmedusa-internal/medusa-io-handler.c:
(medusa_io_handler_read_file_header)
Fixed a leak in the field reading code, and added code
(not turned on by default being tested during for efficiency
during profiling) (The code doubles the size of a file
after every remap to decrease the number of remappings that occur)
* libmedusa-internal/medusa-text-index-plaintext-module.c:
Changed the read buffer size default to improve
read efficiency. This value may not be the optimal on all
platforms, but it seems to work best for the x86's that I have access
to. (as indicated by strace tests)
* libmedusa-internal/medusa-text-index.c:
(setup_temp_index_io_handlers), (medusa_text_index_destroy):
Fixed a bug that would not destroy the file pointers created in the
temporary index if an error occurred.
* libmedusa/medusa-unsearched-locations.c:
(unsearched_mount_list_initialize):
Fixed errors in the mount entry reading code that was causing
leaks to happen.
2000-09-25 Rebecca Schulman <rebecka@eazel.com>
* libmedusa-internal/medusa-io-handler.c:
(fopen_new_with_medusa_io_handler_header):
* libmedusa-internal/medusa-text-index-plaintext-module.c:
(read_more_data):
* libmedusa/medusa-index-progress.c:
(medusa_index_progress_get_percentage_complete):
Removed some more unnecessary output to stdout,
and fixed a bug where the indexer might lock up
reading 0 length files.
2000-09-20 Rebecca Schulman <rebecka@eazel.com>
more uninitialized fixes
* libmedusa-internal/medusa-query-optimizations.c:
(first_time_corresponding_to_query_object),
(last_time_corresponding_to_query_object),
(can_replace_modified_with_mtime):
2000-09-20 Rebecca Schulman <rebecka@eazel.com>
* libmedusa-internal/medusa-io-handler.c: (medusa_io_handler_open):
changed a g_return_if_fail to an if statement, since it wasn't
a critical condition
* libmedusa-internal/medusa-query-optimizations.c:
fixed uninitialized error
2000-09-20 Rebecca Schulman <rebecka@eazel.com>
Completed a large amount of the work for bug 1809,
to provide preoptimization for queries. I think
I have corrected all problems that caused slowdown
I noticed without profiling, and the framework
makes it easy to add ones we discover later.
Made some changes that will hopefully fix bug 1874.
Also, I cleaned up a lot of the messages that the
search and index daemons give, to be more terse
an informative.
* libmedusa-internal/Makefile.am:
* libmedusa-internal/medusa-query-optimizations-private.h:
* libmedusa-internal/medusa-query-optimizations.c:
(medusa_query_optimizations_initialize),
(medusa_query_optimizations_perform_and_free_deep),
(medusa_query_optimizations_new),
(medusa_query_optimizations_destroy),
(medusa_query_optimizations_add),
(medusa_optimization_result_destroy), (query_optimization_free),
(optimization_is_applicable), (result_is_constant_query),
(optimization_result_new),
(replace_old_criterion_with_new_and_free),
(add_new_criterion_and_free), (query_criterion_get_by_category),
(query_criterion_get_by_prefix), (query_criterion_get_relation),
(query_criterion_get_object), (query_relation_is_negative),
(make_new_criterion_with_int), (can_replace_username_with_uid),
(owner_query_relation_is_invalid),
(username_relation_to_corresponding_uid_relation),
(replace_username_with_uid_criterion),
(group_relation_to_corresponding_gid_relation),
(group_query_relation_is_invalid), (can_replace_group_with_gid),
(replace_group_with_gid_criterion),
(modified_query_relation_is_invalid),
(modified_query_relation_has_no_upper_bound),
(modified_query_relation_has_no_lower_bound),
(make_new_criterion_with_time_t), (object_to_date),
(first_time_corresponding_to_query_object),
(last_time_corresponding_to_query_object),
(can_replace_modified_with_mtime),
(replace_modified_with_mtime_criteria):
* libmedusa-internal/medusa-query-optimizations.h:
Basic framework for adding and detecting the need for
optimizations. The sloppiness of a lot of this
code shows that we need to parse search uri's more
sanely, and not be sloppy.
* doc/search_uri_rfc:
Readded an mtime criterion, since we optimize
"modified" queries into queries on mtimes.
* libmedusa-internal/medusa-file-index-queries.c:
* libmedusa-internal/medusa-file-index-queries.h:
Removed code query handlers with processing that is
now done pre-optimization.
* libmedusa-internal/medusa-master-db.c: (medusa_master_db_open),
(medusa_master_db_query):
Handle errors when opening the database, if the files are corrupt,
and do optimization before running the query.
* libmedusa-internal/medusa-search-uri.c:
* libmedusa-internal/medusa-search-uri.h:
(print_optimization_result), (medusa_search_uri_parse),
(clause_to_clause_closure), (get_next_root_uri):
Handle errors in parsing, and change the name of a
badly named function (now medusa_search_uri_parse)
Bug 1874 changes
* libmedusa/medusa-search-service-private.h:
Added error transmission code
* search-service/medusa-file-search-daemon.c: (query_loop),
(initialize_socket):
Handle errors in loading the database
* libmedusa/medusa-indexed-search.c: (authenticate_connection),
(medusa_indexed_search_new):
Corrected some style errors, and also return an error if
search daemon returned an error instead of an acknowledgement
to a search request. The error means that the index files didn't
exist or were unreadable.
* libmedusa-internal/medusa-file-index.c: (file_index_clauses):
Removed old clauses that are now handled before this point,
and corrected a typo
* libmedusa-internal/medusa-hash.c: (medusa_hash_open):
Handle errors in creating the io-handler for the file.
Documentation improvements
* indexer/medusa-file-index-daemon.c: (main):
Improved stdout output to be more informative
* libmedusa-internal/medusa-rdb-file.c:
(medusa_rdb_file_write_number of fields):
Removed printf that happened when a field was written.
* msearch/medusa-command-line-search.c: (main):
Improved the error message to msearch to be more informative.
* libmedusa-internal/medusa-text-index.c:
(medusa_text_index_finish_indexing):
Removed unnecessary printf
General error fixing
* libmedusa/medusa-unindexed-search.c: (match_string_to_date):
corrected a typo
* libmedusa-internal/medusa-file-index-encoders.c:
(medusa_file_database_mtime_encode):
Removed a commented piece of old code.
* search-service/medusa-file-search-parse-transmission.c:
(medusa_file_search_parse_transmission), (run_query),
(get_uid_pid_key_information), (present_query_results),
(goto_next_line), (another_transmission_line_exists),
(send_cookie_creation_acknowledgement):
Fixed bad formatting
2000-09-18 Dan Winship <danw@helixcode.com>
* configure.in: Check for sys/vfs.h
* libmedusa/medusa-index-progress.c: Only include sys/vfs.h if we
have it.
* libmedusa/medusa-unsearched-locations.c: Fix various bugs to
make this compile under BSD. (Not tested, just built.)
* gnome-vfs-module/Makefile.am (INCLUDES): Need GNOME_CFLAGS for
gnome-defs.h and gnome-util.h.
2000-09-15 Rebecca Schulman <rebecka@eazel.com>
* libmedusa-internal/medusa-master-db-private.h:
* libmedusa-internal/medusa-master-db.c: (medusa_master_db_open),
(medusa_master_db_new), (medusa_master_db_destroy):
* libmedusa-internal/medusa-text-index-plaintext-module.c:
(read_more_data):
Made it so that the index progress structure is only created
and freed when indexing is happening.
2000-09-14 Rebecca Schulman <rebecka@eazel.com>
Removed an unnecessary debugging print statement, and
added a new function to the index progress api
* indexer/medusa-file-index-daemon.c: (do_full_indexing):
* libmedusa/medusa-index-progress.c:
(medusa_index_progress_file_clear), (medusa_index_progress_update),
(medusa_index_is_currently_running):
* libmedusa/medusa-index-progress.h:
2000-09-14 Seth Nickell <seth@eazel.com>
* configure.in:
Add checks for various mount table library systems (getmntent,
setmntent, etc). Made gcc flags that are incompatible with
Solaris optional.
* indexer/medusa-file-index-daemon.c:
Added definitions for settings not present in Solaris.
* libmedusa-internal/medusa-file-index-encoders.c:
(medusa_file_database_group_decode),
(medusa_file_index_encoders_test):
uid_t != int, gid_t != int, fixed places where this was
assumed by using an unsigned long instead
* libmedusa-internal/medusa-file-index-encoders.h:
Defined NAME_MAX if it is undefined (for Solaris), changed
an int to an unsigned long to fix a gid != int problem.
* libmedusa-internal/medusa-rdb-query.h:
Defined NAME_MAX if it is undefined (for Solaris)
* libmedusa/medusa-indexed-search.c: (authenticate_connection),
(send_search_request):
pid != int either! Added casts in printfs, along with changing
%d's to %lus as appopriate.
* libmedusa/medusa-search-service.h:
* libmedusa/medusa-service-private.c:
* libmedusa/medusa-service-private.h:
* libmedusa/medusa-utils.h:
* search-service/medusa-file-search-daemon.c:
Define various settings if they are missing (on Solaris).
* libmedusa/medusa-unindexed-search.c:
(medusa_unindexed_search_new):
Define various settings if they are missing (on Solaris), add
<strings.h> so strncpy is defined :-)
* libmedusa/medusa-unsearched-locations.c:
(unsearched_mount_list_initialize):
Add code to deal with Solaris specific mount table stuff (mnttab).
2000-09-14 Rebecca Schulman <rebecka@eazel.com>
Completed bug 2298, to create an indexing progress
API for medusa.
* libmedusa-internal/medusa-master-db-private.h:
* libmedusa-internal/medusa-master-db.c: (medusa_master_db_new),
(index_file), (medusa_master_db_destroy):
Add indexing progress structure to the top level database
to keep track
* libmedusa/Makefile.am:
* libmedusa/medusa-index-progress.c: (medusa_index_progress_new),
(medusa_index_progress_update), (medusa_index_progress_destroy),
(medusa_index_progress_get_percentage_complete),
(get_disk_used_information), (update_new_public_percent_complete):
* libmedusa/medusa-index-progress.h:
Add new api to allow keeping track and to access the information
from outside the indexing process.
* tests/.cvsignore:
2000-09-14 Rebecca Schulman <rebecka@eazel.com>
* libmedusa/medusa-index-service.h:
fixed whitespace
* libmedusa/medusa-unsearched-locations.c:
(medusa_is_unsearched_location):
Removed bogus assert statements
Wed Sep 13 22:10:12 2000 George Lebl <jirka@5z.com>
* libmedusa-internal/medusa-text-index.c
(medusa_text_index_finish_indexing): When printing
sizeof results always cast. On alpha this is long by default,
so printf gets confused.
* tests/medusa-versioned-file-test.c: Include <string.h>
2000-09-13 Rebecca Schulman <rebecka@eazel.com>
Completed the work for bugzilla.eazel.com 2030
which is to not keep large text index
structures in virtual memory.
* libmedusa-internal/medusa-text-index.c: (medusa_text_index_open),
(medusa_text_index_new), (medusa_text_index_finish_indexing),
(write_start_location_to_start_file),
(write_end_location_to_start_file),
(write_uri_number_to_location_file),
(medusa_text_index_read_start_location_from_start_file),
(medusa_text_index_read_end_location_from_start_file),
(medusa_text_index_destroy):
Added some error checking, and changed api for location and
start index.
* libmedusa-internal/medusa-text-index-private.h:
* libmedusa-internal/medusa-text-index-queries.c:
(word_to_uri_numbers):
Add error checking, and read the locations where a word
is found from versioned files instead of memory mapped
files.
* libmedusa-internal/medusa-versioned-file.h:
* libmedusa-internal/medusa-versioned-file.c:
(medusa_versioned_file_create), (medusa_versioned_file_open),
(medusa_versioned_file_seek), (medusa_versioned_file_write),
(medusa_versioned_file_read), (medusa_versioned_file_append_zeros),
(medusa_versioned_file_error_notify),
(medusa_versioned_file_result_to_string):
Added functions to report errors to the user, and fixed an error
that caused data to be appended rather than written to the right location
2000-09-12 Rebecca Schulman <rebecka@eazel.com>
* libmedusa-internal/medusa-search-uri.c:
(search_uri_add_type_is_regular_file):
Fixed a bug caught by -Wno-initialize
2000-09-12 Rebecca Schulman <rebecka@eazel.com>
Fixed a few random bugs, and worked on the first part
of bug 2030, which is to not keep the large text index
structures in virtual memory. To do this, I created
a versioned file api, which will allow us to keep versions
and magic number identifiers, but not use the io handler class
* libmedusa-internal/medusa-io-handler.c: (medusa_io_handler_new),
(fopen_new_with_medusa_io_handler_header):
Fixed an access X_OK that should have been an F_OK.
and corrected a spelling error in a comment
* libmedusa-internal/medusa-text-index-private.h:
Changed the name of the read_location_file functions to
read_start_file, because they were actually reading the start file
* libmedusa-internal/medusa-text-index-queries.c:
(word_to_uri_numbers):
* libmedusa-internal/medusa-text-index.c:
(medusa_text_index_read_file), (medusa_text_index_finish_indexing),
(add_word_to_real_index), (write_start_location_to_start_file),
(write_end_location_to_start_file),
(write_uri_number_to_location_file),
(medusa_text_index_read_start_location_from_start_file),
(medusa_text_index_read_end_location_from_start_file):
Changed the unwieldly log checks to use a macro
to improve code readabilitiy. Abstracted writing to
the location file so we can change the underlying storage
method next.
* libmedusa-internal/Makefile.am:
* libmedusa-internal/medusa-versioned-file.c:
(medusa_versioned_file_create), (medusa_versioned_file_open),
(medusa_versioned_file_get_magic_number),
(medusa_versioned_file_get_version_number),
(medusa_versioned_file_seek), (medusa_versioned_file_write),
(medusa_versioned_file_read), (medusa_versioned_file_destroy),
(make_file_header), (read_file_header),
(ensure
GSDL Error
magic_number):
* libmedusa-internal/medusa-versioned-file.h:
Added a versioned file class with api, as described at the head
of the entry.
* tests/Makefile.am:
* tests/medusa-versioned-file-test.c: (cleanup_old_test_files),
(test_creating_bad_file_name), (test_creating_good_file),
(test_magic_and_version_numbers_were_written_right),
(test_writing_data), (test_reading_back_data), (test_closing_file),
(test_reopening_file_with_wrong_magic_and_version_numbers),
(test_reopening_good_file), (main):
Added tests for the versioned file class
2000-09-12 Rebecca Schulman <rebecka@eazel.com>
Fixed bugzilla.eazel.com bug 2018,
that the search daemon crashes when
searching for a file glob
* libmedusa-internal/medusa-uri-list-queries.c:
(file_glob_to_regexp):
added an incrementer to the function, that
was missing. Before the file would just
write to a string until it got to
illegal memory and crash
2000-09-12 Rebecca Schulman <rebecka@eazel.com>
Finished up giving bug numbers to all of the
FIXMEs in medusa
* indexer/medusa-file-index-daemon.c: (do_full_indexing):
Got rid of an unnecessary sleep that was in the index loop.
It should now index every day.
* libmedusa-internal/medusa-master-db.c:
(medusa_master_db_destroy):
Fixed an "unindexed_locations_initialize"
that should be "unindexed_locations_shutdown"
in the destroy function
* libmedusa-internal/medusa-search-uri.c:
(medusa_search_uri_to_clause_closures):
Lower-cased the search uri before processing
so everything is case insensitive
* libmedusa-internal/medusa-rdb-table.c:
(medusa_rdb_table_virtual_free):
* libmedusa-internal/medusa-text-index-mime-module.c:
(medusa_text_index_mime_module_remove_mime_type),
(is_valid_mime_type), (is_valid_mime_pattern),
(mime_pattern_matches):
* libmedusa-internal/medusa-text-index-plaintext-module.c:
(medusa_text_index_parse_plaintext), (read_more_data):
* libmedusa-internal/medusa-text-index.c:
(text_index_files_are_ready), (medusa_text_index_read_file),
(sort_temp_index_data_into_permenant_index):
* libmedusa-internal/medusa-tokenize.c: (medusa_string_to_token):
* libmedusa-internal/medusa-uri-list.c: (medusa_uri_list_destroy):
* libmedusa/medusa-file-info-utilities.c:
(get_time_struct_for_beginning of date),
(get_time_struct_for_end of date):
* libmedusa/medusa-file-info-utilities.h:
* libmedusa/medusa-indexed-search.c: (authenticate_connection),
(medusa_indexed_search_is_available), (send_search_request):
* libmedusa/medusa-search-service.c:
(medusa_search_service_connection_is_available_for_uri):
* libmedusa/medusa-search-service.h:
* libmedusa/medusa-unindexed-search.c:
(medusa_unindexed_search_new),
(medusa_unindexed_search_start_search), (search_directory):
* search-service/medusa-file-search-daemon.c: (initialize_socket):
Added bug numbers to FIXMEs
* libmedusa-internal/medusa-text-index-mime-module.h:
* libmedusa-internal/medusa-text-index.c:
(medusa_text_index_read_file),
* libmedusa-internal/medusa-uri-list.h:
* libmedusa/medusa-unindexed-search.h:
Removed fixmes that didn't seem useful
2000-09-11 Rebecca Schulman <rebecka@eazel.com>
Fixed bugzilla.eazel.com bugs 1389 and 1924.
1389 is a bug that size requests may return directories
or other non-regular files that don't really have sizes.
1924 is about cd's being indexed.
* libmedusa-internal/medusa-search-uri.c:
* libmedusa-internal/medusa-search-uri.h:
(clause_to_clause_closure),
(medusa_search_uri_add_extra_needed_criteria),
(search_uri_contains
oops
The requested page could not be found. Please use
your browsers 'back' button or the above home button to return to the
Greenstone Digital Library.requests),
(search_uri_add_user_can_read),
(search_uri_contains_size_requests),
(search_uri_add_type_is_regular_file),
(request_is_for_positive_matches):
created a single function to add extra criteria
into the search uri when necessary. Make
private functions that detect and add certain criteria.
Added specific check about size requests and a function
to add a check for the file type to the search uri
* search-service/medusa-file-search-parse-transmission.c:
(run_query):
Used the simplified api for adding search criteria before
running query, instead of the old checks
* libmedusa-internal/medusa-master-db.c: (medusa_master_db_new),
(index_directory), (medusa_master_db_destroy):
* libmedusa/medusa-unindexed-search.c:
(medusa_unindexed_search_new), (search_directory),
(medusa_unindexed_search_destroy):
use the new "unsearched_locations" api to initialize the
unsearched_location hash, destroy it when we are done and
do a single check for all skips via a single functions
* libmedusa/Makefile.am:
* libmedusa/medusa-unsearched-locations.c:
(medusa_is_unsearched_location),
(medusa_unsearched_locations_initialize),
(medusa_unsearched_locations_shutdown), (file_stoplist_initialize),
(unsearched_mount_list_initialize):
* libmedusa/medusa-unsearched-locations.h:
Made a new file, with a simplified api for all of the file skip stuff.
This file collects the stopfile system, and checks for nfs mounts and
cd roms (hopefully at some point all removable media)
* libmedusa/medusa-utils.c:
* libmedusa/medusa-utils.h:
Removed stoplist and nfs mount functions from
here to move into medusa-unsearched-locations
* indexer/medusa-file-index-daemon.c:
Removed unneeded gtk include that broke the build after gtk was
renamed to gtk-1.2.
2000-09-10 Rebecca Schulman <rebecka@eazel.com>
* search-service/medusa-file-search-daemon.c: (main), (query_loop),
(handle_interruption of results_transmission):
Removed an unnecessary parameter to query_loop that was causing an
uninitialized variable error.
2000-09-10 Rebecca Schulman <rebecka@eazel.com>
* configure.in:
* search-service/medusa-file-search-daemon.c: (main), (query_loop),
(handle_interruption of results_transmission):
2000-09-10 Rebecca Schulman <rebecka@eazel.com>
* indexer/medusa-file-index-daemon.c: (main):
Added a check for whether you are running as root or not.
* search-service/medusa-file-search-daemon.c: (main):
Added a check for whether you are running as root.
Exits if you are not.
* search-service/medusa-file-search-parse-transmission.c:
(medusa_file_search_parse_transmission):
Fixed a g_return_if_fail that could just be a simple if
statement.
2000-09-10 Rebecca Schulman <rebecka@eazel.com>
Some code cleanup, and added calls to open structures in addition
to creating them, so that we can error in the right way if the
index files don't exist, or if we try and create index files
while writing over them. Also did some code cleanup and some
* RENAMING: Add suggestion to change _new functions for
classes that correspond to files to _create, to be more clear
as to the difference between them and the new _open functions
* TODO:
Added idea to make the log level a globally scoped variable rather
than passing it around all of the time, since it is really a global
parameter.
* libmedusa-internal/medusa-file-index.h:
* libmedusa-internal/medusa-file-index.c:
(medusa_file_system_db_new), (medusa_file_system_db_open):
* libmedusa-internal/medusa-hash.c: (medusa_hash_open),
(medusa_hash_new):
* libmedusa-internal/medusa-hash.h:
* libmedusa-internal/medusa-io-handler.c: (medusa_io_handler_new),
(medusa_io_handler_open), (medusa_io_handler_free):
* libmedusa-internal/medusa-io-handler.h:
* libmedusa-internal/medusa-master-db.c: (medusa_master_db_open):
* libmedusa-internal/medusa-master-db.h:
* libmedusa-internal/medusa-rdb-file.c: (medusa_rdb_file_new),
(medusa_rdb_file_open):
* libmedusa-internal/medusa-rdb-file.h:
* libmedusa-internal/medusa-text-index-private.h:
* libmedusa-internal/medusa-text-index.c: (medusa_text_index_open),
(medusa_text_index_new), (make_temp_index_file_name),
(permenant_text_index_files_exist), (text_index_files_dont_exist),
(setup_temp_index_io_handlers), (medusa_text_index_destroy):
* libmedusa-internal/medusa-text-index.h:
* libmedusa-internal/medusa-uri-list.c: (medusa_uri_list_new),
(medusa_uri_list_open):
* libmedusa-internal/medusa-uri-list.h:
Added _open functions to these classes, so that we can initialize differently
in the case where we are reading the files as opposed to writing them.
Most importantly, we can now report errors about the state of the files
more accurately, because the type of call determines the expectations
of the class (whether the index file should already exist, or whether we
plan on creating it.
* libmedusa-internal/medusa-rdb-fields.c:
(medusa_rdb_field_get_offset),
(medusa_rdb_field_get_field_structure),
(medusa_rdb_record_get_field_contents),
(medusa_rdb_record_get_field_value),
(medusa_rdb_record_set_field_value), (medusa_rdb_field_get_size),
(medusa_rdb_field_get_encoder), (medusa_rdb_field_get_decoder),
(medusa_rdb_field_get
GSDL Error
size),
(medusa_rdb_fields_get_first_title),
(medusa_rdb_fields_get_first_size),
(medusa_rdb_fields_get_first_encoder),
(medusa_rdb_fields_get_first_decoder):
* libmedusa-internal/medusa-rdb-fields.h:
* libmedusa-internal/medusa-file-index-queries.c: (simple_query):
Added const to many function parameters where this was appropriate,
and adjusted calls to get rid of the casts that had existed before
this point because of the missing const's.
* search-service/medusa-file-search-daemon.c: (main), (query_loop),
(ensure_index_validity), (index_files_have_changed):
Use the new _open call, and reinstate the check for whether the index
files still exist and haven't changed. If they change, reload them.
2000-09-08 Rebecca Schulman <rebecka@eazel.com>
Fixed bugzilla.eazel.com bug 1357, which crashed the search
daemon when a request closed during it. There is still the
issue that we don't clean up when this happens.
* search-service/medusa-file-search-daemon.c: (main), (query_loop),
(initialize_socket), (handle_interruption of results_transmission):
2000-09-08 Rebecca Schulman <rebecka@eazel.com>
* DEBUGGING:
Fixed gdb instructions so that they should
be complete for attaching to a running process now.
* libmedusa-internal/medusa-rdb-query.c:
(medusa_rdb_query_criterion_match), (medusa_rdb_query_test):
* libmedusa-internal/medusa-rdb-table.c: (medusa_rdb_table_insert),
(medusa_rdb_table_free):
* libmedusa-internal/medusa-rdb-table.h:
* libmedusa-internal/medusa-search-uri.c:
(medusa_uri_is_search_uri), (get_next_root_uri):
* libmedusa-internal/medusa-search-uri.h:
Fixed more FIXMEs, and repaired a few really basic
ones.
2000-09-07 Rebecca Schulman <rebecka@eazel.com>
Removed all of the bogus (C) 1999, 2000
and changed them to (C) 2000 and indented a whole bunch of
files to the standard, 8 space GNOME guidelines
* libmedusa-internal/medusa-byte.c: (medusa_int_to_bytes),
(medusa_bytes_to_int):
* libmedusa-internal/medusa-byte.h:
* libmedusa-internal/medusa-file-index-encoders.c:
(medusa_file_database_permissions_encode),
(medusa_file_database_keywords_decode):
* libmedusa-internal/medusa-file-index-encoders.h:
* libmedusa-internal/medusa-file-index-queries.c:
(medusa_file_index_is of type):
* libmedusa-internal/medusa-file-information.h:
* libmedusa-internal/medusa-hash.c: (medusa_hash_new),
(medusa_hash_fetch), (medusa_hash_remap), (medusa_hash_store),
(medusa_hash_key_exists):
* libmedusa-internal/medusa-hash.h:
* libmedusa-internal/medusa-io-handler.c: (medusa_io_handler_new),
(medusa_io_handler_free), (medusa_io_handler_write_header),
(write
GSDL Error
size),
(medusa_rdb_fields_get_first_title),
(medusa_rdb_fields_get_first_size),
(medusa_rdb_fields_get_first_encoder),
(medusa_rdb_fields_get_first_decoder),
(medusa_rdb_field_contents_equal):
* libmedusa-internal/medusa-rdb-fields.h:
* libmedusa-internal/medusa-rdb-file.c:
* libmedusa-internal/medusa-rdb-file.h:
* libmedusa-internal/medusa-rdb-query-private.h:
* libmedusa-internal/medusa-rdb-query.c:
* libmedusa-internal/medusa-rdb-query.h:
* libmedusa-internal/medusa-rdb-record.h:
* libmedusa-internal/medusa-rdb-table-async.c:
(medusa_rdb_table_select_cancellable):
* libmedusa-internal/medusa-rdb-table-private.h:
* libmedusa-internal/medusa-test-conf.h:
* libmedusa-internal/medusa-test.h:
* libmedusa-internal/medusa-text-index.c:
(medusa_text_index_finish_indexing), (add_word_to_real_index):
* libmedusa-internal/medusa-tokenize.h:
* libmedusa/medusa-file-info-utilities.h:
* libmedusa/medusa-utils.c:
(medusa_union of two_descending_integer_lists),
(medusa_difference of two_descending_integer_lists):
* libmedusa/medusa-utils.h:
* msearch/medusa-command-line-search.c:
2000-09-06 Pavel Cisler <pavel@eazel.com>
* configure.in:
* libmedusa-internal/medusa-file-index-encoders.c:
(medusa_file_index_encoders_test):
* libmedusa-internal/medusa-master-db.c:
(merge_new_uris_with_current_results_and_free):
* libmedusa/medusa-search-service.c:
(medusa_search_service_connection_start_search),
(medusa_search_service_connection_read_search_result):
* libmedusa/medusa-unindexed-search.c:
(matches_date_modified_criterion):
Get rid of -Wno-uninitialized. This way we will get uninitialized
variable warnings when we do a release build (with optimizations
-O1 or higher).
Fix all the uninitialized variable warnings and bugs that turned up
when doing a release build.
2000-09-05 Mathieu Lacage <mathieu@eazel.com>
* doc/search_uri_rfc: update to the search uri spec.
2000-09-01 Rebecca Schulman <rebecka@eazel.com>
* indexer/medusa-file-index-daemon.c: (main),
(wait_for_indexing_signal), (do_index_accounting),
(do_full_indexing), (initialize_index_server_socket),
(backup_index_files), (copy_new_index_files),
(file_indexer_parse_transmission), (return_a_day_from_now):
Indented this file properly, and fix the indexer's sleep mechanism
so that it will work if interrupted.
2000-09-01 Darin Adler <darin@eazel.com>
Did a bunch of testing. With these bug fixes the feature seems
to work. Next, we test with Nautilus.
* libmedusa-internal/medusa-file-index-encoders.c:
(medusa_file_database_keywords_decode): Handle the case of
a token == 0 and make sure it returns an empty string.
* libmedusa-internal/medusa-file-index-queries.c:
(medusa_file_index_marked_with_keyword): Take out detokenizing
strings since the decoder handles it.
* libmedusa-internal/medusa-file-index.c:
(medusa_file_system_db_update_keywords): Take out tokenizing
strings since the encoder handles it. Write out the keywords
field instead of overwriting the URI field. Don't destroy the
keyword set, since destroying the index as a whole destroys
all the ones in the hash table.
* libmedusa-internal/medusa-keyword-set.c:
(medusa_keyword_set_destroy): Free the string form too, not
just the keyword set.
* libmedusa-internal/medusa-master-db.c:
(index_private_metafiles_for_user): Use a "/" between the path
and the file name.
2000-09-01 Rebecca Schulman <rebecka@eazel.com>
Finished work on task 2408, the unindexed emblem search.
And more work on FIXMEs, including addressing bug
2145, about group searches causing search daemon crashes
if the group did not exist.
* libmedusa/medusa-unindexed-search.c:
* libmedusa/medusa-unindexed-search.h:
(medusa_unindexed_search_new),
(medusa_unindexed_search_read_search_result), (search_directory),
(file_matches_criteria), (matches_all_name_criteria),
(matches_all_file_info_criteria), (matches_all_mime_criteria),
(matches_all_keywords_criteria), (matches_one_name),
(matches_one_file_info), (matches_date_modified_criterion),
(matches_owner_criterion), (matches_group_criterion),
(matches_size_criterion), (matches_one_mime_type),
(matches_one_keywords_criterion),
(assume_file_is_directory_unless_a_link),
(criterion_is_keywords_criterion):
Added keyword searching.
Changed a few procedure names to be more clear,
and replaced many instances of EMBLEMS with KEYWORDS
* libmedusa/medusa-utils.h:
* libmedusa/medusa-utils.c:
(medusa_str_has_prefix),
(medusa_str_has_suffix), (end_element),
(medusa_extract_keywords_from_metafile),
(keyword_hash_table_populate_callback),
(medusa_keyword_hash_table_create_for_directory):
Addressed a few string function problems, fixed a
bug in the metafile hash table code.
* DEBUGGING:
Revised debugging plans based on Darin's experiences with them.
Any problems people experience with following them should
go into the database.
* doc/flags:
added the UNINDEXED_SEARCH_DEBUG flag
* libmedusa/medusa-file-info-utilities.h:
* libmedusa/medusa-file-info-utilities.c: (username_exists),
(group_exists), (medusa_username_to_uid), (medusa_group_to_gid):
* libmedusa-internal/medusa-file-index-queries.c:
* libmedusa-internal/medusa-file-index-queries.h:
(medusa_file_index_is_owned_by), (medusa_file_index_is_in_group),
(medusa_file_index_is_not_owned_by),
(medusa_file_index_is_not_in_group):
revised the user and group functions not to cache anymore.
Caching isn't valid, since the search daemon should run for
a long time, and caching could cause incorrect results to be returned
if users or groups were added or removed from the system. We can
do a better job optimizing anyway, by precomputing these values
before we start the search.
* libmedusa-internal/medusa-file-index.h:
* libmedusa-internal/medusa-file-index.c: (add_fields),
(medusa_file_system_db_new), (medusa_file_system_db_free),
(read_index_info_from_database):
* libmedusa-internal/medusa-io-handler.c:
* libmedusa-internal/medusa-io-handler.h:
(fopen_new_with_medusa_io_handler_header):
Documented some fixmes with bug numbers
* libmedusa-internal/medusa-rdb-fields.c:
* libmedusa-internal/medusa-rdb-fields.h:
(medusa_rdb_field_info_free), (medusa_rdb_field_free),
(medusa_rdb_field_add), (medusa_rdb_field_remove),
(medusa_rdb_fields_get_first_decoder):
Documented a fixme, removed unused static
functions, and changed the field structure to
be a glist rather than a gslist so we can
free it with g_list_free_deep_custom
* search-service/medusa-unindexed-search.c:
* search-service/medusa-unindexed-search.h:
removed these old, unused files
2000-09-01 Darin Adler <darin@eazel.com>
More untested code. WIth this check-in, we have all the code we
need for working keyword indexing. We can do further work to
make it more efficient, but this should be enough to make it
work, once we find and fix the bugs.
* libmedusa-internal/medusa-file-index-queries.c:
(medusa_file_index_marked_with_keyword): Handle the case where
there's no keyword properly.
* libmedusa-internal/medusa-file-index.c:
(medusa_file_system_db_update_keywords): Now we use an empty
string instead of NULL to mean an empty keyword set.
* libmedusa-internal/medusa-keyword-set.c:
(medusa_keyword_set_new), (medusa_keyword_set_new_from_string),
(medusa_keyword_set_destroy),
(medusa_keyword_set_add_public_keyword),
(medusa_keyword_set_add_user_with_private_keywords),
(medusa_keyword_set_add_private_keyword),
(find_previous_character), (find_previous_user_id),
(medusa_keyword_set_has_keyword),
(medusa_keyword_set_get_string_form):
Implemented all the keyword set operations.
2000-08-31 Darin Adler <darin@eazel.com>
* libmedusa-internal/Makefile.am:
* libmedusa-internal/medusa-keyword-set.h:
* libmedusa-internal/medusa-keyword-set.c:
Added new source files for operations on the set of keywords
in the index. It was getting too complicated to do ad hoc.
* libmedusa-internal/medusa-file-index-queries.h:
* libmedusa-internal/medusa-file-index-queries.c: (simple_query):
Redid the query macros so they are not so yucky.
(medusa_file_index_marked_with_keyword),
(medusa_file_index_not_marked_with_keyword): Added queries for
keywords.
* libmedusa-internal/medusa-file-index.h:
* libmedusa-internal/medusa-file-index.c:
(medusa_file_system_db_new), (keywords_by_file_destroy_entry),
(users_by_directory_destroy_entry), (medusa_file_system_db_free),
(get_keyword_set_for_file),
(medusa_file_system_db_add_public_keyword),
(medusa_file_system_db_add_private_keyword),
(medusa_file_system_db_add_private_keywords_directory),
(add_users_to_keyword_set),
(medusa_file_system_db_update_keywords):
Changed indexing to use new keyword set and handle files with
no keywords in the private directory properly.
* libmedusa-internal/medusa-master-db.c: (medusa_master_db_index):
Do private metafiles first.
(index_private_metafile): Call the new function to deal with the
entire directory if there is a metafile.
2000-08-31 Rebecca Schulman <rebecka@eazel.com>
More work on FIXMEs.
* RENAMING:
Added the suggestion that medusa-master-db be renamed
to medusa-database-controller
* gnome-vfs-module/search-method.c: (do_open_directory),
(get_file_info_for_virtual_directory),
(get_file_info_for_virtual_link), (do_read_directory),
(do_is_local): fixed FIXME syntax to work correctly
(added colons in the right place)
* indexer/medusa-file-index-daemon.c: (wait_for_indexing_signal),
(initialize_index_server_socket), (backup_index_files),
(file_indexer_parse_transmission):
some reformatting
* indexer/medusa-text-index-mime-module.c:
* indexer/medusa-text-index-mime-module.h:
* indexer/medusa-text-index.c:
* indexer/medusa-text-index.h:
removed these obsolete files
* libmedusa-internal/medusa-file-index-encoders.c:
(medusa_file_database_keywords_decode),
(medusa_file_index_encoders_test):
More FIXME additions
* libmedusa-internal/medusa-file-index-queries.c:
* libmedusa-internal/medusa-file-index-queries.h:
(medusa_file_index_is_modified_before_date),
(medusa_file_index_is_modified_after_date):
More fixme additions
* libmedusa-internal/medusa-master-db.c:
(index_private_metafiles_for_user):
Fixed a segfault where we don't check for a nonexistent
directory
2000-08-31 Darin Adler <darin@eazel.com>
* libmedusa-internal/medusa-file-index-queries.h:
* libmedusa-internal/medusa-file-index-queries.c:
(medusa_file_index_uid_can_read_file): Use new get_value function
and get rid of explicit decoder calls.
(medusa_file_index_marked_with_keyword),
(medusa_file_index_not_marked_with_keyword): Empty placeholders.
* libmedusa-internal/medusa-file-index.h:
* libmedusa-internal/medusa-file-index.c: (file_index_clauses):
Added clauses for keyword searches.
(str_list_sort_shallow_remove_duplicates), (str_list_join),
(medusa_file_system_db_update_keywords): Wrote code to update the
keywords when the rest of the indexing is done.
* libmedusa-internal/medusa-master-db.c: (medusa_master_db_index):
Need to pass the URI list to the update_keywords function. This
may point to a design problem, but adding the parameter was an
acceptable solution for now.
* libmedusa-internal/medusa-rdb-fields.h:
* libmedusa-internal/medusa-rdb-fields.c:
(medusa_rdb_record_get_field_contents): Made private.
(medusa_rdb_record_get_field_value): Added this public function
that also does the decoding; useful everywhere since all callers
of get_field_contents also have to decode.
(medusa_rdb_record_set_field_value): Added this public function,
since there was no way to set the value before. It does the encoding.
* libmedusa-internal/medusa-rdb-query.c: (medusa_rdb_query_new):
Added missing "(void)".
(medusa_rdb_query_criterion_match): Use new get_value function and
get rid of explict decoder calls.
(medusa_rdb_query_test): Added missing "(void)".
* libmedusa-internal/medusa-rdb-query.h: Fixed formatting.
* libmedusa-internal/medusa-rdb-table.c:
(medusa_rdb_table_all_rows): Get rid of off-by-one problem that
probably doesn't matter much since it's the generation of a list
that's unused for the most part.
(medusa_rdb_record_number_to_record): Fixed the range checking in
here, which would allow many bad record numbers through.
* libmedusa-internal/medusa-uri-list.c: (medusa_uri_number_to_uri):
Use new get_value function and get rid of explict decoder calls.
2000-08-30 Ramiro Estrugo <ramiro@eazel.com>
* libmedusa-internal/Makefile.am:
Remove the obsolete files from the Makefile too.
2000-08-30 Gene Z. Ragan <gzr@eazel.com>
* libmedusa-internal/medusa-lock-file.c:
* libmedusa-internal/medusa-lock-file.h:
Removed obsolete files from project.
2000-08-30 Gene Z. Ragan <gzr@eazel.com>
Fixed bug 1776, improve search database locking.
I just added Maciej's new locking code to medusa. The masters
of medusa should take a look at what I did since I am new to
the code.
* indexer/medusa-file-index-daemon.c: (main), (do_full_indexing),
(file_indexer_parse_transmission):
Removed old locking code and added new.
* libmedusa-internal/medusa-lock-file-paths.h:
Added new paths for the read and write lock files.
* search-service/medusa-file-search-daemon.c: (main):
* tests/medusa-text-index-test.c: (main):
Removed old locking code and added new.
2000-08-30 Darin Adler <darin@eazel.com>
* doc/search_uri_rfc: Changed the keywords clause to match
what Rebecca and I settled on.
* libmedusa-internal/medusa-file-index.c:
(medusa_file_system_db_new),
(write_index_info_to_database): Use shared version number
instead of having a separate one for the file index.
(medusa_file_system_db_free): Use shared code to destroy hash.
(medusa_file_system_db_update_keywords): Wrote comments with
an outline of the work to be done here.
* libmedusa-internal/medusa-master-db.c: (index_directory),
(index_public_metafile), (get_path_from_private_metafile_name):
Use public constants and functions to share more code.
* libmedusa-internal/medusa-search-uri.c: (bypass_search_method),
(clause_is
oops
The requested page could not be found. Please use
your browsers 'back' button or the above home button to return to the
Greenstone Digital Library.request):
* libmedusa/medusa-search-service.c: (uri_has_valid_header),
(uri_to_search_method):
* libmedusa/medusa-unindexed-search.c: (match_one_name),
(match_date_modified_criterion), (match_owner_criterion),
(match_group_criterion), (match_size_criterion),
(match_one_mime_type), (criterion_field_is):
Changed to use renamed string function by their new str names.
* libmedusa/medusa-utils.h:
* libmedusa/medusa-utils.c:
(get_gnome_vfs_result_from_xml_error),
(medusa_extract_keywords_from_metafile),
(medusa_nfs_mount_list_initialize), (str_list_dup),
(free_str_to_str_list_hash_table_entry),
(medusa_str_to_str_list_hash_table_destroy),
(keyword_hash_table_populate_callback),
(keyword_hash_table_populate_from_metafile),
(construct_private_metafile_path),
(medusa_keyword_hash_table_create_for_directory),
(medusa_keyword_hash_table_file_has_keyword),
(medusa_keyword_hash_table_destroy):
Renamed string functions to call the string "str" to match both
GLib and Nautilus, which use "str" to mean C-style strings. Added
result code to the metafile function and implemented the new code
for searching metafiles for keywords that Rebecca needs for slow
searching of keywords.
2000-08-30 Rebecca Schulman <rebecka@eazel.com>
Changed Search URI RFC to contain the
emblem criterion syntax.
Began work on documenting medusa's FIXMEs
in bugzilla.eazel.com.
* doc/search_uri_rfc:
Added the new emblem criterion syntax.
* gnome-vfs-module/search-method.c: (do_open_directory),
(get_file_info_for_virtual_directory),
(get_file_info_for_virtual_link), (do_read_directory),
(do_is_local):
Added bug numbers and clarified FIXMEs.
* indexer/medusa-file-index-daemon.c: (main),
(wait_for_indexing_signal), (do_full_indexing):
Added bug numbers and clarified relevant FIXMEs
2000-08-29 Darin Adler <darin@eazel.com>
* libmedusa-internal/medusa-file-index.h:
* libmedusa-internal/medusa-file-index.c:
(medusa_file_system_db_new): Add file_keywords hash table.
(free_keyword_hash_table_entry), (medusa_file_system_db_free):
Free file_keywords hash table.
(file_index_clauses): Add FIXME for clauses for keywords.
(add_keyword), (medusa_file_system_db_add_public_keyword),
(medusa_file_system_db_add_private_keyword): Put keywords into
hash table.
(medusa_file_system_db_update_keywords): Empty function that
has FIXME saying we need to re-walk the index filling in the
keywords.
* libmedusa-internal/medusa-file-information.c:
(medusa_file_attributes_new): Remove dangerous code that could
lead to a g_free of "".
(medusa_index_file_attributes): Leave room for keywords field.
Without this change we just core dump when we try to index.
* libmedusa-internal/medusa-master-db.c: (medusa_master_db_index):
Index the private metafiles, then update the keywords when we
are done with the other indexing.
(add_public_keywords_to_index),
(add_private_keywords_to_index), (index_public_metafile),
(get_path_from_private_metafile_name), (index_private_metafile),
(index_private_metafiles_for_user), (index_private_metafiles):
Write the code that actually handles the public and private
metafiles to replace the empty placeholders.
* libmedusa-internal/medusa-query-clauses.c:
Fix formatting to match mode line.
2000-08-28 Maciej Stachowiak <mjs@eazel.com>
* libmedusa-internal/medusa-lock.[ch]: New fcntl-based locking
functions (not yet used).
* libmedusa-internal/Makefile.am: Add to the build.
2000-08-28 Darin Adler <darin@eazel.com>
* libmedusa-internal/medusa-conf.h:
* indexer/medusa-file-index-daemon.c: (do_index_accounting),
(do_full_indexing), (backup_index_files), (copy_new_index_files),
(file_indexer_parse_transmission):
Added handling of the keyword sets file everywhere there's
handling for the MIME type file. This is a strong hint that we're
"doing it wrong". It's *way* to hard to add one more file, and we
should just have some loops instead of this hand-written lists
everywhere.
* libmedusa-internal/medusa-file-index-encoders.h:
* libmedusa-internal/medusa-file-index-encoders.c:
(medusa_file_database_mime_type_encode),
(medusa_file_database_group_encode),
(medusa_file_database_permissions_encode),
(medusa_file_database_size_encode): Fixed code that could
write past the end since it used strncpy instead of memcpy.
(medusa_file_database_keywords_encode),
(medusa_file_database_keywords_decode): Added encoder for
the keyword sets.
(medusa_file_index_encoders_test): Pass in the keyword sets
file name.
* libmedusa-internal/medusa-file-index.h:
* libmedusa-internal/medusa-file-index.c: (add_fields),
(medusa_rdb_file_add_field_cover), (medusa_file_system_db_new),
(medusa_rdb_field_add_cover), (file_index_field_info): Add the new
keyword fields. Also refactored so the list of fields doesn't
appear twice.
* libmedusa-internal/medusa-master-db.c: (medusa_master_db_new):
* libmedusa-internal/medusa-master-db.h:
* libmedusa-internal/medusa-rdb-fields.c: (medusa_rdb_field_add):
* libmedusa-internal/medusa-rdb-fields.h:
* libmedusa-internal/medusa-rdb-file.c: (medusa_rdb_file_new),
(medusa_rdb_file_add_field):
* libmedusa-internal/medusa-rdb-file.h:
* libmedusa-internal/medusa-tokenize.c:
* libmedusa-internal/medusa-uri-list.c: (medusa_uri_list_new):
* libmedusa-internal/medusa-uri-list.h:
* search-service/medusa-file-search-daemon.c: (main):
* tests/medusa-text-index-test.c: (main):
Use const more and pass the keyword sets file name in a few places.
2000-08-28 Darin Adler <darin@eazel.com>
* tests/.cvsignore: Made a real ".cvsignore" for this directory
instead of one with "*" in it.
2000-08-28 Darin Adler <darin@eazel.com>
* libmedusa/medusa-utils.h:
* libmedusa/medusa-utils.c: (get_attribute), (get_name_attribute),
(start_element), (end_element),
(medusa_extract_keywords_from_metafile): Finished the real
implementation of the code to extract keywords. It uses the SAX
interface to gnome-vfs so you don't need to have the whole
metafile in memory at once.
* indexer/medusa-file-index-daemon.c: (do_index_accounting),
(do_full_indexing): Got rid of code that just stuck a "file://"
on the beginning of a patch and used the gnome-vfs function that
does it properly with escaping.
* libmedusa/medusa-utils.c: (medusa_is_nfs_mount_point): Added
a FIXME about the fact that the NFS check is done only once per
executable, so it will miss changes in mount points.
(medusa_file_stoplist_initialize): Changed to use the prepend/
reverse idiom.
(medusa_nfs_mount_list_initialize): Changed to use the prepend/
reverse idiom and to convert the paths into URIs using the
gnome-vfs function instead of just sticking a "file://" on the
beginning.
* search-service/medusa-authenticate.c:
(medusa_authenticate_uid_can_read): Changed to use the gnome-vfs
function to convert the URI into a local path instead of just
removing the "file://" from the beginning.
* search-service/medusa-authenticate.h: Added include so this
header stands on its own.
* search-service/medusa-unindexed-search.c:
(execute_query_on_file): Changed to use the gnome-vfs function to
convert a local path into a URI instead of just adding the
"file://" to the beginning.
(directory_name_matches): Fixed memory-trash problem where it would
do a strncpy without a buffer. Use g_strndup instead.
2000-08-28 Rebecca Schulman <rebecka@eazel.com>
Work on task 1969, to allow content searches to
be done by looking for "all the words" or
"any of the words". To do this, the
search uri spec was changed to take
content criteria that include "includes_all_of"
and "includes_any_of"
* libmedusa-internal/medusa-text-index-queries.c:
* libmedusa-internal/medusa-text-index-queries.h:
(medusa_text_index_get_uris_for_criterion), (word_to_uri_numbers):
Added new procedure to deal with taking the union or intersection
of the words in a content criterion
* libmedusa/medusa-utils.c:
* libmedusa/medusa-utils.h:
(medusa_union of two_descending_integer_lists):
Add new array union function.
* libmedusa-internal/medusa-search-uri.c:
* libmedusa-internal/medusa-search-uri.h:
(medusa_search_uri_to_clause_closures), (clause_to_clause_closure),
(medusa_search_uri_contains
oops
The requested page could not be found. Please use
your browsers 'back' button or the above home button to return to the
Greenstone Digital Library.requests),
(clause_is
oops
The requested page could not be found. Please use
your browsers 'back' button or the above home button to return to the
Greenstone Digital Library.request), (get_verb_from_clause),
(get_direct_object_from_clause),
(request_wants_all_words_to_match),
(request_should_return_matches_not_complement):
Changed closure structure to include the necessary information
about the type of content query. It now keeps
track of whether a content search is for a union or intersection
and whether the search is for the complement or not.
* libmedusa-internal/medusa-master-db.c:
(run_query_on_everything_but
oops
The requested page could not be found. Please use
your browsers 'back' button or the above home button to return to the
Greenstone Digital Library.results),
(content_requests_to_uri_numbers):
Fixed a bug in the content does not include
search that was not calculating the number of uris
correctly. Changed query procedure that takes
a text search criterion to one that handles the
new syntax
* doc/search_uri_rfc:
Changed spec to include information on
the new syntax for content requests.
* libmedusa-internal/medusa-query-clauses.h:
* libmedusa-internal/medusa-query-clauses.c:
(medusa_query_clauses_get_function):
Changed some functions to take const char *
instead of char * where appropriate
* search-service/medusa-file-search-parse-transmission.c:
(run_query):
Remove old unindexed search skeleton. Unnecessary now
that we have changed the architecture
* tests/medusa-text-index-test.c: (main):
Changed query function
2000-08-28 Pavel Cisler <pavel@eazel.com>
* tests/Makefile.am:
Fix a subtle build breakage - the tests were linking against the
libmedusa-index.la in the source tree as well as -lmedusa-index in the
target install directory (the second was redundant). This would make the
build fail if you never built libmedusa-index.so before.
2000-08-25 Rebecca Schulman <rebecka@eazel.com>
* tests/medusa-queue-test.c: (main):
Forgot to add test file for the queue
2000-08-25 Rebecca Schulman <rebecka@eazel.com>
Added the unindexed
search, which goes along with the indexed search.
The search service is now a superclass of both
of them. The unindexed search's addition created
new dependencies, which I avoided by moving several
files to libmedusa.
New search service code
* libmedusa/medusa-indexed-search.h:
* libmedusa/medusa-indexed-search.c: (authenticate_connection),
(medusa_indexed_search_is_available), (medusa_indexed_search_new),
(send_search_request), (medusa_indexed_search_start_search),
(medusa_indexed_search_read_search_result),
(medusa_indexed_search_destroy):
moved most functions from medusa-search-service here.
* libmedusa/medusa-search-service.c:
* libmedusa/medusa-search-service.h:
(medusa_search_service_connection_is_available_for_uri),
(medusa_search_service_connection_new),
(medusa_search_service_connection_start_search),
(medusa_search_service_connection_read_search_result),
(medusa_search_service_connection_destroy), (uri_has_valid_header),
(gnome_vfs_uri_to_search_method), (uri_to_search_method),
(uri_to_string_remove_extra_slashes):
Kept same API, with a few small changes, but api is now a wrapper
for the indexed and unindexed saerch.
* libmedusa/medusa-unindexed-search.c:
* libmedusa/medusa-unindexed-search.h:
(medusa_unindexed_search_new),
(medusa_unindexed_search_start_search),
(medusa_unindexed_search_read_search_result),
(medusa_unindexed_search_destroy), (search_directory),
(file_matches_criteria), (matches_all_name_criteria),
(matches_all_file_info_criteria), (matches_all_mime_criteria),
(matches_all_metadata_criteria), (match_one_name),
(match_one_file_info), (match_date_modified_criterion),
(match_owner_criterion), (match_group_criterion),
(match_size_criterion), (match_one_mime_type),
(get_root_directory_from_uri), (uri_to_search_string),
(search_string_to_criteria), (criterion_is_name_criterion),
(criterion_is_inode_criterion), (criterion_is_mime_criterion),
(criterion_is_metadata_criterion), (criterion_field_is),
(uri_to_file_name), (uri_to_path_name), (match_string_to_date),
(second_word_of), (last_word_of),
(initialize_results_file_for_writing),
(initialize_results_file_for_reading):
Created new search process for unindexed queries.
This should mirror the indexed search process except not
work for content.
* doc/search_uri_rfc:
added documentation for new uri syntaxes that
allows a request for either index only or backed
up search
* gnome-vfs-module/search-method.c: (do_open_directory),
(do_get_file_info):
* msearch/medusa-command-line-search.c: (main):
Updated to reflect new API
New code, now not used (perhaps will decrement at a later
time, if it is still not used)
* libmedusa-internal/medusa-queue.h:
* libmedusa-internal/medusa-queue.c: (medusa_queue_new),
(medusa_queue_add), (medusa_queue_remove), (medusa_queue_is_empty),
(medusa_queue_free), (medusa_queue_free_deep):
Added new queue data structure.
Libmedusa-internal -> libmedusa changes
* libmedusa-internal/medusa-utils.c:
* libmedusa-internal/medusa-utils.h:
* libmedusa/medusa-utils.c:
* libmedusa/medusa-utils.h:
removed and moved to libmedusa
* libmedusa/medusa-file-info-utilities.c:
* libmedusa/medusa-file-info-utilities.h:
(medusa_file_info_username_is_valid),
(medusa_file_info_username_to_uid),
(medusa_file_info_group_to_gid),
(number of strsplit_fields_returned),
(get_time_struct_for_beginning of date),
(get_time_struct_for_end of date), (is_a_leap_year),
(move_time_struct_a_week_into_the_past),
(move_time_struct_a_week_into_the_future),
(move_time_struct_a_month_into_the_past),
(move_time_struct_a_month_into_the_future),
(medusa_file_info_get_first_unix_time_occurring_on_date),
(medusa_file_info_get_last_unix_time_occurring_on_date),
(medusa_file_info_get_unix_time_a_week_before_date),
(medusa_file_info_get_unix_time_a_week_after_date),
(medusa_file_info_get_unix_time_a_month_before_date),
(medusa_file_info_get_unix_time_a_month_after_date):
* libmedusa-internal/medusa-file-index-queries.c:
(medusa_file_index_is_owned_by), (medusa_file_index_is_in_group),
(medusa_file_index_is_not_owned_by),
(medusa_file_index_is_modified_on_date),
(medusa_file_index_is_not_modified_on_date),
(medusa_file_index_is_modified_before_date),
(medusa_file_index_is_modified_after_date),
(medusa_file_index_is_modified_within_a_week of date),
(medusa_file_index_is_modified_within_a_month of date),
(medusa_file_index_is_not_in_group):
* libmedusa-internal/medusa-hash.h:
* libmedusa-internal/medusa-master-db.c: (medusa_master_db_query),
(index_directory), (run_query_on
oops
The requested page could not be found. Please use
your browsers 'back' button or the above home button to return to the
Greenstone Digital Library.results),
(run_query_on_everything_but
oops
The requested page could not be found. Please use
your browsers 'back' button or the above home button to return to the
Greenstone Digital Library.results),
(run_query_on_all_uris), (content_requests_to_uri_numbers),
(merge_new_uris_with_current_results_and_free):
moved these functions from medusa-file-index-queries to
medusa-file-info-utilities, made them public, and
changed their names accordingly
* libmedusa-internal/medusa-uri-list.c:
(read_index_info_from_database):
* libmedusa-internal/medusa-uri-list.h:
Moved stop list file and nfs mount check functions to
libmedusa
* Makefile.am: Changed compilation order of
subdirectories to reflect new dependencies
* indexer/Makefile.am:
* libmedusa-internal/Makefile.am:
* libmedusa/Makefile.am:
* msearch/Makefile.am:
* search-service/Makefile.am:
* tests/Makefile.am:
Updated to reflect new dependency of libmedusa-index
on libmedusa. Link both libmedusa-index and libmedusa
where just libmedusa-index was linked before
* libmedusa-internal/medusa-conf.h: Moved
FILE_INDEX_STOPLIST_NAME definition to
medusa-utils in libmedusa.
* libmedusa-internal/medusa-rdb-fields.h:
* libmedusa-internal/medusa-rdb-file.h:
* libmedusa-internal/medusa-rdb-query.h:
* libmedusa-internal/medusa-master-db.h:
* search-service/medusa-authenticate.c:
Changed " " on includes to <> for files moved to
libmedusa.
* libmedusa-internal/medusa-search-uri.c:
(medusa_search_uri_to_clause_closures), (medusa_uri_is_search_uri),
(bypass_search_method):
* libmedusa-internal/medusa-search-uri.h:
Moved criterion variables to libmedusa, where they are used
Miscellany
* databases/file-index-stoplist:
added /dev
* .cvsignore:
added new and exciting entries.
2000-08-24 Darin Adler <darin@eazel.com>
* gnome-vfs-module/Makefile.am: Rolled out (my 1st try at fixing)
Robin's change to the makefile in this directory. It was failing
in libtool. Maybe Robin can do a real fix, but we need a temporary
fix for now.
2000-08-24 Darin Adler <darin@eazel.com>
The first code for indexing keywords. There's a lot more to do.
This is less than 1/5th of the work.
* libmedusa-internal/medusa-master-db.c:
(index_directory): Fixed bug where it would turn a URI into a path
without unescaping. Added hook to trigger indexing public metafiles.
(medusa_master_db_destroy): Unref the text indexer.
(add_keywords_to_index), (index_public_metafile):
Placeholder/first cut at indexing the keywords in public
metafiles.
* libmedusa-internal/medusa-search-uri.c:
(medusa_search_uri_to_clause_closures), (clause_to_clause_closure),
(medusa_clause_closure_free), (medusa_uri_is_search_uri),
(get_next_root_uri), (get_search_criteria):
Style cleanups, including getting rid of some "== TRUE",
reformatting, adding some FIXMEs, replacing a tricky strncpy with
a simpler g_strndup.
* libmedusa-internal/medusa-utils.h:
* libmedusa-internal/medusa-utils.c:
(medusa_full_uri_from_directory_and_file): Fixed bugs where the
file name would not be escaped and a second '/' would be added to
URIs other than "file:///" that end in a slash.
(string_ends_with_slash): Fixed bug for 0-length string.
(medusa_string_has_prefix): const.
(medusa_extract_keywords_from_metafile): Partly-written function
that will be used to parse both public and private metafiles.
* libmedusa/medusa-search-service.c:
(medusa_search_service_connection_is_available): Fixed prototype.
* medusa/.cvsignore: Removed this file. When you see old leftover
files in this now-empty directory, remove the directory, don't
re-add the ignore file.
* configure.in: Added a gnome-xml dependency.
* gnome-vfs-module/Makefile.am:
* indexer/Makefile.am:
* libmedusa-internal/Makefile.am:
* search-service/Makefile.am:
* tests/Makefile.am:
Added the XML library to all modules that use the medusa internal
library. There's got to be a cleaner way to do this, but this is
how it was done for other things used by the internal library, so
someone else can fix it for XML as well when they fix the rest.
* libmedusa-internal/medusa-file-index-encoders.c:
* libmedusa-internal/medusa-file-index.h:
* libmedusa-internal/medusa-file-index.c:
* libmedusa-internal/medusa-master-db.h:
* libmedusa-internal/medusa-search-uri.h:
A little formatting cleanup.
2000-08-24 Robin * Slomkowski <rslomkow@eazel.com>
* gnome-vfs-module/Makefile.am:
* indexer/Makefile.am:
* search-service/Makefile.am:
* tests/Makefile.am:
converted references to -lmedusa-index
$(top_srcdir)/libmedusa-internal/libmedusa-index.la
This makes internal depencies work in clean an environment
2000-08-24 Rebecca Schulman <rebecka@eazel.com>
* indexer/medusa-file-index-daemon.c: (main):
fixed indexer exit problem
2000-08-23 Rebecca Schulman <rebecka@eazel.com>
* Makefile.am: yet another build fix,
for dependencies.
2000-08-23 Rebecca Schulman <rebecka@eazel.com>
* indexer/Makefile.am:
* search-service/Makefile.am:
* tests/Makefile.am:
Fixed references to uninstalled libmedusa-internals
that did not get updated last night.
2000-08-22 Rebecca Schulman <rebecka@eazel.com>
* libmedusa-internal/Makefile.am:
* libmedusa-internal/.cvsignore:
Changed the name of libmedusa-internal to
libmedusa-index, and installed it publicly.
Added relevant changes to .cvsignore to
make updating ith the new system smooth.
Fri Aug 18 20:58:21 2000 George Lebl <jirka@5z.com>
* libmedusa/medusa-index-service.h: replace MEDUSA_SEARCH_SERVICE_H
with MEDUSA_INDEX_SERVICE_H to make things using this compile and
work
2000-08-16 Rebecca Schulman <rebecka@eazel.com>
* libmedusa/medusa-index-service-private.h:
added header file that didn't get added because of its
previous removal
2000-08-16 Rebecca Schulman <rebecka@eazel.com>
Implemented changes relating to two bugs:
bugzilla.eazel.com 1341: a signalling
system to talk to the indexer, and 2071
to make the date modified search criteria more
useable in nautilus
* indexer/medusa-file-index-daemon.c: (main),
(wait_for_indexing_signal), (initialize_index_server_socket),
(file_indexer_parse_transmission):
added functions to accept and parse transmission, and added the
accept function into the main loop.
* libmedusa-internal/medusa-file-index-queries.h:
* libmedusa-internal/medusa-file-index-queries.c:
(medusa_file_index_is_not of type),
(medusa_file_index_is_owned_by),
(medusa_file_index_is_modified_on_date),
(medusa_file_index_is_not_modified_on_date),
(medusa_file_index_is_modified_before_date),
(medusa_file_index_is_modified_after_date),
(medusa_file_index_is_modified_within_a_week of date),
(medusa_file_index_is_modified_within_a_month of date),
(medusa_file_index_is_modified_in_time_interval),
(medusa_file_index_is_not_in_group), (username_is_valid),
(username_to_uid), (group_to_gid),
(number of strsplit_fields_returned),
(get_time_struct_for_beginning of date),
(get_time_struct_for_end of date), (is_a_leap_year),
(move_time_struct_a_week_into_the_past),
(move_time_struct_a_week_into_the_future),
(move_time_struct_a_month_into_the_past),
(move_time_struct_a_month_into_the_future),
(get_first_unix_time_occurring_on_date),
(get_last_unix_time_occurring_on_date),
(get_unix_time_a_week_before_date),
(get_unix_time_a_week_after_date),
(get_unix_time_a_month_before_date),
(get_unix_time_a_month_after_date):
Removed old date functions, and wrote nifty new functions
to do what we want in nautilus for searches.
See the search_uri_rfc for the new spec.
* doc/search_uri_rfc : updated the supported
functionality list to reflect the date query changes
* libmedusa-internal/medusa-file-index.c: (file_index_clauses):
registered the new date modified search uri criteria, and
deregistered the old ones
* libmedusa-internal/medusa-lock-file.h:
* libmedusa-internal/medusa-lock-file.c:
(medusa_lock_file_is_available), (medusa_lock_file_acquire):
added a new function, and fixed a bug in the old one
* libmedusa/medusa-index-service.h:
* libmedusa/medusa-index-service.c:
* libmedusa/medusa-index-service-private.h:
(medusa_index_service_request_reindex),
(medusa_index_service_get_last_index_update_time),
(get_last_index_update_time_by_hack):
added this api.
* libmedusa/Makefile.am:
* libmedusa/medusa-common-private.h:
changed support files in correspondence with general
cleanup in this directory
* libmedusa/medusa-service-private.h:
* libmedusa/medusa-service-private.c:
(medusa_initialize_socket_for_requests):
changed the names of these files
* libmedusa/medusa-search-service-private.h:
* libmedusa/medusa-search-service.c:
(medusa_search_service_connection_new):
reflect name changes, and new functionality in
medusa-service-private.[ch]
* tests/Makefile.am:
* tests/medusa-index-service-test.c:
added test stub for indexing api
2000-08-14 Robin * Slomkowski <rslomkow@eazel.com>
* configure.in: OK -Werror back in and version 0.2.0
2000-08-14 Robin * Slomkowski <rslomkow@eazel.com>
* configure.in: Changed version for release to 0.2
2000-08-10 Rebecca Schulman <rebecka@eazel.com>
* DEBUGGING:
* NEWS:
* README:
* TODO:
Updated relevant documentation to be up to date, and acceptable
for the preview release.
2000-08-10 John Sullivan <sullivan@eazel.com>
* gnome-vfs-module/search-method.c: (do_read_directory),
(do_get_file_info): Set the SYMLINK flag when returning
those funky search symlinks. It turns out this doesn't
matter for the way we're using it in Nautilus now, but I
thought it did at the time I made the change, and it
is correct, so I'm checking it in anyway.
2000-08-10 Maciej Stachowiak <mjs@eazel.com>
FreeBSD portability fixes:
* acconfig.h, configure.in: Add checks for getmntent and
getmntinfo.
* libmedusa-internal/medusa-uri-list.c
(medusa_nfs_mount_list_initialize): Make this function work on
systems like FreeBSD that have getmntinfo() but not
getmntent(). Fix from Bill Huey <billh@gnuppy.monkey.org>.
* indexer/medusa-file-index-daemon.c,
libmedusa-internal/medusa-file-index-queries.c,
libmedusa-internal/medusa-rdb-query.c,
libmedusa-internal/medusa-utils.c,
libmedusa/medusa-search-service.c,
search-service/medusa-file-search-daemon.c: Header fixes for
FreeBSD compilation, also from Bill Huey
<billh@gnuppy.monkey.org>.
2000-08-09 Robin * Slomkowski <rslomkow@eazel.com>
* medusa.spec.in: updated for current files
Wed Aug 09 18:10:14 2000 George Lebl <jirka@5z.com>
* libmedusa-internal/medusa-text-index.c
(medusa_text_index_finish_indexing): Another alpha anal
patch. Cast to (int) when printing %d to make sure it's
an integer (sizeof is not int on alpha but it's 64bit)
2000-08-09 Rebecca Schulman <rebecka@eazel.com>
* doc/search_uri_rfc:
tried to update the search uri rfc to reflect both
medusa's behavior and the nautilus ui spec
* libmedusa-internal/medusa-conf.h:
enlarged word hash table to reflect increased number of
words that result from allowing '_' within words.
* libmedusa-internal/medusa-uri-list.c: (uri_list_clauses):
fixed a clause incorrectly bound to the wrong function
2000-08-09 Rebecca Schulman <rebecka@eazel.com>
* libmedusa-internal/medusa-text-index-plaintext-module.c:
(read_more_data):
allow words with underscores in them to be indexed as
a single word.
* libmedusa/Makefile.am:
* libmedusa/medusa-index-service.h:
added medusa-index-service.h
2000-08-09 Rebecca Schulman <rebecka@eazel.com>
Fixed part of bug 2049 by adding medusa
function to answer file_type is_not queries.
* libmedusa-internal/medusa-file-index-queries.h:
* libmedusa-internal/medusa-file-index-queries.c:
(medusa_file_index_is_not of type):
* libmedusa-internal/medusa-file-index.c: (file_index_clauses):
2000-08-09 Pavel Cisler <pavel@eazel.com>
* gnome-vfs-module/search-method.c: (do_find_directory):
gnome_vfs_find_directory now takes an optional find_if_needed
parameter.
2000-08-08 Rebecca Schulman <rebecka@eazel.com>
* gnome-vfs-module/search-method.c:
(get_file_info_for_virtual_directory):
Made the mtime of search directories
the time of search.
nautilus displays this information in
the sidebar as the time, and this seemed
to be the most logical time.
2000-08-07 Maciej Stachowiak <mjs@eazel.com>
* gnome-vfs-module/search-method.c:
(get_file_info_for_virtual_directory):
* indexer/medusa-text-index-mime-module.c:
(medusa_text_index_mime_module_test):
* libmedusa-internal/medusa-file-index-queries.c:
* libmedusa-internal/medusa-text-index-mime-module.c:
(medusa_text_index_mime_module_test):
Renamedirectory mime types:
x-special/directory => x-directory/normal
x-special/webdav-directory => x-directory/webdav
x-special/virtual-directory => x-directory/search
2000-08-07 Maciej Stachowiak <mjs@eazel.com>
* CVSVERSION: New file, used to detect whether we are configuring
a cvs version or a release tarball.
* configure.in: Default -Werror to off when configuring a release
tarball, and to on when configuring a cvs version.
2000-08-07 John Sullivan <sullivan@eazel.com>
* libmedusa/medusa-search-service.c:
(medusa_search_service_connection_new):
One more fix. Now the success case works as well
as the failure case. Initialize result to
GNOME_VFS_OK if nothing goes wrong.
2000-08-07 John Sullivan <sullivan@eazel.com>
Finished bug 2005 (Search should give error message when
demon isn't running)
* libmedusa/medusa-search-service.c:
(medusa_search_service_connection_is_available):
Don't call _destroy on connection if it's NULL.
This makes Nautilus correctly report that search
is not available when you try without the search
demon.
2000-08-07 Rebecca Schulman <rebecka@eazel.com>
* gnome-vfs-module/search-method.c: (do_get_file_info):
* libmedusa/medusa-search-service.c:
(medusa_search_service_connection_is_available):
* libmedusa/medusa-search-service.h:
added correct result to be returned if search service
is isn't running for get_file_info
2000-08-07 Rebecca Schulman <rebecka@eazel.com>
* libmedusa/medusa-search-service.c: (initialize_socket):
removed annoying g_return_if_fail error message if
the search service is unavailable now that we are handling it
better.
2000-08-07 Rebecca Schulman <rebecka@eazel.com>
* libmedusa-internal/medusa-uri-list-queries.c:
(medusa_uri_list_has_file_name_starting_with),
(medusa_uri_list_has_file_name_ending_with):
fixed bugs that made these searches not work correctly.
* libmedusa-internal/medusa-uri-list.c: (uri_list_clauses):
added function to make starts_with work with nautilus.
* libmedusa/medusa-search-service.c:
* libmedusa/medusa-search-service.h:
(medusa_search_service_connection_new):
changed signature to include a gnomevfsresult structure, to
enable error reporting.
* msearch/medusa-command-line-search.c: (main):
changed medusa_search_service_connection_new to correspond to
the new call signature
2000-08-07 Gene Z. Ragan <gzr@eazel.com>
* gnome-vfs-module/search-method.c: (do_open_directory):
Added a check for the GnomeVFSResult when we create a connection
to medusa. Return error if one is found.
2000-08-07 Maciej Stachowiak <mjs@eazel.com>
* gnome-vfs-module/Makefile.am: Add EXTRA_DIST rule to appease the
`make distcheck' gods.
2000-08-07 Rebecca Schulman <rebecka@eazel.com>
* libmedusa-internal/Makefile.am:
fixed lack of header file listed that failed make distcheck
* libmedusa-internal/medusa-master-db.c: (medusa_master_db_query):
fixed printf to only output if logging is turned on.
2000-08-07 Rebecca Schulman <rebecka@eazel.com>
* doc/indexing_methodology:
in progress vague algorithm/code documentation
* libmedusa-internal/medusa-tokenize.c:
removed unnecessary gdbm.h include
2000-08-07 Rebecca Schulman <rebecka@eazel.com>
* libmedusa-internal/medusa-text-index-plaintext-module.c:
only index words, not numbers.
* indexer/medusa-file-index-daemon.c: (copy_new_index_files):
erase temporary index files at the end of indexing.
2000-08-06 Rebecca Schulman <rebecka@eazel.com>
Yetw another performance fix on the indexer.
This one separates index generation io into
two parts; the first writes direct to disk
without memory mapped io, and the second
part (where the temporary text index gets
sorted)
uses memory mapped io. This saves memory
when creating the temp indexes, and keeps
the performancewhere it is really needed.
* libmedusa-internal/medusa-io-handler.h:
* libmedusa-internal/medusa-io-handler.c:
(medusa_io_handler_write_header),
(write
GSDL Error
to_file_descriptor),
(fopen_new_with_medusa_io_handler_header):
added a new call to write an io handler header
to a normally accessed file
* libmedusa-internal/medusa-text-index-private.h:
added additionaly structures to keep both
streams and io handlers for the temp indices
* libmedusa-internal/medusa-text-index.c: (medusa_text_index_new),
(get_uri_number_from_temp_index_cell),
(get_last_cell_from_temp_index_cell), (text_index_files_are_ready),
(medusa_text_index_read_file), (medusa_text_index_finish_indexing),
(setup_temp_index_io_handlers),
(sort_temp_index_data_into_permenant_index), (uri_number of cell),
(medusa_text_index_destroy):
changed initial io handler declarations to use new fopen
extension, and later close the temp index streams and
open io handlers for the second part of the text indexing.
I hope this code is even vaguely comprehensible.
2000-08-04 Rebecca Schulman <rebecka@eazel.com>
Split the temporary index into 11 parts to save
RAM. In retrospect, I should use a power of 2.
* libmedusa-internal/medusa-conf.h:
added NUMBER_OF_TEMP_INDEXES variable, and set it to 11
* libmedusa-internal/medusa-text-index-private.h:
added handlers for each of the separate text indices to
the struct, and state information for each of them
* libmedusa-internal/medusa-text-index.c: (medusa_text_index_new),
(get_uri_number_from_temp_index_cell),
(get_last_cell_from_temp_index_cell),
(medusa_text_index_read_file), (medusa_text_index_finish_indexing),
(add_word_to_real_index), (uri_number of cell),
(medusa_text_index_destroy):
Changed the text indexer to write the locations of words initially
to one of 11 temporary indices. Which one to write to is decided
by the value of the word's integer token mod 11.
Then, to save memory, we add the data from each of the small text
indexes to the large index in serial.
* indexer/medusa-file-index-daemon.c: (do_full_indexing):
Erase all of the new files
2000-08-03 Rebecca Schulman <rebecka@eazel.com>
* DEBUGGING: yet more debugs
added skipping of nfs mount points for now.
we can deal with how to index them later.
* libmedusa-internal/medusa-master-db.c: (index_directory):
* libmedusa-internal/medusa-uri-list.c:
(medusa_uri_list_is_nfs_mount_point),
(medusa_nfs_mount_list_initialize):
* libmedusa-internal/medusa-uri-list.h:
2000-08-02 Rebecca Schulman <rebecka@eazel.com>
* DEBUGGING: Fixed error in the explanation
of how to debug medusa-searchd
2000-08-02 Rebecca Schulman <rebecka@eazel.com>
* DEBUGGING: Added instructions on how
to run gdb on the search and index daemons
2000-08-02 Rebecca Schulman <rebecka@eazel.com>
* search-service/medusa-authenticate.c:
(medusa_authenticate_create_cookie_file):
Fixed bug that created permissions incorrectly
for the cookie directory.
* Changelog finished my last changelog entry.
2000-08-02 Rebecca Schulman <rebecka@eazel.com>
Fixed all of the logging stuff to actually behave
according to environment variables, so that people
having trouble setting up the search service can
report useful errors. Information on using the logging capabilities
can be found in the new DEBUGGING file.
* DEBUGGING -- explanation of how to report problems with the
search service.
all the below changes result from changing the api for
medusa-master-db, medusa-uri-list and medusa-text-index
* indexer/medusa-file-index-daemon.c: (do_full_indexing):
* libmedusa-internal/medusa-enums.h:
* libmedusa-internal/medusa-master-db.c: (medusa_master_db_new),
(index_directory), (index_file):
* libmedusa-internal/medusa-master-db.h:
* libmedusa-internal/medusa-text-index-private.h:
* libmedusa-internal/medusa-text-index.c: (medusa_text_index_new),
(medusa_text_index_read_file), (medusa_text_index_finish_indexing),
(add_word_to_real_index), (uri_number of cell),
(text_index_add_mime_modules):
* libmedusa-internal/medusa-text-index.h:
* libmedusa-internal/medusa-uri-list-private.h:
* libmedusa-internal/medusa-uri-list.c: (medusa_uri_list_new):
* libmedusa-internal/medusa-uri-list.h:
* search-service/medusa-unindexed-search.h:
Tue Aug 01 18:13:36 2000 George Lebl <jirka@5z.com>
* libmedusa-internal/medusa-text-index-plaintext-module.c
(add_key_to_word_array) (handle_word_fragment): When storing
an integer in pointer use GINT_TO_POINTER and GPOINTER_TO_INT
* libmedusa-internal/medusa-text-index-queries.c: include string.h
* libmedusa-internal/medusa-text-index.c
(medusa_text_index_finish_indexing): when printing "%d" cast to
int to make sure it's an int
2000-07-31 Rebecca Schulman <rebecka@eazel.com>
* .cvsignore:
added some files
* libmedusa-internal/medusa-text-index-plaintext-module.c:
(read_more_data):
removed a bogus duplicate close
2000-07-31 Rebecca Schulman <rebecka@eazel.com>
Fixed logging to be off by default,
and added an accounting mode, as well as several levels
of optional logging that will be put in place. This still
doesn't cover the case where we only want certain types of
data to be logged. I think that we should use a 1<<
type solution so flags can be anded. But this should
work to prevent the case where the medusa log grows
huge, and this isn't easy to turn off.
* doc/flags:
recorded new flags relating to logging.
* libmedusa-internal/medusa-master-db-private.h:
* libmedusa-internal/medusa-master-db.c: (medusa_master_db_new):
* libmedusa-internal/medusa-master-db.h:
changed db_new arguments to include a logging level parameter.
* indexer/medusa-file-index-daemon.c: (main),
(do_index_accounting), (do_full_indexing), (do_fast_reindexing):
* search-service/medusa-file-search-daemon.c: (main):
* tests/medusa-text-index-test.c: (main):
update to use new medusa_db_new call
* libmedusa-internal/medusa-text-index-plaintext-module.c:
(medusa_text_index_parse_plaintext), (read_more_data):
fixed a few g_return_if_fails that do real operations,
that Dan Winship pointed out.
* libmedusa-internal/medusa-conf.h:
set up medusa to use new flags (log nothing but errors
by default)
* libmedusa-internal/medusa-text-index.c:
(medusa_text_index_read_file), (add_word_to_real_index),
(text_index_add_mime_modules):
changed to not output so much crap. needs to use
logging level, still.
* libmedusa-internal/medusa-utils.c:
(medusa_g_list_free_deep_custom), (medusa_g_list_free_deep):
* libmedusa-internal/medusa-utils.h:
added list free deep operations to use to fix memory leak.
* search-service/medusa-file-search-parse-transmission.c:
(present_query_results):
fixed large memory leak
* text-index-account-generate.pl:
added new script that analsyzes text index accounting files
2000-07-28 Rebecca Schulman <rebecka@eazel.com>
so the content search should be running for plain text index
files and fully integrated into the search daemon now.
* RENAMING:
added suggestions for medusa-utils and moving clause closure stuff
* doc/flags:
added permissions debugging flag for new text index induced
permission checking through the index.
* indexer/medusa-file-index-daemon.c: (main), (do_full_indexing),
(indexing_signal_received_callback), (copy_new_index_files):
added command to take a directory to index, for debugging purposes,
and remove the text index file when done indexing.
* libmedusa-internal/medusa-conf.h:
made the word hash table bigger...it was locking up on my machine.
we'll have to deal with the resize issue so that this isn't a
problem.
* libmedusa-internal/medusa-query-clauses.h:
* libmedusa-internal/medusa-file-index-queries.c:
* libmedusa-internal/medusa-file-index-queries.h:
(medusa_file_index_is of type), (medusa_file_index_is_owned_by),
(medusa_file_index_is_in_group),
(medusa_file_index_is_not_owned_by),
(medusa_file_index_is_not_in_group),
(medusa_file_index_is_modified_today),
(medusa_file_index_is_modified_in_last_seven_days),
(medusa_file_index_is_modified_this_month),
(medusa_file_index_is_not_modified_today),
(medusa_file_index_is_not_modified_in_last_seven_days),
(medusa_file_index_is_not_modified_this_month),
(medusa_file_index_uid_can_read_file):
* libmedusa-internal/medusa-uri-list-queries.c:
* libmedusa-internal/medusa-uri-list-queries.h:
(medusa_uri_list_has_name_containing),
(medusa_uri_list_has_name_not_containing),
(medusa_uri_list_is_in_directory_containing),
(medusa_uri_list_has_file_name_starting_with),
(medusa_uri_list_has_file_name_ending_with),
(medusa_uri_list_is_in_directory_tree),
(medusa_uri_list_has_name_glob_matching),
(medusa_uri_list_has_full_file_name):
Changed the query functions to be simpler, and not
to contain the file to be checked's iteration.
this was necessary to search intermittent files
in the index, as we'd like to do for combination
text index and file index checks
* libmedusa-internal/medusa-utils.c:
* libmedusa-internal/medusa-utils.h:
* search-service/medusa-authenticate.c:
(calculate_permissions_for_file):
(medusa_full_path_from_directory_and_file),
(medusa_group_contains), (medusa_string_has_prefix),
(medusa_g_list_partition),
(medusa_intersect_two_descending_integer_lists),
(medusa_difference of two_descending_integer_lists):
added utility functions for going over text index results,
and made group_contains function public so that
the permissions check can use it.
* libmedusa-internal/medusa-file-index.c: (file_index_clauses):
added permissions checking query
* libmedusa-internal/medusa-master-db.c:
* libmedusa-internal/medusa-master-db.h:
(medusa_master_db_query),
(query_execute_from_clause_closure), (index_directory),
(append_uri_to_results_if_matches),
(content_requests_to_uri_numbers),
(merge_new_uris_with_current_results_and_free),
(medusa_master_db_ref):
added functionality to integrate text index and
file index searches.
* libmedusa-internal/medusa-rdb-query.c:
(medusa_rdb_query_criterion_match):
fixed a bug in the regexp hash table that was
causing it to get filled with garbage with the new
query design.
* libmedusa-internal/medusa-search-uri.c:
* libmedusa-internal/medusa-search-uri.h:
(clause_to_clause_closure),
(medusa_search_uri_contains
oops
The requested page could not be found. Please use
your browsers 'back' button or the above home button to return to the
Greenstone Digital Library.requests),
(medusa_search_uri_add_user_can_read),
(medusa_clause_closure_free),
(medusa_clause_closure_is
oops
The requested page could not be found. Please use
your browsers 'back' button or the above home button to return to the
Greenstone Digital Library.search):
enhanced the closures to take the infomration for
arguments to text index searches, as well as
file index searches. added an api to support this
* libmedusa-internal/medusa-text-index-queries.c:
* libmedusa-internal/medusa-text-index-queries.h:
(medusa_text_index_word_to_uri_numbers):
changed the way it communicates the results to avoid
memory issues, and fixed a nasty off by one error.
* libmedusa-internal/medusa-text-index-test.c: (main):
removed.
* search-service/medusa-file-search-parse-transmission.c:
(run_query):
added separate permissions checking for content queries.
* tests/medusa-text-index-test.c: (main):
2000-07-27 Rebecca Schulman <rebecka@eazel.com>
* libmedusa-internal/medusa-conf.h:
keep text index turned off by default
2000-07-27 Rebecca Schulman <rebecka@eazel.com>
* Makefile.am:
* tests/medusa-text-index-test.c
fixed build issues and added relevant file
2000-07-27 Pavel Cisler <pavel@eazel.com>
* Makefile.am:
Disable the testing directory temporarily to avoid build breakage.
2000-07-27 Rebecca Schulman <rebecka@eazel.com>
Oh the excitement, the text index is working.
There are a few new calls.
I need to fix the query stuff to make the text index
work, and to massively optimize the query stuff,
which is pathetic right now.
you can test the text index by running
tests/medusa-text-index-test
* libmedusa-internal/medusa-text-index.h:
* libmedusa-internal/medusa-text-index.c: (medusa_text_index_new),
(get_uri_number_from_temp_index_cell),
(get_last_cell_from_temp_index_cell),
(medusa_text_index_read_file), (medusa_text_index_finish_indexing),
(add_word_to_real_index), (write_start_location_to_location_file),
(write_end_location_to_location_file),
(medusa_text_index_read_start_location_from_location_file),
(medusa_text_index_read_end_location_from_location_file),
(uri_number of cell):
added filling out the location and start and stop index files
* libmedusa-internal/medusa-text-index-queries.h:
* libmedusa-internal/medusa-text-index-queries.c:
(medusa_text_index_word_to_uri_numbers):
added standard text index resolution
* libmedusa-internal/medusa-text-index-private.h
* libmedusa-internal/Makefile.am:
added medusa-text-index-private.h,for data privacy issues
* tests/Makefile.am:
* libmedusa-internal/medusa-text-index-test.c: (main):
test file for the text index.
* libmedusa-internal/medusa-tokenize.h:
* libmedusa-internal/medusa-tokenize.c: (medusa_string_has_token),
(medusa_unsigned_int_to_token):
added a few new calls for the text index
* libmedusa-internal/medusa-io-handler.h:
* libmedusa-internal/medusa-io-handler.c:
(medusa_io_handler_get_data_region),
(medusa_io_handler_append_zeros):
added two new calls used by the text index
* doc/flags:
updated the flags list
2000-07-26 Mathieu Lacage <set EMAIL_ADDRESS environment variable>
* libmedusa/medusa-search-service.c:
(medusa_search_service_connection_read_search_result):
fix bug which made it not work at all most of the time.
I _LOVE_ maciej.
2000-07-24 Rebecca Schulman <rebecka@eazel.com>
Rewrote and corrected medusa's permissions scheme
to only return files that a user can know exists,
ie they can recursively read each of the parent directories.
This corrects bugzilla.eazel.com bug #1711
* doc/flags:
added search results debug flag to debug the authentication process
* search-service/medusa-authenticate.c:
(medusa_authenticate_create_cookie_file),
(medusa_authenticate_is_cookie_request),
(medusa_authenticate_is_correct_cookie),
(medusa_authenticate_uid_can_read), (can_read_this_directory),
(calculate_permissions_for_file), (group_contains), (get_user_key):
* search-service/medusa-authenticate.h:
* search-service/medusa-file-search-parse-transmission.c:
(present_query_results), (free_entries):
2000-07-21 Mathieu Lacage <mathieu@eazel.com>
Update medusa gnome-vfs module to latest gnome-vfs changes.
If you have pbs with this, please, contact me: It compiles here
but I dunno how to test it.
* gnome-vfs-module/search-method.c:
(search_real_directory_handle_new),
(search_directory_handle_destroy), (do_open_directory),
(do_read_directory), (get_file_info_cancellable_cover),
(do_get_file_info), (do_get_file_info_from_handle):
* libmedusa-internal/medusa-master-db.c: (index_directory):
2000-07-21 Rebecca Schulman <rebecka@eazel.com>
* libmedusa-internal/medusa-rdb-query.c:
(medusa_rdb_query_criterion_match):
fixed huge leak in query running.
2000-07-21 Rebecca Schulman <rebecka@eazel.com>
* libmedusa-internal/medusa-text-index.c: (medusa_text_index_new),
(get_uri_number_from_temp_index_cell),
(get_last_cell_from_temp_index_cell),
(medusa_text_index_finish_indexing), (add_word_to_real_index),
(write_start_location_to_location_file),
(write_end_location_to_location_file),
(text_index_add_mime_modules):
added more code to file out the location and start and stop files
* libmedusa-internal/medusa-plaintext-utilities.h:
* doc/desired-modules:
list of text indexing modules we should consider having soon.
2000-07-20 Rebecca Schulman <rebecka@eazel.com>
Changed clauses to include the type of the argument
they expect, and use that to give the query
function the right type of argument. This fixes
functions that expected numerical arguments, like
size and date requests. Added a "state of queries"
file, which talks about which search uri stuff is working
and isn't.
* libmedusa-internal/medusa-query-clauses.c:
(medusa_query_clauses_add_clause),
(medusa_query_clauses_get_function), (medusa_query_clause_new):
* libmedusa-internal/medusa-query-clauses.h:
keep track of types in MedusaQueryClause structure
* libmedusa-internal/medusa-file-index.c: (file_index_clauses):
* libmedusa-internal/medusa-uri-list.c: (uri_list_clauses):
added types to the query clauses definitions.
* libmedusa-internal/medusa-search-uri.c:
(clause_to_clause_closure):
* libmedusa-internal/medusa-search-uri.h:
use argument types to process search uri types
Started the process of creating the reverse text index
from the temporary text index
* libmedusa-internal/medusa-master-db.c: (medusa_master_db_index):
after iterating through the files, added a call to finish up the
text index stuff.
* libmedusa-internal/medusa-text-index.c:
(medusa_text_index_finish_indexing), (add_word_to_real_index),
(text_index_clauses):
* libmedusa-internal/medusa-text-index.h:
added new functions to process reverse index (incomplete)
Keep a file
* doc/state of queries -- keep a file documenting known non-working
things in msearch. We need to create a test harness for msearch
* libmedusa-internal/medusa-file-index-queries.h:
fixed a gid that was called uid
2000-07-20 Darin Adler <darin@eazel.com>
* gnome-vfs-module/search-method.c: (parse_search_uri): Fix so
this function doesn't care about the extra slashes any more, by
using the path instead of the whole URI.
(uri_to_string_remove_extra_slashes): Moved this function down
to make it clear that it's only used in one place.
2000-07-20 Rebecca Schulman <rebecka@eazel.com>
* libmedusa-internal/medusa-master-db.c: (index_file):
fixed bug introduced in cvs merge
2000-07-20 Rebecca Schulman <rebecka@eazel.com>
* .cvsignore:
* RENAMING:
* tests/data/.cvsignore:
CVS housekeeping, and added renaming file
2000-07-20 Rebecca Schulman <rebecka@eazel.com>
* libmedusa-internal/medusa-master-db.c: (index_file):
* libmedusa-internal/medusa-text-index.c: (medusa_text_index_new),
(medusa_text_index_read_file):
* search-service/medusa-file-search-parse-transmission.c:
(run_query):
some quick morning fixes to sync my version with the cvs version.
Added hook to run unindexed background search to the search service
2000-07-19 Rebecca Schulman <rebecka@eazel.com>
* gnome-vfs-module/search-method.c:
(get_file_info_for_virtual_directory):
changed mime type of virtual directories to "x-special/virtual-directory"
* libmedusa-internal/medusa-conf.h:
* libmedusa-internal/medusa-master-db.c: (medusa_master_db_query):
return immediately if the uri is garbage
* libmedusa/medusa-search-service.c:
(medusa_search_service_connection_read_search_result):
changed a strncpy to g_strndup for clarity and checked for null
case, which was causing problems
2000-07-18 Darin Adler <darin@eazel.com>
Some work on the gnome-vfs module to simplify a bit and fix a
number of bugs found by code inspection. I wasn't able to test,
but Maciej tested for me and says it works OK.
* gnome-vfs-module/search-method.c:
(search_real_directory_handle_new),
(search_wrapped_directory_handle_new),
(search_directory_handle_destroy): Got rid of the URI from the
directory handle, since it's not needed.
(search_file_handle_new), (search_file_handle_destroy): Store the
name for the file here instead of storing the entire URI. This is
only really needed for get_file_info_from_handle.
(uri_to_string_remove_extra_slashes): Fixed this function to work
and not leak and gave it a better name.
(parse_search_uri): Simplify for callers by taking GnomeVFSURI,
since all the callers want to use it that way. Use g_strndup
instead of g_new followed by strncpy. Add missing trailing NULL
parameter to g_strconcat. Add comments.
(open_cancellable_cover), (do_open), (do_create): Store the name
of the file in the file handle instead of the complete URI. Also
create the handle only if the file is successfully opened/created.
(do_close): Move code to close the file so it's not after the
return statement.
(string_g_list_to_strv): Use g_new instead of g_new0 since we
are writing each entry in the vector.
(do_open_directory): Changed logic a bit. It worked the old way,
but the new way matches the way the other calls works more
closely. Now the metadata is copied elsewhere to keep allocating
right.
(get_file_info_for_virtual_directory),
(get_file_info_for_virtual_link): Common functions to hold the
code that sets up file info. Set up valid_fields when setting up
file info.
(do_read_directory): Fix incorrect use of "&&" to test the
GNOME_VFS_FILE_INFO_FOLLOW_LINKS bit. The old code would always
follow links, I believe.
(get_file_info_cancellable_cover), (do_get_file_info): Fix
incorrect use of "&&" to test the GNOME_VFS_FILE_INFO_FOLLOW_LINKS
bit. The old code would always follow links, I believe. Share more
code between the two child cases.
(do_get_file_info_from_handle): Fixed storage leak caused by
creating meta-key array twice. Made it return the right name for
the SEARCH_URI_TYPE_IMMEDIATE_CHILD case.
(do_is_local): Added more FIXMEs.
(do_make_directory): Fix storage leak for the
SEARCH_URI_TYPE_IMMEDIATE_CHILD case.
(do_remove_directory): Fix storage leak for the
SEARCH_URI_TYPE_IMMEDIATE_CHILD case.
(do_move): Fix storage leak for case where either URI is a
SEARCH_URI_TYPE_IMMEDIATE_CHILD.
(do_unlink): Fix storage leak for the
SEARCH_URI_TYPE_IMMEDIATE_CHILD case.
(do_check_same_fs): Fix storage leak for case where either URI is
a SEARCH_URI_TYPE_IMMEDIATE_CHILD. Also fix typo that was causing
it to use an uninitialized variable (b_type twice).
(do_set_file_info), (do_truncate), (do_find_directory): Make code
structure match other similar functions (which fixed leaks in
those functions, but there were no leaks here).
(do_create_symbolic_link): Fix storage leak for the
SEARCH_URI_TYPE_IMMEDIATE_CHILD case.
* libmedusa-internal/medusa-uri-list-queries.c:
(medusa_uri_list_has_file_name_starting_with),
(medusa_uri_list_has_file_name_ending_with),
(medusa_uri_list_is_in_directory_tree):
* libmedusa/medusa-search-service.c:
(medusa_search_service_connection_read_search_result):
Fixed some calls to g_strconcat that were missing trailing NULL.
* gnome-vfs-module/.cvsignore:
* libmedusa/.cvsignore:
Added some ignored files.
2000-07-18 Maciej Stachowiak <mjs@eazel.com>
* gnome-vfs-module/search-method.c: (do_read_directory,
do_get_file_info): Lie about the name correctly, etc.
2000-07-18 Maciej Stachowiak <mjs@eazel.com>
* gnome-vfs-module/search-method.c:
(search_directory_handle_destroy, string_g_list_to_strv): Manage
meta_keys arrays better
(extract_string_from_uri, parse_search_uri): Assorted bug fixes.
(do_open_directory, do_get_file_info,
do_get_file_info_from_handle): Fixed for meta_key memory
management.
2000-07-18 Maciej Stachowiak <mjs@eazel.com>
* gnome-vfs-module/search-method.c: (extract_string_from_uri),
(parse_search_uri), (do_open_directory):
* libmedusa-internal/medusa-search-uri.c:
(medusa_search_uri_to_clause_closures):
2000-07-18 Seth Nickell <seth@eazel.com>
* gnome-vfs-module/search-method.c:
extract_string_from_uri:
New wrapper function which parses
gnome_vfs_uri_to_string to get rid of the "//"s it adds;
(do_open), (do_create), (do_get_file_info), (do_make_directory),
(do_remove_directory), (do_move), (do_unlink), (do_check_same_fs),
(do_set_file_info), (do_truncate), (do_find_directory),
(do_create_symbolic_link):
Changed from using "uri->text" to the new function.
2000-07-18 Seth Nickell <seth@eazel.com>
* gnome-vfs-module/search-method.c: (do_get_file_info),
Added correct setting of symlink_name when dealing with
immediate children.
(do_get_file_info_from_handle):
Implemented again...this time correctly :)
2000-07-18 Maciej Stachowiak <mjs@eazsel.com>
* gnome-vfs-module/search-method.c (do_get_file_info,
do_get_file_info_from_handle): Fixed some stuff, put in FIXMEs for
more.
2000-07-18 Seth Nickell <seth@eazel.com>
* gnome-vfs-module/search-method.c: (do_get_file_info),
(do_get_file_info_from_handle), (do_set_file_info):
Write remaining "unusual" functions (e.g. ones that are significantly
different....AND ALL THE GNOME-VFS MODULE FUNCTIONS ARE IMPLEMENTED!
2000-07-18 Maciej Stachowiak <mjs@eazel.com>
* gnome-vfs-module/search-method.c (do_open_directory): Purge yet
another warning.
2000-07-18 Maciej Stachowiak <mjs@eazel.com>
* gnome-vfs-module/search-method.c: (do_create),
(do_remove_directory), (do_truncate), (do_find_directory),
(do_create_symbolic_link): More fixes by inspection.
2000-07-18 Maciej Stachowiak <mjs@eazel.com>
* gnome-vfs-module/search-method.c: (do_create, do_close,
do_close_directory, do_get_file_info,
do_get_file_info_from_handle, do_make_directory,
do_remove_directory, do_move, do_unlink, do_set_file_info): Fix
warnings and attendant massive lossage.
(vfs_module_init, vfs_module_shutdown): Add gnome-vfs module
system boilerplate.
2000-07-18 Seth Nickell <seth@eazel.com>
* gnome-vfs-module/search-method.c: (do_find_directory),
(do_create_symbolic_link): Fix memory leaks.
2000-07-18 Seth Nickell <seth@eazel.com>
* gnome-vfs-module/search-method.c: do_create, do_unlink,
do_truncate: Suck less!
do_truncate_handle, do_find_directory,
do_create_symbolic_link: Implemented.
2000-07-18 Maciej Stachowiak <mjs@eazel.com>
* gnome-vfs-module/search-method.c
(search_real_directory_handle_new,
search_directory_handle_destroy, do_open, do_create,
do_open_directory, do_close_directory, do_read_directory, do_move,
do_unlink, do_check_same_fs, do_truncate): All sorts of fixes.
* gnome-vfs-module/Makefile.am: Set INCLUDES, not CFLAGS.
2000-07-18 Seth Nickell <seth@eazel.com>
* gnome-vfs-module/search-method.c: (do_make_directory),
(do_remove_directory), (do_unlink), (do_check_same_fs),
(do_truncate):
Some implemented, some fixed to remove compilation problem.
* configure.in:
Enable more warnings.
* gnome-vfs-module/search-method.c: (do_open), (do_create):
Fix pointer errors.
2000-07-18 Seth Nickell <seth@eazel.com>
* gnome-vfs-module/search-method.c: (do_close),
(do_read), (do_write), (do_seek), (do_tell):
Implemented.
(do_create), (do_open):
Implemented...I do so love creating wrappered handles...
2000-07-17 Maciej Stachowiak <mjs@eazel.com>
* gnome-vfs-module/search-method.c: Realized our life is harder
than we thought; it's necessary to wrap the handles generated by
the underlying filesystem oursleves. Isn't this fun?
(search_real_directory_handle_new,
search_wrapped_directory_handle_new,
search_directory_handle_destroy, search_handle_new,
search_handle_destroy): Handle wrapper handles.
(do_read): implemented.
(do_create, do_close, do_write, do_seek, do_tell): Put back stubs.
(do_open_directory): Some work in progress.
2000-07-17 Seth Nickell <seth@eazel.com>
* gnome-vfs-module/search-method.c: (do_is_local),
(do_make_directory), (do_remove_directory):
More calls to support GnomeVFS...
2000-07-17 Seth Nickell <seth@eazel.com>
* gnome-vfs-module/search-method.c: (do_open), (do_create),
(do_truncate):
Implemented calls to support GnomeVFS.
2000-07-17 Maciej Stachowiak <mjs@eazel.com>
* gnome-vfs-module/search-method.c:
Added markers of some functions Seth and I are implementing.
(parse_search_uri, do_open_directory): Started fixing stuff.
* gnome-vfs-module/search-method.h: Removed.
* gnome-vfs-module/Makefile.am: Removed from build.
2000-07-17 Maciej Stachowiak <mjs@eazel.com>
* gnome-vfs-module/search-method.h,
gnome-vfs-module/search-method.c: (search_directory_handle_new,
search_directory_handle_destroy, parse_search_uri, do_open,
do_create, do_close, do_read, do_write, do_seek, do_tell,
do_truncate_handle, do_open_directory, do_close_directory,
do_read_directory, do_get_file_info, do_get_file_info_from_handle,
do_is_local, do_make_directory, do_remove_directory, do_move,
do_unlink, do_check_same_fs, do_set_file_info, do_truncate,
do_find_directory, do_create_symbolic_link): Skeleton
implementation of search module, moved from gnome-vfs and made to
actually compile.
* gnome-vfs-module/search-methods.conf: Config file to add search
URI handling.
* gnome-vfs-module/Makefile.am: Make it all build and install.
* Makefile.am, configure.in: add gnome-vfs-module directory to
build.
* msearch/Makefile.am: Don't link in medusa internal stuff.
2000-07-17 Maciej Stachowiak <mjs@eazel.com>
* libmedusa/medusa-search-service.h,
libmedusa/medusa-search-service.c: (initialize_socket),
(authenticate_connection), (send_search_request),
(medusa_search_service_connection_start_search),
(medusa_search_service_connection_read_search_result),
(medusa_search_service_connection_destroy): Converted API to be
synchronous, since a gnome-vfs wrapper will provide async
functionality.
* msearch/medusa-command-line-search.c (main): Use new synch API.
2000-07-17 Rebecca Schulman <rebecka@eazel.com>
* indexer/medusa-file-index-daemon.c fixed a bug that
made backup files not get erased for the text index between
indexings
2000-07-17 Rebecca Schulman <rebecka@eazel.com>
* libmedusa-internal/medusa-conf.h:
spew debugging info about what is being indexed, if textindexing
is on
* libmedusa-internal/medusa-text-index.c: (medusa_text_index_new),
(medusa_text_index_read_file), (text_index_add_mime_modules):
fixed medusa to only index plain text files
2000-07-17 Rebecca Schulman <rebecka@eazel.com>
* configure.in:
* indexer/Makefile.am:
* libmedusa-internal/Makefile.am:
* libmedusa-internal/medusa-text-index-plaintext-module.c:
(medusa_text_index_parse_plaintext), (read_more_data),
(enlarge_word_fragment),
(transfer_hash_table_to_word_array_and_free),
(add_key_to_word_array), (handle_word_fragment),
(go_to_first_word_in_block), (block_is_one_word),
(word_is_last_word_in_block), (go_to_next_word_in_block):
* libmedusa-internal/medusa-text-index-plaintext-module.h:
* libmedusa-internal/medusa-text-index.c: (medusa_text_index_new):
Forgot to add plaintext module parsing files in their new
locations last time! here they are..they read data from
text files in blocks and return a list of unique words
that occurred in the file.
2000-07-16 Pavel Cisler <pavel@eazel.com>
* libmedusa-internal/Makefile.am:
* libmedusa-internal/medusa-text-index.c: (medusa_text_index_new):
This is a temporary fix to make medusa compile.
Rebecka forgot to check in two files and had to leave for an emergency.
Until she gets to fix it properly this should carry us over.
2000-07-14 Rebecca Schulman <rebecka@eazel.com>
the main change here is the addition of the
first part of the text indexing process.
things are still very raw here, however.
* configure.in:
* indexer/Makefile.am:
* indexer/modules/Makefile.am:
* libmedusa-internal/Makefile.am:
* indexer/modules/medusa-text-index-plaintext-module.c
* indexer/modules/medusa-text-index-plaintext-module.h
Tried to make indexing modules work. It failed for now,
so i am just going to put the one module that exists into
libmedusa-internal.
* indexer/medusa-file-index-daemon.c: (release_locks),
(do_full_indexing), (do_fast_reindexing), (backup_index_files),
(copy_new_index_files): some refactoring, reordering of
functions to be more readable, and changed lock variables
to be booleans rather than integers
* libmedusa-internal/medusa-master-db.c: (medusa_master_db_new),
(medusa_master_db_index), (medusa_master_db_update),
(medusa_master_db_query), (query_execute_from_clause_closure),
(index_directory), (index_file), (medusa_master_db_ref),
(medusa_master_db_unref), (medusa_master_db_destroy):
reformatted, refactored some string functionality into separate
methods, and added text indexing to the main index process. (it
is off by default), you can turn on the partial index generation
by setting TEXT_INDEX_ON
* libmedusa-internal/medusa-text-index-mime-module.h:
* libmedusa-internal/medusa-text-index-mime-module.c:
(medusa_text_index_mime_module_first_valid_module),
(mime_pattern_matches), (dummy_return_words):
fixed a leak in the module search code, changed function
text parsing structure specification.
* libmedusa-internal/medusa-text-index.c: (medusa_text_index_new),
(medusa_text_index_read_file), (array of words_free),
(uri_number of cell):
added plaintext module to the text indexing modules, and generation
of the temporary indexing code
* libmedusa-internal/medusa-conf.h:
neatened up
* libmedusa-internal/medusa-uri-list-encoders.c:
(medusa_uri_list_filename_encode),
(medusa_uri_list_directory_name_encode):
fixed bug in the encoding functions where strncpy was used when
memcpy should have been
* libmedusa-internal/medusa-uri-list.c: (medusa_uri_list_new),
(medusa_uri_list_is_stoplist_file), (medusa_uri_number_to_uri),
(medusa_uri_list_get_field_info),
(medusa_uri_list_get_first_real_record),
(medusa_uri_list_get_query_clauses),
(medusa_uri_list_number of uris), (medusa_uri_list_ref),
(medusa_uri_list_unref), (medusa_uri_list_index_file),
(uri_list_field_info), (uri_list_clauses),
(medusa_uri_list_destroy), (medusa_file_stoplist_initialize):
corrected formatting, fixed a few leaks.
* libmedusa-internal/medusa-utils.h:
* libmedusa-internal/medusa-utils.c:
(medusa_full_path_from_directory_and_file),
(medusa_full_uri_from_directory_and_file),
(directory_name_ends_with_slash):
refactored more string functionality into here.
2000-07-13 Elliot Lee <sopwith@redhat.com>
* indexer/Makefile.am, libmedusa/Makefile.am, msearch/Makefile.am,
search-service/Makefile.am: Fix srcdir != builddir
* libmedusa-internal/medusa-text-index.c: include string.h to
get strlen prototype to avoid warnings.
2000-07-13 Maciej Stachowiak <mjs@eazel.com>
Completed bugzilla tasks 1326 and 1307:
* libmedusa/Makefile.am: Fix some minor typos.
* libmedusa/medusa-search-service.c (authenticate_connection):
Avoid double-free.
(search_results_received_callback): Don't assume we're done until
we have given all results to the callback; use macro for end of
transmission token.
(spawn_search): Fix request format.
* msearch/Makefile.am: * msearch/medusa-command-line-search.c
(search_callback), (main): rewrite to use the search API.
* search-service/medusa-file-search-parse-transmission.c:
(present_query_results): don't send garbage characters, and send
newlines after each result.
2000-07-12 Maciej Stachowiak <mjs@eazel.com>
* libmedusa/medusa-search-service.c: (initialize_socket),
(search_results_received_callback): Might even work now.
2000-07-11 Rebecca Schulman <rebecka@eazel.com>
* README:
updated the readme to be more recent
* doc/how_to_use_msearch:
new file describing the new msearch
* libmedusa-internal/medusa-conf.h:
changed root directory back to /, so
medusa is useful again
2000-07-11 Maciej Stachowiak <mjs@eazel.com>
* libmedusa/medusa-search-service.c: (initialize_socket),
(authenticate_connection), (g_list_remove_tail),
(search_results_received_callback), (spawn_search): Closer to
working (I hope).
2000-07-11 Rebecca Schulman <rebecka@eazel.com>
Indexer now runs and makes shells of text index files,
it doesn't fill them.
* libmedusa-internal/medusa-conf.h: Added text index file
names
* indexer/medusa-file-index-daemon.c: (do_full_indexing),
(do_fast_reindexing):added text file args to master_db_new
* libmedusa-internal/medusa-master-db.c: (medusa_master_db_new),
(query_execute_from_clause_closure): Changed declaration for
medusa-master-db to take text file name arguments
* libmedusa-internal/medusa-master-db.h:
* libmedusa-internal/medusa-text-index.h:
* libmedusa-internal/medusa-text-index.c: (medusa_text_index_new),
(medusa_text_index_read_file):
changed text_index_initialize to text_index_new
Some general bug fixes to synchronize the 2 databases
* libmedusa-internal/medusa-file-index-queries.c:
(username_to_uid), (group_to_gid):
Removed frees of pwnam and grnam structures. I don't know
if this is a leak or not
* libmedusa-internal/medusa-file-index.c:
(medusa_file_system_db_new), (medusa_file_system_db_free),
(write_index_info_to_database), (read_index_info_from_database):
Fixed metainfo stuff to be in separate procedures
* libmedusa-internal/medusa-rdb-file.c: (medusa_rdb_file_new):
* libmedusa-internal/medusa-uri-list.c: (medusa_uri_list_new),
(medusa_uri_number_to_uri), (uri_list_field_info):
fixed bug that switched the order of the fields.
* msearch/medusa-command-line-search.c: (get_key_from_cookie),
(parse_results), (main):
provided more intelligent parsing of results.
now prints sane stuff
* search-service/medusa-file-search-daemon.c: (main):
* search-service/medusa-file-search-parse-transmission.c:
(run_query), (present_query_results): more intelligent comments,
added text index args to medusa_master_Db_new
2000-07-11 Robin * Slomkowski <rslomkow@eazel.com>
*indexer/Makefile.am: added $(GNOME_LIBS) $(OAF_LIBS)
*search-service/Makefile.am: added $(GNOME_LIBS) $(OAF_LIBS)
2000-07-11 Robin * Slomkowski <rslomkow@eazel.com>
*indexer/Makefile.am: added $(OAF_LIBS)
2000-07-11 Eskil Heyn Olsen <eskil@eazel.com>
* configure.in:
Added OAF and GConf tests.
* indexer/modules/Makefile.am:
Fixed some more .. to $(top..)
2000-07-11 Eskil Heyn Olsen <eskil@eazel.com>
* msearch/Makefile.am:
* search-service/Makefile.am:
* tests/Makefile.am:
More s/../$(top_*dir)
2000-07-11 Eskil Heyn Olsen <eskil@eazel.com>
* configure.in:
Removed to "goo" statements (??)
* indexer/Makefile.am:
replaced some ../ with $(top_*dir).
* indexer/modules/Makefile.am:
Commented out an unused _SOURCES decl.
2000-07-10 Rebecca Schulman <rebecka@eazel.com>
Two things here: Most of the remaining bugs
caused by the massive rewrite are fixed now.
The second is some architectural work on the
text index.
* libmedusa-internal/medusa-master-db.c: (medusa_master_db_new),
(medusa_master_db_index), (medusa_master_db_query), (index_file):
Changed the search order, to correspond to the table's record
order. Added basic text index commands to the indexing
process.
* libmedusa-internal/medusa-rdb-file.h:
* libmedusa-internal/medusa-rdb-file.c: (medusa_rdb_file_new),
(medusa_rdb_file_read_header), (medusa_rdb_file_set_metainfo),
(medusa_rdb_file_get_metainfo), (medusa_rdb_file_add_field),
(medusa_rdb_file_removxe_field),
(medusa_rdb_file_write_initial_header),
(medusa_rdb_file_write_number of records),
(medusa_rdb_file_write_number of fields), (medusa_rdb_file_test):
Removed the old hack of using the first db record, and replaced
it with a fixed length metainfo field. For the uri list and file
index the metainfo stored is the db version, and the unix time
for the last indexing. I added a new pointer in the file structure to
the metainfo section, and to the header section. There is a lot
less hellish pointer arithmetic now, I think.
* libmedusa-internal/medusa-file-index.c:
(medusa_file_system_db_new), (medusa_file_system_db_free):
got rid of the old set and get first record and replaced it with
set and get metainfo
* libmedusa-internal/medusa-uri-list.c: (medusa_uri_list_new),
(medusa_uri_list_destroy), (write_index_info_to_database),
(read_index_info_from_database):
* libmedusa-internal/medusa-uri-list.h:
Changed set and get methods similar to file index,
again simplifying the previous code
* libmedusa-internal/medusa-rdb-table.c: (medusa_rdb_table_insert):
Updated to reflect file structure change.
* libmedusa-internal/medusa-rdb-query.c:
(medusa_rdb_query_criterion_match):
Fixed bad boolean expressions. Both positive and negative queries
should work now.
* libmedusa-internal/medusa-text-index-mime-module.c:
(medusa_text_index_mime_module_first_valid_module),
(medusa_text_index_mime_module_get_parser), (dummy_return_words):
added new functions to get appropriate mime modules
* libmedusa-internal/medusa-text-index-mime-module.h:
* libmedusa-internal/medusa-text-index.c:
(medusa_text_index_initialize), (text_index_files_are_ready),
(medusa_text_index_read_file), (uri_number of cell),
(medusa_text_index_create_from_temp), (text_index_clauses),
(medusa_text_index_destroy):
* libmedusa-internal/medusa-text-index.h:
started some code for the temporary index
* libmedusa-internal/Makefile.am:
* libmedusa-internal/medusa-text-index-queries.h:
* libmedusa-internal/medusa-text-index-queries.c:
added the functions that the text index will use as
its vocabulary (just contains and does_not_contain)
* msearch/medusa-command-line-search.c: (get_key_from_cookie),
(parse_results):
* search-service/medusa-authenticate.c:
(medusa_authenticate_uid_can_read):
* search-service/medusa-authenticate.h:
changed uid_can_read to take uri's rather than file
names, which are the results, now.
* search-service/medusa-file-search-daemon.c: (main),
(initialize_socket):
a few random useless cleanups.
* search-service/medusa-file-search-parse-transmission.c:
(present_query_results):
changed output format. This is still broken.
* indexer/medusa-file-index-daemon.c: (do_full_indexing):
Improved messages about indexing. They should even be vaguely
accurate now.
* libmedusa-internal/medusa-conf.h
Medusa gets a version upgrade to 0.2, because of all of the
restructuring.
Fri Jul 07 22:18:02 2000 George Lebl <jirka@5z.com>
* libmedusa/medusa-uri-list.c: Include <string.h> to get rid of
warning on alpha
2000-07-06 Rebecca Schulman <rebecka@eazel.com>
* indexer/medusa-file-index-daemon.c: (do_full_indexing),
(do_fast_reindexing), (backup_index_files), (copy_new_index_files)
* libmedusa-internal/medusa-conf.h:
* libmedusa-internal/medusa-file-index-encoders.c:
(medusa_file_index_encoders_test)
* libmedusa-internal/medusa-file-index.h:
* libmedusa-internal/medusa-file-index.c:
(medusa_file_system_db_new), (medusa_file_system_db_free)
* libmedusa-internal/medusa-master-db.h:
* libmedusa-internal/medusa-master-db.c: (medusa_master_db_new)
* libmedusa-internal/medusa-uri-list.h:
* libmedusa-internal/medusa-uri-list.c: (medusa_uri_list_new),
(medusa_uri_list_destroy), (medusa_file_stoplist_initialize)
* search-service/medusa-file-search-daemon.c: (main)
Changed the naming scheme to take file names as explicit arguments.
* libmedusa-internal/medusa-uri-list-queries.c: (regexp_escape)
fixed quick bug
* msearch/medusa-command-line-search.c: (get_key_from_cookie)
now waits more patiently for a cookie, rather than eating
up cpu time
* search-service/medusa-file-search-parse-transmission.c:
(present_query_results) added END terminus for results
* configure.in:
2000-07-06 Maciej Stachowiak <mjs@eazel.com>
* libmedusa/medusa-search-service.c: (initialize_socket),
(authenticate_connection), (medusa_search_service_connection_new),
(search_results_received_callback), (spawn_search),
(proceed_to_next_search), (enqueue_handle), (unenqueue_handle),
(medusa_search_service_connection_start_search),
(medusa_search_service_connection_cancel_search): Fill in more of
implementation.
2000-07-05 Eskil Heyn Olsen <eskil@eazel.com>
* libmedusa-internal/Makefile.am:
* libmedusa/Makefile.am:
Fixed for make dist and rpm -ta action...
2000-07-05 Robin * Slomkowski <rslomkow@eazel.com>
* libmedusa-internal/Makefile.am: Added headers files
to noinst_HEADERS
* medusa.spec.in: Changed the version info, and added
a development package, and fixed the file includes
2000-07-05 Ramiro Estrugo <ramiro@eazel.com>
* libmedusa/Makefile.am:
Headers place for medusa is $prefix/include/libmedusa.
2000-07-05 Maciej Stachowiak <mjs@eazel.com>
* libmedusa-internal/medusa-lock-file-paths.h: Forgot to include
this.
2000-07-05 Maciej Stachowiak <mjs@eazel.com>
* libmedusa/Makefile.am, indexer/medusa-file-index-daemon.c,
libmedusa/medusa-common-private.h,
libmedusa/medusa-index-service-private.h,
libmedusa/medusa-search-service-private.h,
libmedusa/medusa-search-service.c,
libmedusa/medusa-search-service.h,
msearch/medusa-command-line-search.c,
search-service/medusa-authenticate.c,
search-service/medusa-file-search-daemon.c,
search-service/medusa-file-search-parse-transmission.c: Split out
private parts of search/indexing API, and include the private bits
where appropriate. Install some private headers for now, since
Nautilus is using some of the soon-to-be-private interfaces for
now.
2000-07-05 Maciej Stachowiak <mjs@eazel.com>
* libmedusa/medusa-search-service.h: Add new API.
* libmedusa/medusa-search-service.c: Stub versions of all the
calls.
* libmedusa/Makefile.am: Build a libmedusa shared lib.
2000-07-01 Rebecca Schulman <rebecka@eazel.com>
Some bug fixes for the latest giant checkin.
more to come.
* indexer/medusa-file-index-daemon.c: (wait_for_indexing_signal),
(do_fast_reindexing), (indexing_signal_received_callback),
(initialize_socket):
commented out the multiprocess stuff for now
* libmedusa-internal/medusa-conf.h:
changed root directory to /tmp to ease debugging
* libmedusa-internal/medusa-file-index-queries.c:
* libmedusa-internal/medusa-uri-list-queries.c:
(medusa_uri_list_has_full_file_name):
fixed type error in query functions
* libmedusa-internal/medusa-master-db.c: (medusa_master_db_query),
(query_execute_from_clause_closure):
added a check for null functions, skip metadata table row.
* libmedusa-internal/medusa-search-uri.c:
(medusa_search_uri_to_clause_closures):
fixed bug that didn't initialize closure_info list variable
* libmedusa-internal/medusa-uri-list-private.h:
* libmedusa-internal/medusa-uri-list.c: (medusa_uri_list_new),
(medusa_uri_list_destroy), (write_index_info_to_database):
added writing and reading of db info -- another bug fix
* msearch/medusa-command-line-search.c: (main):
fixed general bugs in the process here
2000-07-01 Maciej Stachowiak <mjs@eazel.com>
* indexer/medusa-file-index-daemon.c: (release_locks, main,
do_full_indexing, do_fast_reindexing): Try to release locks on
crash or exit (not sure if atexit is enough, may also need signal
handlers).
2000-07-01 Rebecca Schulman <rebecka@eazel.com>
* libmedusa-internal/medusa-search-uri.h
forgot to commit this last time
* libmedusa-internal/medusa-file-index.c:
(medusa_file_system_db_get_first_real_record):
* libmedusa-internal/medusa-uri-list.c:
(medusa_uri_list_get_first_real_record):
changed these, since the metainfo is accounted for in the
first_record list.
* libmedusa-internal/medusa-master-db.c: (medusa_master_db_new):
* msearch/medusa-command-line-search.c: (main):
* search-service/medusa-file-search-parse-transmission.c:
(medusa_file_search_parse_transmission):
fixed a few parse bugs
2000-07-01 Rebecca Schulman <rebecka@eazel.com>
Split up the single file database into two.
a uri list database, and a file attribute database.
created a single master database that holds both,
and will also hold the text index.
enabled both the uri list and the file attrbiute
index to be compliant with the search uri syntax.
This necessitated a lot of architectural changes.
* Makefile.am:
* configure.in:
* libmedusa-internal/Makefile.am:
Added new file make info
* databases/file-index-stoplist:
changed file names to uri names
* indexer/medusa-file-index-daemon.c: (main), (do_full_indexing),
(do_fast_reindexing), (backup_index_files), (copy_new_index_files):
changed this to eliminate fast reindexing for now, and also to
* libmedusa-internal/medusa-conf.h:
* libmedusa-internal/medusa-db-update.h:
added structure to deal with types of updates available.
* libmedusa-internal/medusa-file-index-encoders.c:
(medusa_file_database_uri_number_encode),
(medusa_file_database_mime_type_encode),
(medusa_file_database_size_encode),
(medusa_file_database_uri_number_decode),
(medusa_file_index_encoders_test):
fixed a memory leak in the encoders.
add uri number encode and decode functions.
* libmedusa-internal/medusa-file-index-encoders.h:
* libmedusa-internal/medusa-file-index-queries.c:
* libmedusa-internal/medusa-file-index-queries.h:
(medusa_file_index_is of type), (medusa_file_index_is_owned_by),
(medusa_file_index_is_in_group),
(medusa_file_index_is_not_owned_by),
(medusa_file_index_is_not_in_group),
(medusa_file_index_is_modified_today),
(medusa_file_index_is_modified_in_last_seven_days),
(medusa_file_index_is_modified_this_month),
(medusa_file_index_is_not_modified_today),
(medusa_file_index_is_not_modified_in_last_seven_days),
(medusa_file_index_is_not_modified_this_month),
(unix_time_at_midnight), (unix_time_seven_days_ago),
(unix_time_a_month_ago), (username_to_uid), (group_to_gid):
fixed these to use new clause query format as opposed to
old rdb-query format.
* libmedusa-internal/medusa-file-index.h:
* libmedusa-internal/medusa-file-information.c:
(medusa_file_attributes_new), (medusa_index_file_attributes),
(medusa_file_attributes_free):
* libmedusa-internal/medusa-file-information.h:
* libmedusa-internal/medusa-file-index.c:
(medusa_file_system_db_new),
(medusa_file_system_db_get_number of records),
(medusa_file_system_db_get_field_info),
(medusa_file_system_db_free), (medusa_file_system_db_index_file),
(check_field_info_from_file), (file_index_field_info),
(file_index_clauses),
(medusa_file_system_db_get_first_real_record),
(medusa_file_system_db_get_query_clauses):
changed file index to just take in one file for a time
in indexing, and the record encoding was changed to
eliminate file and directory field, and to add uri number
* libmedusa-internal/medusa-hash.c: (medusa_hash_new),
* libmedusa-internal/medusa-hash.h:
(medusa_hash_ref), (medusa_hash_unref), (medusa_hash_destroy):
changed hashes to use ref counting.
* libmedusa-internal/medusa-master-db.h:
* libmedusa-internal/medusa-master-db-private.h:
* libmedusa-internal/medusa-master-db.c: (medusa_master_db_new),
(medusa_master_db_index), (medusa_master_db_update),
(medusa_master_db_query), (query_execute_from_clause_closure),
(index_directory), (index_file), (medusa_master_db_destroy):
added new master db class to administer indexing and accept queries.
* libmedusa-internal/medusa-query-clauses.c:
* libmedusa-internal/medusa-query-clauses.h:
(medusa_query_clauses_new), (medusa_query_clauses_add_clause),
(medusa_query_clauses_get_function), (medusa_query_clauses_ref),
(medusa_query_clauses_unref), (medusa_query_result_succeeded),
(medusa_query_result_get_next_record),
(medusa_query_result_set_succeeded),
(medusa_query_result_set_next_record), (medusa_query_result_free),
(medusa_query_clauses_destroy), (medusa_query_clause_new),
(medusa_query_clause_unref), (medusa_query_clause_destroy):
added new query structure that takes search uri clauses
* libmedusa-internal/medusa-rdb-file.c:
* libmedusa-internal/medusa-rdb-file.h:
(medusa_rdb_file_get_number of records):
added get_number of records function as abstraction
* libmedusa-internal/medusa-rdb-table.c: (medusa_rdb_table_insert),
* libmedusa-internal/medusa-rdb-table.h:
(medusa_rdb_table_get_number of records):
added get_number of records function as abstraction
switched record order to use prepend rather than append
* libmedusa-internal/medusa-search-uri.c:
(medusa_search_uri_to_clause_closures), (clause_to_clause_closure),
(medusa_clause_closure_free), (medusa_uri_is_search_uri),
(get_next_root_uri), (get_search_criteria):
finished uri parsing -> query clause routines.
* libmedusa-internal/medusa-text-index.c:
(create_temporary_index_file), (medusa_text_index_destroy):
added a few more design ideas.
* libmedusa-internal/medusa-tokenize.h:
removed bogus gdbm.h header
* libmedusa-internal/medusa-uri-list-encoders.c:
* libmedusa-internal/medusa-uri-list-encoders.h:
(medusa_uri_list_filename_encode),
(medusa_uri_list_directory_name_encode),
(medusa_uri_list_is_directory_encode),
(medusa_uri_list_filename_decode),
(medusa_uri_list_directory_name_decode),
(medusa_uri_list_is_directory_decode):
added encoders for uri list (taken from file-list-encoders)
* libmedusa-internal/medusa-uri-list-private.h:
put struct definition in here
* libmedusa-internal/medusa-uri-list-queries.c:
(medusa_uri_list_has_name_containing),
(medusa_uri_list_has_name_not_containing),
(medusa_uri_list_is_in_directory_containing),
(medusa_uri_list_has_file_name_starting_with),
(medusa_uri_list_has_file_name_ending_with),
(medusa_uri_list_is_in_directory_tree),
(medusa_uri_list_has_name_glob_matching),
(medusa_uri_list_has_full_file_name), (regexp_escape),
(file_glob_to_regexp):
* libmedusa-internal/medusa-uri-list-queries.h:
moved some of the file index queries into uri-list-queries,c
as with moving the relevant fields to uri list
* libmedusa-internal/medusa-uri-list.c: (medusa_uri_list_new),
(medusa_uri_number_to_uri), (medusa_uri_list_get_field_info),
(medusa_uri_list_get_first_real_record),
(medusa_uri_list_get_query_clauses),
(medusa_uri_list_number of uris), (medusa_uri_list_index_file),
(medusa_uri_list_update_file), (uri_list_field_info),
(uri_list_clauses), (medusa_uri_list_destroy),
(medusa_file_stoplist_initialize):
* libmedusa-internal/medusa-uri-list.h:
created image of medusa-file-index
* msearch/medusa-command-line-search.c: (main):
updated it to take search uris as opposed to old arguments
* search-service/Makefile.am:
* search-service/medusa-file-search-daemon.c: (main):
* search-service/medusa-file-search-parse-transmission.c:
(medusa_file_search_parse_transmission), (run_query),
(present_query_results):
* search-service/medusa-file-search-parse-transmission.h:
changed the file search daemon to accept search uris rather
than old argument format.
* search-service/medusa-search-uri.c:
* search-service/medusa-search-uri.h:
moved these to libmedusa-internal
2000-06-30 Fatih Demir<kabalak@gmx.net>
* libmedusa-internal/medusa-rdb-query.c: Added
(gchar *) casts to the strcmp-call.
2000-06-28 Rebecca Schulman <rebecka@eazel.com>
added uri lists, and a top level db that will talk
to both the text index and the file index.
Changed some file index
apis to reflect the changes.
changed indexes to create file names automatically,
rather than having to make up names.
* indexer/medusa-file-index-daemon.c: (main), (do_full_indexing),
(do_fast_reindexing), (backup_index_files), (copy_new_index_files):
* libmedusa-internal/Makefile.am:
* libmedusa-internal/medusa-conf.h:
* libmedusa-internal/medusa-file-index-encoders.c:
(medusa_file_index_encoders_test):
* libmedusa-internal/medusa-file-index-queries.c:
(medusa_file_index_queries_test):
* libmedusa-internal/medusa-file-index.c:
(medusa_file_system_db_new), (index_directory),
(medusa_file_index_reindex_filenames),
(medusa_file_index_record_to_full_file_name),
(file_index_field_info), (medusa_file_index_test),
(medusa_file_reindexing_test),
(medusa_file_index_get_next_file_name):
* libmedusa-internal/medusa-file-index.h:
* libmedusa-internal/medusa-master-db.c: (medusa_master_db_new),
(medusa_master_db_index), (medusa_master_db_ref),
(medusa_master_db_unref), (medusa_master_db_destroy):
* libmedusa-internal/medusa-master-db.h:
* libmedusa-internal/medusa-rdb-file.c: (medusa_rdb_file_is_empty),
(medusa_rdb_file_test):
* libmedusa-internal/medusa-rdb-file.h:
* libmedusa-internal/medusa-rdb-table.c:
* libmedusa-internal/medusa-uri-list-encoders.c:
(medusa_uri_list_filename_encode),
(medusa_uri_list_directory_name_encode),
(medusa_uri_list_filename_decode),
(medusa_uri_list_directory_name_decode):
* libmedusa-internal/medusa-uri-list-encoders.h:
* libmedusa-internal/medusa-uri-list-private.h:
* libmedusa-internal/medusa-uri-list.c: (medusa_uri_list_new),
(medusa_uri_list_index), (medusa_uri_list_is_stoplist_file),
(medusa_uri_list_ref), (medusa_uri_list_unref), (index_directory),
(index_file), (uri_list_field_info), (medusa_uri_list_destroy),
(write_index_info_to_database), (read_index_info_from_database),
(medusa_file_stoplist_initialize):
* libmedusa-internal/medusa-uri-list.h:
* libmedusa-internal/medusa-utils.h:
* search-service/medusa-file-search-daemon.c: (main),
(ensure_index_validity):
2000-06-28 Rebecca Schulman <rebecka@eazel.com>
* libmedusa-internal/medusa-rdb-query-private.h:
* libmedusa-internal/medusa-rdb-query.c: (medusa_rdb_query_new),
(medusa_rdb_query_free), (medusa_rdb_query_criterion_free),
(medusa_rdb_query_criterion_new),
(medusa_rdb_query_add_selection_criterion),
(medusa_rdb_query_criterion_match), (medusa_rdb_query_match),
(medusa_rdb_query_test):
* libmedusa-internal/medusa-rdb-query.h:
added ability to give negative queries,
ie the desired result should be false rather than
true.
* libmedusa-internal/medusa-file-index-queries.c:
(medusa_file_index_select_directories),
(medusa_file_index_select_by_directory_name),
(medusa_file_index_select_by_file_name),
(medusa_file_index_select_by_file_name_equals),
(medusa_file_index_select_by_file_name_contains),
(medusa_file_index_select_by_file_name_starts_with),
(medusa_file_index_select_by_file_name_ends_with),
(medusa_file_index_select_by_file_glob),
(medusa_file_index_select_by_file_name_regexp_matches),
(medusa_file_index_select_files_modified_today),
(medusa_file_index_select_files_modified_in_last_seven_days),
(medusa_file_index_select_files_modified_this_month),
(medusa_file_index_select_files_modified_after_time),
(medusa_file_index_select_files_modified_before_today),
(medusa_file_index_select_files_modified_before_last_seven_days),
(medusa_file_index_select_files_modified_before_this_month),
(medusa_file_index_select_files_modified_before_time),
(medusa_file_index_select_files_larger_than),
(medusa_file_index_select_files_smaller_than),
(medusa_file_index_delete_by_file_name),
(medusa_file_index_delete_by_directory_name),
(medusa_filename_is_in_index), (medusa_file_index_queries_test):
* libmedusa-internal/medusa-rdb-table.c: (medusa_rdb_table_test):
updated code that uses queries to reflect api changes
2000-06-28 Rebecca Schulman <rebecka@eazel.com>
Renamed the following
relational_database -> rdb
RELATIONAL_DATABASE -> RDB
RelationalDatabase -> RDB
relational_table -> rdb_table
to increase readability.
* libmedusa-internal/medusa-file-index-encoders.c:
(medusa_file_database_filename_encode),
(medusa_file_database_directory_name_encode),
(medusa_file_database_mime_type_encode),
(medusa_file_database_mtime_encode),
(medusa_file_database_owner_encode),
(medusa_file_database_group_encode),
(medusa_file_database_permissions_encode),
(medusa_file_database_size_encode),
(medusa_file_database_filename_decode),
(medusa_file_database_directory_name_decode),
(medusa_file_database_mime_type_decode):
* libmedusa-internal/medusa-file-index-queries.c:
(medusa_file_index_select_directories),
(medusa_file_index_select_by_directory_name),
(medusa_file_index_select_by_file_name),
(medusa_file_index_select_by_file_name_equals),
(medusa_file_index_select_by_file_name_contains),
(medusa_file_index_select_by_file_name_starts_with),
(medusa_file_index_select_by_file_name_ends_with),
(medusa_file_index_select_by_file_glob),
(medusa_file_index_select_by_file_name_regexp_matches),
(medusa_file_index_select_files_modified_today),
(medusa_file_index_select_files_modified_in_last_seven_days),
(medusa_file_index_select_files_modified_this_month),
(medusa_file_index_select_files_modified_after_time),
(medusa_file_index_select_files_modified_before_today),
(medusa_file_index_select_files_modified_before_last_seven_days),
(medusa_file_index_select_files_modified_before_this_month),
(medusa_file_index_select_files_modified_before_time),
(medusa_file_index_select_files_larger_than),
(medusa_file_index_select_files_smaller_than),
(medusa_file_index_delete_by_file_name),
(medusa_file_index_delete_by_directory_name),
(medusa_filename_is_in_index), (medusa_file_index_queries_test):
* libmedusa-internal/medusa-file-index-queries.h:
* libmedusa-internal/medusa-file-index.c:
(medusa_file_system_db_initialize), (medusa_file_system_db_free),
(medusa_file_index_reindex_filenames),
(medusa_file_index_record_to_full_file_name),
(check_field_info_from_file), (file_index_field_info),
(medusa_file_index_set_first_database_record),
(medusa_file_index_get_first_database_record),
(medusa_file_index_test), (medusa_file_index_get_next_file_name):
* libmedusa-internal/medusa-file-index.h:
* libmedusa-internal/medusa-file-information.c:
(append_file_information_field), (medusa_index_file_attributes):
* libmedusa-internal/medusa-rdb-fields.c:
(medusa_rdb_field_info_new), (medusa_rdb_field_info_free),
(medusa_rdb_field_free), (medusa_rdb_field_add),
(medusa_rdb_field_remove), (medusa_rdb_field_get_offset),
(medusa_rdb_field_get_field_structure),
(medusa_rdb_record_get_field_contents),
(medusa_rdb_field_get_size), (medusa_rdb_field_get_encoder),
(medusa_rdb_field_get_decoder),
(medusa_rdb_field_get
GSDL Error
size),
(medusa_rdb_fields_get_first_title),
(medusa_rdb_fields_get_first_size),
(medusa_rdb_fields_get_first_encoder),
(medusa_rdb_fields_get_first_decoder),
(medusa_rdb_field_contents_equal):
* libmedusa-internal/medusa-rdb-fields.h:
* libmedusa-internal/medusa-rdb-file.c: (medusa_rdb_file_new),
(medusa_rdb_file_free), (medusa_rdb_file_read_header),
(medusa_rdb_file_add_field), (medusa_rdb_file_remove_field),
(medusa_rdb_file_write_initial_header),
(medusa_rdb_file_write_number of records),
(medusa_rdb_file_write_number of fields), (medusa_rdb_file_test),
(id_encode), (id_decode), (number_encode), (number_decode):
* libmedusa-internal/medusa-rdb-file.h:
* libmedusa-internal/medusa-rdb-query-private.h:
* libmedusa-internal/medusa-rdb-query.c: (medusa_rdb_query_new),
(medusa_rdb_query_free), (medusa_rdb_query_criterion_free),
(medusa_rdb_query_criterion_new),
(medusa_rdb_query_add_selection_criterion),
(medusa_rdb_query_criterion_match), (medusa_rdb_query_match):
* libmedusa-internal/medusa-rdb-query.h:
* libmedusa-internal/medusa-rdb-record.h:
* libmedusa-internal/medusa-rdb-table-async.c:
(medusa_rdb_table_select_cancellable):
* libmedusa-internal/medusa-rdb-table-async.h:
* libmedusa-internal/medusa-rdb-table-private.h:
* libmedusa-internal/medusa-rdb-table.c:
(medusa_rdb_table_all_rows), (medusa_rdb_table_insert),
(medusa_rdb_table_replace_record_by_number),
(medusa_rdb_table_delete_record), (medusa_rdb_table_erase_record),
(medusa_rdb_table_select), (medusa_rdb_table_delete),
(medusa_rdb_table_virtual_insert_record), (medusa_rdb_table_free),
(medusa_rdb_table_virtual_free),
(medusa_rdb_record_number_to_record), (medusa_rdb_table_test):
* libmedusa-internal/medusa-rdb-table.h:
* search-service/.cvsignore:
* search-service/medusa-file-search-parse-transmission.c:
(medusa_file_search_parse_transmission), (run_query),
(present_query_results):
* search-service/medusa-search-uri-test.c: (main):
* search-service/medusa-search-uri.c:
* search-service/medusa-search-uri.h:
2000-06-28 Rebecca Schulman <rebecka@eazel.com>
* search-service/medusa-search-uri-test.c: (main):
* search-service/medusa-search-uri.c: (medusa_search_uri_to_query):
fixed compile bugs; this file is in transition.
2000-06-28 Rebecca Schulman <rebecka@eazel.com>
* libmedusa-internal/medusa-hash.c: (medusa_hash_new):
* search-service/medusa-file-search-parse-transmission.c:
* libmedusa-internal/medusa-conf.h:
(medusa_file_search_parse_transmission):
Added new variable to medusa conf file
fixed small error in parse transmission
* search-service/medusa-search-uri.c:
* search-service/medusa-search-uri.h:
added more; this stuff needs to be fixed.
* search-service/Makefile.am:
* search-service/medusa-search-uri-test.c:
added test stub for search uri parser.
2000-06-26 Rebecka Schulman <rebecka@eazel.com>
* doc/search_uri_rfc:
* doc/text_index_ui:
added doc files for others to read;
updated search uri rfc to correspond to
changes made in anticipation of
writing the search uri parser
* indexer/Makefile.am:
* configure.in:
* indexer/modules/.cvsignore:
* indexer/modules/Makefile.am:
* indexer/modules/medusa-text-index-modules-test.c: (main),
(medusa_text_index_plaintext_module_test):
* indexer/modules/medusa-text-index-plaintext-module.c:
(transfer_hash_table_to_word_array):
added directory and prototype for initial plaintext
indexer
* libmedusa-internal/Makefile.am:
* libmedusa-internal/medusa-file-index.h:
* libmedusa-internal/medusa-text-index-mime-module.c:
(medusa_text_index_mime_module_new),
(medusa_text_index_mime_module_add_mime_type),
(medusa_text_index_mime_module_remove_mime_type),
(medusa_text_index_mime_module_add_mime_pattern),
(medusa_text_index_mime_module_accepts_mime_type),
(medusa_text_index_mime_module_ref),
(medusa_text_index_mime_module_unref),
(medusa_text_index_mime_module_destroy), (is_valid_mime_type),
(is_valid_mime_pattern), (valid_mime_pattern_to_regexp_string),
(mime_pattern_matches), (dummy_return_words),
(medusa_text_index_mime_module_test):
* libmedusa-internal/medusa-text-index-mime-module.h:
* libmedusa-internal/medusa-text-index-test.c: (main):
* libmedusa-internal/medusa-text-index.c:
(medusa_text_index_initialize), (medusa_text_index_create),
(text_index_files_are_ready), (create_temporary_index_file),
(create_reverse_index_from_temporary_file),
(add_file_to_temporary_index), (medusa_text_index_ref),
(medusa_text_index_unref), (medusa_text_index_destroy),
(free_entry), (medusa_text_index_test):
* libmedusa-internal/medusa-text-index.h:
added mime module package, that will keep track
of the available functions for parsing files
based on mime type
* libmedusa-internal/medusa-utils.c:
(medusa_full_path_from_directory_and_file):
* libmedusa-internal/medusa-utils.h:
changed function in here to reflect naming scheme
* search-service/Makefile.am:
* search-service/medusa-authenticate.c:
(medusa_authenticate_create_cookie_file),
(medusa_authenticate_is_cookie_request),
(medusa_authenticate_is_correct_cookie),
(medusa_authenticate_uid_can_read), (group_contains),
(get_user_key):
* search-service/medusa-authenticate.h:
* search-service/medusa-file-search-daemon.c: (main),
(initialize_socket):
* search-service/medusa-file-search-parse-transmission.c:
(medusa_file_search_parse_transmission), (run_query),
(get_uid_pid_key_information), (present_query_results),
(goto_next_line), (another_transmission_line_exists):
* search-service/medusa-file-search-parse-transmission.h:
* search-service/medusa-search-uri.c: (medusa_search_uri_to_query):
* search-service/medusa-search-uri.h:
split up the file search daemon, into four pieces for
managability, and changed it to accept search uris rather
than search queries. so the command line tool should no
longer work
2000-06-24 Pavel Cisler <pavel@eazel.com>
* libmedusa-internal/medusa-file-index.c:
(medusa_file_system_db_index), (index_directory), (reindex_file):
* libmedusa-internal/medusa-file-information.c:
(medusa_file_attributes_new_by_dir_and_file):
* search-service/medusa-unindexed-search.c:
(medusa_unindexed_search_file_matches):
Update for GnomeVFS renamings.
2000-06-22 Darin Adler <darin@eazel.com>
* .cvsignore:
* libmedusa-internal/.cvsignore:
Ignore some more generated files.
2000-06-22 Ramiro Estrugo <ramiro@eazel.com>
* libmedusa/Makefile.am:
Export medusa-search-service.h since its needed by nautilus.
* indexer/.cvsignore:
* libmedusa/.cvsignore:
* msearch/.cvsignore:
* search-service/.cvsignore:
Ignore generated files.
2000-06-21 Maciej Stachowiak <mjs@eazel.com>
Moved some files around:
* Makefile.am, autogen.sh, configure.in: Fixed for new build
setup.
* medusa/Makefile.am: Removed.
* medusa/medusa-byte.c, medusa/medusa-byte.h,
medusa/medusa-conf.h, medusa/medusa-file-index-encoders.c,
medusa/medusa-file-index-encoders.h,
medusa/medusa-file-index-queries.c,
medusa/medusa-file-index-queries.h, medusa/medusa-file-index.c,
medusa/medusa-file-index.h, medusa/medusa-file-information.c,
medusa/medusa-file-information.h, medusa/medusa-hash.c,
medusa/medusa-hash.h, medusa/medusa-io-handler.c,
medusa/medusa-io-handler.h, medusa/medusa-lock-file.c,
medusa/medusa-lock-file.h, medusa/medusa-rdb-fields.c,
medusa/medusa-rdb-fields.h, medusa/medusa-rdb-file.c,
medusa/medusa-rdb-file.h, medusa/medusa-rdb-index.h,
medusa/medusa-rdb-query-private.h, medusa/medusa-rdb-query.c,
medusa/medusa-rdb-query.h, medusa/medusa-rdb-record.h,
medusa/medusa-rdb-table-async.c, medusa/medusa-rdb-table-async.h,
medusa/medusa-rdb-table-private.h, medusa/medusa-rdb-table.c,
medusa/medusa-rdb-table.h, medusa/medusa-test-conf.h,
medusa/medusa-test.c, medusa/medusa-test.h,
medusa/medusa-tokenize.c, medusa/medusa-tokenize.h,
medusa/medusa-utils.c, medusa/medusa-utils.h: Moved to
libmedusa-internal directory
* libmedusa-internal/Makefile.am: New file.
* medusa/medusa-search-service.h: Moved to libmedusa directory.
* libmedusa/Makefile.am: New file.
* medusa/medusa-file-search-daemon.c,
medusa/medusa-unindexed-search.c,
medusa/medusa-unindexed-search.h: Moved to search-service
directory.
* search-service/Makefile.am: New file.
* medusa/medusa-file-index-daemon.c,
medusa/medusa-text-index-mime-module.c,
medusa/medusa-text-index-mime-module.h,
medusa/medusa-text-index.c, medusa/medusa-text-index.h: Moved to
indexer directory.
* indexer/Makefile.am: New file.
* medusa/medusa-text-index-plaintext-module.c
medusa/medusa-text-index-plaintext-module.h: Moved to
indexer/modules.
* medusa/medusa-command-line-search.c: Moved to msearch directory.
* msearch/Makefile.am : New file.
* tests/Makefile.am: Don't build test program, it's broken right
now.
2000-06-21 Rebecca Schulman <rebecka@eazel.com>
* medusa/medusa-conf.h:
Added new text index hash table
size variables
* medusa/medusa-file-index.c:
* medusa/medusa-file-index.h:
(medusa_file_index_reindex_filenames),
(medusa_file_index_record_to_full_file_name),
(medusa_file_index_get_records_handle),
(medusa_file_index_get_next_file_name):
added new api to read the file names out of the
file index
* medusa/medusa-file-search-daemon.c: (present_query_results):
* medusa/medusa-hash.c: (medusa_hash_new), (medusa_hash_store):
* medusa/medusa-hash.h:
* medusa/medusa-io-handler.c: (medusa_io_handler_new),
(medusa_io_handler_write_header), (medusa_io_handler_create_file),
(medusa_io_handler_append_string):
* medusa/medusa-io-handler.h:
changed char * to const char * where appropriate
* medusa/medusa-rdb-query.c:
(medusa_relational_database_query_criterion_match):
fixed bug in g_return_if_fail.
* medusa/medusa-text-index.c: (medusa_text_index_initialize),
(medusa_text_index_create), (medusa_text_index_ref),
(medusa_text_index_unref), (medusa_text_index_destroy),
(free_entry):
* medusa/medusa-text-index.h:
added some source for basic functions
2000-06-20 Rebecca Schulman <rebecka@eazel.com>
* medusa/medusa-text-index-mime-module.h:
* medusa/medusa-text-index-mime-module.c: (dummy_return_words):
* medusa/medusa-text-index.c:
Got rid of some abstract types (location and
semantic unit for char *)
they should get readded later, but aren't really
useful without associated objects
* medusa/Makefile.am:
* medusa/medusa-text-index-plaintext-module.c:
(medusa_text_index_parse_plaintext), (read_more_data),
(transfer_hash_table_to_word_array):
* medusa/medusa-text-index-plaintext-module.h:
Added new module to split plaintext into words.
this module is totally untested, and 99.9% chance
doesn't work yet
* medusa/medusa-conf.h:
added plaintext debugging flag
2000-06-19 Rebecca Schulman <rebecka@eazel.com>
* medusa/Makefile.am:
added new text index files
* medusa/medusa-file-index-queries.c:
(medusa_file_index_select_directories):
changed get_directories function to
use the correct mime type, now
x-special/directory
* medusa/medusa-rdb-file.h:
added ifdef for header
* medusa/medusa-rdb-query.c:
(medusa_relational_database_query_criterion_match):
changed MEDUSA_TEST_SYSTEM_CALL to g_return_val_if_fail
* medusa/medusa-rdb-table.h:
* medusa/medusa-test-conf.h:
got rid of some old invalid test vars
* medusa/medusa-text-index-mime-module.c:
(medusa_text_index_mime_module_new),
(medusa_text_index_mime_module_add_mime_type),
(medusa_text_index_mime_module_remove_ mime_type),
(medusa_text_index_mime_module_add_mime_pattern),
(medusa_text_index_mime_module_accepts_mime_type),
(medusa_text_index_mime_module_ref),
(medusa_text_index_mime_module_unref),
(medusa_text_index_mime_module_destroy), (is_valid_mime_type),
(is_valid_mime_pattern), (valid_mime_pattern_to_regexp_string),
(mime_pattern_matches), (dummy_return_words),
(medusa_text_index_mime_module_test):
added code to handle indexing code
* medusa/medusa-text-index-mime-module.h:
basic mime module api.
* medusa/medusa-text-index.c:
* medusa/medusa-text-index.h:
speced out types for text indexing
* tests/medusa-run-tests.c: (main), (medusa_unindexed_search_test):
Got rid of hardcoded tests that don't work anymore.
there should be some new ones at some point
Sun Jun 18 00:41:18 2000 George Lebl <jirka@5z.com>
* medusa/medusa-file-index-queries.c,
medusa/medusa-file-information.c, medusa/medusa-rdb-fields.c,
medusa/medusa-utils.c: include <string.h>
* medusa/medusa-io-handler.c: use G_MAXINT and G_MININT instead of
LONG_MIN and LONG_MAX as that was actually an int and not a long
2000-06-16 Maciej Stachowiak <mjs@eazel.com>
* medusa/medusa-byte.h, medusa/medusa-conf.h,
medusa/medusa-file-index-encoders.h,
medusa/medusa-file-index-queries.h, medusa/medusa-file-index.h,
medusa/medusa-file-information.h, medusa/medusa-hash.h,
medusa/medusa-io-handler.h, medusa/medusa-rdb-fields.h,
medusa/medusa-rdb-index.h, medusa/medusa-rdb-query-private.h,
medusa/medusa-rdb-query.h, medusa/medusa-rdb-record.h,
medusa/medusa-rdb-table-async.h,
medusa/medusa-rdb-table-private.h, medusa/medusa-rdb-table.h,
medusa/medusa-search-service.h, medusa/medusa-test-conf.h,
medusa/medusa-test.h, medusa/medusa-tokenize.h,
medusa/medusa-unindexed-search.h, medusa/medusa-utils.h: Added
#include guards for all of these.
2000-06-16 Rebecka Schulman <rebecka@eazel.com>
* TODO:
* medusa/Makefile.am:
* medusa/medusa-rdb-table-async.c:
(medusa_relational_table_select_cancellable):
* medusa/medusa-rdb-table-async.h:
wrote basic async stuff
* medusa/medusa-rdb-table-private.h:
hid virtual free in private header
* medusa/medusa-rdb-table.c: (medusa_relational_table_insert),
(medusa_relational_table_delete_record),
(medusa_relational_table_free),
(medusa_relational_table_virtual_free), (medusa_rdb_table_test):
added a new virtual_free function, and pointed out
existing bugs in the table freeing code
* medusa/medusa-rdb-table.h:
changed include headers
2000-06-15 Rebecka Schulman <rebecka@eazel.com>
* medusa/medusa-unindexed-search.c:
* medusa/medusa-unindexed-search.h:
* medusa/Makefile.am:
Added slow background search
in synchronous form
* medusa/medusa-file-index-daemon.c: (main):
Switched the process order to enhance debugging
* medusa/medusa-file-index.c: (reindex_directory):
Added new reindex debugging flag
* medusa/medusa-rdb-file.c:
* medusa/medusa-conf.h:
Added indenting info
* medusa/medusa-rdb-query-private.h:
* medusa/medusa-rdb-query.c:
Moved QueryCriterion definition into medusa-rdb-query-private
* medusa/medusa-rdb-table.c:
(medusa_relational_table_delete_record),
(medusa_relational_table_erase_record),
(medusa_relational_table_select_cancellable):
* medusa/medusa-rdb-table.h:
Added skeleton structure for medusa_relational_table_select_cancellable
* tests/medusa-run-tests.c: (main), (number_decode),
(medusa_unindexed_search_test):
Added new test function for unindexed search
2000-06-15 Rebecka Schulman <rebecka@eazel.com>
* medusa/medusa-file-search-daemon.c: (is_cookie_request),
(create_cookie_file), (run_query), (present_query_results),
(parse_transmission), (main), (ensure_index_validity),
(query_request_is_valid), (get_user_key), (get_user_query),
(remove_user_query), (character_to_medusa_rdb_operator),
(medusa_file_index_record_to_full_file_name), (uid_can_read),
(group_contains):
Refactor this code so that it is at least slightly
more readable
2000-06-15 Rebecka Schulman <rebecka@eazel.com>
* medusa/medusa-file-index-daemon.c: (main),
(wait_for_indexing_signal), (do_full_indexing),
(do_fast_reindexing), (indexing_signal_received_callback),
(initialize_socket), (backup_index_files), (copy_new_index_files):
Refactored most of the code to be more
comprehensible, and then added index signal system
* medusa/medusa-search-service.h:
Added some search api suggestions
Added index request names
* medusa/medusa-conf.h:
Fixed typo in lock file name
2000-06-14 Rebecca Schulman <rebecka@eazel.com>
* doc/search_daemon_request_format:
* medusa/medusa-search-service.h:
Put in some commented out suggestions for
the new search service api in
* medusa/medusa-file-index-daemon.c:
* medusa/medusa-file-search-daemon.c:
modified headers
2000-06-14 Maciej Stachowiak <mjs@eazel.com>
* medusa/medusa-file-index-daemon.c: Use mtime, not ctime.
* medusa/medusa-file-index-encoders.c:
(medusa_file_database_mtime_encode,
medusa_file_database_mtime_decode,
medusa_file_index_encoders_test): Likewise.
* medusa/medusa-file-index-encoders.h: Likewise.
* medusa/medusa-file-index-queries.c:
(medusa_file_index_select_files_modified_today,
medusa_file_index_select_files_modified_in_last_seven_days,
medusa_file_index_select_files_modified_this_month,
medusa_file_index_select_files_modified_after_time,
medusa_file_index_select_files_modified_before_today,
medusa_file_index_select_files_modified_before_last_seven_days,
medusa_file_index_select_files_modified_before_this_month,
medusa_file_index_select_files_modified_before_time): Likewise.
* medusa/medusa-file-index.c (medusa_file_system_db_initialize,
reindex_directory, file_index_field_info, medusa_file_index_test):
Likewise.
* medusa/medusa-file-information.c (medusa_file_attributes_new,
medusa_index_file_attributes): Likewise.
* medusa/medusa-rdb-table.c (medusa_rdb_table_test): Likewise.
* tests/database-test.c (main): Likewise.
2000-06-14 Maciej Stachowiak <mjs@eazel.com>
* medusa/medusa-conf.h, medusa/medusa-file-index-daemon.c: Fix
#define for backup lock file.
2000-06-14 Fatih Demir <kabalak@gmx.net>
* configure.in: Added comments.
* medusa-config.in: Added the vfs libs
and cflags to the script.
2000-06-14 Pavel Cisler <pavel@eazel.com>
* medusa/medusa-file-index-daemon.c:
A temporary fix to prevent build-breakage.
2000-06-14 Fatih Demir<kabalak@gmx.net>
* databases/.cvsignore: Hmm, no Makefile.in
wished in the CVS repo, I think.
* .cvsignore: Added the medusa-config script.
* Makefile.am: Added medusa-config.in to the
EXTRA_DIST.
* configure.in: Get the variables necessary for
the medusa-config script and put this
medusa-config script out.
* medusa-config: Removed it from the CVS repo.
* medusa-config.in: Added a generation-base
for the medusa-config script.
2000-06-14 Rebecca Schulman <rebecka@eazel.com>
* medusa/Makefile.am:
* medusa/medusa-conf.h:
added
* medusa/medusa-search-service.h:
added installation
of medusa external header file,
medusa-search-service.h
* medusa/medusa-file-index-queries.c:
* medusa/medusa-file-index-queries.h:
Added new procedure to delete by
directory name. Used the delete by
file name in
* medusa/medusa-file-information.c:
* medusa/medusa-file-index-daemon.c:
* medusa/medusa-file-search-daemon.c:
* medusa/medusa-command-line-daemon.c:
updated headers to deal with new change
2000-06-14 Maciej Stachowiak <mjs@eazel.com>
Task 1339
* medusa/medusa-lock-file.h, medusa/medusa-lock-file.c:
(medusa_lock_file_acquire, medusa_lock_file_release): Anally
correct handling for lock files (even safe for NFS).
* medusa/Makefile.am: Add them to the build.
* medusa/medusa-conf.h: Add extra files for backup database, so
searches can run in the middle of reindexing.
* medusa/medusa-file-index-daemon.c (main): Use lock files properly.
* medusa/medusa-file-search-daemon.c (main): Likewise.
2000-06-13 Rebecca Schulman <rebecka@eazel.com>
* doc/search_daemon_request_format
Defined special communication format
for nautilus level requests.
2000-06-13 Rebecca Schulman <rebecka@eazel.com>
* TODO adding stylistic issues category
* README added warning about indexing time being long, and
fixed search examples to work better
2000-06-13 Rebecca Schulman <rebecka@eazel.com>
Added file
* doc/search_uri_scheme
to specify new search: uri scheme
(actually, gnome-search:)
2000-06-13 Maciej Stachowiak <mjs@eazel.com>
* medusa/medusa-byte.h, medusa/medusa-file-index-daemon.c,
medusa/medusa-file-index.h, medusa/medusa-file-information.c,
medusa/medusa-file-information.h, medusa/medusa-io-handler.c,
medusa/medusa-io-handler.h, medusa/medusa-tokenize.h: Minor
formatting tweaks.
2000-06-13 Rebecca Schulman <rebecka@eazel.com>
* medusa/medusa-rdb-table.c
medusa_rdb_table_select doesn't crash
now whne given tables with 0 records
2000-06-12 Rebecca Schulman <rebecka@eazel.com>
* medusa/medusa-file-index-daemon.c -- fixed
unlink assertions that were buggy
(i thought i already fixed this!)
* medusa/medusa-file-index-queries.c
2000-06-12 Eskil Heyn Olsen <eskil@eazel.com>
* medusa.spec.in: Added a .spec file for packaging medusa to RPM.
* Makefile.am: Added the spec file to extra dist
* configure.in: Generate the spec file
* medusa/Makefile.am: Added some missing headers to noinst
headers.
Medusa now neatly fits into a 72k size rpm.
2000-06-11 Rebecca Schulman <rebecka@eazel.com>
Added makefile to install stoplist file
* Makefile.am
* databases/Makefile.am (new)
* configure.in
Fixed configure script to create
variable MEDUSA_PREFIX, so things
will install correctly.
* acconfig.h (new)
* configure.in
Eliminated unnecessary stuff from the
stoplist
* databases/file-index-stoplist
Fixed configuration file to support
new MEDUSA_PREFIX file
* medusa/medusa-conf.h
Added config.h declarations
* medusa/medusa-file-index-encoders.c
* medusa/medusa-file-index-queries.c
* medusa/medusa-file-index-daemon.c
* medusa/medusa-file-search-daemon.c
2000-06-11 Rebecca Schulman <rebecka@eazel.com>
* configure.in commented out
new config lines that don't work yet
2000-06-11 Rebecca Schulman <rebecka@eazel.com>
* medusa-config -- oops! Forgot
to supply the new build script
2000-06-11 Rebecca Schulman <rebecka@eazel.com>
* Makefile.am -- added the medusa-config
build script reference
* medusa-config the new build script
* medusa/medusa-file-index-queries.c
Added a test stub
* tests/medusa-run-tests.c added
the file index query tests
2000-06-09 Rebecca Schulman <rebecka@eazel.com>
* medusa/medusa-file-index-daemon.c
Added database locking for the concurrent processes
that both write. Unfortunately there are still problems
with this.
* medusa/medusa-file-index-queries.c
* medusa/medusa-file-index-queries.h
Fleshed out the API to include all functions
that are necessary for search within Nautilus.
Wrote all of the functions. They compile
but test code needs to be written.
2000-06-06 Rebecca Schulman <rebecka@eazel.com>
* medusa/medusa-file-index-queries.c
* medusa/medusa-file-index-queries.h
Fixed a few bugs in query generation
Added new functions:
medusa_filename_is_in_index
medusa_file_index_get_directories
This api needs to be determined.
* medusa/medusa-file-index.c
Fixed reindexing to work more
thoroughly, since name additions
to notify all parent directories,
just the immediate one.
2000-06-06 Rebecca Schulman <rebecka@eazel.com>
Added the software to reindex shallowly
every 10 minutes (this number is configurable)
* medusa/medusa-file-index.c
* medusa/medusa-file-index.h
Added reindexing function
* medusa/medusa-file-information.c
* medusa/medusa-file-information.h
Added free function for the file attributes
structure, and a pre stat file attributes
function
* medusa/medusa-conf.h --added variables
for hash tables sizes, file index lock file,
and filename indexing interval
New files include
* medusa/medusa-file-index-queries.c
* medusa/medusa-file-index-queries.h
These files will perform common queries with
a convenient api. The first cut of the api
will match the needs of nautilus
* medusa/medusa-utils.c
* medusa/medusa-utils.h -- location for
general utility functions
* Makefile.am -- reorganized and added source
files
2000-06-06 Rebecca Schulman <rebecka@eazel.com>
Added new capabilities to the file indexer
to allow it to respond to file indexing
requests, and also to do shallow reindexing
of file names every n minutes.
* medusa/medusa-file-index-daemon.c
Added major capabilities to the file
as above, so that it now runs three processes
one waiting for search requests, one doing
quick reindexing, and one doing full reindexing.
* medusa/medusa-conf.h Added INDEX_SOCKET_PATH
and changed old SOCKET_PATH to
SEARCH_SOCKET_PATH. The indexing path is
for the indexer's index requests, and the
search path is for the search daemon's
search requests
* medusa/medusa-file-search-daemon.c Changed
SOCKET_PATH to SEARCH_SOCKET_PATH,
and fixed a buggy return value
* medusa/medusa-command-line-search.c
Changed SOCKET_PATH to SEARCH_SOCKET_PATH
since there is now a second INDEX_SOCKET_PATH
Added new cvs ignore files
databases/.cvsignore
tests/data/.cvsignore
2000-06-01 Rebecca Schulman <rebecka@eazel.com>
Fixed a few minor bugs in the file
searching.
* medusa/medusa-command-line-search.c -- parses
the string equals symbol now (^)
* medusa/medusa-file-search-daemon.c -- fixed
a memory error in query generation
* medusa/medusa-rdb-query.c -- fixed
string equal to use strcmp
Added a few more tests
* medusa/medusa-rdb-table.c
2000-05-31 Rebecca Schulman <rebecka@eazel.com>
Added build stuff to medusa.
* scripts
* scripts/m-clean
* scripts/m-rerun
2000-05-31 Rebecca Schulman <rebecka@eazel.com>
The file index daemon and the search daemon
should both work now, with the operators
listed in medusa-rdb-query.h
* medusa/medusa-file-index-daemon.c The
file indexer now erases everything and writes
new files when reindexing. Not reindexing
isn't really any slower, and avoids
lots of bugs
* medusa/medusa-file-search-daemon.c Added
the new operator capability (see below)
and a shell for a test script
(writing this would be welcome!)
Fixed the typing issues in the
querying, by separating string equals,
and number equals, and assuming types
for regexp (string), less than and
greater than (number). Changing the
available operators changed code that
had used the query api up until this point.
* medusa/medusa-rdb-query.c
* medusa/medusa-rdb-query.h
* medusa/medusa-file-information.c
Added lots of new test code, including
tests for
* medusa/medusa-file-index-encoders.c
* medusa/medusa-file-index-encoders.h
(added sig)
* medusa/medusa-file-index.c
* medusa/medusa-file-index.h (added sig)
* medusa/medusa-rdb-table.c
* medusa/medusa-rdb-table.h
* medusa/medusa-test-conf.h
* tests/medusa-run-tests.c
* README Updated examples for msearch
* medusa/medusa-conf.h Changed group and
owner field size values to use int instead
of system types. This may need to be fixed
later
* medusa/medusa-file-index-encoders.h
Changed the system types on the encoder and
decoder signatures. They use int instead.
* medusa/medusa-hash.c Added checks for
receiving bad keys
* medusa/medusa-rdb-fields.c Cleaned up
get field contents procedure
2000-05-30 Rebecca Schulman <rebecka@eazel.com>
Made the file tests work with the exception of
dealing with loading file fields, and getting
the rest of the info from static tables,
which will be my next change. Tests that
pertain to this feature have been commented out
* medusa/medusa-rdb-file.c
* medusa/Makefile.am Got rid of medusa-test
binary in this directory. It is now in the
test directory
Changed the rdb-fields api to get rid of
extraneous "_by_title" endings and to
separated the meaning of getting
field structures and field contents.
This affected all files that currently use
the medusa-rdb-fields.h api
* medusa/medusa-rdb-fields.h
* medusa/medusa-rdb-fields.c
* medusa/medusa-file-index-encoders.c
* medusa/medusa-file-information.c
* medusa/medusa-file-search-daemon.c
* medusa/medusa-rdb-query.c
Fixed an error in the test data file
names
* medusa/medusa-test-conf.h
2000-05-30 Rebecca Schulman <rebecka@eazel.com>
* medusa/medusa-file-search-daemon.c Updated file search daemon to
use new encode and decode functions
Got rid of underscores in struct names, and
moved struct definitions to .c files from
.h files, where appropriate. Added commentary
to many files
* medusa/medusa-rdb-file.h Changed struct name
* medusa/medusa-byte.h Added explanation of the file
* medusa/medusa-conf.h Added free software header, and
commentary on the file
* medusa/medusa-file-index.h Changed struct name and added
commentary
* medusa/medusa-file-information.c moved struct into file
and encode and decode functions out
* medusa/medusa-file-information.h moved struct out and changed
struct name
* medusa/medusa-hash.c Changed medusa_io_handler_new_handler
function name to medusa_io_handler_new
* medusa/medusa-io-handler.h
* medusa/medusa-io-handler.c
* medusa/medusa-hash.h Changed structure name
* medusa/medusa-rdb-query.c Moved in structure name
* medusa/medusa-rdb-query.h Changed structure name and moved it
to .c file
* medusa/medusa-rdb-table.c Added commentary
* medusa/medusa-rdb-table.h Added commentary and changed
structure name
* medusa/medusa-tokenize.h Changed structure name, and added
commentary
Redid the testing framework for medusa.
Each file should now have its own test class at
the end, and macros have been added in
tests/medusa-test.h to check results.
* medusa/medusa-rdb-file.c Added new testing function
* medusa/medsa-rdb-file.h Added signature for testing function
* medusa/.cvsignore Added attic directory and medusa-test
binary. Attic has the old files that you don't want on the
repository.
* medusa/medusa-test-conf.h Added configuration file
for testing
* medusa/medusa-test.c Added test functions (macros
for running tests )
* medusa/medusa-test.h Added header file for above.
Include this in files that you run tests with
* tests/medusa-run-tests.c Added program to run
tests. It compiles into tests/medusa-test-run, which
should be run to test all testing functions
Removed the old testing files
* tests/byte-test.c
* tests/database-test.c
* tests/medusa-file-index-test.c
* tests/medusa-rdb-test.c
* tests/medusa-tokenize-test.c
Fixed many of the encoders to take the file_system_db as dat
* medusa/medusa-file-index-encoders.c Changed encoders to
get size information from the field_info structure instead
of #define variables
* medusa/medusa-file-index-encoders.h Changed signatures to
reflect parameter changes necessary for above
2000-05-25 Rebecca Schulman <rebecka@eazel.com>
The big change here is building encoding and decoding functions into
the MedusaRelationalDatabaseField structure. The big change here
is that it removes all of the ugly casting and that sort of thing,
and makes reading the data format really easy, and thus doing
compares and matches really easy.
* medusa/Makefile.am Added new files for compilation
* medusa/medusa-conf.h Added comments
* medusa/medusa-file-index.c Changed the old memcpy record encoding
to use the new MedusaRDBField encode
and decode functions
* medusa/medusa-file-information.c Changed debugging reporting
th use the encode and decode functions
* medusa/medusa-file-information.h changed MedusaFileAttributes to
keep track of actual strings rather
than tokens
* medusa/medusa-rdb-fields.c added new functions to support encoding
* medusa/medusa-rdb-fields.h
* medusa/medusa-rdb-file.c updated field_add to take encode and
decode functions
* medusa/medusa-rdb-file.h
* medusa/medusa-rdb-query.c added new operators to the select function
Added files
* medusa/medusa-file-index-encoders.h file index database encoder spec
* medusa/medusa-file-index-encoders.c file index database encoders
2000-05-25 Rebecca Schulman <rebecka@eazel.com>
* medusa/.cvsignore Had cvs ignore results of compilation
* tests/.cvsignore
* databases/.cvsignore
* medusa/medusa-command-line-search.c
Separate operator, operand and field name
by spaces when sending them to the server
* medusa/medusa-file-search-daemon.c
Added ability to deal with multiple kinds
of operators, include "=", ">", "<", and
"~" (regexp match)
2000-05-25 Rebecca Schulman <rebecka@eazel.com>
* README made the readme usable. Please read it!
* doc/flags added SEARCH_DAEMON_DEBUG debug flag
* medusa/medusa-conf.h
* medusa/medusa-command-line-search.c
Can receive results now. Prints file names to stdout
* medusa/medusa-file-search-daemon.c
Receives file names and checks for permissions on std unix
file systems and only returns to the user files they have permission
to read. Feel free to try and break the security model and report bugs.
2000-05-25 Rebecca Schulman <rebecka@eazel.com>
* TODO Added new items
2000-05-24 Rebecca Schulman <rebecka@eazel.com>
* medusa/medusa-conf.h Changed database field names to omit spaces
* medusa/medusa-rdb-fields.c Fixed field name -> size bug. Halts if given valid field name
* medusa/medusa-rdb-table.c fixed casting error, and changed g_list_append to g_list_prepend
in initial table creation
* tests/Makefile.am added file-database-test to tests
* tests/database-test.c made it medusa-conf.h compliant
* medusa/medusa-file-search-daemon.c
actual creates queries and talks to the file database.
prints file name results. Does not filter them for permissions!
please be careful with this code! IT is a serious, serious, security
hole. Thank you.
2000-05-24 Rebecca Schulman <rebecka@eazel.com>
* medusa/medusa-file-search-daemon.c
Creates queries now.
* medusa-file-index.c
Fixed bug with checking stoplist files
Added files
* databases/file-index-stoplist
added list of files to skip during indexing
2000-05-24 Rebecca Schulman <rebecka@eazel.com>
* medusa/Makefile.am
Added ability to compile command line tool
* medusa/medusa-command-line-search.c
Removed unneeded headers
2000-05-24 Ramiro Estrugo <ramiro@eazel.com>
* .cvsignore
* doc/.cvsignore
* medusa/.cvsignore
* tests/.cvsignore
cvsignore generated files.
2000-05-24 Rebecca Schulman <rebecka@eazel.com>
* medusa/medusa-command-line-search.c
* medusa/medusa-file-search-daemon.c
Fixed cookie communication with keys.
2000-05-24 Rebecca Schulman <rebecka@eazel.com>
* medusa/medusa-command-line-search.c
* medusa/medusa-file-search-daemon.c
Added cookie communication
2000-05-23 Ramiro Estrugo <ramiro@eazel.com>
* autogen.sh:
New file. Added to be unbreak build.
2000-05-23 Rebecca Schulman <rebecka@eazel.com>
* medusa/medusa-file-index-daemon.c Removed #define stuff, and
added it to medusa-conf.h
* medusa/medusa-file-index.h Removed #define stuff, and
added it to medusa-conf.h
* medusa/medusa-file-index.c Included medusa-conf.h
* medusa/medusa-file-information.c Included medusa-conf.h
* medusa/medusa-file-search-daemon.c Can receive data, beginnings
of cookie architecture
* medusa/
Added file
* medusa/medusa-conf.h Collection of configuration variables
* medusa/medusa-command-line-search.c Command line tool that
will serve as a test/command line tool for the file database
2000-05-23 Maciej Stachowiak <mjs@eazel.com>
bugzilla.eazel.com task #936, make medusa use autoconf and make it
part of the eazel build.
* Makefile: Removed
* configure.in, Makefile.am, doc/Makefile.am, tests/Makefile.am:
Spiffy new Autoconf/Automake setup.
* tests/medusa-file-index-test.c (main): Don't gnome_init
* tests/medusa-io-handler-test.c (main): Don't gnome_init
* macros/*: removed.
* databases/dummy: Empty file to make this dir check out when you
cvs uopdate -dP
5-23 Rebecca Schulman <rebecka@eazel.com>
medusa/medusa-file-index.c Adding debugging tags
medusa/medusa-file-information.c
medusa/medusa-rdb-fields.c
medusa/medusa-rdb-file.c
medusa/medusa-rdb-query.c
medusa/medusa-rdb-table.c
medusa/medusa-file-search-daemon.c Should accept connections (doesn't do anything else, yet)
Makefile added make for search daemon, changed indexer name to
file-indexd
Added files:
docs/flags list of debugging flags and their meanings
5-23 Rebecca Schulman <rebecka@eazel.com>
medusa/medusa-file-information.c removed encoding on permissions, etc. fields
they are just written to the database raw now
medusa/medusa-rdb-fields.c fixed bug in medusa_relational_database_record_get_by_number
medusa/medusa-rdb-query.c added error checks in query_criterion_match and removed some
debug tags
medusa/medusa-rdb-table.c Added replacement capability so that files can be deleted, and
the space is later used for insertion
fixed a few bugs in deletion
5-23 Rebecca Schulman <rebecka@eazel.com>
Massive bug fixes. A file indexing daemon that should work to store
and retreive file and directory names. The search daemon is started.
Makefile medusa/medusa-file-index.c medusa/medusa-file-index.h
medusa/medusa-file-information.c
medusa/medusa-file-information.h medusa/medusa-io-handler.c
medusa/medusa-io-handler.h medusa/medusa-rdb-fields.c
medusa/medusa-rdb-fields.h medusa/medusa-rdb-file.c
medusa/medusa-rdb-query.c medusa/medusa-rdb-query.h
medusa/medusa-rdb-table.c medusa/medusa-rdb-table.h
medusa/medusa-tokenize.c medusa/medusa-tokenize.h
Added Files:
medusa/medusa-byte.c medusa/medusa-byte.h
medusa/medusa-file-index-daemon.c
medusa/medusa-file-search-daemon.c tests/byte-test.c
5-19-2000 Rebecca Schulman <rebecka@eazel.com>
* medusa-file-index.c Added file indexing capabilities
medusa-file-index.h
medusa-rdb-file.c
medusa-rdb-file.h
medusa-file-information.c
medusa-file-information.h
* medusa-rdb-index.c Architecture for future file indexing
medusa-rdb-index.h
* medusa-rdb-query.c
medusa-rdb-query.h
* medusa-rdb-fields.c Fixed memory issues in here. More are undoubtedly still there
medusa-rdb-fields.h
medusa-rdb-record.h
medusa-tokenize.c
medusa-tokenize.h
medusa-io-handler.c
medusa-io-handler.h
* Makefile add new files, ability to test file indexer
* doc/ui.txt changed some design issues for nautilus ui
5-15-2000
Rebecca Schulman rebecka@eazel.com
Added basic equivalence selection functionality
5-15-2000
Rebecca Schulman rebecka@eazel.com
Added simple relational database. Select functionality doesn't work yet.
Should compile and run a few things.
2000-05-12 Miguel de Icaza <miguel@gnu.org>
* configure.in (MEDUSA_LIBS): Close the AC_OUTPUT.
5-11-2000
This doesn't work right now! It does not have a configure script, or
any of those sorts of goodies! There is code that doesn't compile!
Please don't complain about this right now. It will be righted in a
day or two.
What it does have:
data structures: a tokenizer, and an io-handler, to permit easy
mmap'ed io.
tests for these data structures
an api for a simple relational database like thing