#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int
main(int argc, char *argv[])
{
  char	str1[512];
  char	str2[512];
  char    str3[512];
  char	mess[512];
  
  if(argc != 4)
    {
      printf("Please type 'VNC_mims-smp name ip_adress port_num, ex VNC_mims-smp masakazu 133.26.35.10 5901'\n");
      return 0;
    }
	
  sprintf(str1,"%s",argv[1]);
  sprintf(str2,"%s",argv[2]);
  sprintf(str3,"%s",argv[3]);
  
  printf("name = %s\n",str1);
  printf("ip_adress = %s\n",str2);
  printf("port_num = %s\n",str3);
  
  int	str1len = strlen(str1);
  int	str2len = strlen(str2);
  int str3len = strlen(str3);
	
    
  int str1sum = 0;
  int str2sum = 0;
  int str3sum = 0;
  int	i;
  
  for(i = 0;i < str1len;i++)
    {
      str1sum += str1[i];
    }
  
  for(i = 0;i < str2len;i++)
    {
      str2sum += str2[i];
    }
  
  for(i = 0;i < str3len;i++)
    {
      str3sum += str3[i];
    }
  
  //printf("str1sum = %d\n",str1sum);
  //printf("str2sum = %d\n",str2sum);
  //printf("str3sum = %d\n",str3sum);
  int	local_port_num;
  int mod_num = 4096;
  local_port_num = (str1sum % mod_num) * (str2sum % mod_num) * (str3sum % mod_num) % mod_num + 1024;
  printf("local_port_num = %d\n",local_port_num);
  
  int port_num = atoi(str3);
  
  printf("The commad is 'ssh -C -N -f -L %d:%s:%d %s@mims-gate.mind.meiji.ac.jp -p 22'\n",local_port_num,str2,port_num,str1);
  
  sprintf(mess,"ssh -C -N -f -L %d:%s:%d %s@mims-gate.mind.meiji.ac.jp -p 22",local_port_num,str2,port_num,str1);
  system(mess);
  sprintf(mess,"open vnc://localhost:%d",local_port_num);
  system(mess);

  return 0;
}
