Advertisement
Guest User

Untitled

a guest
May 14th, 2016
76
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.31 KB | None | 0 0
  1. int loop(int sfd)
  2. {
  3.     int k = 0;
  4.     char buf[513], data[512], **message = malloc(513 * 513);
  5.     char pong[64] = "PONG :";
  6.     const char *pass = "PASS herp\r\n";
  7.     const char *nick = "NICK derp\r\n";
  8.     const char *user = "USER herp hostname 0 :herp\r\n";
  9.  
  10.     memset(data, '\0', 512);
  11.     memset(message, '\0', 512 * 512);
  12.  
  13.     send(sfd, pass, strlen(pass), 0);
  14.     send(sfd, nick, strlen(nick), 0);
  15.     send(sfd, user, strlen(user), 0);
  16.  
  17.     int len = recv(sfd, buf, 512, 0);
  18.  
  19.     for (int i = 0; len != 0; ++i)
  20.     {
  21.         for (int j = 0; j < 512; ++j)
  22.             if (buf[j] == '\r' && buf[j + 1] == '\n')
  23.             {
  24.                   buf[j + 2] = '\0';
  25.                   strncpy(message[k], buf, 512); /* trying to see the contents
  26.                                                   * of message[k] at each newline...
  27.                                                   * should be one null-terminated line per index */
  28.                   puts(message[k]);
  29.  
  30.                   for (int l = 0; l < k; ++l)
  31.                       if (strncmp("PING :", message[l], 6) == 0)
  32.                           printf(strcat(pong, message[l] + 6)); /* just to verify if this even works */
  33.                   ++k;
  34.  
  35.                   if (k >= 512)
  36.                       message = realloc(message, k + 512);
  37.             }
  38.  
  39.         len = recv(sfd, buf, 512, 0);
  40.     }
  41.     return 0;
  42. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement