Changeset 1197 in MondoRescue
- Timestamp:
- Feb 22, 2007, 1:57:52 AM (18 years ago)
- Location:
- branches/stable/mondo/src
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/stable/mondo/src/common/newt-specific.c
r1196 r1197 973 973 } 974 974 if (percentage >= 3) { 975 mr_asprintf(&tmp1, 976 "] %3d%% done; %2ld:%02ld to go", percentage, 977 time_remaining / 60, time_remaining % 60); 978 mr_strcat(taskprogress, tmp1); 979 mr_free(tmp1); 975 mr_strcat(taskprogress, _("] %3d%% done; %2ld:%02ld to go"), percentage, time_remaining / 60, time_remaining % 60); 980 976 printf("---evalcall------ %s\n", taskprogress); 981 977 mr_free(taskprogress); … … 1098 1094 mr_msg(2, _("percentage = %d"), percentage); 1099 1095 } 1100 mr_asprintf(&tmp,_("] %3d%c done; %2ld:%02ld to go"), percentage, '%', 1101 time_remaining / 60, time_remaining % 60); 1102 mr_strcat(taskprogress, tmp); 1103 mr_free(tmp); 1096 mr_strcat(taskprogress, ,_("] %3d%% done; %2ld:%02ld to go"), percentage, time_remaining / 60, time_remaining % 60); 1104 1097 printf(_("---progress-form---4--- %s\n"), taskprogress); 1105 1098 mr_free(taskprogress); -
branches/stable/mondo/src/mondorestore/mondo-prep.c
r1196 r1197 1613 1613 1614 1614 /** buffers **********************************************************/ 1615 char *program; 1616 char *partition_name; 1617 char *tmp; 1618 char *logfile; 1619 char *output; 1615 char *program = NULL; 1616 char *partition_name = NULL; 1617 char *tmp = NULL; 1618 char *output = NULL; 1620 1619 1621 1620 /** pointers **********************************************************/ 1622 char *p ;1623 char *part_table_fmt ;1624 FILE *fout ;1621 char *p = NULL; 1622 char *part_table_fmt = NULL; 1623 FILE *fout = NULL; 1625 1624 1626 1625 /** end ***************************************************************/ 1627 1628 malloc_string(program);1629 malloc_string(partition_name);1630 malloc_string(tmp);1631 malloc_string(logfile);1632 malloc_string(output);1633 1626 1634 1627 assert_string_is_neither_NULL_nor_zerolength(drive); … … 1639 1632 1640 1633 if (!strncmp(drive, RAID_DEVICE_STUB, strlen(RAID_DEVICE_STUB))) { 1641 sprintf(tmp, "Not partitioning %s - it is a virtual drive", drive); 1642 log_it(tmp); 1643 mr_free(program); 1644 mr_free(partition_name); 1645 mr_free(tmp); 1646 mr_free(logfile); 1647 mr_free(output); 1634 log_it("Not partitioning %s - it is a virtual drive", drive); 1648 1635 return (0); 1649 1636 } 1637 1638 malloc_string(partition_name); 1639 1650 1640 build_partition_name(partition_name, drive, partno); 1651 1641 if (partsize <= 0) { 1652 sprintf(tmp, "Partitioning device %s (max size)", partition_name);1642 mr_asprintf(&tmp, "Partitioning device %s (max size)", partition_name); 1653 1643 } else { 1654 sprintf(tmp, "Partitioning device %s (%lld MB)", partition_name,1644 mr_asprintf(&tmp, "Partitioning device %s (%lld MB)", partition_name, 1655 1645 (long long) partsize / 1024); 1656 1646 } 1657 1647 update_progress_form(tmp); 1658 1648 log_it(tmp); 1649 mr_free(tmp); 1659 1650 1660 1651 if (is_this_device_mounted(partition_name)) { 1661 sprintf(tmp,"%s is mounted, and should not be partitioned",1652 log_to_screen("%s is mounted, and should not be partitioned", 1662 1653 partition_name); 1663 log_to_screen(tmp);1664 mr_free(program);1665 1654 mr_free(partition_name); 1666 mr_free(tmp);1667 mr_free(logfile);1668 mr_free(output);1669 1655 return (1); 1670 /* 1671 } else if (does_partition_exist(drive, partno)) { 1672 sprintf(tmp, "%s already has a partition", partition_name); 1673 log_to_screen(tmp); 1674 return (1); 1675 */ 1676 } 1677 1678 1679 /* sprintf(tmp,"Partitioning %s ",partition_name); */ 1680 /* mvaddstr_and_log_it(g_currentY+1,30,tmp); */ 1656 } 1657 1681 1658 p = (char *) strrchr(partition_name, '/'); 1682 sprintf(logfile, "/tmp/fdisk.log.%s", ++p); 1683 sprintf(program, "parted2fdisk %s >> %s 2>> %s", drive, MONDO_LOGFILE, 1684 MONDO_LOGFILE); 1685 1686 /* BERLIOS: shoould not be called each time */ 1659 1660 /* BERLIOS: should not be called each time */ 1687 1661 part_table_fmt = which_partition_format(drive); 1688 output[0] = '\0';1689 1662 /* make it a primary/extended/logical */ 1690 1663 if (partno <= 4) { 1691 sprintf(output + strlen(output),"n\np\n%d\n", partno);1664 mr_asprintf(&output,"n\np\n%d\n", partno); 1692 1665 } else { 1693 1666 /* MBR needs an extended partition if more than 4 partitions */ … … 1696 1669 if (prev_partno >= 4) { 1697 1670 log_to_screen 1698 ( "You need to leave at least one partition free, for 'extended/logical'");1699 mr_free(program);1671 (_ 1672 ("You need to leave at least one partition free, for 'extended/logical'")); 1700 1673 mr_free(partition_name); 1701 mr_free(tmp);1702 mr_free(logfile);1703 mr_free(output);1704 1674 return (1); 1705 1675 } else { 1706 sprintf(output + strlen(output), "n\ne\n%d\n\n\n", 1707 prev_partno + 1); 1676 mr_asprintf(&output,"n\ne\n%d\n\n\n",prev_partno + 1); 1708 1677 } 1709 1678 } 1710 strcat(output + strlen(output), "n\nl\n");1679 mr_strcat(output, "n\nl\n"); 1711 1680 } else { 1712 1681 /* GPT allows more than 4 primary partitions */ 1713 sprintf(output + strlen(output), "n\np\n%d\n", partno); 1714 } 1715 } 1716 strcat(output + strlen(output), "\n"); /*start block (ENTER for next free blk */ 1682 mr_asprintf(&output,"n\np\n%d\n",partno); 1683 } 1684 } 1685 /*start block (ENTER for next free blk */ 1686 mr_strcat(output, "\n"); 1717 1687 if (partsize > 0) { 1718 1688 if (!strcmp(format, "7")) { … … 1720 1690 partsize += 512; 1721 1691 } 1722 sprintf(output + strlen(output), "+%lldK", (long long) (partsize));1723 } 1724 strcat(output + strlen(output), "\n");1692 mr_strcat(output, "+%lldK", (long long) (partsize)); 1693 } 1694 mr_strcat(output, "\n"); 1725 1695 #if 0 1726 1696 /* 1727 1697 #endif 1728 sprintf(tmp,"PARTSIZE = +%ld",(long)partsize); 1729 log_it(tmp); 1698 log_it("PARTSIZE = +%ld",(long)partsize); 1730 1699 log_it("---fdisk command---"); 1731 1700 log_it(output); … … 1741 1710 fput_string_one_char_at_a_time(pout_to_fdisk, output); 1742 1711 fput_string_one_char_at_a_time(pout_to_fdisk, "\n\np\n"); 1743 strcpy(tmp, last_line_of_file(FDISK_LOG));1712 mr_asprintf(&tmp, last_line_of_file(FDISK_LOG)); 1744 1713 if (strstr(tmp, " (m ")) { 1745 1714 mr_msg(1, "Successfully created %s%d", drive, partno); … … 1749 1718 partno); 1750 1719 } 1720 mr_free(tmp); 1721 1751 1722 if (!retval) { 1752 1723 mr_msg(1, "Trying to set %s%d's partition type now", drive, … … 1766 1737 } 1767 1738 } else { 1768 strcat(output, "w\n\n"); 1739 mr_strcat(output, "w\n\n"); 1740 mr_asprintf(&program, "parted2fdisk %s >> %s 2>> %s", drive, MONDO_LOGFILE, 1741 MONDO_LOGFILE); 1742 1769 1743 if (g_fprep) { 1770 1744 fprintf(g_fprep, "echo \"%s\" | %s\n", output, program); … … 1777 1751 paranoid_pclose(fout); 1778 1752 } 1753 mr_free(program); 1754 1779 1755 if (!does_partition_exist(drive, partno) && partsize > 0) { 1780 1756 log_it("Vaccum-packing"); … … 1784 1760 format, -1); 1785 1761 if (res) { 1786 sprintf(tmp, "Failed to vacuum-pack %s", partition_name); 1787 log_it(tmp); 1762 log_it("Failed to vacuum-pack %s", partition_name); 1788 1763 retval++; 1789 1764 } else { … … 1796 1771 partsize); 1797 1772 if (retval) { 1798 sprintf(tmp,"Partitioned %s but failed to set its type",1773 log_it("Partitioned %s but failed to set its type", 1799 1774 partition_name); 1800 log_it(tmp);1801 1775 } else { 1802 1776 if (partsize > 0) { 1803 sprintf(tmp, "Partition %s created+configured OK",1777 log_to_screen(_("Partition %s created+configured OK"), 1804 1778 partition_name); 1805 log_to_screen(tmp);1806 1779 } else { 1807 1780 log_it("Returning from a successful vacuum-pack"); … … 1809 1782 } 1810 1783 } else { 1811 sprintf(tmp, "Failed to partition %s", partition_name);1784 mr_asprintf(&tmp, "Failed to partition %s", partition_name); 1812 1785 if (partsize > 0) { 1813 1786 log_to_screen(tmp); … … 1815 1788 log_it(tmp); 1816 1789 } 1790 mr_free(tmp); 1817 1791 retval++; 1818 1792 } … … 1820 1794 g_current_progress++; 1821 1795 log_it("partition_device() --- leaving"); 1822 mr_free(program);1823 1796 mr_free(partition_name); 1824 mr_free(tmp);1825 mr_free(logfile);1826 1797 mr_free(output); 1827 1798 return (retval); 1828 1799 } 1829 1830 1800 1831 1801 … … 1840 1810 { 1841 1811 /** int ************************************************************/ 1842 int lino ;1812 int lino = 0; 1843 1813 int retval = 0; 1844 int i ;1845 int res ;1814 int i = 0; 1815 int res = 0; 1846 1816 1847 1817 /** buffer *********************************************************/ 1848 struct list_of_disks *drivelist; 1849 /* struct mountlist_itself new_mtlist, *mountlist; */ 1818 struct list_of_disks *drivelist = NULL; 1850 1819 1851 1820 /** end ************************************************************/ … … 1856 1825 log_it("partition_everything() --- starting"); 1857 1826 mvaddstr_and_log_it(g_currentY, 0, "Partitioning hard drives "); 1858 /* mountlist=orig_mtlist; */1859 1827 if (mountlist_contains_raid_devices(mountlist)) { 1860 1828 /* mountlist=&new_mtlist; */ … … 1879 1847 mr_msg(0, "Done."); 1880 1848 1881 /* 1882 if (does_file_exist("/tmp/i-want-my-lvm")) 1883 { 1884 wipe_MBRs_and_reboot_if_necessary(mountlist); // i.e. if it wasn't done recently 1885 } 1886 */ 1887 1888 open_progress_form("Partitioning devices", 1889 "I am now going to partition all your drives.", 1890 "This should not take more than five minutes.", "", 1891 mountlist->entries); 1849 open_progress_form(_("Partitioning devices"), 1850 _("I am now going to partition all your drives."), 1851 _("This should not take more than five minutes."), 1852 "", mountlist->entries); 1892 1853 1893 1854 make_list_of_drives_in_mountlist(mountlist, drivelist); … … 1900 1861 close_progress_form(); 1901 1862 if (retval) { 1902 mvaddstr_and_log_it(g_currentY++, 74, "Failed.");1863 mvaddstr_and_log_it(g_currentY++, 74, _("Failed.")); 1903 1864 log_to_screen 1904 ("Errors occurred during the partitioning of your hard drives."); 1865 (_ 1866 ("Errors occurred during the partitioning of your hard drives.")); 1905 1867 } else { 1906 mvaddstr_and_log_it(g_currentY++, 74, "Done.");1868 mvaddstr_and_log_it(g_currentY++, 74, _("Done.")); 1907 1869 paranoid_system("rm -f /tmp/fdisk*.log 2> /dev/null"); 1908 1870 } … … 1913 1875 return (retval); 1914 1876 } 1915 1916 1917 1918 1919 1877 1920 1878 … … 1932 1890 { 1933 1891 /** buffers *********************************************************/ 1934 char *partition ;1935 char *command ;1936 char *output ;1937 char *tmp ;1938 char * partcode;1939 char * logfile;1892 char *partition = NULL; 1893 char *command = NULL; 1894 char *output = NULL; 1895 char *tmp = NULL; 1896 char *tmp1 = NULL; 1897 char *partcode = NULL; 1940 1898 1941 1899 /** pointers *********************************************************/ 1942 char *p ;1943 FILE *fout ;1900 char *p = NULL; 1901 FILE *fout = NULL; 1944 1902 1945 1903 /** int **************************************************************/ … … 1952 1910 1953 1911 malloc_string(partition); 1954 malloc_string(command);1955 malloc_string(output);1956 malloc_string(tmp);1957 malloc_string(partcode);1958 malloc_string(logfile);1959 1912 1960 1913 build_partition_name(partition, drive, partno); 1961 1914 p = (char *) strrchr(partition, '/'); 1962 sprintf(logfile, "/tmp/fdisk-set-type.%s.log", ++p);1963 1915 if (strcmp(format, "swap") == 0) { 1964 strcpy(partcode, "82");1916 mr_asprintf(&partcode, "82"); 1965 1917 } else if (strcmp(format, "vfat") == 0) { 1966 1918 if (partsize / 1024 > 8192) { 1967 strcpy(partcode, "c");1919 mr_asprintf(&partcode, "c"); 1968 1920 } else { 1969 strcpy(partcode, "b");1921 mr_asprintf(&partcode, "b"); 1970 1922 } 1971 1923 } else if (strcmp(format, "ext2") == 0 … … 1973 1925 || strcmp(format, "ext3") == 0 || strcmp(format, "xfs") == 0 1974 1926 || strcmp(format, "jfs") == 0) { 1975 strcpy(partcode, "83");1927 mr_asprintf(&partcode, "83"); 1976 1928 } else if (strcmp(format, "minix") == 0) { 1977 strcpy(partcode, "81");1929 mr_asprintf(&partcode, "81"); 1978 1930 } else if (strcmp(format, "raid") == 0) { 1979 strcpy(partcode, "fd");1931 mr_asprintf(&partcode, "fd"); 1980 1932 } else if ((strcmp(format, "ufs") == 0) 1981 1933 || (strcmp(format, "ffs") == 0)) { /* raid autodetect */ 1982 strcpy(partcode, "a5");1934 mr_asprintf(&partcode, "a5"); 1983 1935 } else if (strcmp(format, "lvm") == 0) { 1984 strcpy(partcode, "8e");1936 mr_asprintf(&partcode, "8e"); 1985 1937 } else if (format[0] == '\0') { /* LVM physical partition */ 1986 partcode[0] = '\0';1938 mr_asprintf(&partcode, ""); 1987 1939 } else if (strlen(format) >= 1 && strlen(format) <= 2) { 1988 strcpy(partcode, format);1940 mr_asprintf(&partcode, format); 1989 1941 } else { 1990 1942 /* probably an image */ 1991 sprintf(tmp,1943 mr_asprintf(&tmp, 1992 1944 "Unknown format ('%s') - using supplied string anyway", 1993 1945 format); 1994 1946 mvaddstr_and_log_it(g_currentY++, 0, tmp); 1947 mr_free(tmp); 1995 1948 #ifdef __FreeBSD__ 1996 strcpy(partcode, format); // was a51949 mr_asprintf(&partcode, format); // was a5 1997 1950 #else 1998 strcpy(partcode, format); // was 831999 #endif 2000 } 2001 sprintf(tmp, "Setting %s's type to %s (%s)", partition, format,1951 mr_asprintf(&partcode, format); // was 83 1952 #endif 1953 } 1954 mr_asprintf(&tmp, "Setting %s's type to %s (%s)", partition, format, 2002 1955 partcode); 2003 1956 mr_msg(1, tmp); 1957 mr_free(tmp); 1958 2004 1959 if (partcode[0] != '\0' && strcmp(partcode, "83")) { /* no need to set type if 83: 83 is default */ 2005 1960 … … 2010 1965 || strstr(last_line_of_file(FDISK_LOG), " (1-4)")) { 2011 1966 mr_msg(5, "Specifying partno (%d) - yay", partno); 2012 sprintf(tmp, "%d\n", partno);1967 mr_asprintf(&tmp, "%d\n", partno); 2013 1968 fput_string_one_char_at_a_time(pout_to_fdisk, tmp); 2014 1969 mr_msg(5, "A - last line = '%s'", 2015 1970 last_line_of_file(FDISK_LOG)); 2016 } 2017 2018 sprintf(tmp, "%s\n", partcode); 1971 mr_free(tmp); 1972 } 1973 1974 mr_asprintf(&tmp, "%s\n", partcode); 2019 1975 fput_string_one_char_at_a_time(pout_to_fdisk, tmp); 1976 mr_free(tmp); 1977 2020 1978 mr_msg(5, "B - last line = '%s'", 2021 1979 last_line_of_file(FDISK_LOG)); 1980 2022 1981 fput_string_one_char_at_a_time(pout_to_fdisk, "\n"); 2023 1982 mr_msg(5, "C - last line = '%s'", 2024 1983 last_line_of_file(FDISK_LOG)); 2025 1984 2026 strcpy(tmp, last_line_of_file(FDISK_LOG));1985 mr_asprintf(&tmp, last_line_of_file(FDISK_LOG)); 2027 1986 if (!strstr(tmp, " (m ")) { 2028 1987 mr_msg(1, "last line = '%s'; part type set failed", tmp); … … 2030 1989 fput_string_one_char_at_a_time(pout_to_fdisk, "\n"); 2031 1990 } 1991 mr_free(tmp); 2032 1992 fput_string_one_char_at_a_time(pout_to_fdisk, "p\n"); 2033 1993 } else { 2034 sprintf(output, "t\n%d\n%s\n", partno, partcode); 2035 strcat(output, "w\n"); 2036 sprintf(command, "parted2fdisk %s >> %s 2>> %s", drive, 1994 mr_asprintf(&output, "t\n%d\n%s\nw\n", partno, partcode); 1995 mr_asprintf(&command, "parted2fdisk %s >> %s 2>> %s", drive, 2037 1996 MONDO_LOGFILE, MONDO_LOGFILE); 2038 1997 mr_msg(5, "output = '%s'", output); … … 2048 2007 paranoid_pclose(fout); 2049 2008 } 2050 } 2009 mr_free(command); 2010 mr_free(output); 2011 } 2012 /* BERLIOS: Useless as command not initialized in all cases 2051 2013 if (res) { 2052 2014 log_OS_error(command); 2053 2015 } 2016 */ 2054 2017 } 2055 2018 2056 2019 mr_free(partition); 2057 mr_free(command);2058 mr_free(output);2059 mr_free(tmp);2060 2020 mr_free(partcode); 2061 mr_free(logfile);2062 2021 2063 2022 return (res); … … 2068 2027 { 2069 2028 /** int *************************************************************/ 2070 int res ;2029 int res = 0; 2071 2030 int retval = 0; 2072 2031 2073 2032 /** buffers *********************************************************/ 2074 char *program ;2033 char *program = NULL; 2075 2034 2076 2035 /** end *************************************************************/ 2077 2036 2078 2037 assert_string_is_neither_NULL_nor_zerolength(raid_device); 2079 malloc_string(program);2080 2038 2081 2039 #ifdef __FreeBSD__ … … 2084 2042 return 1; 2085 2043 } 2086 sprintf(program, "vinum start -f %s", raid_device);2044 mr_asprintf(&program, "vinum start -f %s", raid_device); 2087 2045 #else 2088 sprintf(program, "raidstart %s", raid_device); 2046 // use raidstart if it exists, otherwise use mdadm 2047 if (run_program_and_log_output("which raidstart", FALSE)) { 2048 // BERLIOS: Not sure it's sufficient 2049 mr_asprintf(&program, "mdadm -A %s", raid_device); 2050 } else { 2051 mr_asprintf(&program, "raidstart %s", raid_device); 2052 } 2089 2053 #endif 2090 2054 mr_msg(1, "program = %s", program); … … 2093 2057 fprintf(g_fprep, "%s\n", program); 2094 2058 } 2059 mr_free(program); 2060 2095 2061 if (res) { 2096 2062 mr_msg(1, "Warning - failed to start RAID device %s", … … 2101 2067 return (retval); 2102 2068 } 2103 2104 2069 2105 2070 … … 2112 2077 { 2113 2078 /** int *************************************************************/ 2114 int res ;2079 int res = 0; 2115 2080 int retval = 0; 2116 2081 2117 2082 /** buffers *********************************************************/ 2118 char *program ;2083 char *program = NULL; 2119 2084 2120 2085 /** end *************************************************************/ 2121 2086 2122 2087 assert_string_is_neither_NULL_nor_zerolength(raid_device); 2123 malloc_string(program);2124 2088 2125 2089 #ifdef __FreeBSD__ … … 2128 2092 return 1; 2129 2093 } 2130 sprintf(program, "vinum stop -f %s", raid_device);2094 mr_asprintf(&program, "vinum stop -f %s", raid_device); 2131 2095 #else 2132 2133 2134 sprintf(program, "mdadm -S %s", raid_device);2096 // use raidstop if it exists, otherwise use mdadm 2097 if (run_program_and_log_output("which raidstop", FALSE)) { 2098 mr_asprintf(&program, "mdadm -S %s", raid_device); 2135 2099 } else { 2136 sprintf(program, "raidstop %s", raid_device);2100 mr_asprintf(&program, "raidstop %s", raid_device); 2137 2101 } 2138 2102 #endif … … 2142 2106 fprintf(g_fprep, "%s\n", program); 2143 2107 } 2108 mr_free(program); 2109 2144 2110 if (res) { 2145 2111 mr_msg(1, "Warning - failed to stop RAID device %s", raid_device); … … 2152 2118 int start_all_raid_devices(struct mountlist_itself *mountlist) 2153 2119 { 2154 int i ;2120 int i = 0; 2155 2121 int retval = 0; 2156 int res ;2122 int res = 0; 2157 2123 2158 2124 for (i = 0; i < mountlist->entries; i++) { … … 2173 2139 } 2174 2140 2141 2175 2142 /** 2176 2143 * Stop all software RAID devices listed in @p mountlist. … … 2184 2151 int retval = 0; 2185 2152 #ifndef __FreeBSD__ 2186 int res ;2153 int res = 0; 2187 2154 #endif 2188 2155 2189 2156 /** char ************************************************************/ 2190 char *incoming ;2157 char *incoming = NULL; 2191 2158 #ifndef __FreeBSD__ 2192 char *dev ;2159 char *dev = NULL; 2193 2160 #endif 2194 2161 /** pointers ********************************************************/ 2195 2162 #ifndef __FreeBSD__ 2196 char *p; 2197 #endif 2198 FILE *fin; 2199 int i; 2163 char *p = NULL; 2164 #endif 2165 FILE *fin = NULL; 2166 int i = 0; 2167 size_t n = 0; 2200 2168 2201 2169 /** end ****************************************************************/ 2202 2170 2203 malloc_string(dev);2204 malloc_string(incoming);2205 2171 assert(mountlist != NULL); 2206 2172 … … 2212 2178 "r"); 2213 2179 if (!fin) { 2214 mr_free(dev);2215 mr_free(incoming);2216 2180 return (1); 2217 2181 } 2218 for ( fgets(incoming, MAX_STR_LEN - 1, fin); !feof(fin);2219 fgets(incoming, MAX_STR_LEN - 1, fin)) {2182 for (mr_getline(&incoming, &n, fin); !feof(fin); 2183 mr_getline(&incoming, &n, fin)) { 2220 2184 retval += stop_raid_device(incoming); 2221 2185 } … … 2224 2188 if (!fin) { 2225 2189 log_OS_error("/proc/mdstat"); 2226 mr_free(dev);2227 mr_free(incoming);2228 2190 return (1); 2229 2191 } 2230 for ( fgets(incoming, MAX_STR_LEN - 1, fin); !feof(fin);2231 fgets(incoming, MAX_STR_LEN - 1, fin)) {2192 for (mr_getline(&incoming, &n, fin); !feof(fin); 2193 mr_getline(&incoming, &n, fin)) { 2232 2194 for (p = incoming; 2233 2195 *p != '\0' && (*p != 'm' || *(p + 1) != 'd' 2234 2196 || !isdigit(*(p + 2))); p++); 2235 2197 if (*p != '\0') { 2236 sprintf(dev, "/dev/%s", p); 2198 mr_asprintf(&dev, "/dev/%s", p); 2199 /* BERLIOS : 32 Hard coded value */ 2237 2200 for (p = dev; *p > 32; p++); 2238 2201 *p = '\0'; 2239 2202 res = stop_raid_device(dev); 2240 } 2241 } 2242 #endif 2203 mr_free(dev); 2204 } 2205 } 2206 #endif 2207 mr_free(incoming); 2243 2208 } 2244 2209 paranoid_fclose(fin); … … 2246 2211 mr_msg(1, "Warning - unable to stop some RAID devices"); 2247 2212 } 2248 mr_free(dev); 2249 mr_free(incoming); 2250 system("sync"); 2251 system("sync"); 2252 system("sync"); 2213 sync(); 2214 sync(); 2215 sync(); 2253 2216 sleep(1); 2254 2217 return (retval); 2255 2218 } 2256 2257 2219 2258 2220 … … 2268 2230 int res = 0; 2269 2231 2270 /** buffers *********************************************************/2271 char *tmp;2272 2273 2232 /** end ***************************************************************/ 2274 2233 2275 malloc_string(tmp);2276 2234 assert_string_is_neither_NULL_nor_zerolength(format); 2277 2235 assert(program != NULL); … … 2305 2263 sprintf(program, "mkfs -t %s -c", format); // -c checks for bad blocks 2306 2264 #endif 2307 sprintf(tmp,"Unknown format (%s) - assuming '%s' will do", format,2265 log_it("Unknown format (%s) - assuming '%s' will do", format, 2308 2266 program); 2309 log_it(tmp);2310 2267 res = 0; 2311 2268 } 2312 mr_free(tmp);2313 2269 return (res); 2314 2270 } … … 2326 2282 { 2327 2283 /** long ************************************************************/ 2328 long original_size_of_drive ;2284 long original_size_of_drive = 0L; 2329 2285 2330 2286 /** int *************************************************************/ 2331 int partno; 2332 2333 /** buffers *********************************************************/ 2334 char *tmp; 2287 int partno = 0; 2335 2288 2336 2289 /** end *************************************************************/ 2337 2290 2338 malloc_string(tmp);2339 2291 assert(mountlist != NULL); 2340 2292 assert_string_is_neither_NULL_nor_zerolength(drive_name); … … 2346 2298 strlen(drive_name)) == 0) { 2347 2299 original_size_of_drive += mountlist->el[partno].size; 2348 } else {2349 sprintf(tmp, "Skipping %s", mountlist->el[partno].device);2350 // log_to_screen(tmp);2351 2300 } 2352 2301 } 2353 2302 original_size_of_drive = original_size_of_drive / 1024; 2354 mr_free(tmp);2355 2303 return (original_size_of_drive); 2356 2304 } … … 2372 2320 char *drive_name) 2373 2321 { 2374 /**buffers **********************************************************/2375 char *tmp;2376 2377 2322 /** int *************************************************************/ 2378 int partno , lastpart;2323 int partno = 0, lastpart = 0; 2379 2324 /** remove driveno, noof_drives stan benoit apr 2002**/ 2380 2325 … … 2382 2327 float factor; 2383 2328 float new_size; 2384 // float newcylinderno;2385 2329 2386 2330 /** long *************************************************************/ 2387 long newsizL ;2388 long current_size_of_drive = 0 ;2389 long original_size_of_drive = 0 ;2390 long final_size ; /* all in Megabytes */2391 struct mountlist_reference *drivemntlist ;2331 long newsizL = 0L; 2332 long current_size_of_drive = 0L; 2333 long original_size_of_drive = 0L; 2334 long final_size = 0L; /* all in Megabytes */ 2335 struct mountlist_reference *drivemntlist = NULL; 2392 2336 2393 2337 /** structures *******************************************************/ … … 2395 2339 /** end **************************************************************/ 2396 2340 2397 malloc_string(tmp);2398 2341 assert(mountlist != NULL); 2399 2342 assert_string_is_neither_NULL_nor_zerolength(drive_name); … … 2402 2345 if (strncmp(drive_name, RAID_DEVICE_STUB, strlen(RAID_DEVICE_STUB)) 2403 2346 == 0) { 2404 mr_free(tmp);2405 2347 return; 2406 2348 } 2407 2349 } 2408 2409 /*2410 sprintf (tmp, "cp -f %s %s.pre-resize", g_mountlist_fname, g_mountlist_fname);2411 run_program_and_log_output (tmp, FALSE);2412 */2413 2350 2414 2351 current_size_of_drive = get_phys_size_of_drive(drive_name); … … 2416 2353 if (current_size_of_drive <= 0) { 2417 2354 log_it("Not resizing to match %s - can't find drive", drive_name); 2418 mr_free(tmp);2419 2355 return; 2420 2356 } 2421 sprintf(tmp,"Expanding entries to suit drive %s (%ld MB)", drive_name,2357 log_to_screen("Expanding entries to suit drive %s (%ld MB)", drive_name, 2422 2358 current_size_of_drive); 2423 log_to_screen(tmp);2424 2359 2425 2360 drivemntlist = mr_malloc(sizeof(struct mountlist_reference)); … … 2435 2370 2436 2371 if (original_size_of_drive <= 0) { 2437 sprintf(tmp, "Cannot resize %s's entries. Drive not found.",2372 log_to_screen(_("Cannot resize %s's entries. Drive not found."), 2438 2373 drive_name); 2439 log_to_screen(tmp);2440 mr_free(tmp);2441 2374 return; 2442 2375 } 2443 2376 factor = 2444 2377 (float) (current_size_of_drive) / (float) (original_size_of_drive); 2445 sprintf(tmp, "Disk %s was %ld MB; is now %ld MB; factor = %f",2378 log_to_screen(_("Disk %s was %ld MB; is now %ld MB; factor = %f"), 2446 2379 drive_name, original_size_of_drive, current_size_of_drive, 2447 2380 factor); 2448 log_to_screen(tmp);2449 2381 2450 2382 lastpart = drivemntlist->entries - 1; … … 2465 2397 newsizL = (long) new_size; 2466 2398 } 2467 sprintf(tmp, "Changing %s from %lld KB to %ld KB",2399 log_to_screen(_("Changing %s from %lld KB to %ld KB"), 2468 2400 drivemntlist->el[partno]->device, 2469 2401 drivemntlist->el[partno]->size, newsizL); 2470 log_to_screen(tmp);2471 2402 drivemntlist->el[partno]->size = newsizL; 2472 2403 } 2473 2404 final_size = get_phys_size_of_drive(drive_name); 2474 sprintf(tmp, "final_size = %ld MB", final_size); 2475 mr_free(tmp); 2476 log_to_screen(tmp); 2405 log_to_screen(_("final_size = %ld MB"), final_size); 2477 2406 } 2478 2407 … … 2488 2417 { 2489 2418 /** buffers *********************************************************/ 2490 struct list_of_disks *drivelist ;2419 struct list_of_disks *drivelist = NULL; 2491 2420 2492 2421 /** int *************************************************************/ 2493 int driveno ;2422 int driveno = 0; 2494 2423 2495 2424 /** end *************************************************************/ … … 2501 2430 ("resize_mountlist_prop...() - warning - mountlist fname is blank"); 2502 2431 log_it("That does NOT affect the functioning of this subroutine."); 2503 log_it("--- Hugo, 2002/11/20");2504 2432 } 2505 2433 iamhere("Resizing mountlist"); … … 2512 2440 device); 2513 2441 } 2514 log_to_screen( "Mountlist adjusted to suit current hard drive(s)");2442 log_to_screen(_("Mountlist adjusted to suit current hard drive(s)")); 2515 2443 mr_free(drivelist); 2516 2444 } … … 2528 2456 struct mountlist_reference *drivemntlist) 2529 2457 { 2530 int partno ;2531 char *tmp_drive_name , *c;2458 int partno = 0; 2459 char *tmp_drive_name = NULL, *c = NULL; 2532 2460 2533 2461 assert(mountlist != NULL); … … 2537 2465 mr_msg(1, "Creating list of partitions for drive %s", drive_name); 2538 2466 2539 tmp_drive_name = strdup(drive_name); 2540 if (!tmp_drive_name) 2541 fatal_error("Out of memory"); 2467 mr_asprintf(&tmp_drive_name, drive_name); 2542 2468 2543 2469 /* devfs devices? */ … … 2545 2471 if (c && strncmp(c, "/disc", 5) == 0) { 2546 2472 /* yup its devfs, change the "disc" to "part" so the existing code works */ 2547 str cpy(c + 1, "part");2473 strncpy(c + 1, "part", (size_t)5); 2548 2474 } 2549 2475 drivemntlist->entries = 0; … … 2557 2483 } 2558 2484 } 2559 if (tmp_drive_name) 2560 mr_free(tmp_drive_name); 2485 mr_free(tmp_drive_name); 2561 2486 } 2562 2487
Note:
See TracChangeset
for help on using the changeset viewer.