/[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.79 by flashcode, Tue Dec 6 18:20:59 2005 UTC revision 1.80 by flashcode, Sun Dec 11 00:52:32 2005 UTC
# Line 84  server_init (t_irc_server *server) Line 84  server_init (t_irc_server *server)
84      server->autojoin = NULL;      server->autojoin = NULL;
85      server->autorejoin = 0;      server->autorejoin = 0;
86      server->notify_levels = NULL;      server->notify_levels = NULL;
87        server->charset_decode_iso = NULL;
88        server->charset_decode_utf = NULL;
89        server->charset_encode = NULL;
90            
91      /* internal vars */      /* internal vars */
92      server->child_pid = 0;      server->child_pid = 0;
# Line 294  server_destroy (t_irc_server *server) Line 297  server_destroy (t_irc_server *server)
297          free (server->autojoin);          free (server->autojoin);
298      if (server->notify_levels)      if (server->notify_levels)
299          free (server->notify_levels);          free (server->notify_levels);
300        if (server->charset_decode_iso)
301            free (server->charset_decode_iso);
302        if (server->charset_decode_utf)
303            free (server->charset_decode_utf);
304        if (server->charset_encode)
305            free (server->charset_encode);
306      if (server->unterminated_message)      if (server->unterminated_message)
307          free (server->unterminated_message);          free (server->unterminated_message);
308      if (server->nick)      if (server->nick)
# Line 355  server_new (char *name, int autoconnect, Line 364  server_new (char *name, int autoconnect,
364              int command_line, char *address, int port, int ipv6, int ssl, char *password,              int command_line, char *address, int port, int ipv6, int ssl, char *password,
365              char *nick1, char *nick2, char *nick3, char *username,              char *nick1, char *nick2, char *nick3, char *username,
366              char *realname, char *command, int command_delay, char *autojoin,              char *realname, char *command, int command_delay, char *autojoin,
367              int autorejoin, char *notify_levels)              int autorejoin, char *notify_levels, char *charset_decode_iso,
368                char *charset_decode_utf, char *charset_encode)
369  {  {
370      t_irc_server *new_server;      t_irc_server *new_server;
371            
# Line 365  server_new (char *name, int autoconnect, Line 375  server_new (char *name, int autoconnect,
375  #ifdef DEBUG  #ifdef DEBUG
376      weechat_log_printf ("Creating new server (name:%s, address:%s, port:%d, pwd:%s, "      weechat_log_printf ("Creating new server (name:%s, address:%s, port:%d, pwd:%s, "
377                          "nick1:%s, nick2:%s, nick3:%s, username:%s, realname:%s, "                          "nick1:%s, nick2:%s, nick3:%s, username:%s, realname:%s, "
378                          "command:%s, autojoin:%s, autorejoin:%s, notify_levels:%s)\n",                          "command:%s, autojoin:%s, autorejoin:%s, notify_levels:%s, "
379                            "decode_iso:%s, decode_utf:%s, encode:%s)\n",
380                          name, address, port, (password) ? password : "",                          name, address, port, (password) ? password : "",
381                          (nick1) ? nick1 : "", (nick2) ? nick2 : "", (nick3) ? nick3 : "",                          (nick1) ? nick1 : "", (nick2) ? nick2 : "", (nick3) ? nick3 : "",
382                          (username) ? username : "", (realname) ? realname : "",                          (username) ? username : "", (realname) ? realname : "",
383                          (command) ? command : "", (autojoin) ? autojoin : "",                          (command) ? command : "", (autojoin) ? autojoin : "",
384                          (autorejoin) ? "on" : "off", (notify_levels) ? notify_levels : "");                          (autorejoin) ? "on" : "off", (notify_levels) ? notify_levels : "",
385                            (charset_decode_iso) ? charset_decode_iso : "",
386                            (charset_decode_utf) ? charset_decode_utf : "",
387                            (charset_encode) ? charset_encode : "");
388  #endif  #endif
389            
390      if ((new_server = server_alloc ()))      if ((new_server = server_alloc ()))
# Line 400  server_new (char *name, int autoconnect, Line 414  server_new (char *name, int autoconnect,
414          new_server->autorejoin = autorejoin;          new_server->autorejoin = autorejoin;
415          new_server->notify_levels =          new_server->notify_levels =
416              (notify_levels) ? strdup (notify_levels) : NULL;              (notify_levels) ? strdup (notify_levels) : NULL;
417            new_server->charset_decode_iso =
418                (charset_decode_iso) ? strdup (charset_decode_iso) : NULL;
419            new_server->charset_decode_utf =
420                (charset_decode_utf) ? strdup (charset_decode_utf) : NULL;
421            new_server->charset_encode =
422                (charset_encode) ? strdup (charset_encode) : NULL;
423      }      }
424      else      else
425          return NULL;          return NULL;
# Line 407  server_new (char *name, int autoconnect, Line 427  server_new (char *name, int autoconnect,
427  }  }
428    
429  /*  /*
430     * server_get_charset_decode_iso: get decode iso value for server
431     *                                if not found for server, look for global
432     */
433    
434    char *
435    server_get_charset_decode_iso (t_irc_server *server)
436    {
437        char *pos, *result;
438        int length;
439        
440        if (!server)
441            return (cfg_look_charset_decode_iso) ?
442                strdup (cfg_look_charset_decode_iso) : strdup ("");
443        
444        config_option_list_get_value (&(server->charset_decode_iso),
445                                      "server", &pos, &length);
446        if (pos && (length > 0))
447        {
448            result = strdup (pos);
449            result[length] = '\0';
450            return result;
451        }
452        
453        return (cfg_look_charset_decode_iso) ?
454            strdup (cfg_look_charset_decode_iso) : strdup ("");
455    }
456    
457    /*
458     * server_get_charset_decode_utf: get decode utf value for server
459     *                                if not found for server, look for global
460     */
461    
462    char *
463    server_get_charset_decode_utf (t_irc_server *server)
464    {
465        char *pos, *result;
466        int length;
467        
468        if (!server)
469            return (cfg_look_charset_decode_utf) ?
470                strdup (cfg_look_charset_decode_utf) : strdup ("");
471        
472        config_option_list_get_value (&(server->charset_decode_utf),
473                                      "server", &pos, &length);
474        if (pos && (length > 0))
475        {
476            result = strdup (pos);
477            result[length] = '\0';
478            return result;
479        }
480        
481        return (cfg_look_charset_decode_utf) ?
482            strdup (cfg_look_charset_decode_utf) : strdup ("");
483    }
484    
485    /*
486     * server_get_charset_encode: get encode value for server
487     *                            if not found for server, look for global
488     */
489    
490    char *
491    server_get_charset_encode (t_irc_server *server)
492    {
493        char *pos, *result;
494        int length;
495        
496        if (!server)
497            return (cfg_look_charset_encode) ?
498                strdup (cfg_look_charset_encode) : strdup ("");
499        
500        config_option_list_get_value (&(server->charset_encode),
501                                      "server", &pos, &length);
502        if (pos && (length > 0))
503        {
504            result = strdup (pos);
505            result[length] = '\0';
506            return result;
507        }
508        
509        return (cfg_look_charset_encode) ?
510            strdup (cfg_look_charset_encode) : strdup ("");
511    }
512    
513    /*
514   * server_send: send data to IRC server   * server_send: send data to IRC server
515   */   */
516    
# Line 433  server_sendf (t_irc_server *server, char Line 537  server_sendf (t_irc_server *server, char
537  {  {
538      va_list args;      va_list args;
539      static char buffer[4096];      static char buffer[4096];
     char *buf2;  
540      int size_buf;      int size_buf;
541            
542      if (!server)      if (!server)
# Line 454  server_sendf (t_irc_server *server, char Line 557  server_sendf (t_irc_server *server, char
557      gui_printf (server->buffer, "[DEBUG] Sending to server >>> %s\n", buffer);      gui_printf (server->buffer, "[DEBUG] Sending to server >>> %s\n", buffer);
558      buffer[size_buf - 2] = '\r';      buffer[size_buf - 2] = '\r';
559  #endif  #endif
560      buf2 = weechat_convert_encoding ((cfg_look_charset_internal && cfg_look_charset_internal[0]) ?      if (server_send (server, buffer, strlen (buffer)) <= 0)
                                      cfg_look_charset_internal : local_charset,  
                                      cfg_look_charset_encode,  
                                      buffer);  
     if (server_send (server, buf2, strlen (buf2)) <= 0)  
561      {      {
562          irc_display_prefix (server, server->buffer, PREFIX_ERROR);          irc_display_prefix (server, server->buffer, PREFIX_ERROR);
563          gui_printf (server->buffer, _("%s error sending data to IRC server\n"),          gui_printf (server->buffer, _("%s error sending data to IRC server\n"),
564                      WEECHAT_ERROR);                      WEECHAT_ERROR);
565      }      }
     free (buf2);  
566  }  }
567    
568  /*  /*
# Line 1782  server_print_log (t_irc_server *server) Line 1880  server_print_log (t_irc_server *server)
1880      weechat_log_printf ("  autojoin. . . . . . : '%s'\n", server->autojoin);      weechat_log_printf ("  autojoin. . . . . . : '%s'\n", server->autojoin);
1881      weechat_log_printf ("  autorejoin. . . . . : %d\n",   server->autorejoin);      weechat_log_printf ("  autorejoin. . . . . : %d\n",   server->autorejoin);
1882      weechat_log_printf ("  notify_levels . . . : %s\n",   server->notify_levels);      weechat_log_printf ("  notify_levels . . . : %s\n",   server->notify_levels);
1883        weechat_log_printf ("  charset_decode_iso. : %s\n",   server->charset_decode_iso);
1884        weechat_log_printf ("  charset_decode_utf. : %s\n",   server->charset_decode_utf);
1885        weechat_log_printf ("  charset_encode. . . : %s\n",   server->charset_encode);
1886      weechat_log_printf ("  child_pid . . . . . : %d\n",   server->child_pid);      weechat_log_printf ("  child_pid . . . . . : %d\n",   server->child_pid);
1887      weechat_log_printf ("  child_read  . . . . : %d\n",   server->child_read);      weechat_log_printf ("  child_read  . . . . : %d\n",   server->child_read);
1888      weechat_log_printf ("  child_write . . . . : %d\n",   server->child_write);      weechat_log_printf ("  child_write . . . . : %d\n",   server->child_write);

Legend:
Removed from v.1.79  
changed lines
  Added in v.1.80

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