diff --git a/Makefile b/Makefile
index ddbf2bfb..88d50712 100644
--- a/Makefile
+++ b/Makefile
@@ -36,6 +36,7 @@ CFLAGS += -O3 -funroll-loops -fomit-frame-pointer -W -Wall -Wno-deprecated-decla
CC = gcc
IFLAGS = -kr -nut -i3 -l110
EXECS = elog elogd elconv
+GIT_REVISION = src/git-revision.h
MXMLDIR = ../mxml
BINOWNER = bin
BINGROUP = bin
@@ -98,7 +99,11 @@ ifeq ($(WHOAMI),root)
BINFLAGS = -o ${BINOWNER} -g ${BINGROUP}
endif
-all: $(EXECS)
+all: $(EXECS) $(GIT_REVISION)
+
+# put current GIT revision into header file to be included by programs
+$(GIT_REVISION): src/elogd.c
+ echo \#define GIT_REVISION \"`git log -n 1 --pretty=format:"%ad - %h"`\" > $(GIT_REVISION)
regex.o: src/regex.c src/regex.h
$(CC) $(CFLAGS) -w -c -o regex.o src/regex.c
diff --git a/src/elog.c b/src/elog.c
index ca19a248..6f089ad0 100755
--- a/src/elog.c
+++ b/src/elog.c
@@ -115,6 +115,10 @@ int equal_ustring(char *str1, char *str2)
/*---- strlcpy and strlcat to avoid buffer overflow ----------------*/
+#ifdef strlcpy
+#define STRLCPY_DEFINED
+#endif
+
#ifndef STRLCPY_DEFINED
/*
diff --git a/src/elogd.c b/src/elogd.c
index 6e70614e..e785278a 100755
--- a/src/elogd.c
+++ b/src/elogd.c
@@ -8,8 +8,9 @@
\********************************************************************/
#include "elogd.h"
+#include "git-revision.h"
-char svn_revision[] = "$Id$";
+const char *git_revision = GIT_REVISION;
BOOL running_as_daemon; /* Running as a daemon/service? */
int elog_tcp_port; /* Server's TCP port */
@@ -6940,7 +6941,7 @@ void redirect(LOGBOOK * lbs, char *rel_path)
{
/* redirect */
rsprintf("HTTP/1.1 302 Found\r\n");
- rsprintf("Server: ELOG HTTP %s-%d\r\n", VERSION, atoi(svn_revision + 13));
+ rsprintf("Server: ELOG HTTP %s-%s\r\n", VERSION, git_revision + 33);
if (keep_alive) {
rsprintf("Connection: Keep-Alive\r\n");
rsprintf("Keep-Alive: timeout=60, max=10\r\n");
@@ -7176,7 +7177,7 @@ void show_http_header(LOGBOOK * lbs, BOOL expires, char *cookie)
char str[256];
rsprintf("HTTP/1.1 200 Document follows\r\n");
- rsprintf("Server: ELOG HTTP %s-%d\r\n", VERSION, atoi(svn_revision + 13));
+ rsprintf("Server: ELOG HTTP %s-%s\r\n", VERSION, git_revision + 33);
if (getcfg("global", "charset", str, sizeof(str)))
rsprintf("Content-Type: text/html;charset=%s\r\n", str);
@@ -7203,7 +7204,7 @@ void show_plain_header(int size, char *file_name)
{
/* header */
rsprintf("HTTP/1.1 200 Document follows\r\n");
- rsprintf("Server: ELOG HTTP %s-%d\r\n", VERSION, atoi(svn_revision + 13));
+ rsprintf("Server: ELOG HTTP %s-%s\r\n", VERSION, git_revision + 33);
rsprintf("Accept-Ranges: bytes\r\n");
if (keep_alive) {
@@ -7878,8 +7879,8 @@ void show_bottom_text(LOGBOOK * lbs)
} else
/* add little logo */
rsprintf
- ("
ELOG V%s-%d",
- loc("Goto ELOG home page"), VERSION, atoi(svn_revision + 13));
+ ("ELOG V%s-%s",
+ loc("Goto ELOG home page"), VERSION, git_revision + 33);
}
/*------------------------------------------------------------------*/
@@ -7932,8 +7933,8 @@ void show_bottom_text_login(LOGBOOK * lbs)
} else
/* add little logo */
rsprintf
- ("ELOG V%s-%d",
- loc("Goto ELOG home page"), VERSION, atoi(svn_revision + 13));
+ ("ELOG V%s-%s",
+ loc("Goto ELOG home page"), VERSION, git_revision + 33);
}
/*------------------------------------------------------------------*/
@@ -7944,7 +7945,7 @@ void show_error(char *error)
/* header */
rsprintf("HTTP/1.1 404 Not Found\r\n");
- rsprintf("Server: ELOG HTTP %s-%d\r\n", VERSION, atoi(svn_revision + 13));
+ rsprintf("Server: ELOG HTTP %s-%s\r\n", VERSION, git_revision + 33);
if (getcfg("global", "charset", str, sizeof(str)))
rsprintf("Content-Type: text/html;charset=%s\r\n", str);
else
@@ -8012,7 +8013,7 @@ void set_sid_cookie(LOGBOOK * lbs, char *sid, char *full_name)
BOOL global;
rsprintf("HTTP/1.1 302 Found\r\n");
- rsprintf("Server: ELOG HTTP %s-%d\r\n", VERSION, atoi(svn_revision + 13));
+ rsprintf("Server: ELOG HTTP %s-%s\r\n", VERSION, git_revision + 33);
if (keep_alive) {
rsprintf("Connection: Keep-Alive\r\n");
rsprintf("Keep-Alive: timeout=60, max=10\r\n");
@@ -8056,7 +8057,7 @@ void remove_all_login_cookies(LOGBOOK * lbs)
int i;
rsprintf("HTTP/1.1 302 Found\r\n");
- rsprintf("Server: ELOG HTTP %s-%d\r\n", VERSION, atoi(svn_revision + 13));
+ rsprintf("Server: ELOG HTTP %s-%s\r\n", VERSION, git_revision + 33);
if (keep_alive) {
rsprintf("Connection: Keep-Alive\r\n");
rsprintf("Keep-Alive: timeout=60, max=10\r\n");
@@ -8102,7 +8103,7 @@ void send_file_direct(char *file_name)
lseek(fh, 0, SEEK_SET);
rsprintf("HTTP/1.1 200 Document follows\r\n");
- rsprintf("Server: ELOG HTTP %s-%d\r\n", VERSION, atoi(svn_revision + 13));
+ rsprintf("Server: ELOG HTTP %s-%s\r\n", VERSION, git_revision + 33);
rsprintf("Accept-Ranges: bytes\r\n");
/* set expiration time to one day if no thumbnail */
@@ -8445,7 +8446,7 @@ int build_subst_list(LOGBOOK * lbs, char list[][NAME_LENGTH], char value[][NAME_
strcpy(value[i++], VERSION);
strcpy(list[i], "revision");
- sprintf(value[i++], "%d", atoi(svn_revision + 13));
+ sprintf(value[i++], "%s", git_revision + 33);
return i;
}
@@ -14983,7 +14984,7 @@ int show_md5_page(LOGBOOK * lbs)
/* header */
rsprintf("HTTP/1.1 200 Document follows\r\n");
- rsprintf("Server: ELOG HTTP %s-%d\r\n", VERSION, atoi(svn_revision + 13));
+ rsprintf("Server: ELOG HTTP %s-%s\r\n", VERSION, git_revision + 33);
rsprintf("Accept-Ranges: bytes\r\n");
rsprintf("Connection: close\r\n");
rsprintf("Content-Type: text/plain;charset=%s\r\n", DEFAULT_HTTP_CHARSET);
@@ -19085,7 +19086,7 @@ void show_rss_feed(LOGBOOK * lbs)
struct tm *ts;
rsprintf("HTTP/1.1 200 Document follows\r\n");
- rsprintf("Server: ELOG HTTP %s-%d\r\n", VERSION, atoi(svn_revision + 13));
+ rsprintf("Server: ELOG HTTP %s-%s\r\n", VERSION, git_revision + 33);
if (!getcfg("global", "charset", charset, sizeof(charset)))
strcpy(charset, DEFAULT_HTTP_CHARSET);
@@ -28688,7 +28689,7 @@ void server_loop(void)
/* about to entering the server loop, welcome user with a brief info */
eprintf("%s ", ELOGID);
- strcpy(str, svn_revision + 13);
+ strcpy(str, git_revision + 33);
if (strchr(str, ' '))
*strchr(str, ' ') = 0;
eprintf("revision %s\n", str);
@@ -29143,7 +29144,7 @@ void server_loop(void)
} else if (strstr(net_buffer, "HEAD") != NULL) {
/* just return header */
rsprintf("HTTP/1.1 200 OK\r\n");
- rsprintf("Server: ELOG HTTP %s-%d\r\n", VERSION, atoi(svn_revision + 13));
+ rsprintf("Server: ELOG HTTP %s-%s\r\n", VERSION, git_revision + 33);
rsprintf("Connection: close\r\n");
rsprintf("Content-Type: text/html\r\n\r\n");
keep_alive = FALSE;
diff --git a/src/git-revision.h b/src/git-revision.h
new file mode 100644
index 00000000..f580d305
--- /dev/null
+++ b/src/git-revision.h
@@ -0,0 +1 @@
+#define GIT_REVISION "Wed Sep 25 14:25:38 2013 +0200 - bac715d"
diff --git a/xcode/elogd.xcodeproj/project.pbxproj b/xcode/elogd.xcodeproj/project.pbxproj
index 53808747..5fdf0f3b 100644
--- a/xcode/elogd.xcodeproj/project.pbxproj
+++ b/xcode/elogd.xcodeproj/project.pbxproj
@@ -134,7 +134,7 @@
D52BA2F113999DB0000458E3 /* Project object */ = {
isa = PBXProject;
attributes = {
- LastUpgradeCheck = 0460;
+ LastUpgradeCheck = 0500;
ORGANIZATIONNAME = PSI;
};
buildConfigurationList = D52BA2F413999DB0000458E3 /* Build configuration list for PBXProject "elogd" */;
@@ -174,8 +174,9 @@
D52BA30113999DB0000458E3 /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
- ARCHS = "$(ARCHS_STANDARD_32_64_BIT)";
+ CLANG_WARN_BOOL_CONVERSION = YES;
CLANG_WARN_CONSTANT_CONVERSION = YES;
+ CLANG_WARN_EMPTY_BODY = YES;
CLANG_WARN_ENUM_CONVERSION = YES;
CLANG_WARN_INT_CONVERSION = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
@@ -185,8 +186,11 @@
GCC_SYMBOLS_PRIVATE_EXTERN = NO;
GCC_VERSION = com.apple.compilers.llvm.clang.1_0;
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
+ GCC_WARN_ABOUT_DEPRECATED_FUNCTIONS = NO;
GCC_WARN_ABOUT_RETURN_TYPE = YES;
+ GCC_WARN_UNDECLARED_SELECTOR = YES;
GCC_WARN_UNINITIALIZED_AUTOS = YES;
+ GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
MACOSX_DEPLOYMENT_TARGET = 10.6;
ONLY_ACTIVE_ARCH = YES;
@@ -197,16 +201,20 @@
D52BA30213999DB0000458E3 /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
- ARCHS = "$(ARCHS_STANDARD_32_64_BIT)";
+ CLANG_WARN_BOOL_CONVERSION = YES;
CLANG_WARN_CONSTANT_CONVERSION = YES;
+ CLANG_WARN_EMPTY_BODY = YES;
CLANG_WARN_ENUM_CONVERSION = YES;
CLANG_WARN_INT_CONVERSION = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
GCC_C_LANGUAGE_STANDARD = gnu99;
GCC_VERSION = com.apple.compilers.llvm.clang.1_0;
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
+ GCC_WARN_ABOUT_DEPRECATED_FUNCTIONS = NO;
GCC_WARN_ABOUT_RETURN_TYPE = YES;
+ GCC_WARN_UNDECLARED_SELECTOR = YES;
GCC_WARN_UNINITIALIZED_AUTOS = YES;
+ GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
MACOSX_DEPLOYMENT_TARGET = 10.6;
SDKROOT = macosx;