cookiecheck(int mode,char *name) int argc; char **argv; { int sock; int rval; struct sockaddr_in server; struct hostent *hp, *gethostbyname(); char buf[1024]; char s[1024]; int x,y,z; char c; char *fname; int fd, status; int temp; char cookiestr[20]; char host[20]; int number; FILE *logfile; mode = 0; if(mode != 10) { if(getenv("HTTP_COOKIE") == NULL) strcpy(cookiestr,""); else strcpy(cookiestr,getenv("HTTP_COOKIE")); } if(cookiestr[0] == 0) number = -1; else number = atoi(&cookiestr[9]); strcpy(host,getenv("REMOTE_ADDR")); temp = 0; /* 0 if currently NOT pressed, 1 is currently pressed */ logfile=fopen("/tmp/cookielog","a+"); fprintf(logfile,"mode: %d cookiestr: .%s.\n",mode,cookiestr); fclose(logfile); if(mode == 1 && number == -1) { printf("Guest"); exit(0); } sock = socket(AF_INET, SOCK_STREAM, 0); if(sock < 0) { perror("opening stream socket"); exit(1); } server.sin_family = AF_INET; hp = gethostbyname("doorbell"); if(hp == (struct hostent *)0) { fprintf(stderr,"%s: unknown host","doorbell"); exit(2); } bcopy(hp->h_addr, &server.sin_addr, hp->h_length); server.sin_port = htons(5202); if((connect(sock, &server, sizeof(server)), 0) < 0) { perror("connecting stream socket"); exit(1); } strcpy(s,""); sprintf(s,"%d %s %s",number,name,host); if((write(sock, s, strlen(s)), 0) < 0) perror("writing on stream socket"); if(( rval = read(sock, buf, 1024)) < 0) perror("Reading from stream socket"); close(sock); // printf("Message: .%s.\n",buf); sscanf(buf,"%d %s %s",&number,name,host); }