logging-gsmtap: send only basename of source file

GSMTAP doesn't have a lot of space for the source file name. It is better to
send only the basename of the file, because only the first bit of a long path
may not convey the source file at all, needing guess work from the line number.

Before:  "Source File Name: ../../../../src/libosmocore/src"
After:   "Source File Name: telnet_interface.c"

Change-Id: Ie8fc9e782bcf8fa6e2e957d02e7d73c3a7c2bca8
diff --git a/src/logging_gsmtap.c b/src/logging_gsmtap.c
index ec6757c..82535ad 100644
--- a/src/logging_gsmtap.c
+++ b/src/logging_gsmtap.c
@@ -64,6 +64,7 @@
 	const char *subsys_name = log_category_name(subsys);
 	struct timeval tv;
 	int rc;
+	const char *file_basename;
 
 	/* get timestamp ASAP */
 	osmo_gettimeofday(&tv, NULL);
@@ -86,6 +87,10 @@
 		osmo_strlcpy(golh->subsys, subsys_name+1, sizeof(golh->subsys));
 	else
 		golh->subsys[0] = '\0';
+
+	/* strip all leading path elements from file, if any. */
+	file_basename = strrchr(file, '/');
+	file = (file_basename && file_basename[1])? file_basename + 1 : file;
 	osmo_strlcpy(golh->src_file.name, file, sizeof(golh->src_file.name));
 	golh->src_file.line_nr = osmo_htonl(line);
 	golh->level = level;