From: Paul Mangan Date: Wed, 7 Aug 2002 11:44:49 +0000 (+0000) Subject: sync with 0.8.1cvs17 X-Git-Tag: before_folder_color~65 X-Git-Url: http://git.claws-mail.org/?p=claws.git;a=commitdiff_plain;h=8eac6734046292fe39168982169a83ca3f8b574d sync with 0.8.1cvs17 --- diff --git a/ChangeLog b/ChangeLog index 054924ace..84924e4ba 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,15 @@ +2002-08-07 + + * src/socket.[ch]: fixed the linking failure when IPv6 is enabled. + * src/select-keys.c: modified key selection dialog. + +2002-08-07 + + * src/socket.[ch]: my_gethostbyname(): new. + * src/utils.c: get_domain_name(): return FQDN instead of short + hostname (thanks to Bob Woodside). + * src/template.c: made the debug messages less verbose. + 2002-08-06 * src/prefs_common.[ch]: removed obsolete default sign key setting. diff --git a/ChangeLog.claws b/ChangeLog.claws index 472559d52..25a6d81e9 100644 --- a/ChangeLog.claws +++ b/ChangeLog.claws @@ -1,3 +1,8 @@ +2002-08-07 [paul] 0.8.1claws32 + + * sync with 0.8.1.cvs17 + see ChangeLog 2002-08-07 + 2002-08-07 [colin] 0.8.1claws31 * src/news.c diff --git a/ChangeLog.jp b/ChangeLog.jp index 94337c221..02c3b2b53 100644 --- a/ChangeLog.jp +++ b/ChangeLog.jp @@ -1,3 +1,15 @@ +2002-08-07 + + * src/socket.[ch]: IPv6 ¤¬Í­¸ú¤Ê¾ì¹ç¤Ë¥ê¥ó¥¯¤Ë¼ºÇÔ¤¹¤ë¤Î¤ò½¤Àµ¡£ + * src/select-keys.c: ¥­¡¼ÁªÂò¥À¥¤¥¢¥í¥°¤ò½¤Àµ¡£ + +2002-08-07 + + * src/socket.[ch]: my_gethostbyname(): ¿·µ¬¡£ + * src/utils.c: get_domain_name(): û¤¤¥Û¥¹¥È̾¤ÎÂå¤ï¤ê¤Ë FQDN ¤ò + ÊÖ¤¹¤è¤¦¤Ë¤·¤¿(Bob Woodside ¤µ¤ó thanks)¡£ + * src/template.c: ¥Ç¥Ð¥Ã¥°¥á¥Ã¥»¡¼¥¸¤Î¾éĹÅÙ¤ò²¼¤²¤¿¡£ + 2002-08-06 * src/prefs_common.[ch]: obsolete ¤Ê¥Ç¥Õ¥©¥ë¥È½ð̾¸°¤ÎÀßÄê¤òºï½ü¡£ diff --git a/configure.in b/configure.in index 5ad875f7b..0b82982d3 100644 --- a/configure.in +++ b/configure.in @@ -8,7 +8,7 @@ MINOR_VERSION=8 MICRO_VERSION=1 INTERFACE_AGE=0 BINARY_AGE=0 -EXTRA_VERSION=claws31 +EXTRA_VERSION=claws32 VERSION=$MAJOR_VERSION.$MINOR_VERSION.$MICRO_VERSION$EXTRA_VERSION dnl set $target diff --git a/src/select-keys.c b/src/select-keys.c index 2e2ab58d7..602aec58b 100644 --- a/src/select-keys.c +++ b/src/select-keys.c @@ -44,6 +44,7 @@ #include "utils.h" #include "gtkutils.h" #include "inputdialog.h" +#include "manage_window.h" #define DIM(v) (sizeof(v)/sizeof((v)[0])) #define DIMof(type,member) DIM(((type *)0)->member) @@ -125,7 +126,7 @@ gpgmegtk_recipient_selection (GSList *recp_names) struct select_keys_s sk; GpgmeError err; - memset ( &sk, 0, sizeof sk); + memset (&sk, 0, sizeof sk); err = gpgme_recipients_new (&sk.rset); if (err) { @@ -260,12 +261,12 @@ create_dialog (struct select_keys_s *sk) GtkWidget *scrolledwin; GtkWidget *clist; GtkWidget *label; - GtkWidget *other_btn, *select_btn, *cancel_btn; + GtkWidget *select_btn, *cancel_btn, *other_btn; const char *titles[N_COL_TITLES]; g_assert (!sk->window); window = gtk_window_new (GTK_WINDOW_DIALOG); - gtk_widget_set_usize (window, 500, 320); + gtk_widget_set_usize (window, 520, 280); gtk_container_set_border_width (GTK_CONTAINER (window), 8); gtk_window_set_title (GTK_WINDOW (window), _("Select Keys")); gtk_window_set_modal (GTK_WINDOW (window), TRUE); @@ -273,6 +274,7 @@ create_dialog (struct select_keys_s *sk) GTK_SIGNAL_FUNC (delete_event_cb), sk); gtk_signal_connect (GTK_OBJECT (window), "key_press_event", GTK_SIGNAL_FUNC (key_pressed_cb), sk); + MANAGE_WINDOW_SIGNALS_CONNECT (window); vbox = gtk_vbox_new (FALSE, 8); gtk_container_add (GTK_CONTAINER (window), vbox); @@ -282,12 +284,10 @@ create_dialog (struct select_keys_s *sk) label = gtk_label_new ( "" ); gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0); - hbox = gtk_hbox_new (FALSE, 8); gtk_box_pack_start (GTK_BOX (vbox), hbox, TRUE, TRUE, 0); gtk_container_set_border_width (GTK_CONTAINER (hbox), 2); - scrolledwin = gtk_scrolled_window_new (NULL, NULL); gtk_box_pack_start (GTK_BOX (hbox), scrolledwin, TRUE, TRUE, 0); gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolledwin), @@ -302,10 +302,10 @@ create_dialog (struct select_keys_s *sk) clist = gtk_clist_new_with_titles (N_COL_TITLES, (char**)titles); gtk_container_add (GTK_CONTAINER (scrolledwin), clist); - gtk_clist_set_column_width (GTK_CLIST(clist), COL_ALGO, 40); - gtk_clist_set_column_width (GTK_CLIST(clist), COL_KEYID, 60); - gtk_clist_set_column_width (GTK_CLIST(clist), COL_NAME, 100); - gtk_clist_set_column_width (GTK_CLIST(clist), COL_EMAIL, 100); + gtk_clist_set_column_width (GTK_CLIST(clist), COL_ALGO, 72); + gtk_clist_set_column_width (GTK_CLIST(clist), COL_KEYID, 76); + gtk_clist_set_column_width (GTK_CLIST(clist), COL_NAME, 130); + gtk_clist_set_column_width (GTK_CLIST(clist), COL_EMAIL, 130); gtk_clist_set_column_width (GTK_CLIST(clist), COL_VALIDITY, 20); gtk_clist_set_selection_mode (GTK_CLIST(clist), GTK_SELECTION_BROWSE); gtk_signal_connect (GTK_OBJECT(GTK_CLIST(clist)->column[COL_NAME].button), @@ -319,24 +319,24 @@ create_dialog (struct select_keys_s *sk) gtk_box_pack_end (GTK_BOX (vbox), hbox, FALSE, FALSE, 0); gtkut_button_set_create (&bbox, - &other_btn, _("Other"), &select_btn, _("Select"), - &cancel_btn, _("Cancel")); + &cancel_btn, _("Cancel"), + &other_btn, _("Other")); gtk_box_pack_end (GTK_BOX (hbox), bbox, FALSE, FALSE, 0); gtk_widget_grab_default (select_btn); - gtk_signal_connect (GTK_OBJECT (other_btn), "clicked", - GTK_SIGNAL_FUNC (other_btn_cb), sk); gtk_signal_connect (GTK_OBJECT (select_btn), "clicked", GTK_SIGNAL_FUNC (select_btn_cb), sk); gtk_signal_connect (GTK_OBJECT(cancel_btn), "clicked", GTK_SIGNAL_FUNC (cancel_btn_cb), sk); - + gtk_signal_connect (GTK_OBJECT (other_btn), "clicked", + GTK_SIGNAL_FUNC (other_btn_cb), sk); vbox2 = gtk_vbox_new (FALSE, 4); gtk_box_pack_start (GTK_BOX (hbox), vbox2, FALSE, FALSE, 0); gtk_widget_show_all (window); + sk->window = window; sk->toplabel = GTK_LABEL (label); sk->clist = GTK_CLIST (clist); @@ -346,8 +346,9 @@ create_dialog (struct select_keys_s *sk) static void open_dialog (struct select_keys_s *sk) { - if ( !sk->window ) + if (!sk->window) create_dialog (sk); + manage_window_set_transient (GTK_WINDOW (sk->window)); sk->okay = 0; sk->sort_column = N_COL_TITLES; /* use an invalid value */ sk->sort_type = GTK_SORT_ASCENDING; @@ -441,7 +442,7 @@ other_btn_cb (GtkWidget *widget, gpointer data) g_return_if_fail (sk); uid = input_dialog ( _("Add key"), - _("Enter another user or key ID\n"), + _("Enter another user or key ID:"), NULL ); if (!uid) return; diff --git a/src/socket.c b/src/socket.c index 3f3457ffc..c0430a22e 100644 --- a/src/socket.c +++ b/src/socket.c @@ -240,6 +240,37 @@ static gint sock_connect_with_timeout(gint sock, return ret; } +struct hostent *my_gethostbyname(const gchar *hostname) +{ + struct hostent *hp; + void (*prev_handler)(gint); + guint timeout_secs = IO_TIMEOUT; + + alarm(0); + prev_handler = signal(SIGALRM, timeout_handler); + if (sigsetjmp(jmpenv, 1)) { + alarm(0); + signal(SIGALRM, prev_handler); + fprintf(stderr, "%s: host lookup timed out.\n", hostname); + errno = 0; + return NULL; + } + alarm(timeout_secs); + + if ((hp = gethostbyname(hostname)) == NULL) { + alarm(0); + signal(SIGALRM, prev_handler); + fprintf(stderr, "%s: unknown host.\n", hostname); + errno = 0; + return NULL; + } + + alarm(0); + signal(SIGALRM, prev_handler); + + return hp; +} + #ifndef INET6 static gint my_inet_aton(const gchar *hostname, struct in_addr *inp) { @@ -273,30 +304,12 @@ static gint sock_connect_by_hostname(gint sock, const gchar *hostname, ad.sin_port = htons(port); if (!my_inet_aton(hostname, &ad.sin_addr)) { - void (*prev_handler)(gint); - - alarm(0); - prev_handler = signal(SIGALRM, timeout_handler); - if (sigsetjmp(jmpenv, 1)) { - alarm(0); - signal(SIGALRM, prev_handler); - fprintf(stderr, "%s: host lookup timed out.\n", hostname); - errno = 0; - return -1; - } - alarm(timeout_secs); - - if ((hp = gethostbyname(hostname)) == NULL) { - alarm(0); - signal(SIGALRM, prev_handler); + if ((hp = my_gethostbyname(hostname)) == NULL) { fprintf(stderr, "%s: unknown host.\n", hostname); errno = 0; return -1; } - alarm(0); - signal(SIGALRM, prev_handler); - if (hp->h_length != 4 && hp->h_length != 8) { fprintf(stderr, "illegal address length received for host %s\n", hostname); errno = 0; diff --git a/src/socket.h b/src/socket.h index 1b23d0f90..ba0fb1933 100644 --- a/src/socket.h +++ b/src/socket.h @@ -26,6 +26,7 @@ #include #include /* ugly, just needed for the GdkInputCondition et al. */ +#include typedef struct _SockInfo SockInfo; @@ -63,7 +64,8 @@ struct _SockInfo gint sock_set_nonblocking_mode (SockInfo *sock, gboolean nonblock); gboolean sock_is_nonblocking_mode (SockInfo *sock); -SockInfo *sock_connect_nb (const gchar *hostname, gushort port); +struct hostent *my_gethostbyname (const gchar *hostname); + SockInfo *sock_connect (const gchar *hostname, gushort port); SockInfo *sock_connect_cmd (const gchar *hostname, const gchar *tunnelcmd); diff --git a/src/template.c b/src/template.c index 38d5db843..fc2974ee5 100644 --- a/src/template.c +++ b/src/template.c @@ -40,8 +40,6 @@ static Template *template_load(gchar *filename) gchar buf[BUFFSIZE]; gint bytes_read; - debug_print(_("%s:%d loading template from %s\n"), __FILE__, __LINE__, filename); - if ((fp = fopen(filename, "rb")) == NULL) { FILE_OP_ERROR(filename, "fopen"); return NULL; @@ -115,7 +113,8 @@ GSList *template_read_config(void) GSList *tmpl_list = NULL; path = get_template_dir(); - debug_print(_("%s:%d reading templates dir %s\n"), __FILE__, __LINE__, path); + debug_print("%s:%d reading templates dir %s\n", + __FILE__, __LINE__, path); if (!is_dir_exist(path)) { if (make_dir(path) < 0) @@ -131,11 +130,10 @@ GSList *template_read_config(void) if (*de->d_name == '.') continue; filename = g_strconcat(path, G_DIR_SEPARATOR_S, de->d_name, NULL); - debug_print(_("%s:%d found file %s\n"), __FILE__, __LINE__, filename); if (stat(filename, &s) != 0 || !S_ISREG(s.st_mode) ) { - debug_print(_("%s:%d %s is not an ordinary file\n"), - __FILE__, __LINE__, filename); + debug_print("%s:%d %s is not an ordinary file\n", + __FILE__, __LINE__, filename); continue; } @@ -158,6 +156,8 @@ void template_write_config(GSList *tmpl_list) FILE *fp; gint tmpl_num; + debug_print("%s:%d writing templates\n", __FILE__, __LINE__); + path = get_template_dir(); if (!is_dir_exist(path)) { @@ -187,16 +187,13 @@ void template_write_config(GSList *tmpl_list) return; } - debug_print(_("%s:%d writing template \"%s\" to %s\n"), - __FILE__, __LINE__, tmpl->name, filename); fprintf(fp, "Name: %s\n", tmpl->name); if (tmpl->subject && *tmpl->subject != '\0') fprintf(fp, "Subject: %s\n", tmpl->subject); if (tmpl->to && *tmpl->to != '\0') fprintf(fp, "To: %s\n", tmpl->to); fputs("\n", fp); - fwrite(tmpl->value, sizeof(gchar) * strlen(tmpl->value), 1, - fp); + fwrite(tmpl->value, sizeof(gchar) * strlen(tmpl->value), 1, fp); fclose(fp); } } diff --git a/src/utils.c b/src/utils.c index 26f48b74b..0ba94c971 100644 --- a/src/utils.c +++ b/src/utils.c @@ -28,7 +28,6 @@ #include #include #include -#include #if (HAVE_WCTYPE_H && HAVE_WCHAR_H) # include @@ -45,6 +44,7 @@ #include "intl.h" #include "utils.h" +#include "socket.h" #include "statusbar.h" #include "logwindow.h" @@ -1471,26 +1471,25 @@ gchar *get_tmp_file(void) gchar *get_domain_name(void) { static gchar *domain_name = NULL; - struct hostent *myfqdn = NULL; if (!domain_name) { - gchar buf[BUFFSIZE] = ""; + gchar buf[128] = ""; + struct hostent *hp; if (gethostname(buf, sizeof(buf)) < 0) { perror("gethostname"); - strcpy(buf, "unknown"); - } else { - myfqdn = gethostbyname(buf); - if (myfqdn != NULL) { - memset(buf, '\0', strlen(buf)); - strcpy(buf, myfqdn->h_name); - } else { - perror("gethostbyname"); - strcpy(buf, "unknown"); - } - } - - domain_name = g_strdup(buf); + domain_name = "unknown"; + } else { + buf[sizeof(buf) - 1] = '\0'; + if ((hp = my_gethostbyname(buf)) == NULL) { + perror("gethostbyname"); + domain_name = g_strdup(buf); + } else { + domain_name = g_strdup(hp->h_name); + } + } + + debug_print("domain name = %s\n", domain_name); } return domain_name;