Commit Graph

139 Commits

Author SHA1 Message Date
louib
e180154320 Update else styling. 2019-12-28 13:21:42 -05:00
louib
25116c2046 Formatting options module. 2019-12-28 13:11:47 -05:00
PartialVolume
d5fe1c096a Merge pull request #164 from louib/formatting_pass_1
Formatting pass 1
2019-12-28 17:50:15 +00:00
louib
a384bd75fd Updated zero-fill documentation. 2019-12-27 13:55:16 -05:00
louib
f212192155 Rename Quick Erase for Zero Fill 2019-12-27 12:21:20 -05:00
louib
494d269936 Formatting nwipe.c and nwipe.h 2019-12-26 14:04:38 -05:00
louib
d8749ab9da Fixed typos in help message. 2019-12-23 17:35:42 -05:00
PartialVolume
8bb3f9ff14 Fix missing log lines
Change code so that there is only one place where the log is flushed on
exit from the ncurses gui. Prior to this patch the flush was done twice
which resulted in duplicated lines and missing lines. The
log_current_element variable was being initialised after the first flush.
This caused subsequent writes to nwipe to write log_lines pointers passed
the end of the pointer array causing memory corruption and resulting in the
occassional segfault on attempts to print the log array.
2019-12-15 18:14:27 +00:00
PartialVolume
8d02bfe6f8 Merge pull request #157 from PartialVolume/fix_segfault_and_missing_log_lines
Fix segfault & missing log lines
2019-12-10 23:32:16 +00:00
PartialVolume
a215aa14fa Fix segfault & missing log lines
This patch fixes a segfault that occurs when a logfile is specified.
The segfault occurred on exit of nwipe. It did not affect the wipe
process.

This patch also fixes a related issue, at the end of a wipe some
of the log lines were missing on stdout, this occurred when a log
file was not specified as an option.
2019-12-10 23:29:42 +00:00
PartialVolume
4666f17930 Fixes Implicit declaration of function 'fdatasync' is invalid in C99 2019-12-08 22:26:09 +00:00
PartialVolume
11a0c2de6b Runtime statistics uses too much CPU
During testing a single drive two cores consistently run at close to 100%,
one core at 100% and the other varying between 80-100%. This shouldn't be
the case. Although there would be two threads running, i.e. the gui status
thread and the disk drives wipe thread I would have expected the amount of
CPU required to calculate the on screen stats to be insignificant as they
are only updated once a second.

To reduce the gui stats thread to near zero% while still maintaining the
stats update at one second I inserted an nanosleep interval of 100ms. This
now means that only the one core now shows at 80-100% while all other cores
are close to zero.
2019-12-08 11:40:14 +00:00
PartialVolume
b102bee6fa Update version.c
Make the change in both version strings.
2019-12-04 22:09:12 +00:00
PartialVolume
551836e092 Update version.c with release candidate versioning
To avoid confusion, the master code should have the version number in the title bar. The version number shown in the master should be the version number of the next (unreleased version) followed by the suffix rc1. As an example, the current official released version is 0.26 so in the master title bar the version should be 0.27rc1, i.e. the release candidate for the proposed release 0.27.
2019-12-04 22:07:59 +00:00
PartialVolume
4dc84a727c Update version.c, Simplify the title text 2019-12-04 21:50:48 +00:00
PartialVolume
5004c15481 Merge pull request #144 from PartialVolume/add_error_checking_code_tidy_up
Add error checking code to pthread_mutex_lock functions
2019-12-01 22:26:07 +00:00
PartialVolume
3110267373 Add error checking code to pthread_mutex_lock functions
Move flush of logs into final cleanup function
Minor alteration to one or two error messages
2019-12-01 22:22:47 +00:00
PartialVolume
82e4d1b2ea Merge pull request #136 from louib/backspace_as_return
Update footers for key commands.
2019-11-30 23:14:55 +00:00
PartialVolume
c064a66115 warning: logical 'or' of collectively exhaustive tests is always true
If using || in the while statement and if 'MAX_DRIVE_PATH_LENGTH' was exceeded the while loop would loop indefinitely.
2019-11-30 17:07:14 +00:00
louib
d3ddd8d2ac Exit on invalid long option. 2019-11-24 11:14:28 -05:00
louib
974f323857 Update footers for key commands.
Update the footers for the commands available in each
screen. Also added the possibility to cancel from the
rounds screen. It was possible to cancel with backspace
from the other screens (method prng etc) but this was not
displayed in the footers. Added the `Ctrl-C` command
to all the footers since this is a global command.
Added the `Left` command to the rounds screen, since it
was implemented but not documented.
Also made sure the Ctrl-C was placed at the end on every
footer.
2019-11-24 10:52:22 -05:00
louib
5bf579d5b2 Suppress warnings from glibc macros. 2019-11-16 18:25:34 -05:00
PartialVolume
1090ac5d83 Merge branch 'master' into fix_segfault_on_CNTRL-C_at_end_wipe_take3 2019-11-14 01:26:20 +00:00
PartialVolume
4241485e6a Fix segfault on Control-C, after a successful wipe
Symptoms: If you control-C to exit nwipe at the end of a successful
wipe you would get a segmentation fault. If nwipe log data was being
sent to stdout rather than to a log file, then you would not see the
log in the terminal windows after nwipe had exited. This patch fixes
those problems by creating a tri-state wipe flag for each wipe
thread. The main thread after having launched the wipe threads
will wait for ALL wipe flags to report that the wipe routine has
completed and the thread has exited. Only at that time does the
main() routine then proceed with joining the threads and waiting
for the join to confirm the thread has indeed exited. This join
is important as the thread will not actually exit until the OS
has flushed the disk buffers. Currently nwipe does not use O_SYNC
where data is sent straight to disk. Therefore it's important
to wait for data to be flushed before exiting nwipe. Part of this
patch is introducing a "please wait .. disks are being flushed"
prior to exiting nwipe otherwise it might look like nwipe had
hung. A disk flush in terms of how long it takes, can be from
instantly to 30 seconds or more, depending on how much system
memory you have, when the last sync occurred and if you have
changed the sync option from it's default. Something else to
note is that when all wipes have finished nwipe displays "Enter
To Exit" on the status line at the bottom of the screen. I
believe typing 'enter' rather than control-c did not produce a
segmentation fault. Irrespective, both methods of exiting nwipe
have been tested and confirmed to now work correctly. Tested
overnight with two drives using multiple wipe methods,
verification and blanking.
2019-11-14 01:07:08 +00:00
PartialVolume
dd3828008d Add notification of cache flush on CNTRL-C exit 2019-11-14 01:07:08 +00:00
louib
a5715eeca4 Add documentation for verify 2019-11-13 18:35:12 -05:00
Legogizmo
94a9437166 Fixed the Error count issue 2019-11-13 14:30:20 -06:00
Legogizmo
a216fa2c24 Added Verify Method
and fixed other bugs.
2019-11-13 10:59:44 -06:00
PartialVolume
f6cf615a12 Fix segfault on Control-C, after a successful wipe
Symptoms: If you control-C to exit nwipe at the end of a successful
wipe you would get a segmentation fault. If nwipe log data was being
sent to stdout rather than to a log file, then you would not see the
log in the terminal windows after nwipe had exited. This patch fixes
those problems by creating a tri-state wipe flag for each wipe
thread. The main thread after having launched the wipe threads
will wait for ALL wipe flags to report that the wipe routine has
completed and the thread has exited. Only at that time does the
main() routine then proceed with joining the threads and waiting
for the join to confirm the thread has indeed exited. This join
is important as the thread will not actually exit until the OS
has flushed the disk buffers. Currently nwipe does not use O_SYNC
where data is sent straight to disk. Therefore it's important
to wait for data to be flushed before exiting nwipe. Part of this
patch is introducing a "please wait .. disks are being flushed"
prior to exiting nwipe otherwise it might look like nwipe had
hung. A disk flush in terms of how long it takes, can be from
instantly to 30 seconds or more, depending on how much system
memory you have, when the last sync occurred and if you have
changed the sync option from it's default. Something else to
note is that when all wipes have finished nwipe displays "Enter
To Exit" on the status line at the bottom of the screen. I
believe typing 'enter' rather than control-c did not produce a
segmentation fault. Irrespective, both methods of exiting nwipe
have been tested and confirmed to now work correctly. Tested
overnight with two drives using multiple wipe methods,
verification and blanking.
2019-11-11 12:34:28 +00:00
PartialVolume
602cdcaa58 Add notification of cache flush on CNTRL-C exit 2019-11-10 11:42:26 +00:00
PartialVolume
53b1c6ba62 Fix order of include files in options.c
After running clang on options.c the includes were reordered. This caused the compilation to fail with multiple errors.
2019-11-08 18:00:24 +00:00
PartialVolume
2a056b7bfa Changed sync from 0 (at end) to every 1000000 blks
Instead of defaulting to only calling fdatasync at the end of a wipe, it now defaults to calling fdatasync every 1000000 blocks. This shows a unresponsive drive far quicker and also allows wipe threads to complete and be cancelled within a couple of seconds if a wipe is aborted with control-c.
2019-11-08 13:18:50 +00:00
Legogizmo
f9f0ec605c Merge branch 'master' into SyncChanges 2019-11-07 14:09:07 -06:00
PartialVolume
2402ca0602 Merge branch 'master' into clang_format 2019-11-07 19:33:32 +00:00
Legogizmo
7db0bd733e Merge branch 'master' into SyncChanges 2019-11-07 11:22:43 -06:00
PartialVolume
5199fb1793 Fix wipe status saying Success when it never even started.
Capitalise success and failure messages in GUI and log to make them stand out
2019-11-06 20:03:39 +00:00
PartialVolume
f6c1cab28a Have nwipe continue with following devices even if one fails 2019-11-06 14:13:33 +00:00
PartialVolume
d04ae940b6 Limit help text line length to 80 characters
1. When running nwipe in a 80x24 terminal such as ALT-F2 or shredos the line length needs to limited to 80 characters otherwise the text looks misaligned.
2. Added a line between each option to make it more legible.
2019-11-05 22:56:58 +00:00
PartialVolume
766d8020c6 Fix error reporting when accessing dmidecode.
This fix allows nwipe to log an error, specifically the exit code of dmidecode if the exit code
is not 0.

For instance if dmidecode is not installed on a system, then dmidecode reports the following
[2019/11/04 22:12:50] nwipe: info: nwipe_log_sysinfo: dmidecode failed, "dmidecode -s bios-version" exit status = 127

nwipe does not abort on this error but does log the error and continue.
2019-11-04 22:39:20 +00:00
louib
76f097c272 First clang-format file version. 2019-11-03 11:38:41 -05:00
PartialVolume
661785294c Merge pull request #109 from louib/documentation
Fix typos in README and comments.
2019-11-02 22:51:07 +00:00
louib
7b1a5b98a7 Fix typos in README and comments. 2019-11-02 18:33:36 -04:00
Legogizmo
e1475d70ff Update context.h 2019-10-21 11:21:15 -05:00
Legogizmo
a75c29f973 Changed how often fdatasyncs occur.
Changed what the sync option does.
Stopped nwipe from changing the disk blocksize.
Added periodic fdatasyncs within the write loops in pass.c
2019-10-21 11:16:19 -05:00
Martijn van Brummelen
37dfb1a2b6 new release 0.26 2019-09-04 08:51:37 +02:00
Martijn van Brummelen
d2a66e0047 Merge pull request #99 from PartialVolume/log_system_info
Log system's hardware as described in the system BIOS according to th…
2019-09-04 08:18:47 +02:00
Martijn van Brummelen
11ed6b1472 Merge pull request #71 from PartialVolume/exclude-drive-181116
Enhancement: Add exclude drive option
2019-09-04 08:18:32 +02:00
PartialVolume
0fec3a1213 Log system's hardware as described in the system BIOS according to the SMBIOS/DMI standard.
Uses dmidecode with search keywords arguments. dmidecode -s to see available keywords.
2019-08-31 09:55:08 +01:00
Martijn van Brummelen
00469644d8 Merge pull request #89 from PartialVolume/Fix_segfault_that_shows_up_in_Fedora32bit_on_exit
Fix segfault on immediate CNTRL-C exit, shows in Fedora32 bit
2018-11-27 10:08:09 +01:00
Nick Law
c58ab04ff6 Update Fedora workaround 2018-11-25 23:55:11 +00:00