Patches for Cray T3Es running Unicossmk and SV1s running Unicos

Kevin Steves stevesk at pobox.com
Wed Jul 25 03:47:14 EST 2001


On Sun, 22 Jul 2001, William L. Jones wrote:
:This patch is against Cray patch against openssh-SNAP-20010710.  Here
:a few notes about them:
:
:1) rijndael does not work on cray due to the fact it is rooted in 32 bits.
:   I looking for a fix, it may come form Wendy Palam.  For now the cray
:   default to the following cihpers for ssh version 2 ssh are:
:        3des-cbc,blowfish-cbc,cast128-cbc,arcfour

i don't know the issues, but you can drop Brian Gladman
<brg at gladman.plus.com> a line, as it's his implementation.  note that
openssh doesn't use his latest version.
http://fp.gladman.plus.com/cryptography_technology/rijndael/index.htm

:2) Crays don't have setitimer so I changed scp.c to use alarm which
:   should work on all systems.

i can see if something like this makes sense to go into the openbsd tree.

:3) Created bsd-cray.c in openbsd-compat.  This mainly supports cray TMPDIR
:   environment variable, jid, and setting job and process limits form cray's
:   udb.  I could have put them in seesion.c but I think session.c is getting
:   to loaded with speicalied system codes.  The same is true for pty.c.
:   Maby it time to split out the code int seperate system modules in
:   the openbsd-compat directiry.
:
:4) Fixed a few minor issues with resetting SIGCHLD.  If you  permanently
:install
:   a signal with mysingnal for SIGCHLD you don't need to reset it in the
:   sigchld handler.  You can get into a infinite signal loop if the sigchld
:   handler does not reap the child win it is called if it reset the sigchld
:   handler, it is a cray thing.

does cray have sigaction()?  i think we should be using mysignal() in the
protocol 1 loop now that the signal handlers have converged.  can you try
the patch below?

:5) It is possible to get an EINTR on a waitpid call on a cray, it has to do
:   with the job termination signal.  Loop on waitpid if errno is EINTR in
:   serverloop.c

another possible change to sync with openbsd.

:6) Cray gets pty differently so getpty.c has a few more levels of ifdef's,
:   sigh.

i need to look at that closer.

:7) Add some more cray specific prng commands. Needed more entropy!
:
:Let me know if you have any questions or need any changes to this set
:of patches.

Index: serverloop.c
===================================================================
RCS file: /var/cvs/openssh/serverloop.c,v
retrieving revision 1.74
diff -u -r1.74 serverloop.c
--- serverloop.c	2001/07/18 16:01:48	1.74
+++ serverloop.c	2001/07/24 17:35:35
@@ -448,7 +448,7 @@

 	/* Initialize the SIGCHLD kludge. */
 	child_terminated = 0;
-	signal(SIGCHLD, sigchld_handler);
+	mysignal(SIGCHLD, sigchld_handler);

 	/* Initialize our global variables. */
 	fdin = fdin_arg;
@@ -621,7 +621,7 @@
 	channel_free_all();

 	/* We no longer want our SIGCHLD handler to be called. */
-	signal(SIGCHLD, SIG_DFL);
+	mysignal(SIGCHLD, SIG_DFL);

 	wait_pid = waitpid(-1, &wait_status, child_terminated ? WNOHANG : 0);
 	if (wait_pid == -1)
@@ -710,7 +710,7 @@
 	if (writeset)
 		xfree(writeset);

-	signal(SIGCHLD, SIG_DFL);
+	mysignal(SIGCHLD, SIG_DFL);

 	while ((pid = waitpid(-1, &status, WNOHANG)) > 0)
 		session_close_by_pid(pid, status);




More information about the openssh-unix-dev mailing list