Commit e00db6ac authored by Andrew Price's avatar Andrew Price
Browse files

Fix building with clang

parent 3ebdfd43
Loading
Loading
Loading
Loading
Loading
+3 −5
Original line number Diff line number Diff line
@@ -631,17 +631,15 @@ int main(int argc, char **argv)
	}

	{
		struct sockaddr sa;
		struct sockaddr_in sa;
		socklen_t ss;

		ss=sizeof(sa);
		/* can we log a hostname ? */
		if (getpeername(fileno(stdin), &sa , &ss))
		if (getpeername(fileno(stdin), (struct sockaddr *)&sa, &ss))
			mwlog("LOGIN");
		else
		{
			mwlog("LOGIN from %s", inet_ntoa(((struct sockaddr_in *)&sa)->sin_addr) );
		}
			mwlog("LOGIN from %s", inet_ntoa(sa.sin_addr));
	}

	time_t when = user->record.lastlogout;
+9 −2
Original line number Diff line number Diff line
#ifndef STR_UTIL_H
#define STR_UTIL_H

/* str_util.c */
#ifdef __clang__
#define mw_printf_func(stridx, vastart) __attribute__((format(printf,stridx,vastart)))
#elif defined __GNUC__
#define mw_printf_func(stridx, vastart) __attribute__((format(gnu_printf,stridx,vastart)))
#else
#define mw_printf_func(stridx, vastart)
#endif

int stringcmp(const char *a, const char *b, int n);
void strip_str(char *string);
int get_rand(int min, int max);
void string_add(char **str, const char *fmt, ...)  __attribute__((format(gnu_printf,2,3)));
void string_add(char **str, const char *fmt, ...) mw_printf_func(2, 3);
int allspace(char *in);
void strlower(char *szString);
void escprintf(const char *szFormat, ...);
+6 −7
Original line number Diff line number Diff line
@@ -171,32 +171,31 @@ static int is_unique_user_name(int fd, const char *name, int *err)
	return 1;
}

static int check_template(const char *optarg, size_t maxlen)
static int check_template(const char *t, size_t maxlen)
{
	const char *i;
	size_t size;
	int count;

	size = strlen(optarg);
	size = strlen(t);
	if (size == 0) {
		fprintf(stderr, "Empty template\n");
		return 1;
	}
	if (size > maxlen) {
		fprintf(stderr, "Template is too long: '%s'\n", optarg);
		fprintf(stderr, "Template is too long: '%s'\n", t);
		return 1;
	}
	for (count = 0, i = optarg; *i != '\0'; i++) {
	for (count = 0, i = t; *i != '\0'; i++) {
		if (*i == '%') {
			count++;
		} else if (!isprint(*i)) {
			fprintf(stderr, "Template '%s' contains non-printable characters\n",
			                 optarg);
			fprintf(stderr, "Template '%s' contains non-printable characters\n", t);
			return 1;
		}
	}
	if (count < 3) {
		fprintf(stderr, "Template '%s' contains too few '%%' characters.\n", optarg);
		fprintf(stderr, "Template '%s' contains too few '%%' characters.\n", t);
		return 1;
	}
	return 0;