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