]> Kevux Git Server - fll/commitdiff
Update: f_error changes and more signals
authorKevin Day <thekevinday@gmail.com>
Thu, 8 Jan 2015 03:14:41 +0000 (21:14 -0600)
committerKevin Day <thekevinday@gmail.com>
Thu, 8 Jan 2015 03:14:41 +0000 (21:14 -0600)
- Added more signal commands.
- Added more signal codes for up to 64 signals.
- Replaced f_error_unmask with f_error_set_fine to be more consistent with the other f_error_set_* names.
- The signal bit is intended to be both the error and warning bit set so it is mathematically the same as the mask bit.
- Change f_none starting point to 197 to handle all possible 64 signals.

13 files changed:
level_0/f_errors/c/errors.h
level_1/fl_errors/c/errors.c
level_2/fll_fss/c/fss_errors.c
level_3/firewall/c/firewall.c
level_3/firewall/c/private-firewall.c
level_3/fss_basic_list_read/c/fss_basic_list_read.c
level_3/fss_basic_list_write/c/fss_basic_list_write.c
level_3/fss_basic_read/c/fss_basic_read.c
level_3/fss_basic_write/c/fss_basic_write.c
level_3/fss_extended_read/c/fss_extended_read.c
level_3/fss_extended_write/c/fss_extended_write.c
level_3/fss_return_code/c/fss_return_code.c
level_3/return_code/c/return_code.c

index d47280442026d037090135655024ca8d60cdcce4..c66b5cf98196eb07dbfa9abe0d50cf3f2b38db27 100644 (file)
@@ -142,18 +142,25 @@ extern "C"{
   #define f_error_bit_warning  16384
   #define f_error_bit_mask     49152
   #define f_error_bit_fine     16383
+  #define f_error_bit_signal   49152
 
-  #define f_error_is_error(status)     status & f_error_bit_error
-  #define f_error_is_warning(status)   status & f_error_bit_warning
-  #define f_error_is_problem(status)   status & f_error_bit_mask    // this is either a warning or an error
-  #define f_error_is_fine(status)      (status & f_error_bit_mask) == 0
-  #define f_error_is_not_error(status) (status & f_error_bit_error) == 0
+  #define f_error_is_error(status)       status & f_error_bit_error
+  #define f_error_is_warning(status)     status & f_error_bit_warning
+  #define f_error_is_problem(status)     status & f_error_bit_mask
+  #define f_error_is_fine(status)        (status & f_error_bit_mask) == 0
+  #define f_error_is_not_error(status)   (status & f_error_bit_error) == 0
+  #define f_error_is_not_warning(status) (status & f_error_bit_warning) == 0
+  #define f_error_is_not_signal(status)  (status & f_error_bit_signal) == 0
+
+  // use both error and warning bits to designate that the response is a signal.
+  #define f_error_is_signal(status) (status & f_error_bit_signal) == f_error_bit_signal
 
   #define f_error_set_error(status)   status | f_error_bit_error
   #define f_error_set_warning(status) status | f_error_bit_warning
+  #define f_error_set_signal(status) status | f_error_bit_signal
 
-  // use f_error_unmask to remove the error and warning bits
-  #define f_error_unmask(status) status & f_error_bit_fine
+  // use f_error_set_fine to remove the error, warning, and signal bits
+  #define f_error_set_fine(status) status & f_error_bit_fine
 #endif // _di_f_error_masks_
 
 // use of an enumerator makes more sense here than explicitly defining every error code
@@ -195,10 +202,45 @@ enum {
     f_signal_pollable_event,
     f_signal_power_failure,
     f_signal_bad_system_call,
+
+    // these will be renamed if new names are given for the remaining system calls (up to 64).
+    f_signal_reserved_32,
+    f_signal_reserved_33,
+    f_signal_reserved_34,
+    f_signal_reserved_35,
+    f_signal_reserved_36,
+    f_signal_reserved_37,
+    f_signal_reserved_38,
+    f_signal_reserved_39,
+    f_signal_reserved_40,
+    f_signal_reserved_41,
+    f_signal_reserved_42,
+    f_signal_reserved_43,
+    f_signal_reserved_44,
+    f_signal_reserved_45,
+    f_signal_reserved_46,
+    f_signal_reserved_47,
+    f_signal_reserved_48,
+    f_signal_reserved_49,
+    f_signal_reserved_50,
+    f_signal_reserved_51,
+    f_signal_reserved_52,
+    f_signal_reserved_53,
+    f_signal_reserved_54,
+    f_signal_reserved_55,
+    f_signal_reserved_56,
+    f_signal_reserved_57,
+    f_signal_reserved_58,
+    f_signal_reserved_59,
+    f_signal_reserved_60,
+    f_signal_reserved_61,
+    f_signal_reserved_62,
+    f_signal_reserved_63,
+    f_signal_reserved_64,
   #endif // _di_f_errors_signals_
 
   #ifndef _di_f_errors_basic_
-    f_none = 166,        // start at 166 to allow compatibility with the reserved bash return codes (keep in mind fss return codes can be larger than 255).
+    f_none = 197,        // start at 197 to allow compatibility with the reserved bash return codes (keep in mind fss return codes can be larger than 255).
     f_dummy,             // to only be used as a placeholder
     f_warn,              // warning
     f_critical,
index ad70d084a5af500ae3b5065cbe9790954139e8fd..85ca5afd535c5aaf76765e1347c5059118e9a608 100644 (file)
@@ -19,7 +19,7 @@ extern "C"{
       if (string == f_null) return f_error_set_error(f_invalid_parameter);
     #endif // _di_level_1_parameter_checking_
 
-    f_status umasked_error = f_error_unmask(error);
+    f_status umasked_error = f_error_set_fine(error);
 
     switch (umasked_error) {
       #ifndef _di_fl_errors_booleans_
index dca6b252080c79c5ffd99176ac49c3ba148ce391..e20dfcc275d48c7e15c870ed0522fd9999231a4d 100644 (file)
@@ -16,7 +16,7 @@ extern "C"{
       if (string == f_null) return f_error_set_error(f_invalid_parameter);
     #endif // _di_level_2_parameter_checking_
 
-    f_status unmasked_error = f_error_unmask(error);
+    f_status unmasked_error = f_error_set_fine(error);
 
     switch (unmasked_error) {
       #ifndef _di_fll_fss_errors_error_
index 0f1adb35fe4092d30f0c29f37387d7ad8979e9f2..eaca5513c0452b948eb9000378a62d944e12f725 100644 (file)
@@ -127,7 +127,7 @@ extern "C"{
     }
 
     if (f_error_is_error(status)) {
-      status = f_error_unmask(status);
+      status = f_error_set_fine(status);
 
       if (status == f_no_data) {
         fl_print_color_line(f_standard_error, data->context.error, data->context.reset, "ERROR: One of the parameters you passed requires an additional parameter that you did not pass.");
@@ -136,7 +136,7 @@ extern "C"{
         //       nothing can be 0 as that represents the program name, unless argv[] is improperly created
       } else if (f_macro_test_for_allocation_errors(status)) {
         fl_print_color_line(f_standard_error, data->context.error, data->context.reset, "CRITICAL ERROR: unable to allocate memory");
-      } else if (f_error_unmask(status) == f_invalid_parameter) {
+      } else if (f_error_set_fine(status) == f_invalid_parameter) {
         fl_print_color_line(f_standard_error, data->context.error, data->context.reset, "INTERNAL ERROR: Invalid parameter when calling fl_process_parameters()");
       } else {
         fl_print_color_line(f_standard_error, data->context.error, data->context.reset, "INTERNAL ERROR: An unhandled error (%u) has occured while calling fl_process_parameters()", f_error_set_error(status));
@@ -339,7 +339,7 @@ extern "C"{
           }
 
           if (f_error_is_error(status)) {
-            status = f_error_unmask(status);
+            status = f_error_set_fine(status);
 
             if (f_macro_test_for_allocation_errors(status)) {
               fl_print_color_line(f_standard_error, data->context.error, data->context.reset, "CRITICAL ERROR: unable to allocate memory");
@@ -387,7 +387,7 @@ extern "C"{
         status = fl_directory_list((f_string) network_devices, &data->devices);
 
         if (f_error_is_error(status)) {
-          status = f_error_unmask(status);
+          status = f_error_set_fine(status);
 
           if (f_macro_test_for_allocation_errors(status)) {
             fl_print_color_line(f_standard_error, data->context.error, data->context.reset, "CRITICAL ERROR: unable to allocate memory");
@@ -571,7 +571,7 @@ extern "C"{
             }
 
             if (f_error_is_error(status)) {
-              status = f_error_unmask(status);
+              status = f_error_set_fine(status);
 
               firewall_delete_local_data(&local);
 
index 7bf1898ac822b990a3b81d053b9ef556cedc38e9..a4e03c654856539a6b36082b63252020c084ab8d 100644 (file)
             }
 
             if (f_error_is_error(status)) {
-              status = f_error_unmask(status);
+              status = f_error_set_fine(status);
 
               if (status == f_invalid_parameter) {
                 fl_print_color_line(f_standard_error, data.context.error, data.context.reset, "INTERNAL ERROR: Invalid parameter when calling f_file_open()");
               f_file_close(&file);
 
               if (f_error_is_error(status)) {
-                status = f_error_unmask(status);
+                status = f_error_set_fine(status);
 
                 if (status == f_invalid_parameter) {
                   fl_print_color_line(f_standard_error, data.context.error, data.context.reset, "INTERNAL ERROR: Invalid parameter when calling fl_file_read()");
                 }
 
                 if (f_error_set_error(status)) {
-                  status = f_error_unmask(status);
+                  status = f_error_set_fine(status);
 
                   if (status == f_invalid_parameter) {
                     fl_print_color_line(f_standard_error, data.context.error, data.context.reset, "INTERNAL ERROR: Invalid parameter when calling fll_fss_basic_read() for the file '%s'", file_path.string);
         }
 
         if (f_error_is_error(status)) {
-          status = f_error_unmask(status);
+          status = f_error_set_fine(status);
 
           if (status == f_failure) {
             if (tool == firewall_program_iptables) {
     status = f_file_open(&file, filename);
 
     if (f_error_is_error(status)) {
-      status = f_error_unmask(status);
+      status = f_error_set_fine(status);
 
       if (optional) {
         if (status == f_invalid_parameter) {
     f_file_close(&file);
 
     if (f_error_is_error(status)) {
-      status = f_error_unmask(status);
+      status = f_error_set_fine(status);
 
       if (status == f_invalid_parameter) {
         fl_print_color_line(f_standard_error, data->context.error, data->context.reset, "INTERNAL ERROR: Invalid parameter when calling fl_file_read().");
     }
 
     if (f_error_is_error(status)) {
-      status = f_error_unmask(status);
+      status = f_error_set_fine(status);
 
       if (status == f_invalid_parameter) {
         fl_print_color_line(f_standard_error, data->context.error, data->context.reset, "INTERNAL ERROR: Invalid parameter when calling fll_fss_basic_list_read() for the file '%s'.", filename);
       status = firewall_perform_commands(*local, *data);
 
       if (f_error_is_error(status)) {
-        status = f_error_unmask(status);
+        status = f_error_set_fine(status);
 
         if (f_macro_test_for_allocation_errors(status)) {
           fl_print_color_line(f_standard_error, data->context.error, data->context.reset, "CRITICAL ERROR: unable to allocate memory.");
index 1f4311679860a8c368ae77640f72c8d4ac643819..7130a5e91654e09d91bb3a44dceaf088f3b4579b 100644 (file)
@@ -151,7 +151,7 @@ extern "C"{
     }
 
     if (f_error_is_error(status)) {
-      status = f_error_unmask(status);
+      status = f_error_set_fine(status);
 
       if (status == f_no_data) {
         fl_print_color_line(f_standard_error, data->context.error, data->context.reset, "ERROR: One of the parameters you passed requires an additional parameter that you did not pass.");
@@ -192,7 +192,7 @@ extern "C"{
         status = fl_file_read_fifo(file, &data->buffer);
 
         if (f_error_is_error(status)) {
-          status = f_error_unmask(status);
+          status = f_error_set_fine(status);
 
           if (status == f_invalid_parameter) {
             fl_print_color_line(f_standard_error, data->context.error, data->context.reset, "INTERNAL ERROR: Invalid parameter when calling f_file_open()");
@@ -230,7 +230,7 @@ extern "C"{
         data->file_position.total_elements = original_size;
 
         if (f_error_is_error(status)) {
-          status = f_error_unmask(status);
+          status = f_error_set_fine(status);
 
           if (status == f_invalid_parameter) {
             fl_print_color_line(f_standard_error, data->context.error, data->context.reset, "INTERNAL ERROR: Invalid parameter when calling f_file_open()");
@@ -267,7 +267,7 @@ extern "C"{
         f_file_close(&file);
 
         if (f_error_is_error(status)) {
-          status = f_error_unmask(status);
+          status = f_error_set_fine(status);
 
           if (status == f_invalid_parameter) {
             fl_print_color_line(f_standard_error, data->context.error, data->context.reset, "INTERNAL ERROR: Invalid parameter when calling fl_file_read()");
@@ -326,7 +326,7 @@ extern "C"{
     }
 
     if (f_error_is_error(status)) {
-      status = f_error_unmask(status);
+      status = f_error_set_fine(status);
 
       if (status == f_invalid_parameter) {
         fl_print_color_line(f_standard_error, data->context.error, data->context.reset, "INTERNAL ERROR: Invalid parameter when calling fll_fss_basic_list_read() for the file '%s'", filename);
index 27138f6ddcfd25dfd67e6ddd3f4355ca2586806b..070ed29cc9b657fd0789904e27984aa062f47aec 100644 (file)
@@ -123,7 +123,7 @@ extern "C"{
     }
 
     if (f_error_is_error(status)) {
-      status = f_error_unmask(status);
+      status = f_error_set_fine(status);
 
       if (status == f_no_data) {
         fl_print_color_line(f_standard_error, data->context.error, data->context.reset, "ERROR: One of the parameters you passed requires an additional parameter that you did not pass.");
@@ -163,7 +163,7 @@ extern "C"{
         status = fl_file_read_fifo(file, &input);
 
         if (f_error_is_error(status)) {
-          status = f_error_unmask(status);
+          status = f_error_set_fine(status);
 
           if (status == f_invalid_parameter) {
             fl_print_color_line(f_standard_error, data->context.error, data->context.reset, "INTERNAL ERROR: Invalid parameter when calling f_file_open()");
@@ -233,7 +233,7 @@ extern "C"{
         status = f_file_open(&output, argv[data->parameters[fss_basic_list_write_parameter_file].additional.array[0]]);
 
         if (f_error_is_error(status)) {
-          status = f_error_unmask(status);
+          status = f_error_set_fine(status);
 
           f_file_close(&output);
 
@@ -257,7 +257,7 @@ extern "C"{
         f_file_close(&output);
 
         if (f_error_is_error(status)) {
-          status = f_error_unmask(status);
+          status = f_error_set_fine(status);
 
           if (status == f_invalid_parameter) {
             fl_print_color_line(f_standard_error, data->context.error, data->context.reset, "INTERNAL ERROR: Invalid parameter when calling fl_file_write()");
index cf3706816142f14cc955fe7e1246830838adddb5..15e0298473d320e65d5a4b0e8ab24e9b78e82fff 100644 (file)
@@ -137,7 +137,7 @@ extern "C"{
     }
 
     if (f_error_is_error(status)) {
-      status = f_error_unmask(status);
+      status = f_error_set_fine(status);
 
       if (status == f_no_data) {
         fl_print_color_line(f_standard_error, data->context.error, data->context.reset, "ERROR: One of the parameters you passed requires an additional parameter that you did not pass.");
@@ -178,7 +178,7 @@ extern "C"{
         status = fl_file_read_fifo(file, &data->buffer);
 
         if (f_error_is_error(status)) {
-          status = f_error_unmask(status);
+          status = f_error_set_fine(status);
 
           if (status == f_invalid_parameter) {
             fl_print_color_line(f_standard_error, data->context.error, data->context.reset, "INTERNAL ERROR: Invalid parameter when calling fl_file_read()");
@@ -221,7 +221,7 @@ extern "C"{
           data->file_position.total_elements = original_size;
 
           if (f_error_is_error(status)) {
-            status = f_error_unmask(status);
+            status = f_error_set_fine(status);
 
             if (status == f_invalid_parameter) {
               fl_print_color_line(f_standard_error, data->context.error, data->context.reset, "INTERNAL ERROR: Invalid parameter when calling f_file_open()");
@@ -258,7 +258,7 @@ extern "C"{
           f_file_close(&file);
 
           if (f_error_is_error(status)) {
-            status = f_error_unmask(status);
+            status = f_error_set_fine(status);
 
             if (status == f_invalid_parameter) {
               fl_print_color_line(f_standard_error, data->context.error, data->context.reset, "INTERNAL ERROR: Invalid parameter when calling fl_file_read()");
@@ -318,7 +318,7 @@ extern "C"{
     }
 
     if (f_error_is_error(status)) {
-      status = f_error_unmask(status);
+      status = f_error_set_fine(status);
 
       if (status == f_invalid_parameter) {
         fl_print_color_line(f_standard_error, data->context.error, data->context.reset, "INTERNAL ERROR: Invalid parameter when calling fll_fss_basic_list_read() for the file '%s'", filename);
index 6dd9bc1ae616c2b030a10eae7e2ecbb08e3792ee..1d3c49d8f10145497ed66436c4e735add7a51bd2 100644 (file)
@@ -123,7 +123,7 @@ extern "C"{
     }
 
     if (f_error_is_error(status)) {
-      status = f_error_unmask(status);
+      status = f_error_set_fine(status);
 
       if (status == f_no_data) {
         fl_print_color_line(f_standard_error, data->context.error, data->context.reset, "ERROR: One of the parameters you passed requires an additional parameter that you did not pass.");
@@ -163,7 +163,7 @@ extern "C"{
         status = fl_file_read_fifo(file, &input);
 
         if (f_error_is_error(status)) {
-          status = f_error_unmask(status);
+          status = f_error_set_fine(status);
 
           if (status == f_invalid_parameter) {
             fl_print_color_line(f_standard_error, data->context.error, data->context.reset, "INTERNAL ERROR: Invalid parameter when calling f_file_open()");
@@ -233,7 +233,7 @@ extern "C"{
         status = f_file_open(&output, argv[data->parameters[fss_basic_write_parameter_file].additional.array[0]]);
 
         if (f_error_is_error(status)) {
-          status = f_error_unmask(status);
+          status = f_error_set_fine(status);
 
           f_file_close(&output);
 
@@ -257,7 +257,7 @@ extern "C"{
         f_file_close(&output);
 
         if (f_error_is_error(status)) {
-          status = f_error_unmask(status);
+          status = f_error_set_fine(status);
 
           if (status == f_invalid_parameter) {
             fl_print_color_line(f_standard_error, data->context.error, data->context.reset, "INTERNAL ERROR: Invalid parameter when calling fl_file_write()");
index c5e8662654086f1453940131ea1792392045325b..3da2493b2114401d912271c53bf670b748f5c8a8 100644 (file)
@@ -144,7 +144,7 @@ extern "C"{
     }
 
     if (f_error_is_error(status)) {
-      status = f_error_unmask(status);
+      status = f_error_set_fine(status);
 
       if (status == f_no_data) {
         fl_print_color_line(f_standard_error, data->context.error, data->context.reset, "ERROR: One of the parameters you passed requires an additional parameter that you did not pass.");
@@ -190,7 +190,7 @@ extern "C"{
         status = fl_file_read_fifo(file, &data->buffer);
 
         if (f_error_is_error(status)) {
-          status = f_error_unmask(status);
+          status = f_error_set_fine(status);
 
           if (status == f_invalid_parameter) {
             fl_print_color_line(f_standard_error, data->context.error, data->context.reset, "INTERNAL ERROR: Invalid parameter when calling f_file_open()");
@@ -229,7 +229,7 @@ extern "C"{
         data->file_position.total_elements = original_size;
 
         if (f_error_is_error(status)) {
-          status = f_error_unmask(status);
+          status = f_error_set_fine(status);
 
           if (status == f_invalid_parameter) {
             fl_print_color_line(f_standard_error, data->context.error, data->context.reset, "INTERNAL ERROR: Invalid parameter when calling f_file_open()");
@@ -273,7 +273,7 @@ extern "C"{
         f_file_close(&file);
 
         if (f_error_is_error(status)) {
-          status = f_error_unmask(status);
+          status = f_error_set_fine(status);
 
           if (status == f_invalid_parameter) {
             fl_print_color_line(f_standard_error, data->context.error, data->context.reset, "INTERNAL ERROR: Invalid parameter when calling fl_file_read()");
@@ -332,7 +332,7 @@ extern "C"{
     }
 
     if (f_error_is_error(status)) {
-      status = f_error_unmask(status);
+      status = f_error_set_fine(status);
 
       if (status == f_invalid_parameter) {
         fl_print_color_line(f_standard_error, data->context.error, data->context.reset, "INTERNAL ERROR: Invalid parameter when calling fll_fss_extended_read() for the file '%s'", filename);
index 8e0dd380476cec24cfaae77ad0d3edf0179068a8..85cf2e57f79dc12b84c6dd15a0ccb986cee9ffa7 100644 (file)
@@ -130,7 +130,7 @@ extern "C"{
     }
 
     if (f_error_is_error(status)) {
-      status = f_error_unmask(status);
+      status = f_error_set_fine(status);
 
       if (status == f_no_data) {
         fl_print_color_line(f_standard_error, data->context.error, data->context.reset, "ERROR: One of the parameters you passed requires an additional parameter that you did not pass.");
@@ -170,7 +170,7 @@ extern "C"{
         status = fl_file_read_fifo(file, &input);
 
         if (f_error_is_error(status)) {
-          status = f_error_unmask(status);
+          status = f_error_set_fine(status);
 
           if (status == f_invalid_parameter) {
             fl_print_color_line(f_standard_error, data->context.error, data->context.reset, "INTERNAL ERROR: Invalid parameter when calling f_file_open()");
@@ -278,7 +278,7 @@ extern "C"{
         status = f_file_open(&output, argv[data->parameters[fss_extended_write_parameter_file].additional.array[0]]);
 
         if (f_error_is_error(status)) {
-          status = f_error_unmask(status);
+          status = f_error_set_fine(status);
 
           f_file_close(&output);
 
@@ -302,7 +302,7 @@ extern "C"{
         f_file_close(&output);
 
         if (f_error_is_error(status)) {
-          status = f_error_unmask(status);
+          status = f_error_set_fine(status);
 
           if (status == f_invalid_parameter) {
             fl_print_color_line(f_standard_error, data->context.error, data->context.reset, "INTERNAL ERROR: Invalid parameter when calling fl_file_write()");
index 2f4a7e2d4a74010049d736bde6fb2033e8b104fe..2fa198b98510135bb8767a186381561313670e55 100644 (file)
@@ -136,7 +136,7 @@ extern "C"{
     }
 
     if (f_error_is_error(status)) {
-      status = f_error_unmask(status);
+      status = f_error_set_fine(status);
 
       if (status == f_no_data) {
         fl_print_color_line(f_standard_error, data->context.error, data->context.reset, "ERROR: One of the parameters you passed requires an additional parameter that you did not pass.");
index f95d060d619f2922db6cde0ac67c17c5f94a9a42..2f266ba61a34b587713c943fb5cdc0f1188e42fe 100644 (file)
@@ -136,7 +136,7 @@ extern "C"{
     }
 
     if (f_error_is_error(status)) {
-      status = f_error_unmask(status);
+      status = f_error_set_fine(status);
 
       if (status == f_no_data) {
         fl_print_color_line(f_standard_error, data->context.error, data->context.reset, "ERROR: One of the parameters you passed requires an additional parameter that you did not pass.");