]> git.ipfire.org Git - thirdparty/haproxy.git/commitdiff
[CLEANUP] add a few "const char *" where appropriate
authorWilly Tarreau <w@1wt.eu>
Sun, 15 Oct 2006 13:17:57 +0000 (15:17 +0200)
committerWilly Tarreau <w@1wt.eu>
Sun, 15 Oct 2006 13:17:57 +0000 (15:17 +0200)
As suggested by Markus Elfring, a few "const char *" have replaced
some "char *" declarations where a function is not expected to
modify a value. It does not change the code but it helps detecting
coding errors.

13 files changed:
include/common/cfgparse.h
include/common/regex.h
include/common/time.h
include/proto/backend.h
include/proto/buffers.h
include/proto/proto_http.h
include/proto/queue.h
src/cfgparse.c
src/log.c
src/proto_http.c
src/queue.c
src/regex.c
src/time.c

index 591f1723913c14079ec5335f6da5ec70a0f6bf60..e21c4c5fd41e0a3b8cab027122f343414e941e6f 100644 (file)
@@ -32,9 +32,9 @@
 extern int cfg_maxpconn;
 extern int cfg_maxconn;
 
-int cfg_parse_global(char *file, int linenum, char **args);
-int cfg_parse_listen(char *file, int linenum, char **args);
-int readcfgfile(char *file);
+int cfg_parse_global(const char *file, int linenum, char **args);
+int cfg_parse_listen(const char *file, int linenum, char **args);
+int readcfgfile(const char *file);
 
 
 #endif /* _COMMON_CFGPARSE_H */
index 05eae6b095aa877d068bf6577e09bbb78459c656..bf51a0dcd7c941f0b18b427efe82836350f5f0cd 100644 (file)
 
 struct hdr_exp {
     struct hdr_exp *next;
-    regex_t *preg;                     /* expression to look for */
+    const regex_t *preg;               /* expression to look for */
     int action;                                /* ACT_ALLOW, ACT_REPLACE, ACT_REMOVE, ACT_DENY */
-    char *replace;                     /* expression to set instead */
+    const char *replace;               /* expression to set instead */
 };
 
 extern regmatch_t pmatch[MAX_MATCH];
 
-int exp_replace(char *dst, char *src, char *str, regmatch_t *matches);
-char *check_replace_string(char *str);
-char *chain_regex(struct hdr_exp **head, regex_t *preg, int action, char *replace);
+int exp_replace(char *dst, char *src, const char *str, const regmatch_t *matches);
+const char *check_replace_string(const char *str);
+const char *chain_regex(struct hdr_exp **head, const regex_t *preg,
+                       int action, const char *replace);
 
 #endif /* _COMMON_REGEX_H */
 
index 7661aac03de74b0c1b8984d74ca0b8b4a5b58203..7a68a1549780ed65c1c9c77d44733a5a8eeafd60 100644 (file)
@@ -39,31 +39,31 @@ extern struct timeval start_date;       /* the process's start date */
 /*
  * adds <ms> ms to <from>, set the result to <tv> and returns a pointer <tv>
  */
-struct timeval *tv_delayfrom(struct timeval *tv, struct timeval *from, int ms);
+struct timeval *tv_delayfrom(struct timeval *tv, const struct timeval *from, int ms);
 
 /*
  * compares <tv1> and <tv2> modulo 1ms: returns 0 if equal, -1 if tv1 < tv2, 1 if tv1 > tv2
  * Must not be used when either argument is eternity. Use tv_cmp2_ms() for that.
  */
-int tv_cmp_ms(struct timeval *tv1, struct timeval *tv2);
+int tv_cmp_ms(const struct timeval *tv1, const struct timeval *tv2);
 
 /*
  * compares <tv1> and <tv2> : returns 0 if equal, -1 if tv1 < tv2, 1 if tv1 > tv2,
  * considering that 0 is the eternity.
  */
-int tv_cmp2(struct timeval *tv1, struct timeval *tv2);
+int tv_cmp2(const struct timeval *tv1, const struct timeval *tv2);
 /*
  * compares <tv1> and <tv2> modulo 1 ms: returns 0 if equal, -1 if tv1 < tv2, 1 if tv1 > tv2,
  * considering that 0 is the eternity.
  */
-int tv_cmp2_ms(struct timeval *tv1, struct timeval *tv2);
+int tv_cmp2_ms(const struct timeval *tv1, const struct timeval *tv2);
 
 /*
  * returns the remaining time between tv1=now and event=tv2
  * if tv2 is passed, 0 is returned.
  * Returns TIME_ETERNITY if tv2 is eternity.
  */
-unsigned long tv_remain2(struct timeval *tv1, struct timeval *tv2);
+unsigned long tv_remain2(const struct timeval *tv1, const struct timeval *tv2);
 
 
 /* sets <tv> to the current time */
@@ -78,7 +78,7 @@ static inline struct timeval *tv_now(struct timeval *tv)
  * compares <tv1> and <tv2> : returns 0 if equal, -1 if tv1 < tv2, 1 if tv1 > tv2
  * Must not be used when either argument is eternity. Use tv_cmp2() for that.
  */
-static inline int tv_cmp(struct timeval *tv1, struct timeval *tv2)
+static inline int tv_cmp(const struct timeval *tv1, const struct timeval *tv2)
 {
        if (tv1->tv_sec < tv2->tv_sec)
                return -1;
@@ -96,7 +96,7 @@ static inline int tv_cmp(struct timeval *tv1, struct timeval *tv2)
  * returns the difference, in ms, between tv1 and tv2
  * Must not be used when either argument is eternity.
  */
-static inline unsigned long tv_diff(struct timeval *tv1, struct timeval *tv2)
+static inline unsigned long tv_diff(const struct timeval *tv1, const struct timeval *tv2)
 {
        unsigned long ret;
   
@@ -113,7 +113,7 @@ static inline unsigned long tv_diff(struct timeval *tv1, struct timeval *tv2)
  * if tv2 is passed, 0 is returned.
  * Must not be used when either argument is eternity.
  */
-static inline unsigned long tv_remain(struct timeval *tv1, struct timeval *tv2)
+static inline unsigned long tv_remain(const struct timeval *tv1, const struct timeval *tv2)
 {
        unsigned long ret;
   
@@ -142,7 +142,7 @@ static inline struct timeval *tv_eternity(struct timeval *tv)
 /*
  * returns 1 if tv is null, else 0
  */
-static inline int tv_iseternity(struct timeval *tv)
+static inline int tv_iseternity(const struct timeval *tv)
 {
        if (tv->tv_sec == 0 && tv->tv_usec == 0)
                return 1;
@@ -154,8 +154,9 @@ static inline int tv_iseternity(struct timeval *tv)
  * returns the first event between tv1 and tv2 into tvmin.
  * a zero tv is ignored. tvmin is returned.
  */
-static inline struct timeval *tv_min(struct timeval *tvmin,
-                                    struct timeval *tv1, struct timeval *tv2)
+static inline const struct timeval *tv_min(struct timeval *tvmin,
+                                    const struct timeval *tv1,
+                                    const struct timeval *tv2)
 {
 
        if (tv_cmp2(tv1, tv2) <= 0)
index cc25a6fe165166d4c12906add8b642e705683a39..b4c641e65e056fc880bd9e30149dc6aeb52ba7b9 100644 (file)
@@ -97,7 +97,8 @@ static inline struct server *get_server_rr(struct proxy *px)
  * If any server is found, it will be returned. If no valid server is found,
  * NULL is returned.
  */
-static inline struct server *get_server_sh(struct proxy *px, char *addr, int len)
+static inline struct server *get_server_sh(const struct proxy *px,
+                                          const char *addr, int len)
 {
        unsigned int h, l;
 
index 6dbc9569ad75fd281ca775c5c8d11171f8acc962..a5ad2081e45ed9d58db1eb1b1e78930f11894453 100644 (file)
@@ -36,13 +36,13 @@ static inline void buffer_init(struct buffer *buf)
 }
 
 /* returns 1 if the buffer is empty, 0 otherwise */
-static inline int buffer_isempty(struct buffer *buf)
+static inline int buffer_isempty(const struct buffer *buf)
 {
        return buf->l == 0;
 }
 
 /* returns 1 if the buffer is full, 0 otherwise */
-static inline int buffer_isfull(struct buffer *buf) {
+static inline int buffer_isfull(const struct buffer *buf) {
        return buf->l == BUFSIZE;
 }
 
@@ -55,7 +55,7 @@ static inline void buffer_flush(struct buffer *buf)
 
 
 /* returns the maximum number of bytes writable at once in this buffer */
-static inline int buffer_max(struct buffer *buf)
+static inline int buffer_max(const struct buffer *buf)
 {
        if (buf->l == BUFSIZE)
                return 0;
index 205b0eebbecc28fe7af1791ac7258faa95705d64..0005bf78cc694f1607b82bff0a4eb31e9dd0e5d5 100644 (file)
@@ -36,7 +36,7 @@ int process_srv(struct session *t);
 void client_retnclose(struct session *s, int len, const char *msg);
 void client_return(struct session *s, int len, const char *msg);
 void srv_close_with_err(struct session *t, int err, int finst,
-                       int status, int msglen, char *msg);
+                       int status, int msglen, const char *msg);
 
 int produce_content(struct session *s);
 
index 6732ba909015be36fc90672e4932515813c05512..c113f0352f5dbdddb034c0f71c65297b3a496fb7 100644 (file)
@@ -36,14 +36,14 @@ struct session *pendconn_get_next_sess(struct server *srv, struct proxy *px);
 struct pendconn *pendconn_add(struct session *sess);
 void pendconn_free(struct pendconn *p);
 int process_srv_queue(struct task *t);
-unsigned int srv_dynamic_maxconn(struct server *s);
+unsigned int srv_dynamic_maxconn(const struct server *s);
 
 
 
 /* Returns the first pending connection for server <s>, which may be NULL if
  * nothing is pending.
  */
-static inline struct pendconn *pendconn_from_srv(struct server *s) {
+static inline struct pendconn *pendconn_from_srv(const struct server *s) {
        if (!s->nbpend)
                return NULL;
 
@@ -53,7 +53,7 @@ static inline struct pendconn *pendconn_from_srv(struct server *s) {
 /* Returns the first pending connection for proxy <px>, which may be NULL if
  * nothing is pending.
  */
-static inline struct pendconn *pendconn_from_px(struct proxy *px) {
+static inline struct pendconn *pendconn_from_px(const struct proxy *px) {
        if (!px->nbpend)
                return NULL;
 
@@ -63,7 +63,7 @@ static inline struct pendconn *pendconn_from_px(struct proxy *px) {
 /* returns 0 if nothing has to be done for server <s> regarding queued connections,
  * and non-zero otherwise. Suited for and if/else usage.
  */
-static inline int may_dequeue_tasks(struct server *s, struct proxy *p) {
+static inline int may_dequeue_tasks(const struct server *s, const struct proxy *p) {
        return (s && (s->nbpend || p->nbpend) &&
                (!s->maxconn || s->cur_sess < srv_dynamic_maxconn(s)) &&
                s->queue_mgt);
index 882c0e4671840fe694b3fc271bf0014a13578d12..034a2f11bf5293c51cb147e192b3a89b8c5995ea 100644 (file)
@@ -251,7 +251,7 @@ static struct listener *str2listener(char *str, struct listener *tail)
 /*
  * parse a line in a <global> section. Returns 0 if OK, -1 if error.
  */
-int cfg_parse_global(char *file, int linenum, char **args)
+int cfg_parse_global(const char *file, int linenum, char **args)
 {
 
        if (!strcmp(args[0], "global")) {  /* new section */
@@ -424,11 +424,11 @@ static void init_default_instance()
 /*
  * parse a line in a <listen> section. Returns 0 if OK, -1 if error.
  */
-int cfg_parse_listen(char *file, int linenum, char **args)
+int cfg_parse_listen(const char *file, int linenum, char **args)
 {
        static struct proxy *curproxy = NULL;
        struct server *newsrv = NULL;
-       char *err;
+       const char *err;
        int rc;
 
        if (!strcmp(args[0], "listen")) {  /* new proxy */
@@ -1776,7 +1776,7 @@ int cfg_parse_listen(char *file, int linenum, char **args)
  * This function reads and parses the configuration file given in the argument.
  * returns 0 if OK, -1 if error.
  */
-int readcfgfile(char *file)
+int readcfgfile(const char *file)
 {
        char thisline[256];
        char *line;
index 237efa2f0ae39c7de49aa5f6e90e621c6af1e5bf..e02a81f82d668035da21c2b27ebdd44e1953c4ca 100644 (file)
--- a/src/log.c
+++ b/src/log.c
@@ -64,7 +64,7 @@ void **pool_requri = NULL;
  * Displays the message on stderr with the date and pid. Overrides the quiet
  * mode during startup.
  */
-void Alert(char *fmt, ...)
+void Alert(const char *fmt, ...)
 {
        va_list argp;
        struct timeval tv;
@@ -87,7 +87,7 @@ void Alert(char *fmt, ...)
 /*
  * Displays the message on stderr with the date and pid.
  */
-void Warning(char *fmt, ...)
+void Warning(const char *fmt, ...)
 {
        va_list argp;
        struct timeval tv;
@@ -109,7 +109,7 @@ void Warning(char *fmt, ...)
 /*
  * Displays the message on <out> only if quiet mode is not set.
  */
-void qfprintf(FILE *out, char *fmt, ...)
+void qfprintf(FILE *out, const char *fmt, ...)
 {
        va_list argp;
 
@@ -173,7 +173,7 @@ fd_set url_encode_map[(sizeof(fd_set) > (256/8)) ? 1 : ((256/8) / sizeof(fd_set)
  * It also tries not to waste too much time computing the message header.
  * It doesn't care about errors nor does it report them.
  */
-void send_log(struct proxy *p, int level, char *message, ...)
+void send_log(struct proxy *p, int level, const char *message, ...)
 {
        static int logfd = -1;  /* syslog UDP socket */
        static long tvsec = -1; /* to force the string to be initialized */
index 0ba52a4dd48820d4521244655393ec7048aa995a..f6a3ccd363e0d81ef9162eb547cd9341eb5b459d 100644 (file)
@@ -117,7 +117,7 @@ void client_return(struct session *s, int len, const char *msg)
  * returned.
  */
 void srv_close_with_err(struct session *t, int err, int finst,
-                       int status, int msglen, char *msg)
+                       int status, int msglen, const char *msg)
 {
        t->srv_state = SV_STCLOSE;
        if (status > 0) {
index 35285378f4c4828be87e4972b0c5f5c112f6135f..8b37da04054b59e883df1b3315a679103000dbae 100644 (file)
@@ -26,7 +26,7 @@ void **pool_pendconn = NULL;
 /* returns the effective dynamic maxconn for a server, considering the minconn
  * and the proxy's usage relative to its saturation.
  */
-unsigned int srv_dynamic_maxconn(struct server *s)
+unsigned int srv_dynamic_maxconn(const struct server *s)
 {
        return s->minconn ? 
                ((s->maxconn * s->proxy->nbconn / s->proxy->maxconn) < s->minconn) ? s->minconn :
index 7d6b30ddc42f2fb717b98832394b90d4857264a7..ae7620068f3a4de1d359f9061571545147b6f722 100644 (file)
@@ -24,7 +24,7 @@ regmatch_t pmatch[MAX_MATCH];  /* rm_so, rm_eo for regular expressions */
 
 
 
-int exp_replace(char *dst, char *src, char *str, regmatch_t *matches)
+int exp_replace(char *dst, char *src, const char *str, const regmatch_t *matches)
 {
        char *old_dst = dst;
 
@@ -65,9 +65,9 @@ int exp_replace(char *dst, char *src, char *str, regmatch_t *matches)
 }
 
 /* returns NULL if the replacement string <str> is valid, or the pointer to the first error */
-char *check_replace_string(char *str)
+const char *check_replace_string(const char *str)
 {
-       char *err = NULL;
+       const char *err = NULL;
        while (*str) {
                if (*str == '\\') {
                        err = str; /* in case of a backslash, we return the pointer to it */
@@ -97,12 +97,13 @@ char *check_replace_string(char *str)
 
 
 /* returns the pointer to an error in the replacement string, or NULL if OK */
-char *chain_regex(struct hdr_exp **head, regex_t *preg, int action, char *replace)
+const char *chain_regex(struct hdr_exp **head, const regex_t *preg,
+                       int action, const char *replace)
 {
        struct hdr_exp *exp;
 
        if (replace != NULL) {
-               char *err;
+               const char *err;
                err = check_replace_string(replace);
                if (err)
                        return err;
index 5abfcc4d2964d902a2ad79d61af7fef8596f697a..025c87bb895d181fa32ac80fc1c56d3122492eb2 100644 (file)
@@ -21,7 +21,7 @@ struct timeval start_date;      /* the process's start date */
 /*
  * adds <ms> ms to <from>, set the result to <tv> and returns a pointer <tv>
  */
-struct timeval *tv_delayfrom(struct timeval *tv, struct timeval *from, int ms)
+struct timeval *tv_delayfrom(struct timeval *tv, const struct timeval *from, int ms)
 {
        if (!tv || !from)
                return NULL;
@@ -38,7 +38,7 @@ struct timeval *tv_delayfrom(struct timeval *tv, struct timeval *from, int ms)
  * compares <tv1> and <tv2> modulo 1ms: returns 0 if equal, -1 if tv1 < tv2, 1 if tv1 > tv2
  * Must not be used when either argument is eternity. Use tv_cmp2_ms() for that.
  */
-int tv_cmp_ms(struct timeval *tv1, struct timeval *tv2)
+int tv_cmp_ms(const struct timeval *tv1, const struct timeval *tv2)
 {
        if (tv1->tv_sec == tv2->tv_sec) {
                if (tv2->tv_usec >= tv1->tv_usec + 1000)
@@ -62,7 +62,7 @@ int tv_cmp_ms(struct timeval *tv1, struct timeval *tv2)
  * compares <tv1> and <tv2> : returns 0 if equal, -1 if tv1 < tv2, 1 if tv1 > tv2,
  * considering that 0 is the eternity.
  */
-int tv_cmp2(struct timeval *tv1, struct timeval *tv2)
+int tv_cmp2(const struct timeval *tv1, const struct timeval *tv2)
 {
        if (tv_iseternity(tv1))
                if (tv_iseternity(tv2))
@@ -88,7 +88,7 @@ int tv_cmp2(struct timeval *tv1, struct timeval *tv2)
  * compares <tv1> and <tv2> modulo 1 ms: returns 0 if equal, -1 if tv1 < tv2, 1 if tv1 > tv2,
  * considering that 0 is the eternity.
  */
-int tv_cmp2_ms(struct timeval *tv1, struct timeval *tv2)
+int tv_cmp2_ms(const struct timeval *tv1, const struct timeval *tv2)
 {
        if (tv_iseternity(tv1))
                if (tv_iseternity(tv2))
@@ -121,7 +121,7 @@ int tv_cmp2_ms(struct timeval *tv1, struct timeval *tv2)
  * if tv2 is passed, 0 is returned.
  * Returns TIME_ETERNITY if tv2 is eternity.
  */
-unsigned long tv_remain2(struct timeval *tv1, struct timeval *tv2)
+unsigned long tv_remain2(const struct timeval *tv1, const struct timeval *tv2)
 {
        unsigned long ret;
 
@@ -144,7 +144,7 @@ unsigned long tv_remain2(struct timeval *tv1, struct timeval *tv2)
  * returns the absolute difference, in ms, between tv1 and tv2
  * Must not be used when either argument is eternity.
  */
-unsigned long tv_delta(struct timeval *tv1, struct timeval *tv2)
+unsigned long tv_delta(const struct timeval *tv1, const struct timeval *tv2)
 {
        int cmp;
        unsigned long ret;
@@ -154,7 +154,7 @@ unsigned long tv_delta(struct timeval *tv1, struct timeval *tv2)
        if (!cmp)
                return 0; /* same dates, null diff */
        else if (cmp < 0) {
-               struct timeval *tmp = tv1;
+               const struct timeval *tmp = tv1;
                tv1 = tv2;
                tv2 = tmp;
        }