/[weechat]/weechat/src/irc/irc-server.c
ViewVC logotype

Diff of /weechat/src/irc/irc-server.c

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.49 by flashcode, Thu Feb 24 21:27:03 2005 UTC revision 1.50 by flashcode, Sun Feb 27 02:40:12 2005 UTC
# Line 82  server_init (t_irc_server *server) Line 82  server_init (t_irc_server *server)
82      server->child_pid = 0;      server->child_pid = 0;
83      server->child_read = -1;      server->child_read = -1;
84      server->child_write = -1;      server->child_write = -1;
85      server->sock4 = -1;      server->sock = -1;
86      server->is_connected = 0;      server->is_connected = 0;
87      server->unterminated_message = NULL;      server->unterminated_message = NULL;
88      server->nick = NULL;      server->nick = NULL;
# Line 271  server_free (t_irc_server *server) Line 271  server_free (t_irc_server *server)
271  {  {
272      t_irc_server *new_irc_servers;      t_irc_server *new_irc_servers;
273    
274        /* close any opened channel/private */
275        while (server->channels)
276            channel_free (server, server->channels);
277        
278      /* remove server from queue */      /* remove server from queue */
279      if (last_irc_server == server)      if (last_irc_server == server)
280          last_irc_server = server->prev_server;          last_irc_server = server->prev_server;
# Line 364  server_new (char *name, int autoconnect, Line 368  server_new (char *name, int autoconnect,
368   */   */
369    
370  int  int
371  server_send (t_irc_server * server, char *buffer, int size_buf)  server_send (t_irc_server *server, char *buffer, int size_buf)
372  {  {
373      if (!server)      if (!server)
374          return -1;          return -1;
375            
376      return send (server->sock4, buffer, size_buf, 0);      return send (server->sock, buffer, size_buf, 0);
377  }  }
378    
379  /*  /*
# Line 377  server_send (t_irc_server * server, char Line 381  server_send (t_irc_server * server, char
381   */   */
382    
383  void  void
384  server_sendf (t_irc_server * server, char *fmt, ...)  server_sendf (t_irc_server *server, char *fmt, ...)
385  {  {
386      va_list args;      va_list args;
387      static char buffer[1024];      static char buffer[4096];
388      char *buf2;      char *buf2;
389      int size_buf;      int size_buf;
390        
391      if (!server)      if (!server)
392          return;          return;
393        
394      va_start (args, fmt);      va_start (args, fmt);
395      size_buf = vsnprintf (buffer, sizeof (buffer) - 1, fmt, args);      size_buf = vsnprintf (buffer, sizeof (buffer) - 1, fmt, args);
396      va_end (args);      va_end (args);
397    
398      if ((size_buf == 0) || (strcmp (buffer, "\r\n") == 0))      if ((size_buf == 0) || (strcmp (buffer, "\r\n") == 0))
399          return;          return;
400        
401      buffer[sizeof (buffer) - 1] = '\0';      buffer[sizeof (buffer) - 1] = '\0';
402      if ((size_buf < 0) || (size_buf > (int) (sizeof (buffer) - 1)))      if ((size_buf < 0) || (size_buf > (int) (sizeof (buffer) - 1)))
403          size_buf = strlen (buffer);          size_buf = strlen (buffer);
# Line 632  server_recv (t_irc_server *server) Line 636  server_recv (t_irc_server *server)
636      static char buffer[4096 + 2];      static char buffer[4096 + 2];
637      int num_read;      int num_read;
638    
639      num_read = recv (server->sock4, buffer, sizeof (buffer) - 2, 0);      num_read = recv (server->sock, buffer, sizeof (buffer) - 2, 0);
640      if (num_read > 0)      if (num_read > 0)
641      {      {
642          buffer[num_read] = '\0';          buffer[num_read] = '\0';
# Line 687  server_close_connection (t_irc_server *s Line 691  server_close_connection (t_irc_server *s
691      server_kill_child (server);      server_kill_child (server);
692            
693      /* close network socket */      /* close network socket */
694      if (server->sock4 != -1)      if (server->sock != -1)
695      {      {
696          close (server->sock4);          close (server->sock);
697          server->sock4 = -1;          server->sock = -1;
698      }      }
699            
700      /* free any pending message */      /* free any pending message */
# Line 804  server_child (t_irc_server *server) Line 808  server_child (t_irc_server *server)
808      }      }
809            
810      /* connect to server */      /* connect to server */
811      error = connect (server->sock4, (struct sockaddr *) &addr, sizeof (addr));      error = connect (server->sock, (struct sockaddr *) &addr, sizeof (addr));
812      if (error != 0)      if (error != 0)
813      {      {
814          write (server->child_write, "3", 1);          write (server->child_write, "3", 1);
# Line 849  server_connect (t_irc_server *server) Line 853  server_connect (t_irc_server *server)
853      server->child_write = child_pipe[1];      server->child_write = child_pipe[1];
854            
855      /* create socket and set options */      /* create socket and set options */
856      server->sock4 = socket (AF_INET, SOCK_STREAM, 0);      server->sock = socket (AF_INET, SOCK_STREAM, 0);
857      if (server->sock4 == -1)      if (server->sock == -1)
858      {      {
859          irc_display_prefix (server->buffer, PREFIX_ERROR);          irc_display_prefix (server->buffer, PREFIX_ERROR);
860          gui_printf (server->buffer,          gui_printf (server->buffer,
# Line 861  server_connect (t_irc_server *server) Line 865  server_connect (t_irc_server *server)
865            
866      /* set SO_REUSEADDR option for socket */      /* set SO_REUSEADDR option for socket */
867      set = 1;      set = 1;
868      if (setsockopt (server->sock4, SOL_SOCKET, SO_REUSEADDR,      if (setsockopt (server->sock, SOL_SOCKET, SO_REUSEADDR,
869          (void *) &set, sizeof (set)) == -1)          (void *) &set, sizeof (set)) == -1)
870      {      {
871          irc_display_prefix (server->buffer, PREFIX_ERROR);          irc_display_prefix (server->buffer, PREFIX_ERROR);
# Line 872  server_connect (t_irc_server *server) Line 876  server_connect (t_irc_server *server)
876            
877      /* set SO_KEEPALIVE option for socket */      /* set SO_KEEPALIVE option for socket */
878      set = 1;      set = 1;
879      if (setsockopt (server->sock4, SOL_SOCKET, SO_KEEPALIVE,      if (setsockopt (server->sock, SOL_SOCKET, SO_KEEPALIVE,
880          (void *) &set, sizeof (set)) == -1)          (void *) &set, sizeof (set)) == -1)
881      {      {
882          irc_display_prefix (server->buffer, PREFIX_ERROR);          irc_display_prefix (server->buffer, PREFIX_ERROR);

Legend:
Removed from v.1.49  
changed lines
  Added in v.1.50

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26