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