]> sourceware.org Git - newlib-cygwin.git/blame - winsup/cygwin/ChangeLog
mips3264 support
[newlib-cygwin.git] / winsup / cygwin / ChangeLog
CommitLineData
dc8c4c68
CV
1Fri Aug 31 21:39:00 2001 Corinna Vinschen <corinna@vinschen.de>
2
3 * security.cc (create_token): Change initialization of `exp' to comply
4 with new LARGE_INTEGER definition in winnt.h.
5
5ac73dfe
CF
6Fri Aug 31 13:58:51 2001 Christopher Faylor <cgf@cygnus.com>
7
8 * cygwin.sc: Revert to previous NO_COPY behavior.
9 * winsup.h: Ditto.
10 * sigproc.cc: Ditto.
11 * autoload.cc: Ditto.
12
5835f2cf
CF
13Fri Aug 31 00:56:26 2001 Christopher Faylor <cgf@cygnus.com>
14
15 * cygwin.sc: New file -- linker script for building cygwin DLL.
16 * Makefile.in: Use linker script to control location of cygheap.
17 * cygheap.cc (buckets): Make static.
18 (init_cheap): Remove special iswinnt handling. Allocate cygheap at a
19 fixed location. Display more info when allocation fails.
20 (cygheap_fixup_in_child): Try harder to move cygheap to correct
21 location. Display more info when allocation fails.
22 * fhandler.h (fhandler_socket): Add macros for tracking socket shutdown
23 state.
24 * net.cc (cygwin_shutdown): Set appropriate shutdown value for future
25 use.
26 * select.cc (select_stuff::cleanup): New method.
27 (cygwin_select): Call cleanup explicitly to avoid a race.
28 (select_stuff:~select_stuff): Call cleanup chain via cleanup method.
29 (fhandler_socket::select_read): Set *_ready when shutdown has been
30 called on the socket.
31 (fhandler_socket::select_write): Ditto.
32 (fhandler_socket::select_except): Ditto.
33
34 * winsup.h: Move NO_COPY to "COMMON" section.
35 * autoload.cc (wsock_started): Avoid initializing NO_COPY value.
36 * sigproc.cc: Remove initialization from NO_COPY variables.
37 (sigproc_init): Initialize sig_loop_wait here, rather than via
38 initialization.
39 (subproc_init): Initialize proc_loop_wait here, rather than via
40 initialization.
41
f0b4b386
CV
42Thu Aug 30 10:19:00 2001 Christopher Faylor <cgf@cygnus.com>
43
44 * select.cc (select_read): Add setting read_ready flag.
45 (select_write): Add setting write_ready flag.
46
41d53c98
CF
47Wed Aug 29 00:40:42 2001 Christopher Faylor <cgf@cygnus.com>
48
49 * path.cc (path_conv::check): Avoid splitting off leading '/' in path
50 component when building a symlink.
51
e4a17c6d
CV
52Wed Aug 29 0:45:00 2001 Corinna Vinschen <corinna@vinschen.de>
53
54 * resource.cc (getrlimit): Return actual values on RLIMIT_STACK.
55
ffe94510
CF
56Tue Aug 28 16:37:17 2001 Christopher Faylor <cgf@cygnus.com>
57
58 * dir.cc (rmdir): Report ENOENT when file doesn't exist rather than
59 ENOTDIR.
60
8d661d36
CF
61Mon Aug 27 11:58:19 2001 Christopher Faylor <cgf@cygnus.com>
62
63 * select.cc (cygwin_select): Ensure that arguments are zeroed on
64 timeout.
65 (select_stuff::wait): Ditto.
66
e32b4e81 672001-08-24 Kazuhiro Fujieda <fujieda@jaist.ac.jp>
5ac73dfe 68
e32b4e81
CF
69 * syscalls.cc (check_tty_fds): New function. Check whether there is a
70 fd referring to pty slave.
71 (setsid): Don't detach console if the process has a pty slave.
72
5d0fe635
CV
73Fri Aug 24 8:54:00 2001 Corinna Vinschen <corinna@vinschen.de>
74
75 * net.cc (free_addr_list): Add define for symmetry.
76 (free_hostent_ptr): Use free_addr_list to free h_addr_list element.
77
78Thu Aug 23 16:00:09 2001 Jason Tishler <jason@tishler.net>
79
80 * net.cc (dup_addr_list): New static function.
81 (dup_hostent_ptr): Use dup_addr_list instead of dup_char_list in order
82 to handle embedded null characters.
83
ecaff08c
CF
84Wed Aug 22 22:23:14 2001 Christopher Faylor <cgf@cygnus.com>
85
86 * dtable.cc (dtable::dup2): Allow extension of fd table by dup2.
87 * syscalls.cc: Minor code cleanup.
88 (fpathconf): Check for bad fd before doing anything else.
89 * termios.cc (tcsetattr): Don't convert to new termios if bad fd.
90 (tcgetattr): Minor debugging tweak.
91
cb19ccf4
CV
92Wed Aug 22 23:41:00 2001 Corinna Vinschen <corinna@vinschen.de>
93
94 * net.cc (cygwin_inet_ntoa): Rearrange previous patch to use
95 thread local buffer space when compiled thread safe.
96 (cygwin_getprotobyname): Ditto.
97 (cygwin_getprotobynumber): Ditto.
98 (cygwin_getservbyname): Ditto.
99 (cygwin_getservbyport): Ditto.
100 (cygwin_gethostbyname): Ditto.
101 (cygwin_gethostbyaddr): Ditto. Move near to cygwin_gethostbyname.
102 * thread.h (struct _winsup_t): Add pointers for above used buffer space.
103 * passwd.cc (getpwduid): Remove initializing passwd.
104 (setpwent): Ditto.
105 (endpwent): Ditto.
106 (setpassent): Ditto.
107
0a047e8f
CF
108Wed Aug 22 13:41:09 2001 Christopher Faylor <cgf@cygnus.com>
109
110 * smallprint.c (console_printf): New function.
111 * dcrt0.cc (dll_crt0_1): Use console_printf for debugging output.
112 * debug.cc (debug_mark_closed): New function.
113 (close_handle): Use debug_mark_closed.
114 * debug.h: Declare new functions.
115 * dtable.cc (dtable::build_fhandler): Remove unneeded extern.
116 * spawn.cc: Cosmetic changes.
117 * winsup.h: Define NO_COPY for C files, too. Declare a global.
118
1fdc8df9
CV
119Wed Aug 22 17:31:00 2001 Corinna Vinschen <corinna@vinschen.de>
120
121 * net.cc (free_char_list): New static function.
122 (dup_char_list): Ditto.
123 (free_protoent_ptr): Ditto.
124 (dup_protoent_ptr): Ditto.
125 (free_servent_ptr): Ditto.
126 (dup_servent_ptr): Ditto.
127 (free_hostent_ptr): Ditto.
128 (dup_hostent_ptr): Ditto.
129 (cygwin_inet_ntoa): Use local static buffer to allow propagating of
130 the result to child processes.
131 (cygwin_getprotobyname): Ditto.
132 (cygwin_getprotobynumber): Ditto.
133 (cygwin_getservbyname): Ditto.
134 (cygwin_getservbyport): Ditto.
135 (cygwin_gethostbyname): Ditto.
136 (cygwin_gethostbyaddr): Ditto.
137
b1d0b907
CF
138Mon Aug 20 11:56:19 2001 Christopher Faylor <cgf@cygnus.com>
139
140 * cygheap.cc (init_cheap): Allocate cygheap in shared memory for Windows NT.
141
933cbf62
ED
142Thu Aug 16 09:38:59 2001 Jason Tishler <jason@tishler.net>
143
144 * fhandler_socket.cc (fhandler_socket::create_secret_event): Relax
145 security of secret_event so AF_UNIX socket clients can connect to
146 servers even if running under a different user account.
147 (fhandler_socket::check_peer_secret_event): Ditto.
148
1457739a
CV
149Thu Aug 16 16:26:00 2001 Corinna Vinschen <corinna@vinschen.de>
150
151 * resource.cc (getrlimit): Return getdtablesize () as current limit
152 on RLIMIT_NOFILE.
153 * syscalls.cc (getdtablesize): Return OPEN_MAX if current dtable size
154 is less than OPEN_MAX, the current dtable size otherwise.
155 * sysconf.cc (sysconf): Return getdtablesize () on _SC_OPEN_MAX.
156
3171175e
CV
157Thu Aug 16 16:17:00 2001 Corinna Vinschen <corinna@vinschen.de>
158
159 * resource.cc (getrlimit): Return OPEN_MAX as current limit
160 on RLIMIT_NOFILE.
161 * syscalls.cc (getdtablesize): Return OPEN_MAX.
162 * sysconf.cc (sysconf): Return OPEN_MAX on _SC_OPEN_MAX.
163 * include/limits.h (OPEN_MAX): Define as 256.
164
91a1423a
CV
165Wed Aug 15 12:43:00 2001 Corinna Vinschen <corinna@vinschen.de>
166
167 * times.cc (utimes): Revert previous change. Just open the
168 file using FILE_WRITE_ATTRIBUTES instead of GENERIC_WRITE
169 on NT/W2K.
170
2a9366ff
CV
171Wed Aug 15 12:18:00 2001 Corinna Vinschen <corinna@vinschen.de>
172
173 * security.cc (set_nt_attribute): Return always -1 in case of
174 a failure.
175 * times.cc (utimes): On NTFS with ntsec ON, change the file's
176 security descriptor temporarily to acquire write access if
177 opening the file failed.
178
5fd12fb0
CV
179Wed Aug 15 9:42:00 2001 Corinna Vinschen <corinna@vinschen.de>
180
181 * fhandler.cc (fhandler_base::is_nonblocking): New method.
182 (fhandler_base::set_nonblocking): Ditto.
183 * fhandler.h (fhandler_base): Declare new methods `is_nonblocking' and
184 `set_nonblocking'.
185 * fhandler_socket.cc (fhandler_socket::ioctl): Use `set_nonblocking'.
186 * fhandler_tty.cc (fhandler_pty_master::process_slave_output):
187 Use `is_nonblocking'.
188 (fhandler_tty_slave::read): Ditto.
189 (fhandler_tty_slave::ioctl): Use `set_nonblocking'.
190 (fhandler_pty_master::ioctl): Ditto.
191 * net.cc (cygwin_sendto): Fallback to winsock 1 functionality
192 in case of nonblocking IO.
193 (cygwin_recvfrom): Ditto.
194 (cygwin_recv): Ditto.
195 (cygwin_send): Ditto.
196 * syscalls.cc (_read): Use `is_nonblocking'.
197
3ca6bcc4
CF
198Tue Aug 14 11:05:26 2001 Christopher Faylor <cgf@cygnus.com>
199
200 * include/cygwin/version.h: Bump API version.
201
7da232ab
ED
2022001-08-14 Egor Duda <deo@logos-m.ru>
203
204 * spawn.cc (spawn_guts): Enable appropriate privilege before
205 loading user's registry hive.
206
6a574f1a
CV
207Mon Aug 13 22:34:00 2001 Corinna Vinschen <corinna@vinschen.de>
208
209 * fhandler.cc (fhandler_base::fcntl): Use new O_NONBLOCK_MASK define.
210 * fhandler.h: Move definitions of O_NOSYMLINK, O_DIROPEN and
211 OLD_O_NDELAY from winsup.h to here. Add O_NONBLOCK_MASK define.
212 * fhandler_socket.cc (fhandler_socket::close): Add hack to allow
213 a graceful shutdown even if shutdown() hasn't been called by the
214 application. Add debug output.
215 (fhandler_socket::ioctl): Set fhandler's NONBLOCK flag according
216 to FIONBIO setting.
217 (fhandler_socket::fcntl): Use new O_NONBLOCK_MASK define. Actually
218 set `request' before using it.
219 * fhandler_tty.cc: Use new O_NONBLOCK_MASK define throughout.
220 (fhandler_tty_slave::ioctl): Set fhandler's NONBLOCK flag according
221 to FIONBIO setting.
222 (fhandler_pty_master::ioctl): Ditto.
223 * net.cc (wsock_event::prepare): Compare WSACreateEvent return code
224 with `WSA_INVALID_EVENT' according to MSDN.
225 * syscalls.cc (_read): Use new O_NONBLOCK_MASK define.
226
f11db2f4
CF
227Wed Aug 8 15:24:59 2001 Christopher Faylor <cgf@cygnus.com>
228
229 * include/wchar.h: Define __need_wint_t.
230
8c62297a
CV
231Wed Aug 8 11:46:00 2001 Corinna Vinschen <corinna@vinschen.de>
232
233 * security.cc (alloc_sd): Revert to setting inheritance attribute for
234 permissions given to directories. Never set inheritance on NULL ACE.
235
c0ae23dc
CV
236Tue Aug 7 18:11:00 2001 Corinna Vinschen <corinna@vinschen.de>
237
238 * security.cc (alloc_sd): Don't set FILE_DELETE_CHILD for group
239 if S_ISVTX attribute is given.
240 * dir.cc (mkdir): Allow immediate setting of S_ISUID, S_ISGID and
241 S_ISVTX attribute.
242 * syscalls.cc (_open): Ditto.
243
86fb0393
CV
244Tue Aug 7 16:24:00 2001 Corinna Vinschen <corinna@vinschen.de>
245
246 * dir.cc (mkdir): Set security attributes correctly for
247 CreateDirectoryA () call if ntsec is on. Don't call
248 set_file_attributes () then.
249 * fhandler.cc (fhandler_base::open): Ditto for CreateFileA () call.
250 * path.cc (symlink): Ditto.
251 * security.cc (set_security_attribute): New function.
252 * security.h: Add declaration for `allow_ntea' and
253 `set_security_attribute'.
254
f5e8e2be
CV
255Tue Aug 7 10:54:00 2001 Corinna Vinschen <corinna@vinschen.de>
256
5ac73dfe
CF
257 * grp.cc (class grp_check): New class. Make `group_state'
258 a member of class grp_check.
259 (read_etc_group): Free former allocated memory on reread.
260 * passwd.cc (class pwd_check): New class Make `passwd_state'
261 a member of class pwd_check.
262 (read_etc_passwd): Free former allocated memory on reread.
f5e8e2be 263
300624d4
CF
264Tue Aug 7 01:13:58 2001 Christopher Faylor <cgf@cygnus.com>
265
266 * fhandler_console.cc (get_tty_stuff): Don't initialize shared memory
267 console area if it is already initialized.
268
269 * fhandler_termios.cc (fhandler_termios::tcsetpgrp): Augment debugging
270 info.
271
96a3f4ae
CF
272Mon Aug 6 19:58:43 2001 Christopher Faylor <cgf@cygnus.com>
273
274 * cygheap.cc (cygheap_root::set): Avoid treating '/' specially.
275
276 * fhandler.cc (fhandler_base::fcntl): Only set specific O_NDELAY style
277 flag passed in from application.
278 * fhandler_socket.cc (fhandler_socket::fcntl): Ditto.
279 * fhandler.h: Set constant for future use.
280 * winsup.h: Define OLD_O_NDELAY only for old programs.
281 * include/cygwin/version.h: Define
282 CYGWIN_VERSION_CHECK_FOR_OLD_O_NONBLOCK.
283
e5ba4c06
CF
284Sat Aug 4 16:52:03 2001 Christopher Faylor <cgf@cygnus.com>
285
286 Throughout, change check for running under Windows NT to 'iswinnt'.
287 * dcrt0.cc (set_os_type): Set 'iswinnt' appropriately.
288 * cygheap.cc (init_cheap): Revert to using VirtualAlloc for allocating
289 cygheap.
290 (cygheap_setup_for_child_cleanup): New function. Standard function to
291 call after calling CreateProcess to cleanup cygheap info passed to
292 child.
293 (cygheap_fixup_in_child): Copy cygheap from shared memory into
294 allocated space under Windows 9x or if can't relocate shared space
295 under NT.
296 * cygheap.h: Declare new function.
297 * spawn.cc (spawn_guts): Use cygheap_fixup_in_child.
298 * fork.cc (fork_parent): Ditto.
299 * winsup.h: Declare iswinnt.
300
17195d08
ED
3012001-08-04 Egor Duda <deo@logos-m.ru>
302
303 * dtable.cc (dtable::release): Avoid messing with console when
304 closing socket.
305
7eb971a5
CV
306Fri Aug 3 14:02:00 2001 Corinna Vinschen <corinna@vinschen.de>
307
308 * net.cc (cygwin_accept): Allow NULL peer and len parameters.
309 * include/cygwin/socket.h: Define socklen_t as int.
310
dce6f563
CV
311Fri Aug 3 13:04:00 2001 Corinna Vinschen <corinna@vinschen.de>
312
313 * path.cc (fchdir): Set the fhandler's path to absolute value to
314 ensure changing to the correct directory even if the fhandler originally
315 points to a relative path.
316
842c741f
CV
317Thu Aug 2 17:59:00 2001 Corinna Vinschen <corinna@vinschen.de>
318
319 * security.cc (set_file_attribute): Clean up. Don't call
320 `set_nt_attribute' when ntsec isn't set.
321
e13ea334
CF
322Sat Jul 28 22:30:55 2001 Christopher Faylor <cgf@cygnus.com>
323
324 * dcrt0.cc (alloc_stack_hard_way): Make half-hearted attempt to deal
325 with growing stack under Windows 95.
326
327Fri Jul 27 12:36:07 2001 Christopher Faylor <cgf@cygnus.com>
328
329 * Makefile.in: Add install-lib and install-headers.
330
8e4e3874
CF
331Fri Jul 27 12:28:12 2001 Christopher Faylor <cgf@cygnus.com>
332
333 * cygwin.din: Export sys_errlist, sys_nerr.
334 * include/cygwin/version.h: Bump minor version number.
335
8b43d272
CV
336Fri 27 Jul 2001 10:29:00 Corinna Vinschen <corinna@vinschen.de>
337
338 * security.cc (get_user_primary_group): Fix compiler warning.
339 (alloc_sd): Add DELETE permission for user when S_IWUSR is given.
340
f9f2c119
CF
341Thu Jul 26 16:43:39 2001 Pieter de Visser <pieterdv@knoware.nl>
342
343 * thread.cc (__pthread_equal): Invert return value so that true is
344 returned when threads are equal.
345
351a8548
CF
346Thu Jul 26 15:50:38 2001 Charles Wilson <cwilson@ece.gatech.edu>
347 Christopher Faylor <cgf@cygnus.com>
348
349 * cygwin.din: Export __signgam.
350 * include/cygwin/version.h: Bump minor version number.
351
6b91b8d5
CF
352Thu Jul 26 15:19:50 2001 Christopher Faylor <cgf@cygnus.com>
353
354 Throughout, reorganize header file inclusion to put security.h prior to
355 fhandler.h.
356 * fhandler.h (fhandler_base::get_inheritance): New method.
357 * fhandler_socket.cc (fhandler_socket::create_secret_event): Use proper
358 close-on-exec inheritance when creating.
359 (fhandler_socket::check_peer_secret_event): Create handle as
360 non-inheritable.
361
0cc642a5
CF
3622001-07-25 Kazuhiro Fujieda <fujieda@jaist.ac.jp>
363
364 * syscalls.cc (setsid): Detach process from its console if the current
365 controlling tty is the console and already closed.
366 * dtable.h (class dtable): Add members to count descriptors referring
367 to the console.
368 * dtable.cc (dtable::dec_console_fds): New function to detach process
369 from its console.
370 (dtable::release): Decrement the counter of console descriptors.
371 (dtable::build_fhandler): Increment it.
372 * exception.cc (ctrl_c_handler): Send SIGTERM to myself when catch
373 CTRL_SHUTDOWN_EVENT.
374
811bf290
RC
375Tue 24 Jul 2001 02:28:00 PM Trevor Forbes <t4bs@hotmail.com>
376
377 * thread.cc (verifyable_object_isvalid): Don't validate
378 PTHREAD_MUTEX_INITIALIZER pointer as it will cause an exception
379 in IsBadWritePtr() when running GDB.
380
09ff05f7
CV
381Wed 25 Jul 2001 23:46:00 Corinna Vinschen <corinna@vinschen.de>
382
383 * localtime.c: Changed whole file to become C++ clean. Rename to
384 localtime.cc.
385 * localtime.cc (tzload): Preserve errno.
386
a7670c1e
CF
387Fri 20 Jul 2001 11:15:50 PM EDT Christopher Faylor <cgf@cygnus.com>
388
389 * cygheap.cc (cygheap_fixup_in_child): Attempt Win95 workaround.
390 * dtable.cc (dtable::dup_worker): Add debugging output.
391 (dtable::vfork_child_dup): Correctly set close_on_exec.
392 * fhandler.cc (fhandler_base::fork_fixup): Don't mess with handle if
393 there is no need to get it from the parent.
394 * fhandler_tty.cc (fhandler_tty_common::close): Add debugging output.
395
1801eae1
CV
396Fri 20 Jul 2001 09:15:00 Mark Bradshaw <bradshaw@staff.crosswalk.com>
397
398 * dir.cc (readdir): Protect FindNextFileA against INVALID_HANDLE_VALUE.
399
16828fc5
CF
400Wed 18 Jul 2001 01:00:47 PM EDT Christopher Faylor <cgf@cygnus.com>
401
402 * cygheap.cc (_cmalloc): Use correct constants for size calculation.
403 * dcrt0.cc (dll_crt0_1): Move uid initialization earlier.
404 * fork.cc (fork_parent): Move cygheap_setup_in_child to just prior to
405 CreateProcess so that all contents of cygheap are copied.
406 * spawn.cc (spawn_guts): Ditto.
407
c9fbce26
CV
408Wed 18 Jul 2001 12:54:17 Corinna Vinschen <corinna@vinschen.de>
409
410 * security.cc (get_user_groups): Call Net function with NULL server
411 name under specific error conditions.
412 (is_group_member): Ditto.
413 (get_user_local_groups): Ditto.
414 (get_user_primary_group): Ditto.
415
5564cd7a
CV
416Wed 18 Jul 2001 11:56:00 Corinna Vinschen <corinna@vinschen.de>
417
418 * syscalls.cc (_unlink): Explicitely check for non-existant file.
419
3ef6288c
CV
420Tue 17 Jul 2001 10:19:00 Corinna Vinschen <corinna@vinschen.de>
421
422 * delqueue.h: Remove obsolete file.
423
5457dfcb
CF
424Mon 16 Jul 2001 10:47:17 PM EDT Christopher Faylor <cgf@cygnus.com>
425
426 * child_info.h: Bump magic number.
427 (class child_info): Add an element.
428 * cygheap.cc (init_cheap): Allocate cygwin heap in shared memory area.
429 (cygheap_fixup_in_child): Map cygwin heap, passed from parent via
430 shared memory into correct address.
431 (cygheap_setup_for_child): New function.
432 * cygheap.h: Declare new functions.
433 * dcrt0.cc (dll_crt0_1): Accomodate new cygheap_fixup_in_child
434 arguments. Avoid protecting subproc_ready unless it is spawn/nowait.
435 * fork.cc (fork_parent): Use new cygheap_setup_for_child function to
436 setup cygwin heap info. Close passed cygheap shared memory handle.
437 * spawn.cc (spawn_guts): Ditto. Also, reorganize to avoid
438 synchronization between parent and child in non-P_OVERLAY case.
439 * sigproc.cc (wait_sig): Only signal subproc_ready when execing.
440
27ea31cd
CV
441Mon 16 Jul 2001 15:21:00 Corinna Vinschen <corinna@vinschen.de>
442
443 * grp.cc: Add missing Copyright date 2001.
444
3a157c0d
CV
445Mon 16 Jul 2001 00:11:00 Corinna Vinschen <corinna@vinschen.de>
446
447 Change well_known_admin_sid to well_known_admins_sid throughout.
448 * sec_acl.cc (setacl): Never set DELETE permission. Set
449 FILE_DELETE_CHILD only on readable and executable directories.
450 * sec_helper.cc: Add constructor for `well_known_null_sid'.
451 * security.cc (get_nt_attribute): Set S_ISVTX for directories if
452 FILE_WRITE_DATA and FILE_EXECUTE but not FILE_DELETE_CHILD is set.
453 Add evaluation of S_ISVTX, S_ISGID and S_ISUID from NULL ACE.
454 (alloc_sd): Never set DELETE permission. Set FILE_DELETE_CHILD
455 only on readable and executable directories.
456 Add creation of NULL ACE for S_ISVTX, S_ISGID and S_ISUID permissions.
457 * security.h: Add extern declaration for `well_known_null_sid'.
458
fc901253
CF
459Fri 13 Jul 2001 08:08:49 PM EDT Christopher Faylor <cgf@cygnus.com>
460
461 * syscalls.cc (stat_worker): Simplify previous change.
462
2aa2adb2
CF
463Fri Jul 13 13:13:09 2001 Christopher Faylor <cgf@cygnus.com>
464
465 * syscalls.cc (_unlink): Correct (?) logic which determines when
466 to report an access violation and when to queue file for eventual
467 deletion.
468 (stat_worker): Check for invalid buf argument.
469
8595942c
CV
470Tue Jul 10 23:01:00 2001 Corinna Vinschen <corinna@vinschen.de>
471
472 * mmap.cc (fhandler_disk_file::mmap): Try to open file mappings
473 by a unified name when running under 9x/ME. If that failes, create
474 the file mapping using the unified name.
475
a8506a19
CV
476Mon Jul 9 10:43:00 2001 Corinna Vinschen <corinna@vinschen.de>
477
478 * uinfo.cc (internal_getlogin): Add pointer check.
479
5d0cbc17
CV
480Mon Jul 9 10:05:00 2001 Corinna Vinschen <corinna@vinschen.de>
481
482 * security.cc (alloc_sd): Don't set inheritance attribute for
483 permissions given to directories.
484
2113bf6c
CF
485Thu Jun 28 22:19:08 2001 Christopher Faylor <cgf@cygnus.com>
486
487 * fhandler_dsp.cc (fhandler_dev_dsp::ioctl): Return 0 for success.
488
7a4078ee
CF
489Wed Jun 27 22:19:07 2001 Christopher Faylor <cgf@cygnus.com>
490
491 * path.cc (path_conv::check): Add signal protection here since
492 retrieving info about remote shares can take some time.
493
494Wed Jun 27 23:30:00 2001 Robert Collins <rbtcollins@hotmail.com>
2aa2adb2
CF
495 Christopher Faylor <cgf@cygnus.com>
496
7a4078ee
CF
497 Change check_null_empty_path* to check_null_empty_str* throughout.
498 * path.h (check_null_empty_str_errno): Convert to a function prototype.
499 * path.cc (check_null_empty_str): Move to miscfuncs.cc.
500 * miscfuncs.cc (check_null_empty_str_errno): New function.
501 (__check_null_invalid_struct): Ditto.
502 (__check_null_invalid_struct_errno): Ditto.
503 (check_null_empty_str): Change from VirtualQuery to IsBadWritePtr.
504 * thread.cc (check_valid_pointer): Ditto.
505 * resource.cc (getrlimit): Use check_null_invalid_struct macro for
506 checking validity of pointer.
507 (setrlimit): Ditto.
508
07c3cd5b
CF
509Tue Jun 26 16:59:16 2001 Christopher Faylor <cgf@cygnus.com>
510
511 * fhandler.cc (fhandler_disk_file::fstat): Don't rely on exactly 3
512 characters being read for executable test since we could be checking
513 for less than that.
514 * syscalls.cc (stat_worker): Try opening the file the "correct" way
515 first so that #! processing can potentially happen. If that fails,
516 then use "query open" method.
517
518 * spawn.cc (spawn_guts): Delay processing of signal until after we've
519 notified parent about reparenting.
520
462f4eff
CF
521Tue Jun 26 10:47:24 2001 Christopher Faylor <cgf@cygnus.com>
522
523 * mmap.cc: Clean up *ResourceLock calls throughout.
524
525Tue Jun 26 22:10:00 2001 Robert Collins rbtcollins@hotmail.com
526
527 * thread.cc (pthread_cond::TimedWait): Check for WAIT_TIMEOUT as well
528 as WAIT_ABANDONED.
529 (__pthread_cond_timedwait): Calculate a relative wait from the abstime
530 parameter.
531
12520587
CF
532Sun Jun 24 17:38:19 2001 Christopher Faylor <cgf@cygnus.com>
533
534 * exceptions.cc (interrupt_setup): Move actions from setup_handler to
535 here.
536 (setup_handler): Move actions after a successful interrupt to
537 interrupt_setup.
538 * fork.cc (vfork): Augment debugging output.
539 * sigproc.cc (proc_subproc): Ditto.
540 * spawn.cc (spawn_guts): Ditto. Correctly fill out progname when spawn
541 NO_WAIT. Call signal handler when a signal arrives.
542 * sigproc.h: Declare a function.
543
50b12648
CV
544Fri Jun 22 16:50:00 2001 Corinna Vinschen <corinna@vinschen.de>
545
546 * fhandler.h class fhandler_socket): Declare new method
547 `set_close_on_exec'.
548 * fhandler_socket.cc (fhandler_socket::set_close_on_exec):
549 New method.
550
3b295174
CV
551Fri Jun 22 16:12:00 2001 Corinna Vinschen <corinna@vinschen.de>
552
553 * fhandler_tape.cc (fhandler_dev_tape::tape_erase): Set size
554 parameter to value expected by GetTapeParameters().
555
26da27a5
CV
556Thu Jun 21 22:01:39 2001 Marius Gedminas <mgedmin@delfi.lt>
557
558 * fhandler_console.cc (fhandler_console::read): Detect AltGr more
559 robustly on WinNT.
560
7333875c 5612001-06-22 Robert Collins <rbbtcollins@hotmail.com>
b643afa4 562
462f4eff 563 * thread.cc (__pthread_cond_timedwait): Lock the waiting mutex before
b643afa4
RC
564 the condition protect mutex to avoid deadlocking. (Found by Greg Smith).
565 (__pthread_cond_wait): Ditto.
32c30349 566
9cc97acb
ED
5672001-06-30 Egor Duda <deo@logos-m.ru>
568
569 * fhandler.cc (fhandler_base::open): Work around windows bug when
570 CreateFile() with dwDesiredAccess == 0 called on remote share returns
571 valid handle even if file doesn't exist.
572
ae036f47
ED
5732001-06-20 Egor Duda <deo@logos-m.ru>
574
575 * fhandler_socket.cc (fhandler_socket::signal_secret_event): New
576 function.
577 * fhandler.h: Declare it.
578 * fhandler_socket.cc (fhandler_socket::create_secret_event): Don't
579 signal secret event immediately.
580 (fhandler_socket::check_peer_secret_event): Do it after peer event
581 was opened.
582 * net.cc (cygwin_connect): Or if socket is non-blocking.
583 (cygwin_accept): Ditto.
584
20a2c443
CF
585Mon Jun 18 17:09:25 2001 Christopher Faylor <cgf@cygnus.com>
586
587 * fhandler_tty.cc (fhandler_tty_slave::init): Revert 2001-06-16 change.
588
589 * fork.cc (fork_copy): Print more debugging info.
590 (fork_parent): Change order of arguments to accomdate buggy gcc.
591 (fork): Ditto.
592
593Sun Jun 17 18:54:46 2001 Christopher Faylor <cgf@cygnus.com>
594
595 * syscalls.cc (_unlink): Reorganize to try harder to delete file with
596 DeleteFile and to recover more gracefully if FILE_FLAG_DELETE_ON_CLOSE
597 doesn't work properly.
598
99a5bd2f
CF
599Sat Jun 16 13:06:49 2001 Christopher Faylor <cgf@cygnus.com>
600
601 * exceptions.cc (sig_handle_tty_stop): Reset PID_STOPPED if not
602 actually stopping.
603 * fhandler_console.cc (fhandler_console::fixup_after_fork): Don't set
604 controlling terminal if just inheriting a handle.
605 (fhandler_console::fixup_after_exec): Ditto.
606 * fhandler_tty.cc (fhandler_tty_slave::init): Ditto.
607 * signal.cc (kill_worker): Set appropriate errno if proc_exists
608 determines that process does not really exist.
609
947ab99e
CF
610Fri Jun 15 14:34:19 2001 Christopher Faylor <cgf@cygnus.com>
611
612 * path.cc (path_conv::check): Deal more robustly with foo/ behavior.
613
4d52d5b0
CV
614Fri Jun 15 11:15:00 2001 Corinna Vinschen <corinna@vinschen.de>
615
616 * fhandler_tape.cc (fhandler_dev_tape::tape_status): Set size
617 parameter to value expected by GetTapeParameters().
618
e8d6e78f
CF
619Thu Jun 14 20:19:46 2001 Christopher Faylor <cgf@cygnus.com>
620
621 * fhandler.cc (fhandler_disk_file::fstat): Properly set executable bits
622 for directory when !ntsec && !ntea. Also move common code prior to
623 call to get_attributes.
624
47132198 625Fri June 15 09:25:00 Robert Collins <rbtcollins@hotmail.com>
20a2c443 626
47132198
CF
627 * thread.cc (pthread_cond::Signal): Release the condition access
628 variable correctly.
629
96d95e53
ED
6302001-06-14 Egor Duda <deo@logos-m.ru>
631
20a2c443
CF
632 * fhandler.cc (fhandler_base::open): Set win32 access flags to 0, when
633 requested.
96d95e53
ED
634 * fhandler.h: New status flag FH_QUERYOPEN.
635 (fhandler::get_query_open): New function.
636 (fhandler::set_query_open): Ditto.
637 * syscalls.cc (stat_worker): Request query-only open mode.
638
4c15b7ab
ED
6392001-06-12 Egor Duda <deo@logos-m.ru>
640
641 * environ.cc (set_file_api_mode): New function. Move setting
642 of file APIs mode (OEM/ANSI) here.
643 (codepage_init): From here.
644 * winsup.h (set_file_api_mode): Declare it.
645 * fork.cc (fork_child): Set file APIs mode in forkee.
646
f569bfcf 647Mon Jun 11 14:19:49 2001 Christopher Faylor <cgf@cygnus.com>
3ecfcf57
CF
648
649 * pinfo.cc: Use autoloaded ToolHelp functions throughout for Win9x.
650 * autoload.cc: Autoload ToolHelp functions.
651
f569bfcf
CF
652 * sigproc.cc (proc_subproc): Incorporate SIGCHLD == SIG_IGN special
653 handling of zombie processes. Ensure that zombie processes which are
654 at the end of the zombie array are properly cleaned up.
655
f375b8d9
CF
656Mon Jun 11 11:18:56 2001 Christopher Faylor <cgf@cygnus.com>
657
658 * path.cc (chdir): Fix call to path_conv constructor so that it REALLY
659 doesn't check for the null/non-empty path.
660
fc633b63
CF
661Sun Jun 10 23:34:09 2001 Christopher Faylor <cgf@cygnus.com>
662
663 * path.cc (path_conv::update_fs_info): Don't consider remote drives to
664 be NTFS. Set root_dir before invoking GetDriveType (from Kazuhiro
665 Fujieda <fujieda@jaist.ac.jp>). Eliminate extra checks for rootdir.
666
02782489
CF
667Sun Jun 10 20:19:47 2001 Christopher Faylor <cgf@cygnus.com>
668
669 * path.cc (chdir): Pre-check path for validity before eating trailing
670 space. Then, ensure that path_conv doesn't check the path for validity
671 again.
672
161edfaa
CF
673Sun Jun 10 12:56:00 2001 Christopher Faylor <cgf@redhat.com>
674
675 * exceptions.cc (sigdelayed): Ensure that signal is cleared as
676 the last operation or suffer races.
677 * sigproc.cc (proc_subproc): Deal with zombie array overflow.
678
463513f0
CV
679Sun Jun 10 11:56:00 2001 Corinna Vinschen <corinna@vinschen.de>
680
681 * cygwin.din: Add fchdir symbols.
682 * path.cc (chdir): Guard against invalid parameter.
683 (fchdir): New function.
684 * include/cygwin/version.h: Bump API minor version to 40.
685 * uinfo.cc (internal_getlogin): Remove unused variable.
686
d4217d56
CV
687Sat Jun 9 23:20:00 2001 Corinna Vinschen <corinna@vinschen.de>
688
689 * syscalls.cc (seteuid): Set environment variables USERNAME and
690 USERDOMAIN before impersonation to workaround a LookupAccountSid()
691 misbehaviour.
692 * uinfo.cc (internal_getlogin): Revert most of the previous change.
693 Don't set environment variables USERNAME and USERDOMAIN. That's
694 the job of seteuid() now. Try to get logon server from Lsa
695 only if logon server isn't already known.
696
56918810
CF
697Thu Jun 7 15:54:32 2001 Robert Collins <rbtcollins@hotmail.com>
698
699 * thread.cc (pthread_cond::Broadcast): Don't print error messages on
700 invalid mutexs - user programs are allowed to call
701 pthread_cond_broadcast like that.
702 (__pthread_cond_timedwait): Initialise themutex properly.
703 (__pthread_cond_wait): Initialise themutex properly.
704
235661a3
CV
705Tue Jun 5 19:56:00 2001 Corinna Vinschen <corinna@vinschen.de>
706
707 * fhandler_console.cc (fhandler_console::dup): Allocate space for
708 savebuf on Cygwin heap.
709 (fhandler_console::char_command): Ditto. Use correct values for size.
710
149da470
ED
7112001-06-05 Egor Duda <deo@logos-m.ru>
712
713 * security.h (NTWriteEA): Change prototype.
714 * ntea.cc (NTReadEA): Don't check for global ntea setting, now
715 it's caller responsibility.
716 (NTWriteEA): Ditto.
717 * security.cc (get_file_attribute): Read attribute from EA only
718 if 'ntea' is enabled.
719 (set_file_attribute): Ditto.
720 * path.h: (class path_conv): Add members to store file system
721 information.
722 (path_conv::get_drive_type): New function.
723 * syscalls.cc (stat_worker): Use it.
724 * path.cc (path_conv::update_fs_info): New functions.
725 (path_conv::check): Get file system information from device where
726 file resides. On NTFS, try to read symlink contents from EA.
727 (get_symlink_ea): New function.
728 (set_symlink_ea): Ditto.
729 (symlink): Store symlink in extended attribute, if possible.
730
fa821be3
CV
731Tue Jun 5 11:18:00 2001 Corinna Vinschen <corinna@vinschen.de>
732
733 * fhandler.cc (fhandler_disk_file::fstat): Always reset file position
734 to original value after checking for executable magic.
735
f7fa593d
CV
736Mon Jun 4 16:21:00 2001 Corinna Vinschen <corinna@vinschen.de>
737
738 * cygheap.h (cygheap_user::cygheap_user): Initialize token to
739 INVALID_HANDLE_VALUE.
740 * uinfo.cc (uinfo_init): Close token handle if needed.
741
ac5561f2
CF
742Sun Jun 3 20:52:13 2001 Christopher Faylor <cgf@cygnus.com>
743
744 * path.cc (normalize_posix_path): Revert .. check removed by previous
745 changes.
746 * cygheap.h: Temporarily declare path_prefix_p here.
747
9f13167f
CV
748Mon Jun 4 0:14:00 2001 Corinna Vinschen <corinna@vinschen.de>
749
750 * net.cc (wsock_event): Add destructor.
751
aa7a6112
CF
752Sun Jun 3 09:49:55 2001 Robert Collins <rbtcollins@hotmail.com>
753
754 * dlfcn.cc (dlclose): Do not call FreeLibrary if the symbol to close
755 was obtained by dlopen(NULL,...).
756
77d13021
CF
757Sat Jun 2 23:11:52 2001 Christopher Faylor <cgf@cygnus.com>
758
759 * syscalls.cc (sleep): Try to be a little more accomodating of signal
760 arrival. Ensure that the signal handler is called.
761
7ceb1cac
CF
762Sat Jun 2 14:07:28 2001 Christopher Faylor <cgf@cygnus.com>
763
764 * cygheap.cc (cygheap_root::cygheap_rot): Remove constructor.
765 (cygheap_root::~cygheap_root): Remove destructor.
766 (cygheap_root::operator =): Remove.
767 (cygheap_root::set): New method.
768 * cygheap.h (cygheap_root): Reflect above changes. Store root info in
769 mount-like structure.
770 (cygheap_root:posix_ok): New method.
771 (cygheap_root::ischroot_native): Ditto.
772 (cygheap_root::unchroot): Ditto.
773 (cygheap_root::exists): Ditto.
774 (cygheap_root::posix_length): Ditto.
775 (cygheap_root::posix_path): Ditto.
776 (cygheap_root::native_length): Ditto.
777 (cygheap_root::native_path): Ditto.
778 * dir.cc (opendir): Remove special chroot test.
779 * path.cc (path_prefix_p): Remove front end.
780 (normalize_posix_path): Reorganize chroot tests to accomodate new
781 convention of allowing paths using posix chroot prefix.
782 (path_conv::check): Pass a "already ran normalize" option to
783 conv_to_win32_path. Return if there is an error from this function.
784 (mount_info::conv_to_win32_path): Add extra argument. Don't call
785 normalize_posix_path if caller has already done so. Substitute chroot
786 setting, if any, for root translation. Add chroot checking to final
787 output step.
788 * shared_info (mount_info): Accomodate additional argument to
789 conv_to_win32_path.
790 * syscalls.cc (chroot): Store both normalized posix path and native
791 path in chroot.
792
bb825147
CF
793Fri Jun 1 10:57:19 2001 Christopher Faylor <cgf@cygnus.com>
794
795 * path.cc (chdir): Really make sure that isspace gets only an unsigned
796 char.
797
bc28fe95
CV
798Fri Jun 1 13:45:00 2001 Corinna Vinschen <corinna@vinschen.de>
799
800 * syscalls.cc (_rename): Handle the case that `foo' is renamed to
801 `bar' while `bar.lnk' is an existing shortcut-symlink.
802
1de19751
CF
803Thu May 31 15:57:57 2001 Christopher Faylor <cgf@cygnus.com>
804
805 * fhandler.cc (fhandler_disk_file::fstat): Avoid clearing S_IFMT bits
806 since we've already pre-cleared everything anyway.
807
ecfb6f11
CF
808Wed May 30 23:51:32 2001 Earnie Boyd <earnie_boyd@yahoo.com>
809
810 * path.cc (chdir): Always send unsigned chars to isspace since newlib's
811 isspace doesn't deal well with "negative" chars.
812
813Wed May 30 23:51:32 2001 Christopher Faylor <cgf@cygnus.com>
814
815 * fhandler.cc (fhandler_disk_file::open): Propagate remote status of
816 file garnered from path_conv. Move #! checking to fstat.
817 (fhandler_disk_file::fstat): Reorganize st_mode setting to eliminate
818 duplication. Move check for #! here from fhandler::open.
819
820 * fhandler.h (fhandler_base::isremote): New method.
821 (fhandler_base::set_isremote): Ditto.
822 (fhandler_base::set_execable_p): Also record "don't care if executable state".
823 (fhandler_base::dont_care_if_execable): New method.
824 * path.cc (path_conv::check): Clear new flags. Appropriately set
825 vol_flags, drive_type, and is_remote_drive.
826 * path.h: Add new flags and methods for manipulating them.
827 * syscalls.cc (_unlink): Use isremote() to determine if a path is
828 remote rather than calling GetDriveType.
829 (stat_worker): Ditto.
830 * security.cc (get_file_attribute): Or attribute with result of
831 NTReadEA to be consistent with get_nt_attribute.
832
b2939a81
CV
833Tue May 29 19:02:00 2001 Corinna Vinschen <corinna@vinschen.de>
834
835 * sec_helper.cc (cygsid::getfrompw): Change parameter to `const'.
836 (cygsid::getfromgr): Ditto.
837 * security.cc: Use `sys_mbstowcs' and `sys_wcstombs' throughout.
838 (extract_nt_dom_user): Try to get user and domain from SID in
839 pw->pw_gecos first.
840 * security.h (class cygsid): Change parameter of getfrompw() and
841 getfromgr() to `const'.
842 * uinfo.cc (internal_getlogin): Change order for evaluating user
843 information in winNT case. Drop usage of NetWkstaUserGetInfo().
844
845Mon May 28 21:34:00 2001 Corinna Vinschen <corinna@vinschen.de>
792ca1c2
CV
846
847 * shortcut.c (check_shortcut): Treat only Cygwin shortcuts as symlinks.
848
b9ce8140
CF
849Fri May 25 11:07:07 2001 Christopher Faylor <cgf@cygnus.com>
850
851 * path.cc (symlink_info::check): Correctly set 'ext_tacked_on'. Use
852 this to determine if user specified 'foo.lnk' explicitly. Reorganize
853 slightly to get rid of one goto.
854
fdc5ebe9
CV
855Fri May 25 10:15:00 2001 Corinna Vinschen <corinna@vinschen.de>
856
857 * path.cc (symlink_info::check): Add a check to return correctly
858 if incoming `*.lnk' file is not a symlink.
859
86f41a09
CF
860Thu May 24 15:46:50 2001 Christopher Faylor <cgf@cygnus.com>
861
862 * path.cc (slash_drive_prefix_p): Remove.
863 (mount_info::slash_drive_to_win32_path): Ditto.
864 (mount_info::conv_to_win32_path): Remove slash drive prefix check.
865 (mount_info::add_item): Ditto.
866 (mount_info::del_item): Ditto.
867 * shared_info.h (mount_info): Remove slash_drive_to_win32_path
868 declaration.
869
52cd2f88
CF
870Thu May 24 01:17:33 2001 Christopher Faylor <cgf@cygnus.com>
871
872 * exceptions.cc (handle_exceptions): Bump repeat count for debugging
873 kick out.
874
875 * fhandler.h (fhandler_dev_dsp): Add a fixup_after_exec.
876 * fhandler_dsp.cc (class Audio): Add TOT_BLOCK_SIZE to enum.
877 (operator new): New.
878 (bigwavebuffer): Declare using TOT_BLOCK_SIZE to avoid buffer overruns.
879 (Audio::Audio): Optimize slightly.
880 (fhandler_dev_dsp::open): Allocate s_audio using static buffer.
881 (fhandler_dev_dsp::fixup_after_exec): New function. Ditto.
882
7b9a10a6
CV
883Wed May 23 17:45:00 2001 Corinna Vinschen <corinna@vinschen.de>
884
885 * syscalls.cc (seteuid): Restrict overriding external provided
886 user tokens to ntsec. Don't test external tokens for primary
887 group to evaluate if it should be overridden. Restrict creating
888 internal tokens to ntsec.
889
07d08883
CV
890Wed May 23 10:11:00 2001 Corinna Vinschen <corinna@vinschen.de>
891
892 * syscalls.cc (chown_worker): Don't check for ENOSYS.
893
43a19043
CF
894Tue May 22 12:20:07 2001 Christopher Faylor <cgf@cygnus.com>
895
896 * signal.cc (sleep): Protect with sigframe.
897
e7e956a7
CV
898Tue May 22 17:58:00 2001 Corinna Vinschen <corinna@vinschen.de>
899
900 * security.cc (get_file_attribute): Don't set errno.
901
7cef8b61
CF
902Mon May 21 15:08:00 2001 Christopher Faylor <cgf@cygnus.com>
903
904 * configure.in: Allow --enable-newvfork to turn NEWVFORK on and off.
905 * configure: Regenerate.
906
f01fb5e7
CF
907Mon May 21 11:46:01 2001 Christopher Faylor <cgf@cygnus.com>
908
909 * include/cygwin/version.h: Bump minor version number.
910
1b72f36e
CF
911Sun May 20 13:26:25 2001 Christopher Faylor <cgf@cygnus.com>
912
913 * fhandler_dsp.cc: Reformat to GNU standards.
914 (s_audio): Change to a pointer throughout.
915 (fhandler_dev_dsp::open): Initialize s_audio, if required.
916
1fcc912f
CV
917Sat May 19 23:40:00 2001 Corinna Vinschen <corinna@vinschen.de>
918
919 * autoload.cc: Add load statements for `LookupAccountNameW',
920 `LsaClose', `LsaEnumerateAccountRights', `LsaFreeMemory',
921 `LsaOpenPolicy', `LsaQueryInformationPolicy', `NetLocalGroupEnum',
922 `NetLocalGroupGetMembers', `NetServerEnum', `NetUserGetGroups' and
923 `NtCreateToken'.
924 * ntdll.h: Add declaration for `NtCreateToken'.
925 * sec_helper.cc: Add `well_known_local_sid', `well_known_dialup_sid',
926 `well_known_network_sid', `well_known_batch_sid',
927 `well_known_interactive_sid', `well_known_service_sid' and
928 `well_known_authenticated_users_sid'.
929 (cygsid::string): Define as const method.
930 (cygsid::get_sid): Set psid to NO_SID on error.
931 (cygsid::getfromstr): Ditto.
932 (cygsid::getfrompw): Simplify.
933 (cygsid::getfromgr): Check for gr == NULL.
934 (legal_sid_type): Move to security.h.
935 (set_process_privilege): Return -1 on error, otherwise 0 or 1 related
936 to previous privilege setting.
937 * security.cc (extract_nt_dom_user): Remove `static'.
938 (lsa2wchar): New function.
939 (open_local_policy): Ditto.
940 (close_local_policy): Ditto.
941 (get_lsa_srv_inf): Ditto.
942 (get_logon_server): Ditto.
943 (get_logon_server_and_user_domain): Ditto.
944 (get_user_groups): Ditto.
945 (is_group_member): Ditto.
946 (get_user_local_groups): Ditto.
947 (sid_in_token_groups): Ditto.
948 (get_user_primary_group): Ditto.
949 (get_group_sidlist): Ditto.
950 (get_system_priv_list): Ditto.
951 (get_priv_list): Ditto.
952 (get_dacl): Ditto.
953 (create_token): Ditto.
954 (subauth): Return immediately if SE_TCB_NAME can't be assigned.
955 Change all return statements in case of error to jumps to `out'
956 label. Add `out' label to support cleanup.
957 * security.h: Add extern declarations for `well_known_local_sid',
958 `well_known_dialup_sid', `well_known_network_sid',
959 `well_known_batch_sid', `well_known_interactive_sid',
960 `well_known_service_sid' and `well_known_authenticated_users_sid'.
961 Add extern declarations for functions `create_token',
962 `extract_nt_dom_user' and `get_logon_server_and_user_domain'.
963 (class cygsid): Add method `assign'. Change operator= to call new
964 `assign' method. Add `debug_print' method.
965 (class cygsidlist): New class.
966 (legal_sid_type): Moved from sec_helper.cc to here.
967 * spawn.cc (spawn_guts) Revert reversion of previous patch.
968 Call `RevertToSelf' and `ImpersonateLoggedOnUser' instead of `seteuid'
969 again.
970 * syscalls.cc (seteuid): Rearranged. Call `create_token' now when
971 needed. Call `subauth' if `create_token' fails. Try setting token
972 owner and primary group only if token was not explicitely created
973 by `create_token'.
974 * uinfo.cc (internal_getlogin): Try harder to generate correct user
975 information. Especially don't trust return value of `GetUserName'.
976
975d2083
CF
977Sat May 19 21:16:07 2001 Christopher Faylor <cgf@cygnus.com>
978
979 * fork.cc (fork_parent): Move atforkprepare call here.
980 (fork): From here.
981
69fb3121
CV
982Sat May 19 18:35:00 2001 Corinna Vinschen <corinna@vinschen.de>
983
984 * autoload.cc: Add missing load statement for `CancelIo'.
985
87f0d5ad
CF
986Sat May 19 01:22:43 2001 Christopher Faylor <cgf@cygnus.com>
987
988 * grp.cc (read_etc_group): Don't copy mutex on fork.
989 * pwd.cc (read_etc_passwd): Ditto.
990 * autoload.cc (LoadDLLfuncEx): Use LoadDLLprime to initialize DLL
991 specific area.
992
0260054a
CV
993Fri May 18 10:31:00 2001 Corinna Vinschen <corinna@vinschen.de>
994
995 * net.cc (wsock_event::wait): Explicitely cancel IO when a signal
996 arrived to avoid data loss. Fallback to blocking IO when canceling
997 fails.
998
42938841
CV
999Thu May 17 15:29:00 2001 Corinna Vinschen <corinna@vinschen.de>
1000
1001 * security.cc (cygwin_set_impersonation_token): Never destroy
1002 previous token object.
1003 (subauth): Create token source with well defined identifier.
1004
1cec7241
CV
1005Wed May 16 23:27:00 2001 Corinna Vinschen <corinna@vinschen.de>
1006
1007 * uinfo.cc (uinfo_init): Just set user token to INVALID_HANDLE_VALUE.
1008 Token value is already invalid at that point.
1009
3065afdb
CV
1010Wed May 16 21:34:00 2001 Fred Yankowski <fred@ontosys.com>
1011
1012 * net.cc (errmap): Add missing mapping from WSAEINTR to EINTR.
1013
48621257
CV
1014Wed May 16 09:20:00 2001 Corinna Vinschen <corinna@vinschen.de>
1015
1016 * sec_helper.cc (legal_sid_type): Fix conditional. Change to
1017 inline function.
1018
d61b1993
CF
1019Wed May 16 01:01:48 2001 Christopher Faylor <cgf@cygnus.com>
1020
1021 * autoload.h: Eliminate.
1022 * autoload.cc: Pull in autoload.h. Eliminate many macros. Rewrite to
1023 avoid necessity of initialization routines. Just use a standard one.
1024 (wsock_init): New function. Moved from net.cc.
1025 * net.cc (wsock_init): Move to autoload.cc.
1026 (wsadata): Make global.
1027 * dtable.cc (dtable::build_fhandler): Use more reliable method for
1028 checking if net stuff has been loaded.
1029
2b0a111f
CV
1030Tue May 15 19:52:00 2001 Corinna Vinschen <corinna@vinschen.de>
1031
1032 * fork.cc (fork): Eliminate superfluous call to getuid().
1033 * security.h: New define `NO_SID'. Remove declarations of functions
1034 moved to methods into class cygsid.
1035 (class cygsid): Declare new methods `getfromstr', `get_sid',
1036 `getfrompw', `getfromgr', `get_rid', `get_uid', `get_gid', `string'
1037 and new constructors and operators =, == and !=.
1038 Declare new global cygsids `well_known_XXX_sid' substituting the
1039 corresponding `get_XXX_sid' functions. Remove declarations of
1040 these functions.
1041 * sec_helper.cc (well_known_admin_sid): New global variable.
1042 (well_known_system_sid): Ditto
1043 (well_known_creator_owner_sid): Ditto
1044 (well_known_world_sid): Ditto
1045 (cygsid::string): New method, substituting `convert_sid_to_string_sid'.
1046 (cygsid::get_sid): New method, substituting `get_sid'.
1047 (cygsid::getfromstr): New method, substituting
1048 `convert_string_sid_to_sid'.
1049 (cygsid::getfrompw): New method, substituting `get_pw_sid'.
1050 (cygsid::getfromgr): New method, substituting `get_gr_sid'.
1051 (cygsid::get_id): New method, substituting `get_id_from_sid'.
1052 (get_admin_sid): Eliminated.
1053 (get_system_sid): Ditto.
1054 (get_creator_owner_sid): Ditto.
1055 (get_world_sid): Ditto.
1056 * grp.cc: Use new cygsid methods and well known sids throughout.
1057 * registry.cc: Ditto.
1058 * sec_acl.cc: Ditto.
1059 * security.cc: Ditto.
1060 * shared.cc: Ditto.
1061 * syscalls.cc (seteuid): Ditto. Eliminate redundant conditional.
1062 * uinfo.cc (internal_getlogin): Ditto.
1063 * spawn.cc (spawn_guts) Revert previous patch.
1064
de81c046
CV
1065Tue May 15 10:20:00 2001 Corinna Vinschen <corinna@vinschen.de>
1066
1067 * fhandler_socket.cc (fhandler_socket::ioctl): Convert s_addr
1068 field to host byte order before comparing with INADDR_LOOPBACK.
1069
a2cdb048
CV
1070Tue May 15 9:03:00 2001 Corinna Vinschen <corinna@vinschen.de>
1071
1072 * autoload.cc: Add autoload statements for ws2_32 functions
1073 `WSACloseEvent', `WSACreateEvent', `WSAGetOverlappedResult',
1074 `WSARecv', `WSARecvFrom', `WSASend', `WSASendTo' and `WSASetEvent',
1075 `WSAWaitForMultipleEvents'.
1076 * net.cc: Define wsock_evt.
1077 (wsock_event): New class.
1078 (cygwin_sendto): Use overlapped socket io if available.
1079 (cygwin_recvfrom): Ditto.
1080 (cygwin_recv): Ditto.
1081 (cygwin_send): Ditto.
1082 * security.cc (subauth): Set Win32 error to 0 to safely ask for the
1083 error code of dynamically loaded function `LsaRegisterLogonProcess'.
1084
7ede23a1
CF
1085Mon May 14 15:37:29 2001 Christopher Faylor <cgf@cygnus.com>
1086
1087 * errno.cc (_sys_errlist): Add missing commas.
1088
5aac6665
CV
1089Mon May 14 16:13:00 2001 Corinna Vinschen <corinna@vinschen.de>
1090
1091 * security.cc (subauth): Check if Secur32.dll could be loaded.
1092
df7320e1
CF
1093Sun May 13 22:49:04 2001 Christopher Faylor <cgf@cygnus.com>
1094
1095 * path.cc (path_conv::check): Revert allow_ntsec check so that volume
1096 info is always retrieved and isdisk setting is properly set.
1097
49a8c92c
CF
1098Sun May 13 14:02:36 2001 Christopher Faylor <cgf@cygnus.com>
1099
1100 * fhandler_tty.cc (fhandler_tty_common::dup): Preserve O_NOCTTY when
1101 duping a filehandle.
1102
cbedbdd0
CV
1103Sat May 12 18:19:00 2001 Corinna Vinschen <corinna@vinschen.de>
1104
1105 * dir.cc (rmdir): Rearrange slightly to allow removing directories
1106 even when R/O attribute is set.
1107
c3a245f5
CF
1108Fri May 11 16:53:38 2001 Christopher Faylor <cgf@cygnus.com>
1109
1110 * external.cc (fillout_pinfo): Use correct pids.
1111 * path.cc (mount_info::conv_to_win32_path): Correct test for whether to
1112 include a slash.
1113
5bba0cb5
CF
1114Fri May 11 01:04:17 2001 Christopher Faylor <cgf@cygnus.com>
1115
1116 * exceptions.cc (handle_exceptions): Don't print message when executing
1117 from a cygwin program.
1118
723190cf
CF
11192001-05-10 Egor Duda <deo@logos-m.ru>
1120 Christopher Faylor <cgf@redhat.com>
1121
1122 * environ.cc (winenv): Always add SYSTEMDRIVE and SYSYEMROOT to
1123 win32-style environment if they don't already exist.
1124
cedb00be 11252001-05-10 Kazuhiro Fujieda <fujieda@jaist.ac.jp>
d61b1993 1126
cedb00be
CF
1127 * path.cc (mount_info::conv_to_win32_path): Treat UNC paths the same as
1128 paths including `:' or `\'.
1129
cd94b71c
CF
1130Wed May 9 14:46:32 2001 Christopher Faylor <cgf@cygnus.com>
1131
1132 * fhandler.h (fhandler_termios::echo_erase): Declare new method.
1133 * fhandler_termios.cc (fhandler_termios::echo_erase): New method for
1134 echoing erase characters.
1135 (fhandler_termios::line_edit): Check the echo flag before echoing
1136 control characters (from Kazuhiro Fujieda <fujieda@jaist.ac.jp>).
1137
00b59ce9
CF
1138Wed May 9 10:43:30 2001 Christopher Faylor <cgf@cygnus.com>
1139
1140 * include/pthread.h: Remove C++ comment.
1141
79201150
CF
1142Tue May 8 11:09:59 2001 Christopher Faylor <cgf@cygnus.com>
1143
1144 * cygheap.cc (_cfree): Add regparm attribute.
1145 (_crealloc): Ditto.
1146
1147 * dcrt0.cc (dll_crt0_1): Default to always checking for executable for now.
1148
1149 * dtable.cc (dtable::not_open): Move method.
1150 * dtable.h (dtable): Here.
1151
1152 * exceptions.cc (ctrl_c_handler): Don't expect process group leader to
1153 handle a signal if it doesn't exist.
1154
1155 * fhandler.h (fhandler_base): Make openflags protected.
1156
1157 * localtime.c (tzsetwall): Check for __CYGWIN__ as well as __WIN32__.
1158
1159 * path.cc (path_conv::check): Add some comments. Change strcat to assignment.
1160
1161 * lib/_cygwin_S_IEXEC.cc (_cygwin_bob__): Eliminate.
1162
1163 * fhandler_tty.cc (fhandler_console::dup): Set controlling terminal if necessary.
1164 * fhandler_tty.cc (fhandler_tty_slave::dup): Ditto.
1165
ef8b6590
CF
1166Mon May 7 21:33:17 2001 Christopher Faylor <cgf@cygnus.com>
1167
1168 * include/sys/file.h: Revert special X_OK usage. Just make it a
1169 constant.
1170
68ebd3f6 1171Sun May 6 17:05:00 2001 Robert Collins <rbtcollins@hotmail.com>
ef8b6590
CF
1172
1173 * thread.h (pthread_cond): New element cond_access to allow atomic
1174 broadcasts.
68ebd3f6
RC
1175 * thread.cc (pthread_cond::pthread_cond): Initialise cond_access.
1176 (pthread_cond::~pthread_cond): Destroy cond_access.
1177 (pthread_cond::Broadcast): Use cond_access.
1178 (pthread_cond::Signal): Use cond_access.
1179 (pthread_cond_wait): Use cond_access.
1180 (pthread_cond_timedwait): Use cond_access.
1181
2bfb9665
CF
1182Sun May 6 11:55:40 2001 Christopher Faylor <cgf@cygnus.com>
1183
1184 * string.h (cygwin_strchr): Make 'static inline' so that things will
1185 still work when optimized.
1186
11ba5ef4
CF
1187Sat May 5 01:04:11 2001 Christopher Faylor <cgf@cygnus.com>
1188
1189 * exceptions.cc (handle_exceptions): Vastly increase test for exception
1190 loop guard variable.
1191
f598d941
CF
1192Fri May 4 22:23:33 2001 Christopher Faylor <cgf@cygnus.com>
1193
1194 * exceptions.cc (stack_info): Add some controls.
1195 (stack_info::init): Add extra arguments to control method of
1196 initialization.. If we have a known good frame, set things up so that
1197 this frame is not skipped the first time through. Record whether
1198 caller cares about arguments or not.
1199 (stack_info::walk): Don't store arguments if they're unwanted.
1200 (stackdump): Add isexception parameter for use when called by exception
1201 handler.
1202 (cygwin_stackdump): Accomodate extra argument to stackdump.
1203 (handle_exceptions): Ditto.
1204 (sig_handle): Ditto.
1205 (interrupt_on_return): Accomodate extra arguments to stack walk
1206 initialization.
1207
d7490eaa
CF
1208Fri May 4 21:05:20 2001 Christopher Faylor <cgf@cygnus.com>
1209
1210 * localtime.c: Revert exclusion of windows.h.
1211
6731c77e
CF
1212Fri May 4 17:03:16 2001 Christopher Faylor <cgf@cygnus.com>
1213
1214 * string.h: Fix last-minute typo.
1215
63b61cd1
CF
1216Fri May 4 16:49:34 2001 Christopher Faylor <cgf@cygnus.com>
1217
1218 * pinfo.h: Correctly set __SIGOFFSET.
1219
1220 * path.cc (hash_path_name): Avoid calling library functions for simple
1221 copying of characters.
1222
1223 * shortcut.c: Use WIN32_LEAN_AND_MEAN.
1224 * smallprint.c: Ditto.
1225
1226 * environ.cc (getwinenv): Minor clarity fix.
1227
1228 * localtime.c: No need to include windows.h
1229
1230 * string.h: New file.
1231
17743fbc
CF
1232Fri May 4 16:37:30 2001 Christopher Faylor <cgf@cygnus.com>
1233
1234 * exceptions.cc (ctrl_c_handler): Always send signal to process if it
1235 has no tty.
1236
69b218bf
ED
12372001-05-04 Egor Duda <deo@logos-m.ru>
1238
1239 * fhandler_socket.cc (set_connect_secret): Use /dev/urandom to
1240 generate secret cookie.
1241
620dd06d
CF
1242Thu May 3 16:37:55 2001 Christopher Faylor <cgf@cygnus.com>
1243
1244 * include/pthread.h (pthread_cleanup_push): Eliminate space preceding
1245 arguments.
1246 (pthread_cleanup_pop): Ditto.
1247
6c22ecdd
CV
1248Thu May 3 18:16:00 2001 Corinna Vinschen <corinna@vinschen.de>
1249
1250 * net.cc (wsock_init): Rename `was_in_progress' to `wsock_started'
1251 for clearness.
1252
70c7f359
CF
1253Thu May 3 10:44:16 2001 Christopher Faylor <cgf@cygnus.com>
1254
1255 * exceptions.cc (handle_exceptions): Break out of "loop" if the
1256 debugger doesn't seem to be attaching to our process.
1257
a6a0193b
CV
1258Wed May 2 20:18:00 2001 Corinna Vinschen <corinna@vinschen.de>
1259
1260 * autoload.cc: Use new definition of LoadDLLinitfunc throughout.
1261 Redefine wrapper for wsock32.dll and ws2_32.dll.
1262 (std_dll_init): New function.
1263 * autoload.h: Rename LoadDLLinitfunc to LoadDLLinitfuncdef.
1264 Add new defines LoadDLLinitfunc and LoadDLLstdfunc.
1265 * net.cc (wsock_init): Add guard variable handling. Take care
1266 to call WSAStartup only once. Load WSAStartup without using
1267 autoload wrapper to eliminate recursion. Eliminate FIONBIO
1268 and srandom stuff.
1269
4c265f4a
CF
1270Tue May 1 01:26:15 2001 Christopher Faylor <cgf@cygnus.com>
1271
1272 * path.cc (mount_info::conv_to_win32_path): More path tweaking.
1273
beab320f
CF
1274Tue May 1 00:34:46 2001 Christopher Faylor <cgf@cygnus.com>
1275
1276 * path.cc (mount_info::conv_to_win32_path): Fix debugging output to
1277 avoid a SIGSEGV. Avoid double backslashes in middle of filename.
1278
d3c7e9de
CF
1279Mon Apr 30 21:51:14 2001 Christopher Faylor <cgf@cygnus.com>
1280
1281 * path.cc (mkrelpath): New function.
1282 (mount_info::conv_to_win32_path): Eliminate now-unneeded relative path
1283 name arg and processing.
1284 (path_conv::check): Accomodate relative path names again. Accomodate
1285 one extra argument in mount_info::conv_to_win32_path. Tack trailing
1286 slash on end of relative path as a side effect, like before.
1287 * shared_info.h (mount_info::conv_to_win32_path): Reflect new argument
1288 ordering.
1289
57ff940d
CV
1290Mon Apr 30 22:09:00 2001 Corinna Vinschen <corinna@vinschen.de>
1291
1292 * autoload.cc: Add LoadDLLinitfunc for secur32.dll.
1293 Add LoadDLLfuncEx statements for AllocateLocallyUniqueId@4,
d61b1993 1294 DuplicateTokenEx@24, LsaNtStatusToWinError@4,
57ff940d
CV
1295 LsaDeregisterLogonProcess@4, LsaFreeReturnBuffer@4,
1296 LsaLogonUser@56, LsaLookupAuthenticationPackage@12,
1297 LsaRegisterLogonProcess@12,
1298 * environ.cc: Add extern declaration for `subauth_id'.
1299 (subauth_id_init): New function for setting `subauth_id'.
1300 (struct parse_thing): Add entry for `subauth_id'.
1301 * fork.cc (fork_parent): Call `RevertToSelf' and
1302 `ImpersonateLoggedOnUser' instead of `seteuid'.
1303 * security.cc: Define global variable `subauth_id'.
1304 (extract_nt_dom_user): New function.
1305 (cygwin_logon_user): Call `extract_nt_dom_user' now.
1306 (str2lsa): New static function.
1307 (str2buf2lsa): Ditto.
1308 (str2buf2uni): Ditto.
1309 (subauth): Ditto.
1310 * security.h: Add prototype for `subauth'.
1311 * spawn.cc (spawn_guts): Use cygheap->user.token only if impersonated.
1312 Use `cygsid' type. Remove impersonation before allowing access to
1313 workstation/desktop to everyone. Call `RevertToSelf' and
1314 `ImpersonateLoggedOnUser' instead of `seteuid'.
1315 * syscalls.cc (seteuid): Rearranged to allow using subauthentication
1316 to retrieve user tokens when needed.
1317
965cecdf
CV
1318Mon Apr 30 20:26:00 2001 Corinna Vinschen <corinna@vinschen.de>
1319
1320 * uinfo.cc (internal_getlogin): Formatting change.
1321
17db1105
CV
1322Mon Apr 30 19:58:00 2001 Corinna Vinschen <corinna@vinschen.de>
1323
1324 * grp.cc: Eliminate MAX_DOMAIN_NAME define.
1325 (read_etc_group): Substitute MAX_DOMAIN_NAME by
1326 INTERNET_MAX_HOST_NAME_LENGTH.
1327 * passwd.cc (parse_pwd): Don't force pw_name to be lower case.
1328 * sec_helper.cc: Substitute MAX_USER_NAME by UNLEN,
1329 MAX_COMPUTERNAME_LENGTH by INTERNET_MAX_HOST_NAME_LENGTH throughout.
1330 (lookup_name): Slight cleanup.
1331 * security.cc (alloc_sd): Substitute MAX_USER_NAME by UNLEN.
1332 * security.h: Define DEFAULT_UID as DOMAIN_USER_RID_ADMIN and
1333 DEFAULT_GID as DOMAIN_ALIAS_RID_ADMINS.
1334 * shared.cc (memory_init): Substitute MAX_USER_NAME by UNLEN.
1335 * thread.h: Ditto.
1336 * uinfo.cc (internal_getlogin): Substitute MAX_USER_NAME by UNLEN.
1337 Substitute MAX_COMPUTERNAME_LENGTH and MAX_HOST_NAME by
1338 INTERNET_MAX_HOST_NAME_LENGTH.
1339 * winsup.h: Include lmcons.h. Eliminate MAX_USER_NAME and
1340 MAX_HOST_NAME. Move DEFAULT_UID and DEFAULT_GID to security.h.
1341
c0a45b92
CF
1342Mon Apr 30 12:35:40 2001 Christopher Faylor <cgf@cygnus.com>
1343
1344 * path.cc (path_conv::check): Don't use path_flags when converting to
1345 MS-DOS syntax unless parsing tail of path component. Stop parsing path
1346 when we reach the 'root' of the path. Correctly copy tail to path
1347 component.
1348
8abeff1e
CF
1349Sun Apr 29 22:28:06 2001 Christopher Faylor <cgf@cygnus.com>
1350
1351 * exceptions.cc (INIT_EXCEPTION_HANDLER): Eliminate.
1352 (init_exceptions): Just use init_exception_handler.
1353 (open_stackdumpfile): New function.
1354 (stack_info::first_time): Eliminate.
1355 (stack_info::init): Set up fields to avoid "first_time" consideration.
1356 (stack_info::walk): Remove "first_time" consideration.
1357 (stackdump): Change arguments to accept initial frame pointer and open
1358 stack file flag.
1359 (stack): Eliminate.
1360 (cygwin_stackdump): Use stackdump() rather than stack().
1361 (try_to_debug): Remove all synchronization logic. Just keep looping in
1362 exception handler until debugger notices us. Return 1 if successfully
1363 started debugger.
1364 (handle_exceptions): Just return if we know that we're debugging.
1365 Reorganize to avoid creating a stackdump file if we are starting a
1366 debugger. Return from exception handler if debugger started
1367 successfully.
1368 (sig_handle): Create a stackdump only if debugger wasn't started.
1369 * winsup.h (try_to_debug): Add an argument.
1370
2b5803d4
CF
1371Sun Apr 29 21:41:25 2001 Christopher Faylor <cgf@cygnus.com>
1372
1373 * path.cc (symlink_info::check): Remove extra arguments, move
1374 functionality back to path_conv::check. Clear symlink bit from pflags
1375 argument before detecting if this is a symlink.
1376 (path_conv::check): Convert posix path here instead of
1377 symlink_info::check. Only grab volflags when using ntsec.
1378 (symlink_info::check_case): Just replace appropriate part of input
1379 path.
1380
b98ebf54
CF
1381Sat Apr 28 19:36:13 2001 Christopher Faylor <cgf@cygnus.com>
1382
1383 Throughout, change 'tty_attached' to 'real_tty_attached', for clarity.
1384 Throughout, change 'OutputStopped' to 'output_stopped', for
1385 consistency.
1386 * dtable.cc (stdio_init): Set controlling tty if not set by stdio
1387 opens.
1388 * exceptions.cc (ctrl_c_handler): Avoid special pgid checking if no tty
1389 is associated with the process.
1390 (Suggested by Tim Baker <dbaker@direct.ca>)
1391 * external.cc (fillout_pinfo): Return actual tty number for ctty.
1392 * fhandler_console.cc (get_tty_stuff): Set ctty when shared memory is
1393 allocated. Accept flags input from open().
1394 (set_console_ctty): New function.
1395 (fhandler_console::open): Pass flags to get_tty_stuff and rely on this
1396 function to set the ctty, if appropriate.
1397 * fhandler_termios.cc (fhandler_termios::set_ctty): Move to tty_min
1398 class.
1399 * fhandler_tty.cc (fhandler_tty_slave::open): Use tc field to access
1400 set_ctty().
1401 * tty.h (TTY_CONSOLE): Move to include/sys/cygwin.h.
1402 (tty_min): Add set_ctty class here.
1403 * include/sys/cygwin.h (TTY_CONSOLE): New home here.
1404
1405 * path.cc (symlink_info): Make contents an actual buffer. Pass more
1406 flags to case_check.
1407 (path_conv::check): Reorganize to do parsing based on posix path rather
1408 than native path.
1409 (symlink_info::check): Expect posix path as input. Translate to native
1410 path here. Accept path_conv flags. Stop parsing if not a symlink
1411 regardless of whether previous path was a symlink.
1412
cba63823
CF
14132001-04-27 Kazuhiro Fujieda <fujieda@jaist.ac.jp>
1414
1415 * thread.cc (thread_init_wrapper): Use _REENT_INIT to initialize the
1416 reent structure of newlib.
1417
1418Fri Apr 27 14:02:24 2001 Christopher Faylor <cgf@cygnus.com>
1419
1420 * sigproc.h (sig_send): Add exception parameter to sig_send.
1421 * sigproc.cc (sig_send): Ditto. Use it when setting frame info.
1422 * exceptions.cc (handle_exceptions): Use exception flag when calling
1423 sig_send.
1424
a069f560
ED
14252001-04-27 Egor Duda <deo@logos-m.ru>
1426
1427 * tty.cc (tty::make_pipes): Set to_slave pipe mode to nonblocking.
1428 * fhandler_tty.cc (fhandler_pty_master::accept_input): If pipe buffer
1429 is full, give slave a chance to read data.
1430
22ae5a5b
CV
14312001-04-26 Kazuhiro Fujieda <fujieda@jaist.ac.jp>
1432
d61b1993 1433 * security.cc (alloc_sd): Add unrelated ACCESS_ALLOWED_ACE behind
22ae5a5b
CV
1434 the `everyone' ACE.
1435
968d91b2
CF
1436Wed Apr 25 15:07:37 2001 Christopher Faylor <cgf@cygnus.com>
1437
fb1a9f35
CF
1438 * sigproc.h [sigthread]: Add exception field.
1439 [sigframe::~sigframe]: Clear exception field.
1440 [sigframe::set]: Set exception field from caller.
968d91b2
CF
1441 * sigproc.cc (sig_send): Set exception field when frame pointer is
1442 passed in.
1443 * exceptions.cc (interrupt_on_return): Always treat exception as
1444 interruptible.
1445
86699e15
ED
14462001-04-25 Egor Duda <deo@logos-m.ru>
1447
1448 * cygwin.din: Export asctime_r, ctime_r, gmtime_r, localtime_r
1449 * include/cygwin/version.h: Bump CYGWIN_VERSION_API_MINOR to 39
1450
edc4bfd9
CF
1451Wed Apr 25 10:57:36 2001 Christopher Faylor <cgf@cygnus.com>
1452
1453 * include/cygwin/version.h: Bump minor version number.
1454 * childinfo.h: Bump child structure magic number.
1455
feae8d0e
CV
14562001-04-25 Kazuhiro Fujieda <fujieda@jaist.ac.jp>
1457
1458 * uinfo.cc (internal_getlogin): Return pointer to struct passwd.
1459 (uinfo_init): Accommodate the above change.
1460 * syscalls.cc (seteuid): Ditto.
1461
d551169a
CV
1462Tue Apr 25 11:08:00 2001 Corinna Vinschen <corinna@vinschen.de>
1463
1464 * autoload.cc: Add LoadDLLfunc statements for SetTokenInformation@16.
1465 * cygheap.cc: Include security.h.
1466 * grp.cc (internal_getgrent): New function.
1467 (getgroups): Rearranged using `internal_getgrent' and the new
1468 `cygsid' class.
1469 * passwd.cc (internal_getpwent): New function.
1470 * sec_acl.cc: Use new `cygsid' class throughout.
1471 (acl_access): Use `internal_getgrent' instead of `getgrent'.
1472 * sec_helper.cc: Use new `cygsid' class throughout.
1473 (get_id_from_sid): Use `internal_getgrent' instead of `getgrent'.
1474 Use `internal_getpwent' instead of `getpwent'.
1475 * security.cc: Use new `cygsid' class throughout.
1476 * security.h: Move `MAX_SID_LEN' from winsup.h to here.
1477 Add extern declarations for `internal_getgrent' and `internal_getpwent'.
1478 (class cygsid): New class.
1479 * shared.cc (sec_user): Use new `cygsid' class.
1480 * syscalls.cc (seteuid): Try to set owner to user and primary group to
1481 current group in impersonation token before performing impersonation.
1482 (setegid): Try to set primary group in process token to the new group
1483 if ntsec is on.
1484 * uinfo.cc (internal_getlogin): Use new `cygsid' class.
1485 Try to set owner to user and primary group to current group in process
1486 token if the process has been started from a non cygwin process.
1487 (uinfo_init): Set primary group only if the process has been started
1488 from a non cygwin process.
1489 * winsup.h: Move define for `MAX_SID_LEN' to security.h.
1490
3a6e9668
CV
1491Mon Apr 16 23:20:00 2001 Andy Younger <andylyounger@hotmail.com>
1492
1493 * fhandler_dsp.cc: Improved handling of 8 bit playback modes.
1494 Put in mock support for SNDCTL_DSP_SETFRAGMENT.
1495
b7cf6a2f
CV
1496Tue Apr 24 23:51:00 2001 Corinna Vinschen <corinna@vinschen.de>
1497
1498 * passwd.cc (getpwnam_r): Add pw_passwd handling as well.
1499 (getpwuid_r): Ditto.
1500
3c73ae1c
CV
1501Tue Apr 24 23:43:00 2001 Corinna Vinschen <corinna@vinschen.de>
1502
1503 * passwd.cc (getpwnam_r): Use correct offsets into buffer.
1504 Copy pw_gecos field as well.
1505 (getpwuid_r): Ditto.
1506
8db71e01
ED
15072001-04-24 Egor Duda <deo@logos-m.ru>
1508
1509 * dlmalloc.c: New file. Port of Doug Lea's malloc
1510 * dlmalloc.h: Ditto.
1511 * Makefile.in: Add support for MALLOC_DEBUG
1512 * config.h.in: Ditto.
1513 * winsup.h: Ditto.
1514 * configure.in: Add --enable-malloc-debugging option.
1515 * configure: Regenerate.
1516 * debug.h: Include declarations for debugging malloc.
1517 * tty.cc (grantpt): Fix definition.
1518 (unlockpt): Ditto.
1519
f3ea62a8
CF
1520Mon Apr 23 22:00:29 2001 Christopher Faylor <cgf@cygnus.com>
1521
1522 Remove trailing underscore from fhandler_base and friends, throughout.
1523 * fhandler.h (fhandler_base::set_open_status): New method. Stores
1524 original open status.
1525 (fhandler_base::get_open_status): New method. Retrieves original open
1526 status.
1527 (fhandler_base::reset_to_open_binmode): New method.
1528 * fhandler.cc (fhandler_base::open): Save open status.
1529 (fhandler_base::init): Ditto.
1530 * fhandler_clipboard.cc (fhandler_clipboard::open): Ditto.
1531 * fhandler_console.cc (fhandler_console::open): Ditto.
1532 * fhandler_dsp.cc (fhandler_dsp::open): Ditto.
1533 * fhandler_dev_mem.cc (fhandler_dev_mem::open): Ditto.
1534 * fhandler_dev_random.cc (fhandler_dev_random::open): Ditto.
1535 * fhandler_serial.cc (fhandler_serial::open): Ditto.
1536 * fhandler_tty_slave.cc (fhandler_tty_slave::open): Ditto.
1537 * fhandler_tty_master.cc (fhandler_tty_master::open): Ditto.
1538 * fhandler_dev_zero.cc (fhandler_dev_zero::open): Ditto.
1539 * syscalls.cc (setmode): Rework so that 0 mode value causes reversion
1540 to open state.
1541
1542 * fhandler_tty_slave.cc (fhandler_tty_slave::read): Use correct
1543 multiplier when converting from deciseconds to milliseconds.
1544
9cf9c146
CF
1545Mon Apr 23 13:28:35 2001 Christopher Faylor <cgf@cygnus.com>
1546
1547 * fhandler.h (fhandler_base::clear_r_binary): New method.
1548 (fhandler_base::clear_w_binary): New method.
1549 * syscalls.cc (setmode): Accept 0 as mode value. Resets text/binary
1550 behavior for fd to default.
1551
f940c5b1
CF
1552Mon Apr 23 12:46:07 2001 Christopher Faylor <cgf@cygnus.com>
1553
1554 * net.cc [errmap]: Add '0' condition.
1555 (find_winsock_errno): Don't translate no error to EPERM.
1556
c02e9189
CF
1557Sun Apr 22 20:48:24 2001 Christopher Faylor <cgf@cygnus.com>
1558
1559 * include/cygwin/version.h: Bump Cygwin version and API version.
1560
9672024b
RC
1561Mon Apr 23 9:27:00 2001 Robert Collins <rbtcollins@hotmail.com>
1562
1563 * thread.cc (MTinterface::Init): Always initialise per process variables.
1564
1acf5c29
CF
1565Sun Apr 22 19:18:18 2001 Christopher Faylor <cgf@cygnus.com>
1566
1567 * features.h: Reinstate as wrapper for sys/features.h.
1568
b2652452
CV
1569Mon Apr 23 0:10:00 2001 Corinna Vinschen <corinna@vinschen.de>
1570
1571 * security.cc (alloc_sd): Reformat comment.
1572 * shared.cc: Drop function declarations already in security.h.
1573
96dc5dd7
CF
1574Sun Apr 22 12:17:57 2001 Christopher Faylor <cgf@cygnus.com>
1575
1576 * shortcut.c (check_shortcut): Close input file handle before
1577 returning.
1578 * path.cc (check_sysfile): Ditto.
1579 (symlink_info::check): Rely on opened file handle being closed by
1580 symlink checking routines. Set ext_tacked_on when .lnk is detected.
1581
da77d416
CF
1582Sat Apr 21 19:26:05 2001 Christopher Faylor <cgf@cygnus.com>
1583
1584 * thread.cc (MTinterface::Init): Remove accidentally checked in code.
1585
9450ad0d
RC
1586Sun Apr 22 00:22:00 2001 Robert Collins <rbtcollins@hotmail.com>
1587
1588 * passwd.cc (getpwuid): Check for thread cancellation.
1589 (getpwuid_r): Ditto.
1590 (getpwname): Ditto.
1591 (getpwnam_r): Ditto.
1592 * thread.h (pthread_mutex): New constructors for pshared operation.
1593 (MTinterface): Associative array for pshared mutex's.
1594 * thread.cc (MTinterface::Init): Initailize pshared mutex array.
1595 (pthread_cond::BroadCast): Implementation notes.
1596 (pthread_cond::TimedWait): Remove use of SignalObjectAndWait on non-NT systems.
1597 (pthread_mutex::pthread_mutex(unsigned short)): New function.
1598 (pthread_mutex::pthread_mutex (pthread_mutex_t *, pthread_mutexattr *)):New function.
1599 (pthread_mutex::pthread_mutex(pthread_mutexattr *)): Fail on pshared mutex's.
1600 (__pthread_mutex_getpshared): New function.
1601 (__pthread_join): Check for thread cancellation.
1602 (__pthread_cond_timedwait): Support pshared mutex's.
1603 (__pthread_cond_wait): Ditto.
1604 (__pthread_condattr_setpshared): Error on PROCESS_SHARED requests.
1605 (__pthread_mutex_init): Support pshared mutex's.
1606 (__pthread_mutex_getprioceiling): Ditto.
1607 (__pthread_mutex_lock): Ditto.
1608 (__pthread_mutex_trylock): Ditto.
1609 (__pthread_mutex_unlock): Ditto.
1610 (__pthread_mutex_destroy): Ditto.
1611 (__pthread_mutex_setprioceiling): Ditto.
d61b1993 1612 (__pthread_mutexattr_setpshared): Support PTHREAD_PROCESS_PSHARED requests.
9450ad0d 1613
60326076
CF
1614Fri Apr 20 19:38:29 2001 Christopher Faylor <cgf@cygnus.com>
1615
1616 * cygwin.din: Add *scanf and *scan_r functions.
1617
3c8e92d9
CV
1618Fri Apr 20 22:25:00 2001 Corinna Vinschen <corinna@vinschen.de>
1619
1620 * security.cc (set_process_privileges): Swap out.
1621 * sec_helper.cc (set_process_privilege): Rename from
1622 `set_process_privileges'. Takes the privilege to enable or disable
1623 as parameter now.
1624 * security.h: Add prototype for `set_process_privileges'.
1625
b9815dc3 16262001-04-19 Egor Duda <deo@logos-m.ru>
d61b1993 1627
b9815dc3
CF
1628 * path.cc (path_conv::check): Always initialize member variables.
1629
cbd88687
CF
1630Fri Apr 20 12:27:49 2001 Christopher Faylor <cgf@cygnus.com>
1631
1632 * include/sys/file.h: More cleanup for X_OK.
1633
cdcfe4e8
CF
1634Fri Apr 20 11:48:45 2001 Christopher Faylor <cgf@cygnus.com>
1635
1636 * include/sys/file.h: Move X_OK protection earlier.
1637
1638 * dtable.cc (dtable::vfork_child_fixup): Avoid closing already closed
1639 handles.
1640
bfbc1aec
CV
1641Fri Apr 20 16:29:00 2001 Corinna Vinschen <corinna@vinschen.de>
1642
1643 * grp.cc (getgroups): Change so that SIDs get compared instead
1644 of strings to SIDs.
1645
c0d1968a
CV
1646Fri Apr 20 14:50:00 2001 Corinna Vinschen <corinna@vinschen.de>
1647
1648 * Makefile.in: Add object files `sec_helper.cc' and `sec_acl.cc'.
1649 * security.cc: Swap out several functions.
1650 * sec_acl.cc: New file. Move Sun compatibel ACL functions from
1651 `security.cc' to here.
1652 * sec_helper.cc: New file. Move security helper functions from
1653 `security.cc' to here.
1654 * security.h: Changed to accomodate the above changes.
1655
1656Fri Apr 20 14:12:00 2001 Corinna Vinschen <corinna@vinschen.de>
1657
1658 * grp.cc: Replace `group_in_memory_p' by `group_state'.
1659 Eliminate group_sem throughout.
1660 (enum grp_state): New enumeration type.
1661 (read_etc_group): Make race safe.
1662 * security.cc: Eliminate group_sem throughout.
1663
b78d6f6e
CV
1664Thu Apr 19 9:40:00 2001 Corinna Vinschen <corinna@vinschen.de>
1665
1666 * mmap.cc (mmap): Drop usage of the same memory area if the same
1667 region of the same file is mapped twice.
1668
0381fec6
CF
1669Wed Apr 18 16:53:54 2001 Christopher Faylor <cgf@cygnus.com>
1670
1671 Throughout, change fdtab references to cygheap->fdtab.
1672 * child_info.h (cygheap_exec_info): Eliminate special fdtab stuff.
1673 * spawn.cc (spawn_guts): Ditto.
1674 * cygheap.cc (cygheap_init): Initialize fdtab, if appropriate.
1675 * cygheap.h (CYGHEAPSIZE): Include size of init_cygheap.
1676 (_cmalloc_entry): Include fdtab here.
1677 * dtable.h (dtable): Declare/define new methods.
1678 * dtable.cc (dtable::vfork_child_fixup): New method.
1679 (dtable::fixup_after_exec): Remove unneeded extra arguments.
1680 * dcrt0.cc (dll_crt0_1): Ditto.
1681
1682 * environ.cc (getwinenv): Use case sensitive comparison.
1683 (winenv): Make a copy of environment cache to avoid realloc problems
1684 when duplicate environment variables exist in the environment. (From
1685 Egor Duda)
1686
1687 * net.cc (cygwin_socket): Revert Apr 14 change.
1688
1689 * include/sys/file.h: Protect against previous X_OK definition.
1690
1691Tue Apr 17 12:18:28 2001 Christopher Faylor <cgf@cygnus.com>
1692
1693 * passwd.cc: Eliminate passwd_sem throughout.
1694 * security.cc: Ditto.
1695
1696Tue Apr 17 12:18:28 2001 Robert Collins <rbtcollins@hotmail.com>
1697
1698 * cygwin.din: Export New functions.
1699 * passwd.cc (read_etc_passwd): Make race safe.
1700 (getpwuid_r): New function.
1701 (getpwnam_r): New function.
1702
77c45b12
CV
17032001-04-18 Egor Duda <deo@logos-m.ru>
1704
1705 * grp.cc (getgroups): Avoid crash if passwd field if /etc/group is
1706 empty.
1707
4199e1e6
CF
1708Tue Apr 17 19:05:44 2001 Christopher Faylor <cgf@cygnus.com>
1709
1710 * path.h (path_conv::add_ext_from_sym): Declare.
1711 * path.cc (path_conv::add_ext_from_sym): Convert to pure inline method.
1712
e6629a8a
CV
1713Tue Apr 17 18:50:00 2001 Corinna Vinschen <corinna@vinschen.de>
1714
1715 * path.cc (windows_device_names): Add missing NULL element.
1716
adfd477d
CF
1717Tue Apr 17 12:14:54 2001 Christopher Faylor <cgf@cygnus.com>
1718
1719 * path.cc (windows_device_names): Move dsp to proper location.
1720
8aefe7c0
CV
1721Tue Apr 17 13:44:00 2001 Corinna Vinschen <corinna@vinschen.de>
1722
1723 * path.cc (path_conv::check): Set case_clash even if pcheck_case
1724 is set to PCHECK_ADJUST when a case clash is given for the last
1725 component in path.
1726 (symlink_info::case_check): Ditto.
1727 * syscalls.cc (_rename): Avoid overwriting an already existing file
1728 if a case clash is given even if pcheck_case is set to PCHECK_ADJUST.
1729
77eb506d
CV
1730Tue Apr 17 2:07:07 2001 Christopher Faylor <cgf@cygnus.com>
1731
1732 * config.h.in: Turn off VFORK again.
1733
431ba7dd
CF
1734Mon Apr 16 23:45:24 2001 Christopher Faylor <cgf@cygnus.com>
1735
1736 * path.h (cwdstuff): Move class.
1737 * cygheap.h (cwdstuff): To here.
1738 (init_cygheap): Add cwd field.
1739 * child_info.h (cygheap_exec_info): Eliminate cwd stuff.
1740 (child_info_spawn): Ditto.
1741 * dcrt0.cc (dll_crt0_1): Remove cygcwd.fixup_after_exec call. Convert
1742 cygcwd reference to cygheap->cwd.
1743 * path.cc: Ditto, throughout.
1744 (cwdstuff::copy): Eliminate.
1745 (cwdstuff::fixup_after_exec): Ditto.
1746 * spawn.cc (spawn_guts): Eliminate call to cygcwd.copy.
1747
1748 * fhandler.h (FH_OSS_DSP): Move into "fast" device category.
1749
7ade56ca
CV
1750Mon Apr 16 19:19:00 2001 Corinna Vinschen <corinna@vinschen.de>
1751
1752 * mmap.cc: Move fh_paging_file from some functions to be
1753 a global static variable.
1754 (class mmap_record): Add `devtype_' member to remember
1755 the device type of the file. Add declaration for methods
1756 `get_device', `alloc_fh' and `free_fh'.
1757 (mmap_record::mmap_record): Initialize `devtype_' correctly.
1758 (mmap_record::alloc_fh): New method.
1759 (mmap_record::free_fh): Ditto.
1760 (munmap): Use new mmap_record::alloc_fh and mmap_record::free_fh
1761 methods to create a correct fhandler.
1762 (msync): Ditto.
1763 (fixup_mmaps_after_fork): Ditto.
1764
c4548fb4
CV
1765Mon Apr 16 16:01:00 2001 Corinna Vinschen <corinna@vinschen.de>
1766
1767 * grp.cc (getgroups): If `allow_ntsec' is set, use the process token
1768 information to evaluate the groups list.
1769
3b3b19d2
CF
1770Mon Apr 16 00:08:02 2001 Christopher Faylor <cgf@cygnus.com>
1771
1772 * features.h: Remove this file as it is now being supplied by newlib.
1773
b0a50cf3
CF
1774Sun Apr 15 23:23:29 2001 Christopher Faylor <cgf@cygnus.com>
1775
1776 * autoload.cc: Add winmm functions needed by fhandler_dsp.cc.
1777
1778Sun Apr 15 22:53:52 2001 Andy Younger <andylyounger@hotmail.com>
1779
1780 * fhandler_dsp.cc: New file. Implements OSS like /dev/dsp.
1781 * include/sys/soundcard.h: New file. User land includes for OSS
1782 /dev/dsp.
1783 * fhandler.h: Add new class fhandler_dev_dsp and a FH_OSS_DSP
1784 definition.
1785 * dtable.cc (dtable::build_fhandler): Allow creation of the /dev/dsp
1786 device.
1787 * path.cc (windows_device_names): Add /dev/dsp into list of device
1788 names.
1789 * Makefile.in (DLL_OFILES): Add fhandler_dsp.o.
1790
4535e6a9
CF
1791Sun Apr 15 16:36:27 2001 Christopher Faylor <cgf@cygnus.com>
1792
1793 * uname.c (uname): Default n in in86 to 6 if Windows returns > 6.
1794
1ff87985
CV
1795Sun Apr 15 15:56:00 2001 Corinna Vinschen <corinna@vinschen.de>
1796
1797 * path.cc (add_ext_from_sym): Redefine to call `add_ext_from_sym_'.
1798 (add_ext_from_sym_): New inline function.
1799
34bbe838
CF
1800Sat Apr 14 19:23:52 2001 Christopher Faylor <cgf@cygnus.com>
1801
1802 * config.h.in: Turn on VFORK by default.
1803
266be1d8
CF
1804Sat Apr 14 18:04:35 2001 Christopher Faylor <cgf@cygnus.com>
1805
1806 * net.cc (cygwin_socket): Set SO_LINGER to small value so closed UNIX
1807 domain sockets will not stay around.
1808
1809Sat Apr 14 18:01:43 2001 Pierre A. Humblet <Pierre.Humblet@ieee.org>
1810
1811 * select.cc (socket_cleanup): Set SO_LINGER to small value so closed
1812 dummy sockets do not stay around. Use correct value for second argument
1813 to shutdown.
1814
e6b98fc8
RC
1815Sat Apr 14 17:04:00 2001 Robert Collins <rbtcollins@hotmail.com>
1816
1817 * thread.h (MTinterface): Add threadcount.
1818 * thread.cc (MTinterface::Init): Set threadcount to 1.
1819 (__pthread_create): Increment threadcount.
1820 (__pthread_exit): Decrement threadcount and call exit() from the last thread.
1821
1114d472 1822Fri Apr 13 11:34:24 2001 Robert Collins <rbtcollins@hotmail.com>
39b6859a
CF
1823
1824 * fork.cc (fork_child): Call the __pthread_atforkchild function.
1825 (fork_parent): Call the __pthread_atforkparent function.
1826 * cygwin.din: Export pthread_atfork.
1827 * thread.h (callback): New class.
1828 (MTinterface): Use it.
1829 * thread.cc (__pthread_atforkprepare): New function.
1830 (__pthread_atforkparent): New function.
1831 (__pthread_atforkchild): New function.
1832 (__pthread_atfork): New function.
1833 * pthread.cc (pthread_atfork): New function.
1834
e61cead3
CV
1835Fri Apr 13 9:52:00 2001 Corinna Vinschen <corinna@vinschen.de>
1836
1837 * path.cc (add_ext_from_sym): New define evaluating `known'suffix'.
1838 (path_conv::check): Use add_ext_from_sym throughout.
1839
1840Thu Apr 12 23:19:00 2001 Corinna Vinschen <corinna@vinschen.de>
70c370d6
CV
1841
1842 * dir.cc (mkdir): Check for case clash.
1843 * environ.cc: Add extern declaration for `pcheck_case'.
1844 (check_case_init): New function.
1845 (struct parse_thing): Add "check_case" option.
1846 * errno.cc (_sys_nerrlist): Add text for ECASECLASH.
1847 (strerror): Add case branch for ECASECLASH.
1848 * fhandler.cc (fhandler_disk_file::open): Check for case clash.
1849 * path.cc: Add global variable `pcheck_case'.
1850 (struct symlink_info): Add member `case_clash' and method `case_check'.
1851 (path_prefix_p_): Call `pathnmatch' instead of `strncasematch'.
1852 (pathnmatch): New funtion.
1853 (pathmatch): Ditto.
1854 (path_conv::check): Add handling for case checking.
1855 (symlink): Check for case clash.
1856 (symlink_info::check): Add parameter for case checking.
1857 Handle case checking.
1858 (symlink_info::case_check): New method.
1859 (chdir): Don't use unconverted path if pcheck_case==PCHECK_STRICT.
1860 * path.h: Add extern declarations for `pathmatch' and
1861 `pathnmatch'.
1862 (enum case_checking): New enumeration type describing
1863 the case checking behaviour of path conversion routines.
1864 (class path_conv): Add member `case_clash'.
1865 * syscalls.cc (_link): Check for case clash.
1866
82d4a5d4
CF
1867Thu Apr 12 12:49:53 2001 Christopher Faylor <cgf@cygnus.com>
1868
1869 * syscalls.cc (mkfifo): New function stub.
1870
aa67fd12
CF
18712001-04-12 Robert Collins <rbtcollins@hotmail.com>
1872
1873 * configure.in: Remove PTH_ALLOW.
1874 * cygwin.din: Remove @PTH_ALLOW@ prefixes to pthread functions. Add
1875 new pthread exports.
1876 * pthread.cc: New wrapper functions for the above new exports.
1877 * sched.cc (valid_sched_parameters): New function.
1878 (sched_setparam): Use it.
1879 (sched_set_thread_priority): New function. Used by pthread_sched*.
1880 * thread.cc (pthread_key_destructor::InsertAfter): New function.
1881 (pthread_key_destructor::UnlinkNext): New function.
1882 (pthread_key_destructor::Next): New function.
1883 (pthread_key_destructor_list::Insert): New function.
1884 (pthread_key_destructor_list::Remove): New function.
1885 (pthread_key_destructor_list::Pop): New function.
1886 (pthread_key_destructor::pthread_key_destructor): New function.
1887 (pthread_key_destructor_list::IterateNull): New function.
1888 (MTinterface::Init): Initialise new member.
1889 (pthread::pthread): Initialise new members.
1890 (pthread::create): Copy new attributes. Set the new thread priority.
1891 (pthread_attr::pthread_attr): Initialise new members.
1892 (pthread_key::pthread_key): Setup destructor function.
1893 (pthread_key::~pthread_key): Remove destructor function.
1894 (pthread_mutexattr::pthread_mutexattr): New function.
1895 (pthread_mutexattr::~pthread_mutexattr): New function.
1896 (__pthread_once): New function.
1897 (__pthread_cleanup): New function.
1898 (__pthread_cancel): New function.
1899 (__pthread_setcancelstate): New function.
1900 (__pthread_setcanceltype): New function.
1901 (__pthread_testcancel): New function.
1902 (__pthread_attr_getinheritsched): New function.
1903 (__pthread_attr_getschedparam): New function.
1904 (__pthread_attr_getschedpolicy): New function.
1905 (__pthread_attr_getscope): New function.
1906 (__pthread_attr_setinheritsched): New function.
1907 (__pthread_attr_setschedparam): New function.
1908 (__pthread_attr_setschedpolicy): New function.
1909 (__pthread_attr_setscope): New function.
1910 (__pthread_exit): Call any key destructors on thread exit.
1911 (__pthread_join): Use the embedded attr values.
1912 (__pthread_detach): Use the embedded attr values.
1913 (__pthread_getconcurrency): New function.
1914 (__pthread_getschedparam): New function.
1915 (__pthread_key_create): Pass the destructor on object creation.
1916 (__pthread_key_delete): Correct incorrect prototype.
1917 (__pthread_setconcurrency): New function.
1918 (__pthread_setschedparam): New function.
1919 (__pthread_cond_timedwait): Support static mutex initialisers.
1920 (__pthread_cond_wait): Ditto.
1921 (__pthread_mutex_getprioceiling): New function.
1922 (__pthread_mutex_lock): Support static mutex initialisers.
1923 (__pthread_mutex_trylock): Ditto.
1924 (__pthread_mutex_unlock): Ditto.
1925 (__pthread_mutex_destroy): Ditto.
1926 (__pthread_mutex_setprioceiling): New function.
1927 (__pthread_mutexattr_getprotocol): New function.
1928 (__pthread_mutexattr_getpshared): New function.
1929 (__pthread_mutexattr_gettype): New function.
1930 (__pthread_mutexattr_init): New function.
1931 (__pthread_mutexattr_destroy): New function.
1932 (__pthread_mutexattr_setprotocol): New function.
1933 (__pthread_mutexattr_setprioceiling): New function.
1934 (__pthread_mutexattr_getprioceiling): New function.
1935 (__pthread_mutexattr_setpshared): New function.
1936 (__pthread_mutexattr_settype): New function. Remove stubs for non
1937 MT_SAFE compilation.
1938 * thread.h: Remove duplicate #defines. Add prototypes for new
1939 functions in thread.cc.
1940 (pthread_key_destructor): New class.
1941 (pthread_key_destructor_list): New class.
1942 (pthread_attr): Add new members.
1943 (pthread): Remove members that are duplicated in the pthread_attr
1944 class.
1945 (pthread_mutex_attr): Add new members.
1946 (pthread_once): New class.
1947 * include/pthread.h: Add prototypes for new functions exported from
1948 cygwin1.dll. Remove typedefs.
1949 * include/sched.h: Add prototypes for new functions in sched.cc.
1950 * include/cygwin/types.h: Add typedefs from pthread.h
1951
fc672fb2
CF
1952Tue Apr 10 22:02:53 2001 Christopher Faylor <cgf@cygnus.com>
1953
1954 * path.cc (struct symlink_info): Add extn and ext_tacked_on fields.
1955 (path_conv::check): Only tack on extension if a known one didn't
1956 already exist.
1957 (suffix_scan::has): Return pointer to known extension.
1958 (symlink_info::check): Record location of extension, if any.
1959
619f7fa0
ED
19602001-04-09 Egor Duda <deo@logos-m.ru>
1961
1962 * fhandler.h (class fhandler_socket): Add members and methods to
1963 support secure connections on AF_UNIX sockets.
1964 * fhandler_socket.cc (fhandler_socket::set_connect_secret): New method.
1965 (fhandler_socket::get_connect_secret): Ditto.
1966 (fhandler_socket::create_secret_event): Ditto.
1967 (fhandler_socket::close_secret_event): Ditto.
1968 (fhandler_socket::check_peer_secret_event): Ditto.
1969 (fhandler_socket::fixup_after_fork): Duplicate secret event to child.
1970 (fhandler_socket::dup): Copy address family.
1971 (fhandler_socket::close): Close secret event.
1972 * net.cc (get_inet_addr): Read secret cookie.
1973 (cygwin_connect): Check if peer knows secret cookie value.
1974 (cygwin_accept): Ditto. Copy address family to newly created socket.
1975 (cygwin_bind): Generate and write secret cookie.
1976 (wsock_init): Initialize random number generator.
1977
aa970c61
CF
1978Sun Apr 8 20:40:58 2001 Christopher Faylor <cgf@cygnus.com>
1979
1980 * Makefile.in: Put -lgcc last in list of libraries, since stdc++
1981 library needs it.
1982 * cygwin.din: Remove obsolete "__empty" export.
1983 * exceptions.cc (call_signal_handler_now): Force inclusion of function
1984 even when -finline-functions is specified.
1985 * sigproc.h: Remove obsolete call_signal_handler declaration.
1986
1987Sun Apr 8 20:36:55 2001 Benjamin Riefenstahl <Benjamin.Riefenstahl@epost.de>
e3eef4d0 1988
aa970c61
CF
1989 * fhandler_console.cc (cp_get_internal): New function.
1990 (cp_convert): New function.
1991 (con_to_str): New function.
1992 (str_to_con): New function.
1993 (fhandler_console::read): Replace OemToCharBuff with con_to_str.
1994 (fhandler_console::write_normal): Replace CharToOemBuff with str_to_con.
1995
9ddfe5a0
CV
1996Thu Apr 5 22:41:00 2001 Corinna Vinschen <corinna@vinschen.de>
1997
1998 * syscalls.cc (stat_worker): Fix conditional which still allowed
1999 successful stat'ing of non-existant files.
2000
0403bb74
CF
2001Wed Apr 4 10:37:44 2001 Christopher Faylor <cgf@cygnus.com>
2002
2003 * child_info.h: Bump magic number for fork/exec/spawn.
2004
c196a1a2
CV
2005Tue Apr 3 20:06:00 2001 Corinna Vinschen <corinna@vinschen.de>
2006
2007 * errno.cc (errmap): Map ERROR_FILE_INVALID to ENXIO.
2008
c90e420d
CF
2009Mon Apr 2 22:48:58 2001 Christopher Faylor <cgf@cygnus.com>
2010
2011 * cygrun.c (main): Fix compiler warning.
2012 * gmon.c (_mcleanup): Ditto.
2013 * profil.c (profile_off): Ditto.
2014
2015 * net.cc (find_winsock_errno): New function.
2016 (__set_winsock_errno): Use find_winsock_errno.
2017 (cygwin_setsockopt): Detect SO_ERROR for debugging.
2018 (cygwin_getsockopt): Ditto. Translate error when getsockopt returns
2019 SO_ERROR.
2020 * winsup.h: regparmize __set_winsock_errno.
2021 * include/sys/strace.h: Document that strace functions can't use
2022 regparm.
2023
0f0a7dc9
CV
20242001-04-02 Kazuhiro Fujieda <fujieda@jaist.ac.jp>
2025
2026 * fhandler.cc (fhandler_disk_file::open): Avoid checking a magic
2027 number of a directory.
2028
f97adf98
CF
2029Mon Apr 2 00:24:08 2001 Christopher Faylor <cgf@cygnus.com>
2030
2031 * shared_info.h (mount_info): Remove mnt_ elements.
2032 * thread.h (struct _winsup_t): Add mnt_ elements.
2033 * path.cc (fillout_mntent): Use mnt_ elements from reent_winsup ().
2034
1ba3935d
CF
2035Sun Apr 1 20:10:34 2001 Christopher Faylor <cgf@cygnus.com>
2036
2037 * exceptions.cc (sigframe::call_signal_handler): Return value of
2038 call_signal_handler_now.
2039 * sigproc.h (sigframe): Use constructor.
2040 * syscalls.cc (_read): Correct errno test prior to calling signal
2041 handler.
2042
2a1743c7
CF
2043Sun Apr 1 00:38:06 2001 Christopher Faylor <cgf@cygnus.com>
2044
0ef785e4 2045 * exceptions.cc (sigframe::call_signal_handler): Move outside of "C"
2a1743c7
CF
2046 block or some compilers will complain.
2047
11f3a79b
CF
2048Sun Apr 1 00:24:14 2001 Christopher Faylor <cgf@cygnus.com>
2049
2050 * exceptions.cc (call_signal_handler_now): Rename from
2051 call_signal_handler to avoid C++ confusion.
2052
5817ee2d
CF
2053Sun Apr 1 00:08:15 2001 Christopher Faylor <cgf@cygnus.com>
2054
2055 * path.cc (fillout_mntent): Always remove drive root directories from
2056 future consideration by "/cygdrive" reporting.
2057 (cygdrive_getmnt): Avoid reporting removable drives or drives with no
2058 media mounted.
2059
f2aeff27
CF
2060Sat Mar 31 21:56:19 2001 Christopher Faylor <cgf@cygnus.com>
2061
2062 * thread.h (struct _winsup_t): Remove obsolete elements. Add
2063 available_drives element.
2064 * path.cc (mount_info::getmntent): Report "/cygdrive" drives when
2065 mounted drives are exhausted.
2066 (fillout_mntent): New function.
2067 (mount_item::getmntent): Use fillout_mntent.
2068 (cygdrives_mntent): New function. Returns next available "/cygdrive".
2069 (setmntent): Initialize available "/cygdrives".
2070 * syscalls.cc: Remove some if 0'ed code.
2071 * times.cc (timezone): Use more descriptive variable name.
2072
f6111483
CF
2073Sat Mar 31 18:59:52 2001 Christopher Faylor <cgf@cygnus.com>
2074
2075 * sigproc.h (class sigframe): Implement 'unregister()' method.
2076 (sigframe::~sigframe): Use unregister method.
2077 (sigframe::call_signal_handler): Declare new method.
2078 * exceptions.cc (sigframe::call_signal_handler): New method.
2079 Unregisters current sigframe before calling signal handler.
2080 (setup_handler): Clear waiting threads prior to arming signal_arrived.
2081 * syscalls.cc (_read): Change goto to loop. Recalculate sigframe
2082 inside of loop so that constructor is called when appropriate.
2083 * wait.cc (wait4): Ditto.
2084
2085 * signal.cc: Change "sig" to "signal" in debugging messages throughout.
2086 * sigproc.cc: Ditto.
2087
ab57d146
CF
2088Sat Mar 31 17:12:08 2001 Christopher Faylor <cgf@cygnus.com>
2089
2090 * fhandler_serial.cc (fhandler_serial::raw_write): Close protected
2091 handles with ForceCloseHandle or suffer spurious warnings.
2092
0cec3226
CF
2093Sat Mar 31 16:23:32 2001 Christopher Faylor <cgf@cygnus.com>
2094
2095 * fhandler.cc (fhandler_base::read): Remove special handling of CTRL-Z.
2096
70afbaae
CV
2097Sat Mar 31 11:09:00 2001 Corinna Vinschen <corinna@vinschen.de>
2098
2099 * fhandler.h (class fhandler_console): Add members `insert_mode'.
2100 * fhandler_console.cc (fhandler_console::dup): Duplicate `insert_mode'.
2101 (fhandler_console::fhandler_console): Initialize `insert_mode'.
c796f4f1 2102 (fhandler_console::char_command): Add terminal capabilities
70afbaae
CV
2103 "enter insert mode" = \E[4h and "exit insert mode" = \E[4l.
2104 Care for insert mode on terminal capability "repeat char" = \E[x;yb.
2105 (fhandler_console::write_normal): Care for insert mode before writing
2106 to the console.
2107 (array keytable): Add keymapping for modified cursor and control
2108 block keys (xterm like).
2109
f42da31a
CV
2110Fri Mar 30 13:02:00 2001 Corinna Vinschen <corinna@vinschen.de>
2111
2112 * fhandler.h (class fhandler_console): Add members `savebufsiz' and
2113 `savebuf' to allow save/restore of screen.
70afbaae
CV
2114 * fhandler_console.cc (fhandler_console::dup): Duplicate `savebufsiz'
2115 and `savebuf'.
f42da31a
CV
2116 (fhandler_console::fhandler_console): Initialize `savebufsiz' and
2117 `savebuf'.
2118 (fhandler_console::char_command): Add terminal capabilities
2119 "save screen content" = \E[?47h and "restore screen content" = \E[?47l.
2120
b5eb3d0f
CF
2121Wed Mar 28 19:28:50 2001 Christopher Faylor <cgf@cygnus.com>
2122
2123 * path.cc (chdir): Eat trailing whitespace on input path.
2124
1ac6d1a1
CF
2125Tue Mar 27 22:38:42 2001 Christopher Faylor <cgf@cygnus.com>
2126
2127 * lib/_cygwin_S_IEXEC.c: Remove "const" from globals or they never seem
2128 to be defined. Wrap definitions in extern "C". Include winsup.h to
2129 assure proper definitions.
2130
2131 * dcrt0.cc (dll_crt0_1): Call stdio_init after premain run so that
2132 binmode.o, etc., will control default stdio settings.
2133 * dtable.cc (dtable::init_std_file_from_handle): Allow __fmode to force
2134 binmode/textmode settings. Default pipes to binmode.
2135
37a2d97a
CV
2136Tue Mar 27 11:31:00 2001 Corinna Vinschen <corinna@vinschen.de>
2137
2138 * mmap.cc (mmap): Fix conditional for previous patch.
2139
1636a5a1
CV
2140Mon Mar 26 18:48:00 2001 Corinna Vinschen <corinna@vinschen.de>
2141
2142 * mmap.cc (mmap): Outflank copy-on-write problem on 9x by
2143 setting access mode to FILE_MAP_READ when read access is requested.
2144
aa73152e
CF
2145Sun Mar 25 20:12:21 2001 Christopher Faylor <cgf@cygnus.com>
2146
2147 * dlfcn.cc (check_access): Eliminate.
2148 (check_path_access): Use passed in path_conv buf.
2149 (get_full_path_of_dll): Use passed in name buf to avoid a static. Rip
2150 out most of the path checking since LoadLibrary will do all of this
2151 automatically.
2152 (dlopen): Set errno when appropriate (may not be compliant?).
2153 * environ.cc (posify): Don't pass in "native" path if it seems to
2154 actually be posix.
2155
db0421f6
CF
2156Thursday Mar 22 2001 Robert Collins <rbtcollins@hotmail.com>
2157
2158 * fhandler.h (fhandler_dev_clipboard): Extend to support writing.
2159 * fhandler_clipboard.cc (fhandler_dev_clipboard::fhandler_dev_clipboard):
2160 Initialize new fields. Open clipboard here.
2161 (fhandler_dev_clipboard::dup): New method.
2162 (fhandler_dev_clipboard::open): Accomodate new fields. Register
2163 clipboard here, if appropriate.
2164 (set_clipboard): New function. Moves buffer to clipboard.
2165 (fhandler_dev_clipboard::write): Truly implement clipboard writing.
2166 (fhandler_dev_clipboard::read): Reimplement to allow successive reads.
2167 (fhandler_dev_clipboard::lseek): Truly implement seeks in clipboard.
0ed560cb
CF
2168 (fhandler_dev_clipboard::close): Clear out new fields. Support
2169 sequential reads and sequential writes. Support for binary data via a
2170 native clipboard format.
db0421f6 2171
0b30bad4 21722001-03-22 Egor Duda <deo@logos-m.ru>
0cec3226 2173
0b30bad4
CF
2174 * fhandler_console.cc (fhandler_console::set_default_attr): Update
2175 console color attributes on tty reset.
2176
c4458148
CF
2177Wed Mar 21 22:12:36 2001 Christopher Faylor <cgf@cygnus.com>
2178
2179 * autoload.cc (kernel32_init): New function for kernel32 autoload
2180 initialization.
2181 (SignalObjectAndWait): Add conditional load of this function when it is
2182 available.
2183
9a08b2c0
CF
21842001-03-21 Robert Collins <rbtcollins@hotmail.com>
2185
2186 * sched.cc: New file. Implement sched*.
2187 * include/sched.h: New file. User land includes for sched*.
2188 * Makefile.in: Add sched.o
2189 * cygwin.din: Add exports for sched*.
2190
a1299ba5
CF
2191Tue Mar 20 14:48:46 2001 Christopher Faylor <cgf@cygnus.com>
2192
2193 * dtable.cc: Guard against new winsock.h/winsock2.h warnings when
2194 mixing winsock*.h and sys/types.h.
2195 * fhandler_socket.cc: Ditto.
2196 * net.cc: Ditto.
2197 * select.cc: Ditto.
2198 * exceptions.cc: Remove unneeded define.
2199
b8c8fa17
CF
2200Mon Mar 19 17:43:29 2001 Christopher Faylor <cgf@cygnus.com>
2201
2202 * exceptions.cc (interruptible): Update debugging output.
2203 (setup_handler): Ensure that wait_sig loop wakes up when we punt on
2204 sending a signal.
2205 * poll.cc (poll): Add signal guard here.
2206
78ace8a7
ED
22072001-03-19 Egor Duda <deo@logos-m.ru>
2208
2209 * tty.h (tty::create_inuse): Add new parameter to allow non-
2210 inheritable 'inuse' events.
2211 * tty.cc (tty::create_inuse): Use new parameter.
2212 * fhandler_tty.cc (fhandler_tty_master::init): Ditto.
2213 * fhandler_tty.cc (fhandler_pty_master::open): Ditto.
2214 * fhandler_tty.cc (fhandler_tty_master::init): Create master_alive
2215 event.
2216 * tty.cc (tty_list::terminate): Close master_alive event.
2217 * fhandler_tty.cc (fhandler_tty_common::close): Send EOF to slaves
2218 when master side is closed.
2219
98750a84
CV
2220Mon Mar 19 14:32:00 2001 Corinna Vinschen <corinna@vinschen.de>
2221
2222 * mmap.cc (map::get_list_by_fd): Avoid calling `get_namehash' when
2223 file descriptor is -1.
2224
30f326bf
CV
2225Sat Mar 17 18:30:00 2001 Corinna Vinschen <corinna@vinschen.de>
2226
2227 * syscalls.cc (check_posix_perm): New static function.
2228 (fpathconf): Add _PC_POSIX_PERMISSIONS and _PC_POSIX_SECURITY
2229 support.
2230 (pathconf): Ditto.
2231 * include/cygwin/version.h: Bump API minor number to 37.
2232
5e8e21d9
ED
22332001-03-18 Egor Duda <deo@logos-m.ru>
2234
2235 * fhandler.h (fhandler_tty_slave): Declare new methods.
2236 * select.cc (fhandler_tty_slave::select_read): New method.
2237 * select.cc (fhandler_tty_slave::ready_for_read): Ditto.
2238 * select.cc (verify_tty_slave): New function.
2239 * fhandler_termios.cc (fhandler_termios::line_edit): Empty input
2240 buffer on signal.
2241 * fhandler_tty.cc (fhandler_tty_slave::read): Check for input data
2242 after reading from pipe. Reset event if input pipe is empty.
2243 * tty.h (class tty): Allow creating events with manual reset.
2244 * tty.cc (tty::get_event): Use manual_reset flag.
2245 * tty.cc (tty::common_init): Create input_available_event with
2246 manual reset.
2247
00a74961
CF
2248Sat Mar 17 21:48:03 2001 Christopher Faylor <cgf@cygnus.com>
2249
2250 * external.cc (fillout_pinfo): Match windows pid, as well as cygwin pid
2251 when passed in pid. Don't prematurely break when searching for a pid.
2252
2253 * thread.h (_winsup_t): Eliminate unneeded field.
2254
8eb72e63
CV
2255Sat Mar 17 20:46:00 2001 Corinna Vinschen <corinna@vinschen.de>
2256
2257 * net.cc (get_95_ifconf): Use strcasematch instead of strcasecmp.
2258 * syscalls.cc (_unlink): Ditto.
2259 (_rename): Ditto.
2260
57499703
CF
2261Sat Mar 17 12:43:15 2001 Christopher Faylor <cgf@cygnus.com>
2262
2263 * path.cc (suffix_scan::next): Avoid searching for foo.lnk twice when
2264 input is "foo".
2265
298fad46
CV
2266Sat Mar 17 18:10:00 2001 Corinna Vinschen <corinna@vinschen.de>
2267
2268 * net.cc (cygwin_socket): Set protocol to 0 when address family is
2269 AF_UNIX to avoid WSAEPROTONOSUPPORT error.
2270
f52488f7
CV
2271Sat Mar 17 09:51:32 2001 Mathew Brozowski <brozow@tavve.com>
2272
2273 * net.cc (cygwin_socket): Pass protocol parameter to socket call.
2274
b63a3f55
CF
2275Sat Mar 17 02:05:38 2001 Christopher Faylor <cgf@cygnus.com>
2276
2277 * dir.cc (readdir): Use strcasematch for consistency.
2278 * path.cc (symlink_info): Eliminate known_suffix.
2279 (path_conv::check): Always copy ext_here to end of buffer, if found.
2280 (suffix_scan): Eliminate ext_here, add suffixes_start.
2281 (suffix_scan::has): Eliminate an argument. Reorganize. Always return
2282 pointer to end of input path.
2283 (suffix_scan::next): Take a second pass through the suffix list looking
2284 for .lnk.
2285 (symlink_info::check): Eliminate known_suffix usage.
2286
db15b3e3 2287Sat Mar 17 00:10:52 2001 Christopher Faylor <cgf@cygnus.com>
5bb22c6b 2288
db15b3e3 2289 * syscalls.cc (stat_dev): Give devices full read/write by default.
5bb22c6b 2290
c0c9de3c
CF
2291Saturday Mar 17 3:45 2001 Robert Collins <rbtcollins@hotmail.com>
2292
2293 * thread.cc (MTinterface::CreateCond): Check for null attr pointer.
2294
ddca580f
CF
2295Fri Mar 16 21:13:23 2001 Christopher Faylor <cgf@cygnus.com>
2296
2297 * fhandler_termios.cc (fhandler_termios::line_edit): Don't accept input
2298 when a signal is sent or we'll end up in an EOF/signal race.
2299
b65c6896
CF
2300Fri Mar 16 20:25:40 2001 Christopher Faylor <cgf@cygnus.com>
2301
2302 * path.cc: Translate scan states from defines to enums.
2303 (suffix_scan): Rename state to nextstate for clarity.
2304 (lnk_match): Change to allow multiple states to indicate that a .lnk
2305 has been matched.
2306 (suffix_scan::has): Eliminate a goto. Handle .lnk as a special case,
2307 since a .lnk may also need to be tacked on the end of a .lnk.
2308 (suffix_scan::next): Don't increment next state. Set it specifically.
2309 Recognize new .lnk states.
2310
92f4bf97 2311Saturday Mar 17 01:19 2001 Robert Collins rbtcollins@hotmail.com
0cec3226 2312
5ccbf4b6
CF
2313 * cygwin.din: Export the new functions.
2314 * pthread.cc (pthread_cond_*): Add wrapper functions that call
2315 __pthread_cond* functions.
2316 * thread.cc (__pthread_cond_*): Implement the pthread_cond* functions.
2317 * thread.h: Add new class entries and prototypes for __pthread_cond*
2318 functions.
2319 * include/pthread.h: user land header prototypes for pthread_cond*
2320 functions and related defines.
2321
e212576d
CV
2322Wed Mar 14 16:30:00 2001 Corinna Vinschen <corinna@vinschen.de>
2323
2324 * environ.cc (parse_options): Use strtok_r instead of strtok.
2325 * security.cc (convert_string_sid_to_sid): Ditto.
2326 (aclfromtext): Ditto. Fix buffer usage.
2327
78d2c08c
CV
2328Wed Mar 14 10:11:00 2001 Corinna Vinschen <corinna@vinschen.de>
2329
2330 * path.cc (lnk_suffixes): Remove.
2331 (class suffix_scan): Add `lnk_state' flag.
2332 (suffix_scan::lnk_match): Return state of `lnk_state' now.
2333 (suffix_scan::has): Changed behaviour if file has `.lnk' suffix.
2334 (suffix_scan::next): Set `lnk_state' where appropriate.
2335 (symlink_info::check): Fix a wrong `break'.
2336 * syscalls.cc (chown_worker): Change debug statement to reflect
2337 lchown fix.
2338 (lchown): Call chown_worker with `PC_SYM_NOFOLLOW' instead of
2339 `PC_SYM_IGNORE'.
2340
1d39c83a
CV
2341Tue Mar 13 13:52:00 2001 Corinna Vinschen <corinna@vinschen.de>
2342
2343 * fhandler.cc (fhandler_disk_file::fstat): Add correct modes to
2344 symlinks when stat'ing on FAT or FAT32 file systems.
2345
e935fcf0
ED
23462001-03-12 Egor Duda <deo@logos-m.ru>
2347
2348 * fhandler.h (fhandler_termios::fixup_after_exec): New function.
344ce60c
ED
2349 * fhandler_termios.cc (fhandler_termios::fixup_after_fork): New
2350 function. Fixup output handle.
e935fcf0
ED
2351 * fhandler_tty.cc (fhandler_tty_common::fixup_after_fork): Output
2352 handle is now fixed up in fhandler_termios::fixup_after_fork().
2353
79409dc0
ED
23542001-03-12 Egor Duda <deo@logos-m.ru>
2355
2356 * fhandler.h (fhandler_termios::fhandler_termios): Enable fixup
2357 after fork.
2358 * fhandler_console.cc (fhandler_console::fhandler_console): Fixup
2359 after fork is now enabled in the base class constructor.
2360
2b777e2e
CF
2361Mon Mar 12 11:19:41 2001 Christopher Faylor <cgf@cygnus.com>
2362
2363 * mkvers.sh: Include config.h so that DEBUGGING is correctly defined.
2364
941fa5ad
CF
2365Mon Mar 12 09:47:55 2001 Christopher Faylor <cgf@cygnus.com>
2366
2367 * spawn.cc (spawn_guts): Don't set EXIT_REPARENTING if parent process
2368 is not a cygwin process (suggested by Jason Gouger
2369 <cygwin@jason-gouger.com>).
2370
d0909d91
CF
2371Sun Mar 11 16:00:58 2001 Christopher Faylor <cgf@cygnus.com>
2372
2373 * child_info.h: Bump magic number for fork/exec/spawn.
2374
2116a175
CF
2375Sat Mar 10 20:54:47 2001 Christopher Faylor <cgf@cygnus.com>
2376
2377 * autoload.cc (noload): Use proper method for multiline strings or
2378 newer gcc's complain.
2379 * exceptions.cc (unused_sig_wrapper): Ditto.
2380 * fhandler.h (fhandler_base): Make get_io_handle and friends return
2381 self.
2382 * fhandler_tty.cc (fhandler_pty_common::close_on_exec): Accomodate
2383 DEBUGGING flag to avoid spurious warnings when inheritance is set.
2384
7cf3b655
CF
2385Sat Mar 10 16:52:12 2001 Christopher Faylor <cgf@cygnus.com>
2386
2387 * shortcut.c (PATH_ALL_EXEC): Add parentheses to avoid a compiler
2388 warning.
2389
2390 * exceptions.cc (setup_handler): Clarify debugging message.
2391 * sigproc.cc (proc_subproc): Remove PROC_CHILDSTOPPED test. It is
2392 handled by normal PROC_CLEARWAIT case.
2393 (wait_sig): Eliminate "dispatched" tracking. Remove __SIGCHILDSTOPPED
2394 test. Decrement counter again before jumping out of
2395 InterlockedDecrement loop so that subsequent InterlockedIncrement will
2396 keep the counter at the correctly decremented value and also detect
2397 when there are pending signals.
2398 * sigproc.h: Remove __SIGCHILDSTOPPED element.
2399 (procstuff): Remove PROC_CHILDSTOPPED element.
2400
e2f2a27e
CF
2401Sat Mar 10 15:22:44 2001 Christopher Faylor <cgf@cygnus.com>
2402
2403 * syscalls.cc (_rename): Set errno to ENOENT when an old path doesn't
2404 exist (from Kazuhiro Fujieda <fujieda@jaist.ac.jp>). Also set EACCES
2405 when directory is not writable.
2406
6ebccdc1
CF
2407Wed Mar 7 15:49:47 2001 Christopher Faylor <cgf@cygnus.com>
2408
2409 * syscalls.cc (_read): Change definition to return ssize_t to be
2410 consistent with read.
2411 (_write): Change definition to return ssize_t to be consistent with
2412 write.
2413
efd76e41
CF
2414Wed Mar 7 01:08:21 2001 Christopher Faylor <cgf@cygnus.com>
2415
2416 * sigproc.h (sigthread): Declare new methods. Create new winapi_lock
2417 field.
2418 (sigframe:;set): Call get_winapi_lock after frame is set so that signal
2419 handler thread knows not to call SuspendThread.
2420 (sigframe::~sigframe): Release winapi_lock.
2421 * exceptions.cc (sigthread::get_winapi_lock): New method.
2422 (sigthread::release_winapi_lock): New method.
2423 (setup_handler): Use get_winapi_lock to ensure that signalled thread is
2424 not blocked in a Windows API.
2425
2426 * path.h (path_types): Avoid broken GCC warning.
2427
bf11a54f
CV
2428Tue Mar 6 14:02:00 2001 Corinna Vinschen <corinna@vinschen.de>
2429
2430 * path.cc (suffix_scan::has): Change order of conditionals
2431 to allow checking for .lnk suffixes even if in_suffixes is empty.
2432
2433Tue Mar 6 13:02:00 2001 Corinna Vinschen <corinna@vinschen.de>
7cdc9fee
CV
2434
2435 * autoload.c (cygwin_premain0): Add missing parameter.
2436 * binmode.c (cygwin_premain0): Ditto.
2437 * textmode.c (cygwin_premain0): Ditto.
2438
2439Tue Mar 6 12:04:00 2001 Jason Tiller <jtiller@sjm.com>
2440
2441 * auto_load.cc: Add "GetKeyboardLayout" entry in the list of
2442 Win32 User32.DLL exports to provide.
2443 * fhandler.h (class fhandler_console): Add meta_mask private
2444 member to remember which keystroke modifiers should generate
2445 META.
2446 * fhandler_console.cc (fhandler_console::read): Modify code that
2447 tests a keystroke for a META-escaped key to use the 'meta_mask'
2448 variable.
2449 (fhandler_console::fhandler_console): Add definition for
2450 variable "meta_mask" used to determine if a keystroke should be
2451 preceded by META in the client console stream. Set meta_mask
2452 based on whether or not user's keyboard language is English -
2453 non-English keyboards pass AltGr (right <ALT>) unmolested,
2454 whereas English keyboards now interpret left- and right-<ALT>
2455 as META.
2456
a887211b
CV
2457Mon Mar 5 20:15:00 2001 Corinna Vinschen <corinna@vinschen.de>
2458
2459 * include/a.out.h: Add copyright hint.
2460 * include/fcntl.h: Ditto.
2461 * include/lastlog.h: Ditto.
2462 * include/memory.h: Ditto.
2463 * include/mntent.h: Ditto.
2464 * include/paths.h: Ditto.
2465 * include/poll.h: Ditto.
2466 * include/syslog.h: Ditto.
2467 * include/termio.h: Ditto.
2468 * include/tzfile.h: Ditto.
2469 * include/arpa/inet.h: Ditto.
2470 * include/asm/byteorder.h: Ditto.
2471 * include/asm/socket.h: Ditto.
2472 * include/asm/types.h: Ditto.
2473 * include/cygwin/if.h: Ditto.
2474 * include/cygwin/mtio.h: Ditto.
2475 * include/cygwin/rdevio.h: Ditto.
2476 * include/cygwin/socket.h: Ditto.
2477 * include/net/if.h: Ditto.
2478 * include/netinet/in.h: Ditto.
2479 * include/netinet/in_systm.h: Ditto.
2480 * include/netinet/ip.h: Ditto.
2481 * include/netinet/ip_icmp.h: Ditto.
2482 * include/netinet/tcp.h: Ditto.
2483 * include/sys/cdefs.h: Ditto.
2484 * include/sys/cygwin.h: Ditto.
2485 * include/sys/ioctl.h: Ditto.
2486 * include/sys/mman.h: Ditto.
2487 * include/sys/mount.h: Ditto.
2488 * include/sys/mtio.h: Ditto.
2489 * include/sys/procfs.h: Ditto.
2490 * include/sys/resource.h: Ditto.
2491 * include/sys/smallprint.h: Ditto.
2492 * include/sys/socket.h: Ditto.
2493 * include/sys/strace.h: Ditto.
2494 * include/sys/syslog.h: Ditto.
2495 * include/sys/sysmacros.h: Ditto.
2496 * include/sys/termio.h: Ditto.
2497 * include/sys/termios.h: Ditto.
2498 * include/sys/uio.h: Ditto.
2499 * include/sys/un.h: Ditto.
2500 * include/sys/utsname.h: Ditto.
2501 * include/sys/vfs.h: Ditto.
2502 * include/sys/wait.h: Ditto.
2503 * regexp/regerror.c: Ditto.
2504 * regexp/regexp.h: Ditto.
2505 * regexp/regmagic.h: Ditto.
2506
95a8465b
CF
2507Mon Mar 5 01:25:03 2001 Christopher Faylor <cgf@cygnus.com>
2508
2509 * dlopen.c (dlopen): Return NULL when name is NULL (suggested by
2510 chrisiasci@aol.com).
2511
2512 * cygwin.din: Add a new, internally used export -
2513 _check_for_executable.
2514 * dcrt0.cc (dll_crt0_1): Set _check_for_executable for older binaries.
2515 Pass user_data to premain functions.
2516 * fhandler.cc (fhandler_disk_file::open): Only check for executable if
fb1a9f35 2517 the linked program is interested in the executable bit.
95a8465b
CF
2518 (fhandler_disk_file::check_execable_p): Delete.
2519 * fhandler.h (executable_states): New enumeration of various states of
2520 executable bit caring.
2521 (fhandler_base::set_execable_p): New method.
2522
2523 * fhandler_termios.cc (fhandler_termios::line_edit): Flag when a signal
2524 has been sent to the tty. Return -1 when this is so.
2525 * fhandler_console.cc (fhandler_console::read): Return -1 when signal
2526 sending character encountered.
2527
2528 * path.cc (path_conv::check): Record when path refers to a disk device.
2529 Move executable extension check here.
2530 (check_sysfile): Accomodate new EXEC path states.
2531 (has_suffix): Remove.
2532 (next_suffix): Remove.
2533 (class suffix_scan): New clas.
2534 (suffix_scan::has): New method.
2535 (suffix_scan:next): New method.
2536 (symlink_info::check): Use suffix_scan method to control for scanning
2537 for suffixes.
2538 * path.h (path_conv::exec_state): New method.
2539 * perprocess.h: Make "C" friendly.
2540 * include/cygwin/version.h: Define CYGWIN_VERSION_CHECK_FOR_S_IEXEC.
2541 Bump CYGWIN_VERSION_API_MINOR.
2542 * include/sys/cygwin.h: Change premain declarations.
2543
2544 * winsup.h: Move __cplusplus test to after builtin defines.
2545
306c4b67
ED
25462001-03-04 Egor Duda <deo@logos-m.ru>
2547
2548 * fhandler.h (class fhandler_tty_common): New mutex and event to
2549 syncronize input on master tty with slave tty.
2550 * fhandler_tty.cc (fhandler_pty_master::accept_input): Use them to
2551 syncronize with slave.
2552 * fhandler_tty.cc (fhandler_tty_slave::read): Use input mutex and
2553 event to syncronize with master. Do not limit amount of data read
2554 from master to vmin value. Interrupt on signal and return already
2555 read data, if any.
2556 * fhandler_tty.cc (fhandler_tty_slave::open): Handle input mutex and
2557 event.
2558 * fhandler_tty.cc (fhandler_tty_common::close): Ditto.
2559 * fhandler_tty.cc (fhandler_tty_common::set_close_on_exec): Ditto.
2560 * fhandler_tty.cc (fhandler_tty_common::fixup_after_fork): Ditto.
2561 * fhandler_tty.cc (fhandler_tty_common::dup): Ditto.
2562 * tty.h (tty::open_input_mutex): New function.
2563 * tty.cc (tty::common_init): Create input mutex and event.
2564
ed94def2
CV
2565Fri Mar 2 13:32:00 2001 Corinna Vinschen <corinna@vinschen.de>
2566
2567 * dir.cc (readdir): Fix creating path in symlink check.
2568
e03f5f73
CV
2569Fri Mar 2 12:33:00 2001 Corinna Vinschen <corinna@vinschen.de>
2570
2571 * dir.cc (readdir): Fix shortcut==symlink condition.
2572 * environ.cc: Add extern decl for `allow_winsymlinks'.
2573 (struct parse_thing): Add entry for `[no]winsymlinks'.
2574 * path.cc (symlink): Change to be able to create both,
2575 symlink==shortcut and symlink==systemfile, dependent of
2576 the setting of `allow_winsymlinks'.
2577 * security.cc (cygwin_logon_user): Add debug output.
2578 * shortcut.c: Add defines from path.h.
2579 (has_exec_chars): Copy from path.h.
2580 (check_shortcut): Check for executable file condition if not a
2581 shortcut.
2582
903c330d
CF
2583Thu Mar 1 21:06:07 2001 Christopher Faylor <cgf@cygnus.com>
2584
2585 * exceptions.cc (sig_handle_tty_stop): Ignore attempts to suspend a
2586 process if started by non-cygwin parent.
2587
d80999a1
CF
2588Thu Mar 1 20:48:11 2001 Christopher Faylor <cgf@cygnus.com>
2589
2590 * select.cc (peek_console): Don't report read_ready on mouse events
2591 unless we are looking for mouse events.
2592 * fhandler.h (fhandler_console::mouse_aware): New method.
2593
2de76014
CV
2594Wed Feb 28 15:10:00 2001 Corinna Vinschen <corinna@vinschen.de>
2595
2596 * uinfo.cc: Eliminate `#include <wchar.h>'.
2597
739db26a
ED
25982001-02-28 Egor Duda <deo@logos-m.ru>
2599
2600 * fhandler_floppy.cc (fhandler_dev_floppy::lseek): Determine
2601 drive geometry or partition size to allow seeking from the end of
2602 raw floppy device. Don't allow positioning past the end of media or
2603 to offsets bigger then max off_t.
2604
a53136cc
ED
26052001-02-27 Egor Duda <deo@logos-m.ru>
2606
2607 * fhandler.h (class fhandler_console): Make all variables that
2608 describe "state" of console to be members of fhandler_console.
2609 default_color is now the color which is set when console recieves
2610 reset command.
2611 * fhandler_console.cc (fhandler_console::fhandler_console): Turn
2612 mouse handling and raw keyboard mode off by default. Initialize
2613 state information.
2614 * fhandler.cc (fhandler_console::set_raw_win32_keyboard_mode): New
2615 function.
2616 * fhandler_console.cc (fhandler_console::set_default_attr): New
2617 function. Reset console attributes to default values.
2618 * fhandler_console.cc (fhandler_console::open): Reset attributes.
2619 * fhandler_console.cc (fhandler_console::get_win32_attr): New function.
2620 Calculate win32-style console attribute based on terminal attributes.
2621 * fhandler_console.cc (fhandler_console::set_cursor_maybe): Use
2622 member variable.
2623 * fhandler_console.cc (fhandler_console::read): If in raw-win32
2624 keyboard mode, encode win32 keyboard events in \033{x;y;z;t;u;wK
2625 sequences.
2626 * fhandler_console.cc (fhandler_console::dup): Copy all state
2627 information to the dup()ed handle.
2628 * fhandler_console.cc (fhandler_console::scroll_screen): Use current
2629 fill-in attribute.
2630 * fhandler_console.cc (fhandler_console::clear_screen): Ditto.
2631 * fhandler_console.cc (fhandler_console::char_command): Check if we
2632 saw '?' symbol by member variable. Set terminal attributes on \033[Xm
2633 commands. \033[24m - turn off underline mode, \033[27m - turn off
2634 reverse mode, \033[39m - restore default foreground color.
2635 \033[49m - restore default background color. \033[2000h - turn on raw
2636 keyboard mode, \033[2000l - turn off raw keyboard mode.
2637 * fhandler_console.cc (fhandler_console::write): Set attribues to
2638 default values on reset command.
2639
5b331f1e 26402001-02-26 Mike Simons <msimons@moria.simons-clan.com>
efd76e41 2641
5b331f1e
CF
2642 * times.cc (settimeofday): Replace function stub with working code.
2643
88429768
CV
2644Mon Feb 26 10:42:00 2001 Corinna Vinschen <corinna@vinschen.de>
2645
2646 * strace.cc (strace::vprntf): Move prntf functionality to this function
2647 adding an va_list interface to strace.
2648 (strace::printf): Calls strace::vprntf now.
2649 (strace_printf): New function providing an extern "C" interface to
2650 trace output.
2651 * include/sys/strace.h: Make plain C clean.
2652 (class strace): Add `vprntf' method.
2653
6626ebfe
CV
2654Mon Feb 26 0:10:00 2001 Corinna Vinschen <corinna@vinschen.de>
2655
2656 * shortcut.c: Remove #include <sys/strace.h>.
2657
649033a8
CV
2658Sun Feb 25 10:32:00 2001 Corinna Vinschen <corinna@vinschen.de>
2659
2660 * path.cc (symlink): Add a ".lnk" suffix regardless. Add a comment.
2661
80ed95f2
CV
2662Sun Feb 25 10:18:00 2001 Corinna Vinschen <corinna@vinschen.de>
2663
649033a8 2664 * shortcut.c (check_shortcut): Change symlink condition.
80ed95f2 2665
675412e9
CV
2666Fri Feb 23 10:42:00 2001 Corinna Vinschen <corinna@vinschen.de>
2667
2668 * mmap.cc (fhandler_disk_file::mmap): Use `addr' correctly.
2669 * fhandler_mem.cc (fhandler_dev_mem::mmap): Ditto.
2670
ff413a98
CV
2671Thu Feb 22 17:09:00 2001 Corinna Vinschen <corinna@vinschen.de>
2672
2673 * path.cc (symlink): Keep relative paths relative in the DOS
659b480b
CV
2674 path inside of a shortcut. If that's impossible or the target
2675 path is already absolute save an absolute path.
ff413a98 2676
c5a4eacc
CV
2677Thu Feb 22 15:33:00 2001 Corinna Vinschen <corinna@vinschen.de>
2678
2679 * cygerrno.h: Revert previous patch.
2680 * errno.cc: Ditto.
2681 * dir.cc: Eliminate `dir_suffixes'.
2682 (opendir): Remove usage of `dir_suffixes'.
2683 (rmdir): Ditto.
2684 * fhandler.cc (fhandler_disk_file::open): Remove usage of
2685 `inner_suffixes'.
2686 * path.cc: Rename `inner_suffixes' to `lnk_suffixes'.
2687 (path_conv::check): Remove usage of `inner_suffixes'.
2688 (symlink): Ditto.
2689 (symlink_info::check): Handle checking for `.lnk' in path_conv
2690 exclusively here.
2691 (chdir): Remove usage of `dir_suffixes'.
2692 * shortcut.c: Eliminate debug_printf lines.
2693 (check_shortcut): Don't set error except on failing ReadFile.
2694 * spawn.cc: Remove ".lnk" from `std_suffixes'.
2695 * syscalls.cc (_unlink): Remove usage of `inner_suffixes'.
2696 Remove ".lnk" from `stat_suffixes'.
2697 (_rename): Add check for renaming a symlink to keep the ".lnk"
2698 suffix after renaming.
2699
79e56091
CV
2700Thu Feb 22 13:38:00 2001 Corinna Vinschen <corinna@vinschen.de>
2701
2702 * shortcut.c: New file. Provides a C interface to reading of
2703 Windows shortcuts to avoid compiler flag `-fvtable-thunks'.
2704 * shortcut.h: Ditto.
2705 * Makefile.in: Add shortcut.o to DLL_OFILES.
2706 * cygerrno.h: Provide a C interface to `geterrno_from_win_error' for
2707 using in shortcut.c.
2708 * errno.cc (geterrno_from_win_error): Define as extern "C".
2709 * path.cc (struct symlink_info): Remove methods `check_shortcut' and
2710 `check_sysfile'.
2711 (shortcut_header): Move to shortcut.c.
2712 (shortcut_initalized): Ditto.
2713 (create_shortcut_header): Ditto.
2714 (cmp_shortcut_header): Ditto.
2715 (symlink_info::check_shortcut): Ditto. Reorganize as a plain C function.
2716 (symlink_info::check_sysfile): Redefine as a global function using the
2717 same parameter list as `check_shortcut' for clearness.
2718 (symlink_info::check): Change parameter list for calls to
2719 `check_shortcut' and `check_sysfile'.
2720
87e6b098
CV
2721Thu Feb 22 12:04:00 2001 Corinna Vinschen <corinna@vinschen.de>
2722
2723 * fhandler.cc (fhandler_disk_file::open): Use `inner_suffixes' when
2724 resolving real_path.
2725 * path.cc (symlink): Ditto for win32_topath.
2726
10b06c5e
CV
2727Wed Feb 21 22:41:00 2001 Corinna Vinschen <corinna@vinschen.de>
2728
2729 * Makefile.in: Add `-lshell32 -luuid' to link pass for new-cygwin1.dll.
2730 * autoload.cc: Add LoadDLLinitfunc for ole32.dll.
2731 Add LoadDLLfuncEx statements for CoInitialize@4, CoUninitialize@0
2732 and CoCreateInstance@20.
2733 * dir.cc (dir_suffixes): New datastructure.
2734 (readdir): Check for R/O *.lnk files to hide the suffix.
2735 (opendir): Use `dir_suffixes' in path conversion.
2736 (rmdir): Ditto.
2737 * fhandler.cc (fhandler_disk_file::fstat): Add S_IFLNK flag
2738 before calling `get_file_attribute'. Take FILE_ATTRIBUTE_READONLY
2739 into account only if the file is no symlink.
2740 * path.cc (inner_suffixes): New datastructure.
2741 (SYMLINKATTR): Eliminated.
2742 (path_conv::check): Use `inner_suffixes' on inner path components.
2743 (shortcut_header): New global static variable.
2744 (shortcut_initalized): Ditto.
2745 (create_shortcut_header): New function.
2746 (cmp_shortcut_header): Ditto.
2747 (symlink): Create symlinks by creating windows shortcuts. Preserve
2748 the old code.
2749 (symlink_info::check_shortcut): New method.
2750 (symlink_info::check_sysfile): Ditto.
2751 (symlink_info::check): Check for shortcuts. Move code reading
2752 old system attribute symlinks into symlink_info::check_sysfile().
2753 (chdir): Use `dir_suffixes' in path conversion.
2754 * security.cc (get_file_attribute): Check for S_IFLNK flag.
2755 Force 0777 permissions then.
2756 * spawn.cc (std_suffixes): Add ".lnk" suffix.
2757 * syscalls.cc (_unlink): Use `inner_suffixes' in path conversion.
2758 Check for shortcut symlinks to eliminate R/O attribute before
2759 calling DeleteFile().
2760 (stat_suffixes): Add ".lnk" suffix.
2761 (stat_worker): Force 0777 permissions if file is a symlink.
2762
0917ed59
ED
27632001-02-21 Egor Duda <deo@logos-m.ru>
2764
2765 * sigproc.cc (getsem): Make semaphore always non-inheritable.
2766
441d7aee
CF
2767Mon Feb 19 22:25:53 2001 Christopher Faylor <cgf@cygnus.com>
2768
2769 * dcrt0.cc (locale_init): Remove.
2770
f97e7d75
CF
27712001-02-15 Kazuhiro Fujieda <fujieda@jaist.ac.jp>
2772
2773 * cygwin.din: Export rand48 functions.
2774 * thread.cc (MTinterface::Init): Remove the initialization of
2775 `reent_data'.
2776 * dcrt0.cc: Add the initalizer to the declaration of `reent_data'.
2777 * include/cygwin/version.h: Bump CYGWIN_VERSION_API_MINOR to 35.
2778
fc68bf34
ED
27792001-02-16 Egor Duda <deo@logos-m.ru>
2780
2781 * signal.cc (signal): Prohibit setting handlers for SIGKILL and
2782 SIGSTOP
2783 * signal.cc (sigaction): Ditto
2784 * syscalls.cc (_lseek): Return EINVAL on invalid input
2785
ee2c7251
CF
2786Wed Feb 14 14:54:40 2001 Christophe Iasci <chrisiasci@aol.com>
2787
2788 * dlfcn.cc (dlopen): Do not call LoadLibrary with a NULL pointer, when
2789 the library is not found
2790
8f8e7442 27912001-02-14 Egor Duda <deo@logos-m.ru>
efd76e41 2792
8f8e7442
CF
2793 * fhandler_console.cc (fhandler_console::char_command): Ignore unknown
2794 rendition codes in \033[xx;yym control sequences
2795
cde0c2fb
CF
2796Fri Feb 9 23:19:01 2001 Christopher Faylor <cgf@cygnus.com>
2797
2798 * fork.cc (fork_parent): Return EAGAIN when can't record pid.
2799 * pinfo.h (pinfo::remember): Return value of call to proc_subproc.
2800 * sigproc.cc (proc_subproc): Return error if can't record pid.
2801
c41482c7
CF
2802Fri Feb 9 12:17:27 2001 Christopher Faylor <cgf@cygnus.com>
2803
2804 * syscalls.cc (mknod): Add valid parameters.
2805
889109ab
CV
2806Thu Feb 8 22:09:00 2001 Corinna Vinschen <corinna@vinschen.de>
2807
2808 * mmap.cc (mmap): Check for reusing a mapping only on MAP_SHARED
2809 and on MAP_PRIVATE|MAP_ANON in the special case of offset 0.
2810
db49d0b5
CV
2811Thu Feb 8 21:57:00 2001 Corinna Vinschen <corinna@vinschen.de>
2812
2813 * mmap.cc (class list): Add member `hash'.
2814 (list::list): Initialize `hash'.
2815 (list::get_list_by_fd): Use filepath hash value to get the correct
2816 mapping list if it's not an anonymous mapping.
2817 (map::add_list): Initialize `hash' with filepath hash value.
2818 (mmap): Check for reusing a mapping only on MAP_SHARED.
2819
91d385fe
CF
2820Wed Feb 7 18:47:36 2001 Christopher Faylor <cgf@cygnus.com>
2821
2822 * signal.cc (killpg): Correct first argument.
2823
9182099c
CV
2824Wed Feb 7 22:22:00 2001 Corinna Vinschen <corinna@vinschen.de>
2825
2826 * autoload.cc: Add LoadDLLinitfunc for iphlpapi.dll.
2827 Add LoadDLLfuncEx statements for GetIfTable@12 and GetIpAddrTable@12.
2828 * fhandler_socket.cc (fhandler_socket::ioctl): Move variable
2829 definitions to the beginning of the function to allow better debugging.
2830 Add handling for SIOCGIFHWADDR, SIOCGIFMETRIC and SIOCGIFMTU.
2831 * net.cc: Include iphlpapi.h.
2832 (get_2k_ifconf): Rewritten. Uses IP Helper API now.
2833 (get_nt_ifconf): Add handling for SIOCGIFHWADDR, SIOCGIFMETRIC
2834 and SIOCGIFMTU.
2835 (get_95_ifconf): Ditto. Renamed from `get_9x_ifconf'.
2836 (get_ifconf): Name loopback `lo' instead of `lo0' as in Linux.
2837 Add handling for SIOCGIFHWADDR, SIOCGIFMETRIC and SIOCGIFMTU.
2838 Call `get_95_ifconf' only on Windows 95, `get_nt_ifconf' only
2839 on Windows NT < Service Pack 3, `get_2k_ifconf otherwise.
2840 * include/asm/socket.h: Add defines for SIOCGIFHWADDR, SIOCGIFMETRIC
2841 and SIOCGIFMTU.
2842 * include/cygwin/if.h: Add `ifr_hwaddr', `ifr_metric' and `ifr_mtu'.
2843 (struct ifreq): Add `ifru_hwaddr'.
2844
d7ed877b
CV
2845Tue Feb 6 15:04:00 2001 Corinna Vinschen <corinna@vinschen.de>
2846
2847 * syscalls.cc (stat_worker): Add a check for the special case when
2848 a process creates a file using mode 000 using ntsec.
2849
ae9b22c6
CV
2850Mon Feb 5 17:00:00 2001 Corinna Vinschen <corinna@vinschen.de>
2851
2852 * fhandler.cc (fhandler_base::open): Always add GENERIC_READ access
2853 when opening raw disk devices.
2854 * fhandler_floppy.cc (fhandler_dev_floppy::lseek): Implement bytewise
2855 access.
2856 * fhandler_raw.cc (fhandler_dev_raw::open): Always open raw disk device
2857 binary.
2858 (fhandler_dev_raw::raw_write): Don't drop read buffer content when
2859 writing after read.
2860
cada03f9
CV
2861Mon Feb 5 13:30:00 2001 Corinna Vinschen <corinna@vinschen.de>
2862
2863 * mmap.cc (mmap_record::fixup_map): New method to duplicate
2864 the memory protection in a just forked child.
2865 (mmap): Realign gran_len to page boundary only on anonymous
2866 mapping before saving in the mmap_record.
2867 (munmap): Cleanup code.
2868 (msync): Ditto.
2869 (fixup_mmaps_after_fork): Ditto. Call mmap_record::fixup_map now.
2870
47f81092
CF
2871Thu Feb 1 23:08:29 2001 Christopher Faylor <cgf@cygnus.com>
2872
2873 * cygheap.cc (creturn): Correctly calculate cygheap_max.
2874
f8da1507
CF
2875Wed Jan 31 10:04:58 2001 Christopher Faylor <cgf@cygnus.com>
2876
2877 * shared.cc (shared_info::initialize): Reduce size of heap.
2878
83443511
CV
2879Wed Jan 31 13:22:00 2001 Corinna Vinschen <corinna@vinschen.de>
2880
2881 * include/sys/resource.h: Fix typo.
2882
44e6d951
CV
2883Wed Jan 31 13:20:00 2001 Corinna Vinschen <corinna@vinschen.de>
2884
83443511 2885 * include/sys/resource.h: Add RLIMIT_NLIMITS and RLIM_NLIMITS.
44e6d951 2886
4f42df7b
CF
2887Tue Jan 30 18:15:23 2001 Christopher Faylor <cgf@cygnus.com>
2888
2889 * include/cygwin/version.h: Bump version to 1.3.0.
2890
9928a7e1
CV
2891Tue Jan 30 8:55:00 2001 Corinna Vinschen <corinna@vinschen.de>
2892
2893 * pinfo.cc (pinfo::init): Use INVALID_HANDLE_VALUE instead of
2894 explicit cast (HANDLE) 0xffffffff.
2895 * shared.cc (open_shared): Ditto.
2896
747e88d3
CF
2897Mon Jan 29 17:15:22 2001 Bill Hegardt <bill@troyxcd.com>
2898
2899 * fhandler_serial.cc (raw_write): Use local copy of OVERLAPPED
2900 structure instead of shared structure to fix a race condition between
2901 read/write.
2902
68ea0dc2
CV
2903Mon Jan 29 14:30:00 2001 Corinna Vinschen <corinna@vinschen.de>
2904
2905 * mmap.cc (mmap): Remove obsolete check for MAP_SHARED|MAP_ANON as
2906 being invalid.
2907
f977222f
CV
2908Mon Jan 29 10:23:00 2001 Corinna Vinschen <corinna@vinschen.de>
2909
2910 * mmap.cc (mmap_record::find_empty): Fix loop condition.
2911
6a4878cf
CF
2912Sun Jan 28 19:40:40 2001 Christopher Faylor <cgf@cygnus.com>
2913
2914 * syscalls.cc (_link): Make sure that newpath does not exist. Set
2915 errno if it does.
2916
2917Sun Jan 28 19:29:08 2001 Christopher Faylor <cgf@cygnus.com>
2918
2919 * cygheap.cc (init_cheap): Don't specify a load address for the heap.
2920 It doesn't work on #!*& Windows 9x.
2921 (cygheap_init): Move GetUserName to memory_init.
2922 * dcrt0.cc (dll_crt0_1): Call new memory_init functin, eliminate call
2923 to heap_init.
2924 * heap.cc (heap_init): Improve error output.
2925 * heap.h: Correct some declarations.
2926 * shared.cc (mount_table_init): Remove.
2927 (memory_init): Renamed from shared_init. Reorganize to accomodate
2928 strange Windows 9x problems with cygheap/heap interaction.
2929 * shared_info.h: Rename shared_init to memory_init.
2930
ae6c8e4f
CF
2931Sun Jan 28 01:25:33 2001 Christopher Faylor <cgf@cygnus.com>
2932
2933 * include/cygwin/version.h: Bump API version.
2934
9a089f21
CF
2935Sun Jan 28 01:18:22 2001 Christopher Faylor <cgf@cygnus.com>
2936
2937 * cygheap.cc (init_cheap): Move username initialization.
2938 (cygheap_init): Here.
2939 * shared_info.h (mount_info): Add a sys_mount_table_counter field.
2940 (shared_info): Ditto.
2941 * path.cc (mount_info::conv_to_win32_path): Check that our mount table
2942 is in sync with the system mount table and reinitialize it if not.
2943 (mount_info::add_reg_mount): Bump sys_mount_table counters if the
2944 system mount table changes.
2945 (mount_info::del_reg_mount): Ditto.
2946 (mount_info::write_cygdrive_info_to_registry): Ditto.
2947 (mount_info::remove_cygdrive_info_from_registry): Ditto.
2948
2a6fc028
CF
2949Sun Jan 28 00:28:30 2001 Christopher Faylor <cgf@cygnus.com>
2950
2951 Throughout, change 'cygwin_shared.mount' to 'mount_table'.
2952 * child_info.h (child_info): Move shared_h, console_h to cygheap. Add
2953 mount_h.
2954 * cygheap.h (init_cygheap): Add shared_h, console_h.
2955 * cygheap.cc (init_cheap): Initialize heap at a fixed location after
2956 the shared memory regions. Initialize cygheap->user name here.
2957 * dcrt0.cc (dll_crt0_1): Call getpagesize () to initialize constants.
2958 Remove cygheap_init since it is done in shared_init now.
2959 (_dll_crt0): Initialize mount_h, remove shared_h and console_h
2960 initialization.
2961 * fhandler_console.cc (console_shared_h): Eliminate.
2962 (get_tty_stuff): Use cygheap->console_h rather than console_shared_h.
6a4878cf
CF
2963 * heap.cc (heap_init): Use page size constant calculated earlier in
2964 initialization.
2a6fc028
CF
2965 * shared.cc: Eliminate cygwin_shared_h. Add cygwin_mount_h.
2966 (mount_table_init): New function for initializing a user mount table.
6a4878cf
CF
2967 (open_shared_file_map): Use constant for shared memory region.
2968 Initialize cygheap and mount table here.
2a6fc028
CF
2969 (open_shared): Improve debugging output.
2970 (shared_info::initialize): Eliminate call to mount.init.
2971 (shared_terminate): Use cygheap->shared_h. Close cygwin_mount_h.
2972 (open_shared_file_map): Eliminate.
2973 * shared_info.h (mount_info): Add a version field.
6a4878cf
CF
2974 (shared_align_past): New macro for calculating location for shared
2975 memory regions.
2a6fc028 2976 * sigproc.cc (init_child_info): Eliminate shared_h, console_h.
6a4878cf
CF
2977 * spawn.cc (spawn_guts): Pass on cygwin_mount_h iff not a different
2978 user.
2a6fc028
CF
2979 * syscalls.cc (system_info): New global holding system memory defaults.
2980 (getpagesize): Use system_info.
2981 * uinfo.cc (internal_getlogin): Only fill in user name if nonexistent.
2982 * winsup.h: Declare system_info.
2983
6a4878cf
CF
2984 * passwd.cc (read_etc_passwd): Use cygheap->user.name () rather than
2985 retrieving the name again.
2a6fc028 2986
bdfeca60
CF
2987Sat Jan 27 10:18:02 2001 Christopher Faylor <cgf@cygnus.com>
2988
2989 * path.cc (path_conv::check): Detect when path has symlinks.
2990 (symlink_info::check): Remove debugging stuff.
2991 (chdir): Use posix'ized win32 path if cd'ed to a path using symlinks.
2992
206a8d88
CF
2993Fri Jan 26 21:20:28 2001 Christopher Faylor <cgf@cygnus.com>
2994
2995 * exceptions.cc (sigreturn): Call any pending signals prior to
2996 resetting the signal mask so that stacked signals behave correctly.
2997 (sigdelayed): Avoid a race where a signal could end up calling an
2998 incorrect signal handler if two signals come in close together.
2999
174f1a39
CV
3000Tue Jan 23 21:56:00 2001 Corinna Vinschen <corinna@vinschen.de>
3001
3002 * mmap.cc (fhandler_disk_file::mmap): Call CreateFileMapping with
3003 len != 0 only when performing an anonymous mapping.
3004
4c7b8250
CF
3005Mon Jan 22 15:35:28 2001 Christopher Faylor <cgf@cygnus.com>
3006
3007 * path.h: Add a new constant.
3008 * syscalls.cc (_read): Oscillate errno check.
3009
c65a3183
CF
3010Mon Jan 22 15:27:12 2001 Christopher Faylor <cgf@cygnus.com>
3011
3012 * include/cygwin/version.h: Bump API to reflect setlogmask.
3013
29c39fe3
CF
3014Sun Jan 21 22:40:25 2001 Jason Tishler <jt@dothill.com>
3015
3016 * cygwin.din: Add export for setlogmask().
3017 * syslog.cc (setlogmask): New function.
3018
c807d355
CV
3019Thu Jan 18 10:27:00 2001 Corinna Vinschen <corinna@vinschen.de>
3020
3021 * resource.cc (setrlimit): Support RLIMIT_NOFILE.
3022
4e2a97b2
CF
3023Wed Jan 17 23:23:12 2001 Christopher Faylor <cgf@cygnus.com>
3024
3025 * syscalls.cc (setdtablesize): Call with amount to increment not total
3026 amount. Return success or failure error code.
3027
a7cde2b9
CF
3028Wed Jan 17 09:47:13 2001 Christopher Faylor <cgf@cygnus.com>
3029
3030 * autoload.cc (LoadDLLinitfunc): Remove debugging statement.
3031
3032 * exceptions.cc (sig_handle_tty_stop): Move setting of PID_STOPPED to
3033 earlier in interrupt.
99a5bd2f 3034 (interrupt_setup): i.e., here.
a7cde2b9
CF
3035 (sig_handle): Don't queue multiple SIGSTOPS.
3036 * fhandler.h (bg_check_types): Enumerate return value of bg_check for
3037 clarity.
3038 * signal.cc (kill_pgrp): Minor cleanup.
3039 * fhandler_termios.cc (fhandler_termios::bg_check): Use enumerated type
3040 for function return. Don't raise signal if a signal is already queued.
3041 * fhandler_console.cc (fhandler_console::read): Use enumerated return
3042 type for bg_check.
3043 * select.cc: Ditto, throughout.
3044 * read.cc: Ditto, throughout.
3045 * termios.cc: Ditto, throughout.
3046 (_read): YA interrupt detect simplification.
3047 * wait.cc (wait4): Ditto.
3048
cb503978
CV
3049Wed Jan 17 10:56:00 2001 Corinna Vinschen <corinna@vinschen.de>
3050
3051 * cygheap.cc (cygheap_user::~cygheap_user): Temporarily
3052 disable free'ing memory.
3053
9fedfd57
CV
3054Tue Jan 16 18:01:00 2001 Corinna Vinschen <corinna@vinschen.de>
3055
3056 * mmap.cc (mmap): Initialize fh to avoid compiler warnings.
3057
9470a80c
CF
3058Mon Jan 15 21:07:00 2001 Christopher Faylor <cgf@cygnus.com>
3059
3060 * wait.cc (wait4): Rename variable for consistency. Allow restartable
3061 signal behavior.
3062
9334c89c
CV
3063Mon Jan 15 23:15:00 2001 Corinna Vinschen <corinna@vinschen.de>
3064
3065 * mmap.cc (mmap): Add more parameter checking. Change error output
3066 in case of EINVAL. Treat mmapping /dev/zero like MAP_ANONYMOUS.
3067
c6dd43f2
CV
3068Mon Jan 15 20:34:00 2001 Corinna Vinschen <corinna@vinschen.de>
3069
3070 * mmap.cc: include <unistd.h>. Define some bit operations for
3071 the new page map.
3072 (mmap_record): Change type of base_address_ to caddr_t.
3073 Add map_map_ member. Add several methods to manipulate map_map_.
3074 (mmap_record::alloc_map): New method.
3075 (mmap_record::free_map): Ditto.
3076 (mmap_record::find_empty): Ditto.
3077 (mmap_record::map_map): Ditto.
3078 (mmap_record::unmap_map): Ditto.
3079 (list::add_record): Change return type to `mmap_record *'.
3080 Allocate page map.
3081 (list::match): New method.
3082 (mmap): Partly rewritten to take care for the new page map. Add some
3083 parameter checking.
3084 (munmap): Ditto.
3085
66097f06
CV
3086Mon Jan 15 13:50:00 2001 Corinna Vinschen <corinna@vinschen.de>
3087
3088 * heap.cc (heap_init): Fix extern declaration of getpagesize.
3089 * syscalls.cc (getpagesize): Fix another typo.
3090
dc3651b6
CV
3091Mon Jan 15 12:48:00 2001 Corinna Vinschen <corinna@vinschen.de>
3092
3093 * syscalls.cc (getpagesize): Save pagesize in global variable to
3094 avoid calling GetSystemInfo too often.
3095 * heap.cc (getpagesize): Eliminate.
3096 (heap_init): Use getpagesize function from syscalls.cc.
3097
4cf2c0e0
CV
3098Mon Jan 15 11:56:00 2001 Corinna Vinschen <corinna@vinschen.de>
3099
3100 * sysconf.cc (sysconf): return `getpagesize ()' on _SC_PAGESIZE
3101 request to avoid implementing the same twice.
3102
a3ec080b
CF
3103Sun Jan 14 14:07:50 2001 Christopher Faylor <cgf@cygnus.com>
3104
3105 * syscalls.cc (_read): Use more lightweight method for determining if
3106 read has been interrupted by a signal.
3107
c3d62298
CF
3108Fri Jan 12 00:35:15 2001 Christopher Faylor <cgf@cygnus.com>
3109
3110 * debug.h: Add regparm attributes to some functions.
3111
3112 * signal.cc (sigaction): Don't treat SIGCONT specially.
3113
6a4878cf
CF
3114 * exceptions.cc (interrupt_setup): Save sa_flags of interrupted signal
3115 for later use.
c3d62298
CF
3116 (sig_handler): Default any stopping signal to SIGSTOP.
3117 (call_signal_handler): New function.
3118 (sigdelayed0): New function.
6a4878cf
CF
3119 * sigproc.cc (sigproc_init): Initialize SIGSTOP sigaction for special
3120 behavior.
c3d62298
CF
3121 * sigproc.h: Define call_signal_handler.
3122 * syscalls.cc (_read): Allow restartable signal behavior.
3123
c4efddf6
CV
3124Thu Jan 11 13:17:00 2001 Corinna Vinschen <corinna@vinschen.de>
3125
3126 * fhandler.h (fhandler_base): New method `fixup_mmap_after_fork'.
3127 (fhandler_disk_file: Ditto.
3128 (fhandler_dev_mem): Ditto.
3129 * fhandler_mem.cc (fhandler_dev_mem::open): Set OBJ_INHERIT attribute
3130 for device\physicalmemory handle.
3131 (fhandler_dev_mem::mmap): Ditto.
6a4878cf
CF
3132 * fhandler_mem.cc (fhandler_dev_mem::fixup_mmap_after_fork): New
3133 method.
3134 * mmap.cc (mmap_record): Add private `fdesc_' member. Change
3135 constructor accordingly.
c4efddf6
CV
3136 (get_fd): New method.
3137 (mmap): Use new mmap_record constructor.
3138 (fhandler_base::fixup_mmap_after_fork): New method.
3139 (fhandler_disk_file::fixup_mmap_after_fork): Ditto.
6a4878cf 3140 (fixup_mmaps_after_fork): Call `fixup_mmap_after_fork' of appropriate
c4efddf6
CV
3141 fhandler class.
3142
7416e1d2
CF
3143Wed Jan 10 22:08:30 2001 Kazuhiro Fujieda <fujieda@jaist.ac.jp>
3144
3145 * sigproc.cc (wait_sig): Allow SIGCONT when stopped.
3146
55ae1dff
CV
3147Tue Jan 9 16:55:00 2001 Corinna Vinschen <corinna@vinschen.de>
3148
3149