• source navigation  • diff markup  • identifier search  • freetext search  • 

Sources/opkg-lede/libopkg/conffile.c

  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