irc.c 806 B

12345678910111213141516171819202122232425262728293031323334353637383940
  1. #include "main.h"
  2. #include "irc.h"
  3. int irc_send(int socketfd, char *out) {
  4. //printf(">> %s", out);
  5. return send(socketfd, out, strlen(out), 0);
  6. }
  7. int irc_connect(char *server, int port, int *socketfd) {
  8. struct sockaddr_in servaddr;
  9. bzero(&servaddr, sizeof(servaddr));
  10. servaddr.sin_family = AF_INET;
  11. servaddr.sin_port = htons(port);
  12. struct hostent *serv_host = gethostbyname(server);
  13. if (serv_host == NULL) {
  14. return 0;
  15. }
  16. bcopy((char *)serv_host->h_addr,
  17. (char *)&servaddr.sin_addr.s_addr,
  18. serv_host->h_length);
  19. if((*socketfd = socket(AF_INET, SOCK_STREAM, 0)) < 0) {
  20. return 0;
  21. }
  22. if(connect(*socketfd, (struct sockaddr*)&servaddr, sizeof(servaddr)) < 0) {
  23. return 0;
  24. }
  25. return 1;
  26. }
  27. int irc_read(int socketfd, char *in) {
  28. int n;
  29. n = read(socketfd, in, SOCKBUFIN);
  30. return n;
  31. }