| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* configure.in: Remove --enable-server option. Allways add the
cygserver directory to $SUBDIRS.
* configure: Regenerate.
cygwin/ChangeLog:
Remove USE_SERVER define. Accommodate throughout.
* configure.in: Remove --enable-server option.
* configure: Regenerate.
* environ.cc: Remove CYGWIN=server setting.
cygserver/ChangeLog:
* client.cc (allow_server): Remove variable.
(client_request_get_version::client_request_get_version): Drop checking
allow_server.
utils/ChangeLog:
* passwd.c: Remove CYGWIN=server requirement from usage text.
doc/ChangeLog:
* cygserver.sgml: Remove the "How to use the Cygserver services"
section.
* cygwinenv.sgml: Move "(no)server" to the removed options section.
* faq-programming.xml: Remove CYGWIN=server requirement for running
the Cygwin testsuite.
* ntsec.sgml: Ditto for using `passwd -R'.
|
| |
|
|
|
|
| |
non-existant private data as error.
|
|
|
|
| |
buffer content after usage.
|
|
|
|
|
|
|
|
|
|
|
| |
* README: Explain new service to store passwords in the LSA registry
area.
* bsd_helper.cc (get_token_info): Make externally available.
* bsd_helper.h (get_token_info): Declare.
* client.cc (client_request::handle_request): Add case for
CYGSERVER_REQUEST_SETPWD request.
* setpwd.cc: New file implementing the CYGSERVER_REQUEST_SETPWD
request.
|
| |
|
|
|
|
|
|
|
| |
(msgsnd): Call msleep with timeout value. Handle EWOULDBLOCK. Make
sure it's clear from where msleep has been called in debug output.
(msgrcv): Make sure it's clear from where msleep has been called in
debug output.
|
|
|
|
|
|
|
| |
and call to GetLastError throughout.
* bsd_mutex.cc: Ditto.
* sysv_sem.cc (semget): Replace %X __small_printf format specifier
with %llx.
|
|
|
|
|
|
|
|
|
|
|
| |
* Makefile.in (CYGWIN_OBJS): Remove smallprint.o.
(cygserver.exe): Remove strfuncs.o
(strfuncs.o): Drop rule.
* bsd_log.cc (_vlog): Use snprintf/vsnprintf instead of
__small_sprintf/__small_vsprintf.
* sysv_sem.cc (seminit): Use sys_malloc instead of malloc. Use
snprintf instead of __small_sprintf.
(semunload): Free the above allocated sema_mtx names here.
|
|
|
|
| |
Build it again with __OUTSIDE_CYGWIN__ defined.
|
|
|
|
|
|
|
|
| |
bool parameter.
* cygserver.conf: Add a description for the kern.ipc.shm_allow_removed
parameter.
* sysv_shm.cc (shminit): Set shm_allow_removed variable according to
kern.ipc.shm_allow_removed setting.
|
| |
|
|
|
|
| |
(CYGWIN_OBJS): Include strfuncs.o.
|
|
|
|
|
| |
* Makefile.in (OBJS): Add smallprint.o.
(CYGWIN_OBJS): Remove smallprint.o from Cygwin dir.
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
* Makefile.in (OBJS): Remove wincap.o.
* README: Don't mention 9x.
* bsd_mutex.cc (_mtx_unlock): Drop checking for 9x error codes.
* cygserver.cc (server_submission_loop::request_loop): Add FIXME
comment.
* wincap.cc: Remove.
* wincap.h: Remove.
* woutsup.h: Don't include wincap.h.
|
|
|
|
|
|
|
|
| |
* sysv_shm.cc (shmget_allocate_segment): Remove spurious cast.
* transport.cc: Don't include transport_sockets.h.
(create_server_transport): Always create transport_layer_pipes.
* transport_sockets.cc: Remove.
* transport_sockets.h: Remove.
|
| |
|
|
|
|
|
| |
* wincap.h: New file.
* Makefile.in: Accomodate having our own wincap implementation now.
|
|
|
|
|
|
| |
* sysv_sem.cc (__semctl): Check copyin return value (from 1.76).
* sysv_shm.cc (shminit): Actually use the iterating variable in the
for loop when trying to avoid overflow (from 1.102).
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
of security related variables from ipcinit here.
* bsd_helper.h (securityinit): Add prototype.
* cygserver.cc (main): Call securityinit right after wincap.init.
* process.cc (process_cache::process): Fix maximum process condition.
* README: Add description for new -p/--process-cache option.
* bsd_helper.cc (default_tun_check): Add kern.srv.process_cache_size
entry to tunable_params. Set max value of kern.srv.request_threads
to 310.
* cygserver.cc (SERVER_VERSION): Set to 1.20.
(print_usage): Print usage of new parameter -p.
(main): Add process cache parameter handling. Accomodate new max
value of request threads.
* cygserver.conf: Add kern.srv.process_cache_size tunable parameter.
Accomodate new max value of kern.srv.request_threads.
* process.cc: Fix a comment.
(process_cache::process_cache): Add max process cache size parameter.
Change _cache_add_trigger to manual reset event.
(struct pcache_wait_t): New struct used as parameter to
pcache_wait_thread.
(pcache_wait_thread): New thread function used for threaded process
cache.
(process_cache::wait_for_processes): Use threaded waiting if number
of processes to wait for is bigger than 62. Always check all processes
to avoid race under heavy load.
(process_cache::sync_wait_array): Remove useless assert. Reset
_cache_add_trigger right at the start since it's manual reset now.
Accomodate threaded waiting.
* process.h (process_cache::process_cache): Add max_procs parameter.
(process_cache::_max_process_count): New member.
(process_cache::_wait_array: Raise to allow up to 5 wait threads.
(process_cache::_process_array): Ditto.
|
| |
|
| |
|
|
|
|
| |
warning.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
(msleep_max_cnt): Remove.
(msleep_arr): Remove.
(class msleep_sync_array): New class to encapsulate msleep/wakeup
thread synchronization.
(msleep_sync): New object pointer.
(msleep_init): Initialize new msleep_sync object.
(_mutex): Just call msleep_sync->enter() and msleep_sync->leave() for
thread synchronization. Improve debug output a bit more.
(wakeup): Just call msleep_sync->wakeup().
(wakeup_all): Whitespace fix.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* bsd_mutex.cc: Include stdlib.h, sys/msg.h and sys/sem.h.
(mtx_init): Initialize lock counter to 0.
(_mtx_lock): Increment and log mutex lock counter.
(mtx_owned): Add winpid argument. Return true only if mutex is
actually owned by process winpid.
(_mtx_assert): Add winpid argument accordingly.
(_mtx_unlock): Log owner and lock count.
(MSLEEP_MUTEX): Remove.
(MSLEEP_SEM): Ditto.
(MSLEEP_EVENT): Ditto.
(msleep_event_name): Ditto.
(msleep_cs): New global critical section.
(msleep_cnt): New global variable indicating msleep record usage.
(msleep_max_cnt): New global variable indicating msleep record size.
(msleep_arr): New global pointer to msleep records.
(msleep_init): Initialize msleep_cs. Allocate msleep_arr array.
(_msleep): Rewrite using new msleep_cs/msleep_arr based thread
synchronization. Don't be shy with debug output.
(wakeup): Rewrite using new msleep_cs/msleep_arr based thread
synchronization.
* bsd_mutex.h (struct mtx): Add lock counter for better debugging.
(mtx_owned): Declare with winpid argument.
(_mtx_assert): Ditto.
(mtx_assert): Define with winpid argument.
* cygserver.cc (version): Remove.
(SERVER_VERSION): New define, decoupling server version information
from source code control system.
(print_version): Simplify printing server version.
* process.cc (process::process): Fix wrong bracketing (and handle leak).
(process::~process): Only try to close _signal_arrived if valid.
* sysv_sem.cc: Include sys/smallprint.h.
(semundo_clear): Define with additional struct thread pointer argument.
Accomodate throughout.
(SEMUNDO_LOCKASSERT): Define with winpid argument. Accomodate
throughout.
(struct sem_undo): Define un_proc as pid_t on Cygwin. Accomodate
throughout.
(seminit): Improve debugging by adding the semid to the mutex name.
(semget): Correctly print key value as 64 bit hex value in debug
output.
(semexit_myhook): Remove Cygwin specific unlocking of mutexes owned
by exiting process. Keep semaphore global lock throughout whole
function to avoid races.
* sysv_shm.cc (GIANT_REQUIRED): Define empty on Cygwin. We know that
Giant is locked.
|
|
|
|
|
| |
* process.cc (process::process): Handle invalid signal_arrived values
more gracefully.
|
|
|
|
|
|
|
|
|
|
|
| |
(MSLEEP_MUTEX): New define for third parameter to msleep_event_name.
(MSLEEP_SEM): Ditto.
(MSLEEP_EVENT): Ditto.
(msleep_event_name): Add third parameter to allow multiple
synchronization objects per ident.
(_msleep): Implement new synchronization technique to make sure
that all threads have been woken up by a corresponding wakeup call.
(wakeup): Ditto.
|
|
|
|
| |
gcc 3.4.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2004-08-24. It should be unnecessary now.
* msg.cc (client_request_msg::serve): Release process critical
section as early as possible.
* sem.cc (client_request_sem::serve): Ditto.
* shm.cc (client_request_shm::serve): Ditto.
* process.cc: Use hold and release method calls instead of
EnterCriticalSection/LeaveCriticalSection calls throughout.
* process.h (_hold): Rename from hold. Take filename and linenumber
parameter for logging. Define matching hold macro.
(release): Ditto.
|
|
|
|
|
|
|
|
| |
1.68: Reduce the overhead of semop() by using the kernel stack
instead of malloc'd memory to store the operations array if it
is small enough to fit.
1.69: Adjust the number of processes waiting on a semaphore properly
if we're woken up in the middle of sleeping.
|
| |
|
|
|
|
|
|
|
| |
(vm_map_find): Ditto.
(vm_map_inherit): Ditto.
(kern_shmat): On Cygwin, take shmaddr just as is. Don't call vm
system calls on Cygwin. Add comment.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Eliminate use of _impure_ptr outside Cygwin.
* bsd_helper.cc: Include errno.h instead of cygerrno.h.
* bsd_mutex.cc : Ditto.
* client.cc: Ditto.
* cygserver.cc: Ditto.
* process.cc: Don't build functions inside Cygwin. Don't include
cygerrno.h. Don't set errno.
* transport_pipes.cc (SET_ERRNO): New define. Use througout.
* transport_sockets.cc (SET_ERRNO): Ditto.
(GET_ERRNO): Ditto.
|
| |
|
| |
|
| |
|
|
|
|
| |
* transport.h (transport_layer_base::~transport_layer_base): Ditto.
|
|
|
|
| |
entering mutex. Turn order of conditional for better readability.
|
| |
|
|
|
|
| |
* bsd_mutex.cc: Ditto.
|
|
|
|
| |
* transport.h (transport_layer_base::~transport_layer_base): Ditto.
|
| |
|
| |
|
|
|
|
| |
by shmid when IPC_KEY_IS_SHMID is set.
|
|
|
|
|
|
| |
process struct pointer, which isn't fixed under Cygwin.
(semexit_myhook): Ditto. Adjust debug print statements to print
Cygwin and Windows PIDs instead of process pointer under Cygwin.
|
|
|
|
|
| |
(set_priority): Ditto. Fix formatting.
(_msleep): Cleanup obj formatting. Rearrange obj order.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* client.cc: Include sigproc.h.
* msg.cc (client_request_msg::serve): Accomodate third parameter to
process::process.
* sem.cc (client_request_sem::serve): Ditto.
* shm.cc (client_request_shm::serve): Ditto.
* process.cc (process::process): Duplicate signal_arrived into
Cygserver process space.
(process::~process): Close _signal_arrived handle.
(process_cache::process): Add signal_arrived handling.
* process.h (process::process): Add signal_arrived parameter.
(process:signal_arrived): New read accessor.
(process:_signal_arrived): New member.
(process_cache::process): Add signal_arrived parameter.
|
|
|
|
|
| |
function to avoid miscompilation with certain versions of gcc.
* process.cc (cleanup_routine::~cleanup_routine): Remove.
|