Groups | Search | Server Info | Login | Register


Groups > comp.programming.contests > #18

Re: The First Pure Shell Contest (PUSH): relativepath

From Rainer Weikusat <rweikusat@mssgmbh.com>
Newsgroups comp.unix.shell, comp.unix.programmer, comp.programming.contests
Subject Re: The First Pure Shell Contest (PUSH): relativepath
Date 2011-08-19 22:18 +0100
Message-ID <87d3g185ig.fsf@sapphire.mobileactivedefense.com> (permalink)
References <9b7kg7F3njU1@mid.individual.net> <87pqk18byo.fsf@sapphire.mobileactivedefense.com> <9b7rgqFiseU2@mid.individual.net>

Cross-posted to 3 groups.

Show all headers | View raw


Jens Schweikhardt <usenet@schweikhardt.net> writes:
> In comp.unix.programmer Rainer Weikusat <rweikusat@mssgmbh.com> wrote:
> # Jens Schweikhardt <schweikh@schweikhardt.net> writes:
> # 
> #>     The First Pure Shell Contest (PUSH)
> #>
> #>               == Motivation ==

[...]

> # I spent some thoughts on this because I was interested in at least
> # having a general idea how a solution could look like. OTOH, the reason
> # why I work in miserably paid programming jobs is essentially because I
> # enjoy solving software problems a lot more than dicksizing contests.
>
> Well, this is a badly paid contest :-) No prize money. People are in it,
> I hope, just for the fun of it. I certainly am.

I've just spent about two hours of my time (not counting the several
days I need to even get to this point) with determining how to get an
xauth username out of the internal racoon data structures, provided an
xauth username was supposed to be provided and was actually
provided. The result of that looks like this (not compiled so far):

static char const *locate_xauth_user(struct ph1handle const *iph1)
{
#ifndef ENABLE_HYBRID
	return NULL;
#else	
	char const *user, *xauth_user;
	vchar_t const *login;
	unsigned len;

	xauth_user = NULL;

	if (iph1->side == INITIATOR) {
		if (iph1->rmconf && iph1->rmconf->xauth) {
			login = xauth->login;
			
			if (login) {
				xauth_user = login->v;
				len = login->l;
			}
		}
	} else {
		if (iph1->mode_cfg) {
			xauth_user = iph1->mode_cfg->xauth.authdata.generic.usr;
			if (xauth_user) len = strlen(xauth_user);
		}
	}

	if (!(xauth_user && len)) return NULL;

	/*
	  The reason for this is that the rmconf xauth user
	  is not 0-terminated for some idiotic reason.
	*/
	user = malloc(len + 1);
	if (!user) return NULL;

	memcpy(user, xauth_user, len);
	user[len] = 0;

	return user;
#endif
}

This was sort-of fun (to the degree that work can be fun) because it
was an intellectual challenge. But 'trying to run as fast as you can,
in the hope that none of the persons living on this planet who can run
faster is in the same contest' isn't. Somebody (probably, a lot of
somebodies) will be able to write a faster shell function than me, and
very probably not the least because I usually resent code-uglification
except if necessary.

NB: This is just 'my 0.02'.

Back to comp.programming.contests | Previous | NextPrevious in thread | Next in thread | Find similar


Thread

The First Pure Shell Contest (PUSH): relativepath Jens Schweikhardt <schweikh@schweikhardt.net> - 2011-08-19 17:23 +0000
  Re: The First Pure Shell Contest (PUSH): relativepath Stephane CHAZELAS <stephane_chazelas@yahoo.fr> - 2011-08-19 18:13 +0000
    Re: The First Pure Shell Contest (PUSH): relativepath Jens Schweikhardt <usenet@schweikhardt.net> - 2011-08-19 19:12 +0000
      Re: The First Pure Shell Contest (PUSH): relativepath pk <pk@pk.invalid> - 2011-08-19 21:14 +0200
        Re: The First Pure Shell Contest (PUSH): relativepath Jens Schweikhardt <usenet@schweikhardt.net> - 2011-08-19 19:29 +0000
          Re: The First Pure Shell Contest (PUSH): relativepath pk <pk@pk.invalid> - 2011-08-19 21:37 +0200
            Re: The First Pure Shell Contest (PUSH): relativepath Jens Schweikhardt <usenet@schweikhardt.net> - 2011-08-19 20:04 +0000
              Re: The First Pure Shell Contest (PUSH): relativepath pk <pk@pk.invalid> - 2011-08-19 22:25 +0200
                Re: The First Pure Shell Contest (PUSH): relativepath Jens Schweikhardt <usenet@schweikhardt.net> - 2011-08-19 21:08 +0000
  Re: The First Pure Shell Contest (PUSH): relativepath Rainer Weikusat <rweikusat@mssgmbh.com> - 2011-08-19 19:58 +0100
    Re: The First Pure Shell Contest (PUSH): relativepath Jens Schweikhardt <usenet@schweikhardt.net> - 2011-08-19 19:23 +0000
      Re: The First Pure Shell Contest (PUSH): relativepath Rainer Weikusat <rweikusat@mssgmbh.com> - 2011-08-19 22:18 +0100
  Re: The First Pure Shell Contest (PUSH): relativepath Stephane CHAZELAS <Stephane.CHAZELAS@free.fr> - 2011-08-20 20:07 +0000
    Re: The First Pure Shell Contest (PUSH): relativepath Jens Schweikhardt <usenet@schweikhardt.net> - 2011-08-21 10:43 +0000
    Re: The First Pure Shell Contest (PUSH): relativepath Rainer Weikusat <rweikusat@mssgmbh.com> - 2011-08-21 15:14 +0100
      Re: The First Pure Shell Contest (PUSH): relativepath Janis Papanagnou <janis_papanagnou@hotmail.com> - 2011-08-21 18:28 +0300
      Re: The First Pure Shell Contest (PUSH): relativepath Stephane CHAZELAS <stephane_chazelas@yahoo.fr> - 2011-08-21 16:19 +0000
        Re: The First Pure Shell Contest (PUSH): relativepath Stephane CHAZELAS <stephane_chazelas@yahoo.fr> - 2011-08-21 20:12 +0000
  Re: The First Pure Shell Contest (PUSH): relativepath Rainer Weikusat <rweikusat@mssgmbh.com> - 2011-08-22 21:15 +0100
    Re: The First Pure Shell Contest (PUSH): relativepath Stephane CHAZELAS <stephane_chazelas@yahoo.fr> - 2011-08-23 18:23 +0000
      Re: The First Pure Shell Contest (PUSH): relativepath Rainer Weikusat <rweikusat@mssgmbh.com> - 2011-08-23 19:52 +0100
        Re: The First Pure Shell Contest (PUSH): relativepath Stephane CHAZELAS <stephane_chazelas@yahoo.fr> - 2011-08-23 21:56 +0000

csiph-web