[dhcp-agent-commits] dhcp-agent/src dhcp-client-cache.c,1.10,1.11 dhcp-client-states.c,1.17,1.18 dhc
Status: Alpha
Brought to you by:
actmodern
Update of /cvsroot/dhcp-agent/dhcp-agent/src In directory sc8-pr-cvs1:/tmp/cvs-serv17767 Modified Files: dhcp-client-cache.c dhcp-client-states.c dhcp-client.c dhcp-files.c dhcp-libutil.h dhcp-sysconf.c Log Message: cleaned up dhcp-files a bit Index: dhcp-client-cache.c =================================================================== RCS file: /cvsroot/dhcp-agent/dhcp-agent/src/dhcp-client-cache.c,v retrieving revision 1.10 retrieving revision 1.11 diff -C2 -d -r1.10 -r1.11 *** dhcp-client-cache.c 23 Dec 2002 00:51:24 -0000 1.10 --- dhcp-client-cache.c 23 Dec 2002 01:21:52 -0000 1.11 *************** *** 111,115 **** fname = get_fname(cc); ! move_file(fname_tmp, fname); xfree(fname); --- 111,115 ---- fname = get_fname(cc); ! file_move(fname_tmp, fname); xfree(fname); *************** *** 124,128 **** char *fname = get_fname_tmp(cc); ! delete_file(fname); xfree(fname); --- 124,128 ---- char *fname = get_fname_tmp(cc); ! file_delete(fname); xfree(fname); *************** *** 135,139 **** char *fname = get_fname(cc); ! delete_file(fname); xfree(fname); --- 135,139 ---- char *fname = get_fname(cc); ! file_delete(fname); xfree(fname); Index: dhcp-client-states.c =================================================================== RCS file: /cvsroot/dhcp-agent/dhcp-agent/src/dhcp-client-states.c,v retrieving revision 1.17 retrieving revision 1.18 diff -C2 -d -r1.17 -r1.18 *** dhcp-client-states.c 21 Dec 2002 16:17:52 -0000 1.17 --- dhcp-client-states.c 23 Dec 2002 01:21:52 -0000 1.18 *************** *** 684,688 **** client_release(dc); ! delete_pid_file(dc->interface); dhcp_client_control_destroy(dc); } --- 684,688 ---- client_release(dc); ! file_delete_pid(dc->interface); dhcp_client_control_destroy(dc); } Index: dhcp-client.c =================================================================== RCS file: /cvsroot/dhcp-agent/dhcp-agent/src/dhcp-client.c,v retrieving revision 1.16 retrieving revision 1.17 diff -C2 -d -r1.16 -r1.17 *** dhcp-client.c 23 Dec 2002 01:09:26 -0000 1.16 --- dhcp-client.c 23 Dec 2002 01:21:52 -0000 1.17 *************** *** 133,137 **** pid_t pid; ! if(get_pid_file(interface, &pid)) return 0; /* no pid file -- therefore no process. */ --- 133,137 ---- pid_t pid; ! if(file_get_pid(interface, &pid)) return 0; /* no pid file -- therefore no process. */ *************** *** 147,151 **** return 1; else { ! delete_pid_file(interface); return 0; } --- 147,151 ---- return 1; else { ! file_delete_pid(interface); return 0; } *************** *** 276,280 **** info_message("killing %s running on interface: %s", getprogname(), interface); ! if(get_pid_file(interface, &pid)) { ERROR_MESSAGE("could not get PID for client %s. maybe it's not running?", interface); return; --- 276,280 ---- info_message("killing %s running on interface: %s", getprogname(), interface); ! if(file_get_pid(interface, &pid)) { ERROR_MESSAGE("could not get PID for client %s. maybe it's not running?", interface); return; *************** *** 296,300 **** pid_t pid; ! if(get_pid_file(interface, &pid)) { ERROR_MESSAGE ("could not get PID for client running on interface %s. Maybe it's not running?"); --- 296,300 ---- pid_t pid; ! if(file_get_pid(interface, &pid)) { ERROR_MESSAGE ("could not get PID for client running on interface %s. Maybe it's not running?"); *************** *** 317,321 **** client_cache_t *cc; ! if(!get_pid_file(interface, &pid)) { INFO_MESSAGE("%s already is running on %s. I won't delete the cache until it shuts down.", getprogname(), interface); --- 317,321 ---- client_cache_t *cc; ! if(!file_get_pid(interface, &pid)) { INFO_MESSAGE("%s already is running on %s. I won't delete the cache until it shuts down.", getprogname(), interface); *************** *** 434,438 **** } ! if(create_pid_file(interface)) { ERROR_MESSAGE("could not create PID file for interface: %s"); client_states[STATE_DO_SHUTDOWN] (NULL); --- 434,438 ---- } ! if(file_create_pid(interface)) { ERROR_MESSAGE("could not create PID file for interface: %s"); client_states[STATE_DO_SHUTDOWN] (NULL); Index: dhcp-files.c =================================================================== RCS file: /cvsroot/dhcp-agent/dhcp-agent/src/dhcp-files.c,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** dhcp-files.c 23 Dec 2002 01:09:26 -0000 1.6 --- dhcp-files.c 23 Dec 2002 01:21:52 -0000 1.7 *************** *** 30,33 **** --- 30,52 ---- #include "dhcp-libutil.h" + /* * * * * * * * * * * + * utility routines * + * * * * * * * * * * */ + + /* grab our pid file. <name>.pid */ + static char *get_pid_file_name(char *name) + { + stringbuffer_t *sb; + char *fname; + + sb = stringbuffer_create(); + stringbuffer_append(sb, name); + stringbuffer_append(sb, ".pid"); + + fname = xstrdup(stringbuffer_getstring(sb)); + stringbuffer_destroy(sb); + return fname; + } + static FILE *file_open_proc(const char *filename, char *cmode, int flags, mode_t mode) { *************** *** 51,78 **** } ! /* Assumes we're opening a directory only writable by us . */ ! ! /* create file or open it if it exists. */ ! FILE *file_open_or_create_safe(const char *filename, char *mode) ! { ! return (file_open_proc(filename, mode, O_RDWR | O_CREAT, S_IRUSR | S_IWUSR)); ! } ! ! /* create file or open if it exists, and always truncate. */ ! FILE *file_create_and_truncate_safe(const char *filename, char *mode) ! { ! return (file_open_proc(filename, mode, O_RDWR | O_CREAT | O_TRUNC, S_IRUSR | S_IWUSR)); ! } /* delete a file. */ ! int delete_file(char *fname) { return (unlink(fname)); } /* move a file. */ ! void move_file(char *fname, char *dest) { ! #ifdef HAVE_RENAME rename(fname, dest); #else /* HAVE_RENAME */ --- 70,89 ---- } ! /* * * * * * * * ! * interface * ! * * * * * * * */ /* delete a file. */ ! int file_delete(char *fname) { return (unlink(fname)); } + /* FIXME: we really should be checking return values here. */ /* move a file. */ ! void file_move(char *fname, char *dest) { ! /* use rename() if available. */ ! #ifdef HAVE_RENAME rename(fname, dest); #else /* HAVE_RENAME */ *************** *** 97,124 **** } /* change mode on a file so its publicaly readable. */ ! void make_file_public_read(char *fname) { chmod(fname, S_IWUSR | S_IRUSR | S_IRGRP | S_IROTH); } ! /* grab our pid file. <name>.pid */ ! static char *get_pid_file_name(char *name) ! { ! stringbuffer_t *sb; ! char *fname; ! sb = stringbuffer_create(); ! stringbuffer_append(sb, name); ! stringbuffer_append(sb, ".pid"); ! fname = xstrdup(stringbuffer_getstring(sb)); ! stringbuffer_destroy(sb); ! return fname; } /* XXX - check return val. */ /* create a pid file <name>.pid */ ! int create_pid_file(char *name) { FILE *fp; --- 108,149 ---- } + /* check permissions. */ + int file_permissions_are(const char *fname, mode_t mode) + { + struct stat st; + + if(stat(fname, &st) < 0) { + ERROR_MESSAGE("could not stat file %s", fname); + return -1; + } else if(st.st_mode != mode) + return 0; /* mode matches. */ + else + return 1; /* mode does not match. */ + } + /* change mode on a file so its publicaly readable. */ ! void file_make_public_read(char *fname) { chmod(fname, S_IWUSR | S_IRUSR | S_IRGRP | S_IROTH); } ! /* File creation routines. These assume we're opening a directory ! * only writable by us. It is unsafe to use them elsewhere. */ ! /* create file or open it if it exists. */ ! FILE *file_open_or_create_safe(const char *filename, char *mode) ! { ! return (file_open_proc(filename, mode, O_RDWR | O_CREAT, S_IRUSR | S_IWUSR)); ! } ! /* create file or open if it exists, and always truncate. */ ! FILE *file_create_and_truncate_safe(const char *filename, char *mode) ! { ! return (file_open_proc(filename, mode, O_RDWR | O_CREAT | O_TRUNC, S_IRUSR | S_IWUSR)); } /* XXX - check return val. */ /* create a pid file <name>.pid */ ! int file_create_pid(char *name) { FILE *fp; *************** *** 142,151 **** /* delete a pid file <name>.pid */ ! int delete_pid_file(char *name) { int retval; char *fname = get_pid_file_name(name); ! retval = delete_file(fname); /* ignore any errors. */ xfree(fname); --- 167,176 ---- /* delete a pid file <name>.pid */ ! int file_delete_pid(char *name) { int retval; char *fname = get_pid_file_name(name); ! retval = file_delete(fname); /* ignore any errors. */ xfree(fname); *************** *** 154,158 **** /* get pid from file. */ ! int get_pid_file(char *name, pid_t * pid) { FILE *fp; --- 179,183 ---- /* get pid from file. */ ! int file_get_pid(char *name, pid_t * pid) { FILE *fp; *************** *** 177,194 **** return 0; } - - /* check permissions. */ - int file_permissions_are(const char *fname, mode_t mode) - { - struct stat st; - - if(stat(fname, &st) < 0) { - ERROR_MESSAGE("could not stat file %s", fname); - return -1; - } else if(st.st_mode != mode) - return 0; /* mode matches. */ - else - return 1; /* mode does not match. */ - } - - --- 202,203 ---- Index: dhcp-libutil.h =================================================================== RCS file: /cvsroot/dhcp-agent/dhcp-agent/src/dhcp-libutil.h,v retrieving revision 1.18 retrieving revision 1.19 diff -C2 -d -r1.18 -r1.19 *** dhcp-libutil.h 23 Dec 2002 01:09:26 -0000 1.18 --- dhcp-libutil.h 23 Dec 2002 01:21:52 -0000 1.19 *************** *** 259,269 **** extern FILE *file_open_or_create_safe(const char *filename, char *mode); extern FILE *file_create_and_truncate_safe(const char *filename, char *mode); ! extern int delete_file(char *fname); ! extern void move_file(char *fname, char *dest); extern int file_exists(const char *fname); ! extern void make_file_public_read(char *fname); ! extern int create_pid_file(char *name); ! extern int delete_pid_file(char *name); ! extern int get_pid_file(char *name, pid_t * pid); extern int file_permissions_are(const char *fname, mode_t mode); --- 259,269 ---- extern FILE *file_open_or_create_safe(const char *filename, char *mode); extern FILE *file_create_and_truncate_safe(const char *filename, char *mode); ! extern int file_delete(char *fname); ! extern void file_move(char *fname, char *dest); extern int file_exists(const char *fname); ! extern void file_make_public_read(char *fname); ! extern int file_create_pid(char *name); ! extern int file_delete_pid(char *name); ! extern int file_get_pid(char *name, pid_t * pid); extern int file_permissions_are(const char *fname, mode_t mode); Index: dhcp-sysconf.c =================================================================== RCS file: /cvsroot/dhcp-agent/dhcp-agent/src/dhcp-sysconf.c,v retrieving revision 1.9 retrieving revision 1.10 diff -C2 -d -r1.9 -r1.10 *** dhcp-sysconf.c 16 Dec 2002 07:20:42 -0000 1.9 --- dhcp-sysconf.c 23 Dec 2002 01:21:52 -0000 1.10 *************** *** 369,373 **** * so we won't do anything dangerous to the system yet. */ ! delete_file("resolv.conf"); return; } --- 369,373 ---- * so we won't do anything dangerous to the system yet. */ ! file_delete("resolv.conf"); return; } *************** *** 508,513 **** if(file_exists("resolv.conf")) { ! move_file("resolv.conf", "/etc/resolv.conf"); ! make_file_public_read("/etc/resolv.conf"); } --- 508,513 ---- if(file_exists("resolv.conf")) { ! file_move("resolv.conf", "/etc/resolv.conf"); ! file_make_public_read("/etc/resolv.conf"); } |