As with "cf_open_error_message()"/"file_open_error_message()", so with
authorguy <guy@f5534014-38df-0310-8fa8-9805f1628bb7>
Sat, 24 Jan 2004 02:01:44 +0000 (02:01 +0000)
committerguy <guy@f5534014-38df-0310-8fa8-9805f1628bb7>
Sat, 24 Jan 2004 02:01:44 +0000 (02:01 +0000)
"cf_write_error_message()"/"file_write_error_message()".

Use "file_open_error_message()" instead of "cf_open_error_message()" in
some places we missed in the previous checkin.

Catch ENOSPC and EDQUOT in "file_open_error_message()".

Use "file_open_error_message()" rather than "file_write_error_message()"
to report errors when creating the file to which we're saving the
"Follow TCP Stream" data.

git-svn-id: http://anonsvn.wireshark.org/wireshark/trunk@9823 f5534014-38df-0310-8fa8-9805f1628bb7

epan/filesystem.c
epan/filesystem.h
file.c
file.h
gtk/follow_dlg.c

index 2debf626a43e8ed71a8d3b65eab30547c75c08f4..2de5a75f5173d14a452eeee98f6b5ad06589832e 100644 (file)
@@ -1,7 +1,7 @@
 /* filesystem.c
  * Filesystem utility routines
  *
- * $Id: filesystem.c,v 1.28 2004/01/24 01:44:29 guy Exp $
+ * $Id: filesystem.c,v 1.29 2004/01/24 02:01:43 guy Exp $
  *
  * Ethereal - Network traffic analyzer
  * By Gerald Combs <gerald@ethereal.com>
@@ -644,7 +644,8 @@ char *get_tempfile_path(const char *filename)
 }
 
 /*
- * Return an error message for UNIX-style errno indications.
+ * Return an error message for UNIX-style errno indications on open or
+ * create operations.
  */
 char *
 file_open_error_message(int err, gboolean for_writing)
@@ -672,6 +673,16 @@ file_open_error_message(int err, gboolean for_writing)
                errmsg = "\"%s\" is a directory (folder), not a file.";
                break;
 
+       case ENOSPC:
+               errmsg = "The file \"%s\" could not be created because there is no space left on the file system.";
+               break;
+
+#ifdef EDQUOT
+       case EDQUOT:
+               errmsg = "The file \"%s\" could not be created because you are too close to, or over, your disk quota.";
+               break;
+#endif
+
        default:
                snprintf(errmsg_errno, sizeof(errmsg_errno),
                                "The file \"%%s\" could not be %s: %s.",
@@ -682,3 +693,36 @@ file_open_error_message(int err, gboolean for_writing)
        }
        return errmsg;
 }
+
+/*
+ * Return an error message for UNIX-style errno indications on write
+ * operations.
+ */
+char *
+file_write_error_message(int err)
+{
+       char *errmsg;
+       static char errmsg_errno[1024+1];
+
+       switch (err) {
+
+       case ENOSPC:
+               errmsg = "The file \"%s\" could not be saved because there is no space left on the file system.";
+               break;
+
+#ifdef EDQUOT
+       case EDQUOT:
+               errmsg = "The file \"%s\" could not be saved because you are too close to, or over, your disk quota.";
+               break;
+#endif
+
+       default:
+               snprintf(errmsg_errno, sizeof(errmsg_errno),
+                   "An error occurred while writing to the file \"%%s\": %s.",
+                   strerror(err));
+               errmsg = errmsg_errno;
+               break;
+       }
+       return errmsg;
+}
+
index 1148ba1fd688e183ec6ed49efd11a0f836c80678..e0d7295a5a972709fb76547c5bed95590e9a4523 100644 (file)
@@ -1,7 +1,7 @@
 /* filesystem.h
  * Filesystem utility definitions
  *
- * $Id: filesystem.h,v 1.16 2004/01/24 01:44:29 guy Exp $
+ * $Id: filesystem.h,v 1.17 2004/01/24 02:01:43 guy Exp $
  *
  * Ethereal - Network traffic analyzer
  * By Gerald Combs <gerald@ethereal.com>
@@ -123,8 +123,15 @@ extern char *get_tempfile_path(const char *filename);
 gboolean deletefile (const char *path);
 
 /*
- * Return an error message for UNIX-style errno indications.
+ * Return an error message for UNIX-style errno indications on open or
+ * create operations.
  */
 char *file_open_error_message(int err, gboolean for_writing);
 
+/*
+ * Return an error message for UNIX-style errno indications on write
+ * operations.
+ */
+char *file_write_error_message(int err);
+
 #endif /* FILESYSTEM_H */
diff --git a/file.c b/file.c
index f644fc59c3dfb28ae10cf16f1f08bd76c711d94b..ec16ed672dd43bc466bdcad5898a70ae3ccadc5a 100644 (file)
--- a/file.c
+++ b/file.c
@@ -1,7 +1,7 @@
 /* file.c
  * File I/O routines
  *
- * $Id: file.c,v 1.345 2004/01/24 01:44:28 guy Exp $
+ * $Id: file.c,v 1.346 2004/01/24 02:01:42 guy Exp $
  *
  * Ethereal - Network traffic analyzer
  * By Gerald Combs <gerald@ethereal.com>
@@ -118,6 +118,7 @@ static gboolean find_packet(capture_file *cf,
 static char *cf_open_error_message(int err, gboolean for_writing,
     int file_type);
 static char *file_rename_error_message(int err);
+static char *cf_write_error_message(int);
 static char *file_close_error_message(int err);
 static   gboolean copy_binary_file(char *from_filename, char *to_filename);
 
@@ -2475,7 +2476,7 @@ save_packet(capture_file *cf _U_, frame_data *fdata,
 
   /* and save the packet */
   if (!wtap_dump(args->pdh, &hdr, pseudo_header, pd, &err)) {
-    simple_dialog(ESD_TYPE_CRIT, NULL, file_write_error_message(err),
+    simple_dialog(ESD_TYPE_CRIT, NULL, cf_write_error_message(err),
                   args->fname);
     return FALSE;
   }
@@ -2683,7 +2684,7 @@ cf_open_error_message(int err, gboolean for_writing, int file_type)
     /* Wiretap error. */
     switch (err) {
 
-   case WTAP_ERR_NOT_REGULAR_FILE:
+    case WTAP_ERR_NOT_REGULAR_FILE:
       errmsg = "The file \"%s\" is a \"special file\" or socket or other non-regular file.";
       break;
 
@@ -2789,31 +2790,20 @@ file_read_error_message(int err)
   return errmsg_errno;
 }
 
-char *
-file_write_error_message(int err)
+static char *
+cf_write_error_message(int err)
 {
   char *errmsg;
   static char errmsg_errno[1024+1];
 
-  switch (err) {
-
-  case ENOSPC:
-    errmsg = "The file \"%s\" could not be saved because there is no space left on the file system.";
-    break;
-
-#ifdef EDQUOT
-  case EDQUOT:
-    errmsg = "The file \"%s\" could not be saved because you are too close to, or over, your disk quota.";
-    break;
-#endif
-
-  default:
+  if (err < 0) {
+    /* Wiretap error. */
     snprintf(errmsg_errno, sizeof(errmsg_errno),
                    "An error occurred while writing to the file \"%%s\": %s.",
                                wtap_strerror(err));
     errmsg = errmsg_errno;
-    break;
-  }
+  } else
+    errmsg = file_write_error_message(err);
   return errmsg;
 }
 
@@ -2874,7 +2864,7 @@ copy_binary_file(char *from_filename, char *to_filename)
   if (from_fd < 0) {
     err = errno;
     simple_dialog(ESD_TYPE_CRIT, NULL,
-                 cf_open_error_message(err, TRUE, 0), from_filename);
+                 file_open_error_message(err, TRUE), from_filename);
     goto done;
   }
 
@@ -2887,7 +2877,7 @@ copy_binary_file(char *from_filename, char *to_filename)
   if (to_fd < 0) {
     err = errno;
     simple_dialog(ESD_TYPE_CRIT, NULL,
-                 cf_open_error_message(err, TRUE, 0), to_filename);
+                 file_open_error_message(err, TRUE), to_filename);
     close(from_fd);
     goto done;
   }
diff --git a/file.h b/file.h
index f117acd3bf20c4315db04bb1333d911dfbd9956d..55ec3457948a253951ec74d4094742c90ff02e22 100644 (file)
--- a/file.h
+++ b/file.h
@@ -1,7 +1,7 @@
 /* file.h
  * Definitions for file structures and routines
  *
- * $Id: file.h,v 1.112 2004/01/24 01:44:28 guy Exp $
+ * $Id: file.h,v 1.113 2004/01/24 02:01:42 guy Exp $
  *
  * Ethereal - Network traffic analyzer
  * By Gerald Combs <gerald@ethereal.com>
@@ -96,6 +96,5 @@ int file_mv(char *from, char *to);
 int file_cp(char *from, char *to);
 
 char *file_read_error_message(int);
-char *file_write_error_message(int);
 
 #endif /* file.h */
index ef7103d97e81f78be989ff788f7e2b89007ce96a..0737a771ee6a32634219fbf77b3fe51d972f76b6 100644 (file)
@@ -1,6 +1,6 @@
 /* follow_dlg.c
  *
- * $Id: follow_dlg.c,v 1.34 2004/01/10 16:27:41 ulfl Exp $
+ * $Id: follow_dlg.c,v 1.35 2004/01/24 02:01:44 guy Exp $
  *
  * Ethereal - Network traffic analyzer
  * By Gerald Combs <gerald@ethereal.com>
@@ -919,7 +919,7 @@ follow_save_as_ok_cb(GtkWidget * w _U_, GtkFileSelection * fs)
        fh = fopen(to_name, "wb");
        if (fh == NULL) {
                simple_dialog(ESD_TYPE_WARN, NULL,
-                       file_write_error_message(errno), to_name);
+                       file_open_error_message(errno, TRUE), to_name);
                g_free(to_name);
                return;
        }