BUILD: fix build on Solaris 10/11
uint16_t instead of u_int16_t
None ISO fields of struct tm are not present, but
by zeroyfing it, on GNU and BSD systems tm_gmtoff
field will be set.
[wt: moved the memset into each of the date functions]
diff --git a/include/types/connection.h b/include/types/connection.h
index beb9b89..11eff49 100644
--- a/include/types/connection.h
+++ b/include/types/connection.h
@@ -233,8 +233,8 @@
};
struct my_tcphdr {
- u_int16_t source;
- u_int16_t dest;
+ uint16_t source;
+ uint16_t dest;
};
/* a connection source profile defines all the parameters needed to properly
diff --git a/src/server.c b/src/server.c
index 5da95c9..f627b40 100644
--- a/src/server.c
+++ b/src/server.c
@@ -2742,7 +2742,7 @@
struct sockaddr_storage sa;
int ret, port_change_required;
char current_addr[INET6_ADDRSTRLEN];
- u_int16_t current_port, new_port;
+ uint16_t current_port, new_port;
struct chunk *msg;
msg = get_trash_chunk();
diff --git a/src/standard.c b/src/standard.c
index 41c54ac..afb2c83 100644
--- a/src/standard.c
+++ b/src/standard.c
@@ -3077,6 +3077,9 @@
*/
int parse_imf_date(const char *date, int len, struct tm *tm)
{
+ /* tm_gmtoff, if present, ought to be zero'ed */
+ memset(tm, 0, sizeof(*tm));
+
RET0_UNLESS(parse_http_dayname(&date, &len, tm)); /* day-name */
RET0_UNLESS(parse_expect_char(&date, &len, ',')); /* expect "," */
RET0_UNLESS(parse_expect_char(&date, &len, ' ')); /* expect SP */
@@ -3091,7 +3094,6 @@
RET0_UNLESS(parse_expect_char(&date, &len, ' ')); /* expect SP */
RET0_UNLESS(parse_strcmp(&date, &len, "GMT", 3)); /* GMT = %x47.4D.54 ; "GMT", case-sensitive */
tm->tm_isdst = -1;
- tm->tm_gmtoff = 0;
return 1;
}
@@ -3108,6 +3110,9 @@
{
int year;
+ /* tm_gmtoff, if present, ought to be zero'ed */
+ memset(tm, 0, sizeof(*tm));
+
RET0_UNLESS(parse_http_ldayname(&date, &len, tm)); /* Read the day name */
RET0_UNLESS(parse_expect_char(&date, &len, ',')); /* expect "," */
RET0_UNLESS(parse_expect_char(&date, &len, ' ')); /* expect SP */
@@ -3145,7 +3150,6 @@
RET0_UNLESS(parse_expect_char(&date, &len, ' ')); /* expect SP */
RET0_UNLESS(parse_strcmp(&date, &len, "GMT", 3)); /* GMT = %x47.4D.54 ; "GMT", case-sensitive */
tm->tm_isdst = -1;
- tm->tm_gmtoff = 0;
return 1;
}
@@ -3163,6 +3167,9 @@
*/
int parse_asctime_date(const char *date, int len, struct tm *tm)
{
+ /* tm_gmtoff, if present, ought to be zero'ed */
+ memset(tm, 0, sizeof(*tm));
+
RET0_UNLESS(parse_http_dayname(&date, &len, tm)); /* day-name */
RET0_UNLESS(parse_expect_char(&date, &len, ' ')); /* expect SP */
RET0_UNLESS(parse_http_monthname(&date, &len, tm)); /* expect month */
@@ -3180,7 +3187,6 @@
RET0_UNLESS(parse_4digit(&date, &len, &tm->tm_year)); /* year = 4DIGIT */
tm->tm_year -= 1900;
tm->tm_isdst = -1;
- tm->tm_gmtoff = 0;
return 1;
}