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