1 /* conffile.c - the opkg package management system 2 3 Carl D. Worth 4 5 Copyright (C) 2001 University of Southern California 6 7 This program is free software; you can redistribute it and/or 8 modify it under the terms of the GNU General Public License as 9 published by the Free Software Foundation; either version 2, or (at 10 your option) any later version. 11 12 This program is distributed in the hope that it will be useful, but 13 WITHOUT ANY WARRANTY; without even the implied warranty of 14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 15 General Public License for more details. 16 */ 17 18 #include <stdio.h> 19 #include <stdlib.h> 20 21 #include "opkg_message.h" 22 #include "conffile.h" 23 #include "file_util.h" 24 #include "sprintf_alloc.h" 25 #include "opkg_conf.h" 26 27 int conffile_init(conffile_t * conffile, const char *file_name, 28 const char *md5sum) 29 { 30 return nv_pair_init(conffile, file_name, md5sum); 31 } 32 33 void conffile_deinit(conffile_t * conffile) 34 { 35 nv_pair_deinit(conffile); 36 } 37 38 int conffile_has_been_modified(conffile_t * conffile) 39 { 40 char *chksum; 41 char *filename = conffile->name; 42 char *root_filename; 43 int ret = 1; 44 45 if (conffile->value == NULL) { 46 opkg_msg(NOTICE, "Conffile %s has no md5sum.\n", 47 conffile->name); 48 return 1; 49 } 50 51 root_filename = root_filename_alloc(filename); 52 53 if (conffile->value && strlen(conffile->value) > 33) { 54 chksum = file_sha256sum_alloc(root_filename); 55 } else { 56 chksum = file_md5sum_alloc(root_filename); 57 } 58 59 if (chksum && (ret = strcmp(chksum, conffile->value))) { 60 opkg_msg(INFO, "Conffile %s:\n\told chk=%s\n\tnew chk=%s\n", 61 conffile->name, chksum, conffile->value); 62 } 63 64 free(root_filename); 65 if (chksum) 66 free(chksum); 67 68 return ret; 69 } 70
This page was automatically generated by LXR 0.3.1. • OpenWrt