~ubuntu-branches/ubuntu/raring/clamav/raring-security

« back to all changes in this revision

Viewing changes to freshclam/manager.c

  • Committer: Bazaar Package Importer
  • Author(s): Scott Kitterman
  • Date: 2011-10-24 11:57:42 UTC
  • mfrom: (0.47.3 upstream)
  • Revision ID: james.westby@ubuntu.com-20111024115742-8g7826vbzwi0vxyi
Tags: 0.97.3+dfsg-1ubuntu1
* Merge from Debian unstable.  Remaining changes:
  - Drop build-dep on electric-fence (in Universe)
  - Add apparmor profiles for clamd and freshclam along with maintainer
    script changes

Show diffs side-by-side

added added

removed removed

Lines of Context:
1388
1388
        err = 1;
1389
1389
    } else {
1390
1390
        if(tar_addfile(fd, gzs, "COPYING") == -1) {
1391
 
            logg("!buildcld: Can't add COPYING to .cld file\n");
 
1391
            logg("!buildcld: Can't add COPYING to new %s.cld - please check if there is enough disk space available\n", dbname);
 
1392
            if(!strcmp(dbname, "main") || !strcmp(dbname, "safebrowsing"))
 
1393
                logg("Updates to main.cvd or safebrowsing.cvd may require 200MB of disk space or more\n");
1392
1394
            err = 1;
1393
1395
        }
1394
1396
    }
1395
1397
 
1396
1398
    if(!err && !access(info, R_OK)) {
1397
1399
        if(tar_addfile(fd, gzs, info) == -1) {
1398
 
            logg("!buildcld: Can't add %s to .cld file\n", info);
 
1400
            logg("!buildcld: Can't add %s to new %s.cld - please check if there is enough disk space available\n", info, dbname);
 
1401
            if(!strcmp(dbname, "main") || !strcmp(dbname, "safebrowsing"))
 
1402
                logg("Updates to main.cvd or safebrowsing.cvd may require 200MB of disk space or more\n");
1399
1403
            err = 1;
1400
1404
        }
1401
1405
    }
1402
1406
 
1403
1407
    if(!err && !access("daily.cfg", R_OK)) {
1404
1408
        if(tar_addfile(fd, gzs, "daily.cfg") == -1) {
1405
 
            logg("!buildcld: Can't add daily.cfg to .cld file\n");
 
1409
            logg("!buildcld: Can't add daily.cfg to new %s.cld - please check if there is enough disk space available\n", dbname);
1406
1410
            err = 1;
1407
1411
        }
1408
1412
    }
1425
1429
                continue;
1426
1430
 
1427
1431
            if(tar_addfile(fd, gzs, dent->d_name) == -1) {
1428
 
                logg("!buildcld: Can't add %s to .cld file\n", dent->d_name);
 
1432
                logg("!buildcld: Can't add %s to new %s.cld - please check if there is enough disk space available\n", dent->d_name, dbname);
 
1433
                if(!strcmp(dbname, "main") || !strcmp(dbname, "safebrowsing"))
 
1434
                    logg("Updates to main.cvd or safebrowsing.cvd may require 200MB of disk space or more\n");
1429
1435
                CHDIR_ERR(cwd);
1430
1436
                if(gzs)
1431
1437
                    gzclose(gzs);
1757
1763
        if(!nodb && !ims) {
1758
1764
            logg("%s is up to date (version: %d, sigs: %d, f-level: %d, builder: %s)\n", localname, current->version, current->sigs, current->fl, current->builder);
1759
1765
            *signo += current->sigs;
 
1766
#ifdef HAVE_RESOLV_H
1760
1767
            if(mirror_stats && strlen(ip)) {
1761
1768
                snprintf(squery, sizeof(squery), "%s.%u.%u.%u.%u.%s.ping.clamav.net", dbname, current->version, flevel, 1, w32, ip);
1762
1769
                dnsquery(squery, T_A, NULL);
1763
1770
            }
 
1771
#endif
1764
1772
            cl_cvdfree(current);
1765
1773
            return 1;
1766
1774
        }
1767
1775
 
1768
1776
        if(!remote) {
1769
1777
            logg("^Can't read %s header from %s (IP: %s)\n", cvdfile, hostname, ip);
 
1778
#ifdef HAVE_RESOLV_H
1770
1779
            if(mirror_stats && strlen(ip)) {
1771
1780
                snprintf(squery, sizeof(squery), "%s.%u.%u.%u.%u.%s.ping.clamav.net", dbname, current->version + 1, flevel, 0, w32, ip);
1772
1781
                dnsquery(squery, T_A, NULL);
1773
1782
            }
 
1783
#endif
1774
1784
            cl_cvdfree(current);
1775
1785
            return 58;
1776
1786
        }
1824
1834
    if(nodb) {
1825
1835
        ret = getcvd(cvdfile, newfile, hostname, ip, localip, proxy, port, user, pass, uas, newver, ctimeout, rtimeout, mdat, logerr, can_whitelist, opts);
1826
1836
        if(ret) {
 
1837
#ifdef HAVE_RESOLV_H
1827
1838
            if(mirror_stats && strlen(ip)) {
1828
1839
                snprintf(squery, sizeof(squery), "%s.%u.%u.%u.%u.%s.ping.clamav.net", dbname, 0, flevel, 0, w32, ip);
1829
1840
                dnsquery(squery, T_A, NULL);
1830
1841
            }
 
1842
#endif
1831
1843
            memset(ip, 0, 16);
1832
1844
            free(newfile);
1833
1845
            return ret;
1846
1858
                    llogerr = (j == maxattempts - 1);
1847
1859
                ret = getpatch(dbname, tmpdir, i, hostname, ip, localip, proxy, port, user, pass, uas, ctimeout, rtimeout, mdat, llogerr, can_whitelist, opts);
1848
1860
                if(ret == 52 || ret == 58) {
 
1861
#ifdef HAVE_RESOLV_H
1849
1862
                    if(mirror_stats && strlen(ip)) {
1850
1863
                        snprintf(squery, sizeof(squery), "%s.%u.%u.%u.%u.%s.ping.clamav.net", dbname, i, flevel, 0, w32, ip);
1851
1864
                        dnsquery(squery, T_A, NULL);
1852
1865
                    }
 
1866
#endif
1853
1867
                    memset(ip, 0, 16);
1854
1868
                    continue;
1855
1869
                } else {
1868
1882
            mirman_whitelist(mdat, 2);
1869
1883
            ret = getcvd(cvdfile, newfile, hostname, ip, localip, proxy, port, user, pass, uas, newver, ctimeout, rtimeout, mdat, logerr, can_whitelist, opts);
1870
1884
            if(ret) {
 
1885
#ifdef HAVE_RESOLV_H
1871
1886
                if(mirror_stats && strlen(ip)) {
1872
1887
                    snprintf(squery, sizeof(squery), "%s.%u.%u.%u.%u.%s.ping.clamav.net", dbname, 0, flevel, 0, w32, ip);
1873
1888
                    dnsquery(squery, T_A, NULL);
1874
1889
                }
 
1890
#endif
1875
1891
                free(newfile);
1876
1892
                return ret;
1877
1893
            }
1920
1936
        newfile = newfile2;
1921
1937
        sigchld_wait = 0;/* we need to wait() for the child ourselves */
1922
1938
        if (test_database_wrap(newfile, newdb, optget(opts, "Bytecode")->enabled)) {
1923
 
            logg("!Failed to load new database: %s\n", cl_strerror(ret));
 
1939
            logg("!Failed to load new database\n");
1924
1940
            unlink(newfile);
1925
1941
            free(newfile);
1926
1942
            return 55;
1967
1983
    }
1968
1984
 
1969
1985
    *signo += current->sigs;
 
1986
#ifdef HAVE_RESOLV_H
1970
1987
    if(mirror_stats && strlen(ip)) {
1971
1988
        snprintf(squery, sizeof(squery), "%s.%u.%u.%u.%u.%s.ping.clamav.net", dbname, current->version, flevel, 1, w32, ip);
1972
1989
        dnsquery(squery, T_A, NULL);
1973
1990
    }
 
1991
#endif
1974
1992
    cl_cvdfree(current);
1975
1993
    return 0;
1976
1994
}
2094
2112
        newfile = newfile2;
2095
2113
        sigchld_wait = 0;/* we need to wait() for the child ourselves */
2096
2114
        if (test_database_wrap(newfile, dbname, optget(opts, "Bytecode")->enabled)) {
2097
 
            logg("!Failed to load new database: %s\n", cl_strerror(ret));
 
2115
            logg("!Failed to load new database\n");
2098
2116
            unlink(newfile);
2099
2117
            free(newfile);
2100
2118
            return 55;