Age | Commit message (Collapse) | Author | Files |
|
|
|
|
|
|
|
|
|
|
|
* Makefile.am: Restore ACLOCAL_AMFLAGS
* configure.ac: Restore AC_CONFIG_MACRO_DIR.
Call AC_USE_SYSTEM_EXTENSIONS and AX_THREAD_NAMES
* am/ax_thread_names.m4: New file.
* src/thread_name.c: New file.
* src/Makefile.am: Add thread_name.c
* src/wydawca.h (wy_set_cur_thread_name): New proto.
* src/net.c: Set thread names.
* src/triplet.c: Likewise.
* src/wydawca.c: Likewise.
|
|
* src/net.c (handle_connection): Ignore user/comment.
* tests/.gitignore: Add wyclt.
* tests/wyclt.c: New file.
* tests/Makefile.am (TESTSUITE_AT): Add new tests.
* tests/unp-idle.at: New test.
* tests/unp00.at: New test.
* tests/unp01.at: New test.
* tests/testsuite.at (AT_WYDAWCA_DAEMON): Change arguments.
(AT_WYDAWCA_INOTIFY_DAEMON): New macro.
Include new tests.
|
|
timeouts.
* src/config.c: New statements: max-connections and idle-timeout
* src/net.c (max_connections,idle_timeout): New globals.
(handle_connection): Take single FILE* as argument.
(connection_start,connection_stop): New functions.
(wy_thr_tcpmux,wy_thr_connection_watcher): New functions.
(wy_thr_listen): Start wy_thr_connection_watcher thread if tcpmux
listener is enabled.
Start a separate thread to process each incoming connection.
* src/wydawca.h (max_connections,idle_timeout): New externs.
(wy_thr_tcpmux,wy_thr_connection_watcher): New protos.
|
|
* NEWS: Update.
* configure.ac: Version 3.1.95
* src/Makefile.am (wydawca_SOURCES): Remove job.c
(LDADD): Link with libpthread.
* src/job.c: Remove.
* src/config.c: Remove the wakeup-interval statement.
* src/net.c (wydawca_listener): Rewrite as a thread function
wy_thr_listen.
* src/timer.c (timer_get): Use thread-specific storage.
(timer_get_count): Remove.
* src/triplet.c: Rewrite using multi-thread model.
* src/wydawca.c: Likewise.
* src/wydawca.h: Update.
* tests/check-fail.at: Update expected output.
* tests/check-notify.at: Likewise.
* tests/inotify-ok.at: Likewise.
* tests/inotify-rmsymlink.at: Likewise.
* tests/inotify-symlink.at: Likewise.
* tests/inotify-unatt00.at: Likewise.
* tests/inotify-unatt01.at: Likewise.
* tests/upl12f.at: Likewise.
* tests/upload-dry.at: Likewise.
`
|
|
* src/job.c (job_printable): Improve job identification.
(wydawca_scanner): Don't log statistics in single process mode.
(job_queue_wait): New function.
* src/net.c (wydawca_listener): Move the call to job_init to main.
* src/process.c (scan_spool_unlocked): Enqueue the triplet.
Don't call spool_commit_triplets
* src/triplet.c (remove_triplet): Omit checks in dry-run mode.
(triplet_processor,spool_commit_triplets)
(count_collected_triplets): Remove.
* src/wydawca.c (main): Call job_queue_wait if not daemon.
* tests/inotify-unatt01.at: Update expected output.
* tests/upload-dry.at: Likewise.
|
|
Previously wydawca used to take optional second parameter - a list of
submitter UIDs. If given this list, it would process only those triplets
that had been uploaded by one of these UIDs. This proved to be
unnecessary.
The same change is applied to the notification protocol. Only the spool
name is required. The second word in the request (user name) is now
silently ignored.
* src/wydawca.h (struct wy_triplet): Remove const qualifier from the
spool member. Remove jq_prev and jq_next pointers.
(struct job_spool_id): Remove.
(job_schedule_spool): Change signature.
* src/job.c (struct job): Replace job_spool with a pointer to
spool.
(triplet_jq_unlink,jq_clear): Remove.
(job_printable): Change formatting of JOB_SPOOL jobs.
(job_locate): Update.
(wydawca_scanner): Update.
* src/net.c (handle_connection): Ignore second word in the request.
* src/process.c (spool_add_new_file): Change signature. UIDs are
no longer needed.
Return a pointer to the affected triplet.
(scan_spool): Change signature.
* src/triplet.c (register_file): Return pointer to the affected triplet.
(check_triplet_state): Remove the noauth parameter.
(triplet_enqueue): New function.
(triplet_commit): New function.
(spool_commit_triplets): Remove the tplist parameter. Process all
complete triplets in the spool.
(link_processable_triplets): Remove.
* src/verify.c (verify_directive_file): Remove the noauth parameter.
* src/watcher.c (process_event): Enqueue created triplets.
* src/wydawca.c (main): Don't take any UID arguments.
* tests/inotify-ok.at: The version statement is printed once. Update
the expected output.
* tests/inotify-rmsymlink.at: Likewise.
* tests/inotify-symlink.at: Likewise.
* tests/inotify-unatt01.at: Likewise.
|
|
* src/watcher.c (fopenat_ro): New function.
* src/verify.c (fill_project_name): Use fopenat_ro.
* src/gpg.c (recursive_rmdir): return silently if the directory
does not exist.
(verify_directive_signature): Use fopenat_ro.
* src/job.c: Change state definitions from bitmask to enum.
* src/triplet.c (triplet_processor): A pointer to the spool is passed
in proc_data. Process only triplets with this spool.
(triplet_processor): Modify accordingly.
Facilitate writing tests for daemon mode.
* src/wydawca.c (cron_option,daemon_mode): Remove.
(wy_mode, wy_mode_option): New variables.
(main): Use wy_mode to determine operating mode.
* src/wydawca.h (daemon_mode): Remove extern.
(wy_mode): New extern.
* src/cmdline.opt: New option --daemon.
* src/config.c: Change handling of the "daemon" statement.
* src/net.c: Test hook: if WYDAWCA_NOTIFY_PARENT=1 send SIGUSR1
to parent after setting up the listener.
* doc/wydawca.texi: Describe the --daemon option.
Testsuite:
1. Place source and destination directories in the working directory
for each particular test. Thus the spool cleanup function becomes
unnecessary.
2. Add tests for wydawca daemon mode (inotify).
* configure.ac (WY_INOTIFY): New substitution variable for use in
testsuite.
* tests/wyasync.c: New source. Auxiliary program to test wydawca
daemon mode.
* tests/wyinit.c: New source. Extract source and destination directory
names from the wydawca configuration file and create missing directories.
* tests/Makefile.am: Build wyasync and wyinit.
(TESTSUITE_AT): Add inotify-ok.at
* tests/atlocal.in (WY_INOTIFY): New variable.
(wydawca_init_testdirs): Remove.
(wydawca_clean_testdirs): Remove.
(wydawca_config): Call wyinit to initialize spools and
destinatiuon directories.
(wydawca_upload): Change source directory.
* tests/etc/mailstats.cfin: Put mail.out in CWD.
* tests/etc/notify.cfin: Likewise.
* tests/etc/wydawca.cfin: Add pidfile statement in case wydawca
is run as daemon.
Place all source and destination directories in CWD.
* tests/testsuite.at (AT_WYDAWCA_DAEMON): New macro.
* tests/inotify-ok.at: New test.
* tests/check-fail.at: Update.
* tests/check-notify.at: Update.
* tests/check-ok.at: Update.
* tests/mailstats.at: Update.
* tests/notify-upl.at: Update.
* tests/upl11.at: Update.
* tests/upl12f.at: Update.
* tests/upl12t.at: Update.
* tests/upload-dry.at: Update.
* tests/upload.at: Update.
|
|
|
|
This ensures that eventual submissions that may have occurred
during daemon restarts will be duly processed.
* src/wydawca.h (fake_spool, inotify_spool): Remove pseudo-spools.
(dictionaries_close): New proto.
(job_schedule): New proto.
(job_schedule_all, job_schedule_triplet)
(job_schedule_spool): New inline functions.
* src/job.c (struct job): New member "type".
Move spool and uid to union v. Each job can have
either triplet list or (spool,uid) pair, but not both.
(fake_spool, inotify_spool): Remove.
New member "printable".
(job_locate): Rewrite.
(wydawca_scanner): Rewrite.
(job_destroy): New function.
(schedule_job): Remove.
(job_schedule): New function.
(job_printable): New function.
(all functions): Use job_printable to identify jobs in diagnostic
messages.
* src/net.c (handle_connection): Use job_schedule_spool or
job_schedule_all depending on the request.
* src/process.c (dictionaries_close): New function.
(scan_all_spools): Don't close dictionaries.
* src/watcher.c (process_event): Initiate the job using
job_schedule_triplet().
* src/wydawca.c (main): Don't allow extra arguments in daemon mode.
Call scan_all_spools before entering wydawca_daemon to register
existing files.
Close dictionaries before closing modules.
|
|
|
|
|
|
|
|
Rename logmsg to wy_log.
|
|
The new framework is to be general-purpose; the mail notification
is implemented as a module.
Althoug the program is operational, the change is not completed yet.
In particular, the docs are out of date and the tests will mostly
fail.
* .gitignore: Update.
* Makefile.am (SUBDIRS): Add modules.
* configure.ac: Mailutils is now optional (though highly
recommended).
(AC_CONFIG_FILES): Build modules/Makefile and modules/mailutils/Makefile.
* modules/Makefile.am: New file.
* modules/mailutils/Makefile.am: New file.
* modules/mailutils/mod_mailutils.c: New file.
* src/mail.c: Remove.
* src/mail.h: Remove.
* src/event.c: New file.
* src/Makefile.am (wydawca_SOURCES): Update.
(LDADD): Remove MAILUTILS_LIBS.
* src/config.c: Remove mail-related configuration statements.
Add module-related ones instead.
* src/wydawca.h (notification_event) <ev_statistics>: New event.
(notification_target): Remove.
(notification) <tgt,sign_keys,msg>: Remove.
<statmask>: New member.
(register_message_template): Remove.
(notify_stats,notify_flush): New protos.
(notification_target_str): Remove.
(format_fn): Remove.
(module) <next,modinit,open>
<flush,close>: New members.
<notify>: Change signature.
(modules_close, module_set_init)
(module_flush): New protos.
(debug_level): Rename to wy_debug_level. All uses changed.
(wy_version): New extern.
(admin_stat_message,admin_stat_sign_key): Remove.
(default_notification): New global.
(triplet_expand_param,triplet_expand_dictionary_query): The
file_triplet argument is const pointer.
(assert_string_arg): Rename to wy_assert_string_arg.
* src/wydawca.c (debug_level): Rename to wy_debug_level.
(wy_version): New global.
(logstats): Call notify_stats.
(main): Call modules_close.
* src/module.c: Keep modules in a singly-linked list instead
of a symtab.
Provide new functions.
* src/net.c: Update.
* src/dictionary.c: Update.
* src/directive.c: Update.
* src/diskio.c: Update.
* src/exec.c: Update.
* src/gpg.c: Update.
* src/job.c (wydawca_scanner): Call notify_flush.
* src/null.c: Update.
* src/process.c: Update.
* src/sql.c: Update.
* src/tcpwrap.c: Update.
* src/triplet.c: Update.
* src/verify.c: Update.
* src/watcher.c: Update.
|
|
* src/wydawca.h (file_triplet) <jq_prev,jq_next,job>: New members.
(spool_commit_triplets,schedule_job): Update signature.
(count_processable_triplets): Remove.
(link_processable_triplets): New proto.
(remove_triplet): New proto.
(triplet_jq_unlink): New proto.
* src/job.c (job) <triplet_list>: New member.
(triplet_jq_unlink,jq_clear): New functions.
(procspool): Create and stop spool timers.
(wydawca_scanner): Call spool_create_timers.
(schedule_job): Additional argument specifies triplets
to process.
Initialize job->triplet_list;
(job_queue_runner): Call jq_clear.
* src/net.c (handle_connection): Update call to
schedule_job.
* src/process.c (spool_cwd_add_new_file): Update call to
spool_commit_triplets.
* src/triplet.c (remove_triplet): Now extern. Takes two args.
All uses updated.
(spool_commit_triplets): Additional argument specifies triplets
to process.
(count_processable_triplets): Remove.
(link_processable_triplets): New function.
* src/watcher.c: Use link_processable_triplets to obtain a
doubly-linked list of triplets to process. Pass it to
schedule_job.
|
|
|
|
Remove the expired and invalid triplets in the master process.
* src/job.c (job_queue_runner): Take estimated minimal
interval as an argument. Set timer even if no wake-up
is scheduled.
* src/net.c: Call triplet_sweep to sweep off expired
triplets and estimate minimal timeout for job_queue_runner.
* src/triplet.c: Link all registered triplets into a doubly-
linked list ordered by the triplet age, in descending order.
Use that list to estimate minimal timeout.
(triplet_list): New variable.
(triplet_timestamp, triplet_ttl)
(triplet_list_unlink,triplet_list_insert_before)
(triplet_list_ordered_insert): New static functions.
(register_file): Insert triplet into the list.
(triplet_expired_p): Take one argument. Obtain the ttl
from the associated spool. Fix condition.
(remove_triplet): Remove triplet from the list and symtab.
(triplet_sweep): New function.
(triplet_counter): Remove bad and expired triplets.
(triplet_remove_file): Call remove_triplet.
* src/wydawca.h (file_triplet) <next,prev>: New members.
(triplet_sweep): New proto.
(job_queue_runner): Change signature.
|
|
* configure.ac: New option --with-inotify.
Bye default, use inotify if it is present.
* src/watcher.c: New file. Implements inotify watcher.
* src/Makefile.am [COND_INOTIFY] (wydawca_SOURCES): Add watcher.c
* src/diskio.c (dir_get_path): New function.
* src/job.c (job) <spool>: Remove const qualifier. All uses changed.
(inotify_spool): New pseudo-spool.
(fake_spool): Remove static qualifier.
(wydawca_scanner): Support for inotify spools.
* src/net.c (open_listener): Don't exit if the listener
address is not set.
(wydawca_listener): Listen on the listener socket and
on the inotify descriptor. If none is set, bail out.
* src/process.c (for_each_spool)
(file_info_cleanup)
(spool_cwd_add_new_file,spool_add_new_file): New functions.
(scan_spool_unlocked): Use spool_cwd_add_new_file.
Don't initialize dictionaries here: it will be done in
spool_commit_triplets.
(spool_open_dictionaries): New function.
(close_dictionaries): Rename to spool_close_dictionaries.
Clear dict_inited.
* src/triplet.c (hash_triplet_compare): Compare spools as well.
(register_file): Likewise.
(triplet_lookup): New function.
(check_triplet_state): New argument: noauth. All uses updated.
(enumerate_triplets): Rename to spool_commit_triplets.
Call spool_open_dictionaries.
(count_processable_triplets,triplet_remove_file): New functions.
* src/verify.c (verify_directive_file): New argument: noauth.
All uses updated.
* src/vtab.c (reg): Initialize get_path member.
(get_path): New function.
* src/wydawca.c (main): Set print_version_hook.
* src/wydawca.h (virt_tab) <get_path>: New method.
(spool) <dict_inited>: New member.
(fake_spool, inotify_spool): New externs.
(spool_add_new_file, spool_cwd_add_new_file)
(spool_open_dictionaries, spool_close_dictionaries)
(for_each_spool, count_processable_triplets)
(triplet_remove_file, get_path): New protos.
(enumerate_triplets): Rename to spool_commit_triplets.
(verify_directive_file): Take two arguments.
|
|
|
|
* bootstrap: Rewrite.
* bootstrap.conf: Remove.
* configure.ac: Remove gl_EARLY/gl_INIT
* src/backup.c: New file.
* src/txtacc.c (txtacc_finish): Make sure a new entry is
appended only once to the list.
* (all sources): Use grecs memory allocation functions.
* src/wydawca.h" Include fnmatch.h and regex.h
(backup_type): New enum.
(simple_backup_suffix): New extern.
(find_backup_file_name): New proto.
* tests/bkupname.c: New file.
* tests/backup00.at: New file.
* tests/backup01.at: New file.
* tests/backup02.at: New file.
* tests/backup03.at: New file.
* tests/Makefile.am: Add new tests.
* tests/testsuite.at: Add new tests.
* grecs: Update.
|
|
* Makefile.am (ChangeLog): Use git2chg.awk.
* bootstrap.conf (gnulib_modules): Don't access grecs/gnulib.modules.
* configure.ac (GRECS_SETUP): Add options.
* gnulib.modules (getopt,gitlog-to-changelog)
(hash,error,version-etc): Remove.
* src/Makefile.am: Remove getopt.m4, use one from grecs.
* src/getopt.m4: Remove.
* src/cmdline.opt: Rewrite.
* src/config.c: Update.
* src/wydawca.h (spool) <aliases>: Change data type.
(all_spool_aliases): Change data type.
(config_finish): New proto.
* src/wydawca.c: Use grecs functions.
* src/dictionary.c: Likewise.
* src/net.c: Likewise.
* src/process.c: Likewise.
* src/mail.c: Use grecs_symtab.
* src/timer.c: Likewise.
* src/triplet.c: Likewise.
|
|
* src/config.c (event_args): New event "check-failure"
(event_types): New event type ev_check_fail.
(spool_kw,wydawca_kw): New keyword check-script.
* src/directive.c (save_script)
(stderr_redirector,run_check_script): New functions.
(external_check): New function.
(process_directives): Call external_check before actually
moving the files.
* src/gpg.c (homedir): Rename to temp_homedir, now global.
* src/net.c (trim_crlf): Remove static qualifier.
* src/triplet.c (hash_triplet_free): Free check_diag.
(expand_triplet_full,expand_triplet_upload)
(expand_triplet_sig,expand_triplet_directive): Rename to
expand_triplet_ls_full,expand_triplet_ls_upload,
expand_triplet_ls_sig,expand_triplet_ls_directive, correspondigly.
(expand_check_diagn,expand_check_result)
(expand_triplet_dist,expand_triplet_sig)
(expand_triplet_dir): New functions.
(triplet_meta): Renames:
triplet:full => triplet:ls:full
triplet:upload => triplet:ls:upload
triplet:dist => triplet:ls:dist
triplet:sig => triplet:ls:sig
triplet:dir => triplet:ls:dir
New keywords: triplet:dist, triplet:sig, triplet:dir,
check:result, check:diagn.
* src/wydawca.c (default_check_script): New global.
(stat_name): New statistics counter "check failures".
* src/wydawca.h (struct file_triplet): New members
check_result, check_diag.
(struct spool): New member check_script.
(wydawca_stat): New value STAT_CHECK_FAIL.
(notification_event): New value ev_check_fail.
(default_check_script, temp_homedir): New externs.
(concat_dir, copy_file, trim_crlf): New protos.
* doc/wydawca.texi: Update.
* configure.ac, NEWS: Version 2.0.90
|
|
Updated year in copyright statements.
|
|
* configure.ac: Check for libwrap.
* src/tcpwrap.c: New file.
* src/Makefile.am (wydawca_SOURCES): Add tcpwrap.c
* src/builtin.c, src/job.c, src/pidfile.c: Minor fixes.
* src/config.c (assert_string_arg): Change to extern.
(wydawca_kw): New block statement "tcp-wrapper"
* src/net.c (wydawca_listener): Check fd using libwrap.
* src/triplet.c (DECL_EXPAND_TIMER): Add missing return statement.
|
|
* src/lock.c: New file.
* gnulib.modules (sysexits, xgethostname): New modules.
* src/lock.c: New file.
* src/Makefile.am: Add lock.c
* src/config.c: Locking keywords.
* src/job.c: Requeue jobs if locking fails.
* src/wydawca.c (wydawca_uid): Rename to wydawca_set_uid
(main): Implement restart.
* src/process.c (scan_spool, scan_all_spools): Use locking, if configured.
* src/directive.c, src/diskio.c, src/triplet.c: Rename
wydawca_uid
* src/exec.c, src/getopt.m4, src/net.c,
src/pidfile.c: Use standard error codes from sysexits.h
* tests/etc/wydawca.rcin: Disable locking.
|
|
* gconf/gconf-gram.y: Provide created lists with appropriate equal tests.
Special handling for lists of strings.
* src/cmdline.opt: Minor fix.
* src/config.c: New keyword all-spools.
* src/job.c: Hanlde "all spools" requests.
* src/net.c: Likewise.
* src/process.c (spool_check_alias): Rewrite using gl_list_search
(scan_directories): Rename to scan_all_spools.
(spool_create_timers): New function.
* src/wydawca.c (all_spool_aliases): New global.
(initstats): New function.
* src/wydawca.h: Add new declarations.
|
|
* gconf/gconf-gram.y (string_to_sockaddr_: Take struct gconf_sockaddr as the
first argument.
* gconf/gconf.h (struct gconf_sockaddr): New data type.
* src/job.c, src/net.c, src/pidfile.c: New files.
* src/Makefile.am (wydawca_SOURCES): Add job.c, net.c, pidfile.c
* src/cmdline.opt: New options: --cron (change semantics), --force,
--foreground, --single-process, --spool
* src/wydawca.c: New daemon mode.
* src/config.c: New statements: spool.alias, daemon, foreground,
single-process, wakeup-interval, pidfile, listen
* src/directive.c, src/diskio.c, src/gpg.c, src/mail.c, src/null.c,
src/process.c, src/triplet.c, src/verify.c, src/vtab.c, src/wydawca.h: use
static struct spool wherever feasible.
* src/triplet.c: New meta-variable "spool"
* tests/etc/wydawca.rcin: Update.
* tests/upload-dry.at: Update.
|