### Eclipse Workspace Patch 1.0
#P gateway-cvs-head
Index: gw/shared.h
===================================================================
RCS file: /home/cvs/gateway/gw/shared.h,v
retrieving revision 1.22
diff -u -r1.22 shared.h
--- gw/shared.h 12 Jan 2009 16:46:55 -0000 1.22
+++ gw/shared.h 14 Feb 2009 15:00:56 -0000
@@ -84,21 +84,6 @@
/*
- * Return an octet string with information about Kannel version,
- * operating system, and libxml version. The caller must take care to
- * destroy the string when done.
- */
-Octstr *version_report_string(const char *boxname);
-
-
-/*
- * Output the information returned by version_report_string to the log
- * files.
- */
-void report_versions(const char *boxname);
-
-
-/*
* Open a connection to the bearerbox.
*/
Connection *connect_to_bearerbox_real(Octstr *host, int port, int ssl,
Octstr *our_host);
Index: gw/shared.c
===================================================================
RCS file: /home/cvs/gateway/gw/shared.c,v
retrieving revision 1.44
diff -u -r1.44 shared.c
--- gw/shared.c 12 Jan 2009 16:46:56 -0000 1.44
+++ gw/shared.c 14 Feb 2009 15:00:56 -0000
@@ -60,108 +60,15 @@
* Lars Wirzenius
*/
-#include <sys/utsname.h>
#include <libxml/xmlversion.h>
#include "gwlib/gwlib.h"
#include "shared.h"
-#if defined(HAVE_LIBSSL) || defined(HAVE_WTLS_OPENSSL)
-#include <openssl/opensslv.h>
-#endif
-#ifdef HAVE_MYSQL
-#include <mysql_version.h>
-#include <mysql.h>
-#endif
-#ifdef HAVE_SQLITE
-#include <sqlite.h>
-#endif
-#ifdef HAVE_SQLITE3
-#include <sqlite3.h>
-#endif
-#ifdef HAVE_ORACLE
-#include <oci.h>
-#endif
-
volatile enum program_status program_status = starting_up;
-void report_versions(const char *boxname)
-{
- Octstr *os;
-
- os = version_report_string(boxname);
- debug("gwlib.gwlib", 0, "%s", octstr_get_cstr(os));
- octstr_destroy(os);
-}
-
-
-Octstr *version_report_string(const char *boxname)
-{
- struct utsname u;
-
- uname(&u);
- return octstr_format(GW_NAME " %s version `%s'.\nBuild `%s', compiler
`%s'.\n"
- "System %s, release %s, version %s, machine %s.\n"
- "Hostname %s, IP %s.\n"
- "Libxml version %s.\n"
-#ifdef HAVE_LIBSSL
- "Using "
-#ifdef HAVE_WTLS_OPENSSL
- "WTLS library "
-#endif
- "%s.\n"
-#endif
-#ifdef HAVE_MYSQL
- "Compiled with MySQL %s, using MySQL %s.\n"
-#endif
-#ifdef HAVE_SDB
- "Using LibSDB %s.\n"
-#endif
-#if defined(HAVE_SQLITE) || defined(HAVE_SQLITE3)
- "Using SQLite %s.\n"
-#endif
-#ifdef HAVE_ORACLE
-#if defined(OCI_MAJOR_VERSION) && defined(OCI_MINOR_VERSION)
- "Using Oracle OCI %d.%d.\n"
-#else
- "Using Oracle OCI.\n"
-#endif
-#endif
- "Using %s malloc.\n",
- boxname, GW_VERSION,
-#ifdef __GNUC__
- (__DATE__ " " __TIME__) ,
- __VERSION__,
-#else
- "unknown" , "unknown",
-#endif
- u.sysname, u.release, u.version, u.machine,
- octstr_get_cstr(get_official_name()),
- octstr_get_cstr(get_official_ip()),
- LIBXML_DOTTED_VERSION,
-#ifdef HAVE_LIBSSL
- OPENSSL_VERSION_TEXT,
-#endif
-#ifdef HAVE_MYSQL
- MYSQL_SERVER_VERSION, mysql_get_client_info(),
-#endif
-#ifdef HAVE_SDB
- LIBSDB_VERSION,
-#endif
-#if defined(HAVE_SQLITE) || defined(HAVE_SQLITE3)
- SQLITE_VERSION,
-#endif
-#ifdef HAVE_ORACLE
-#if defined(OCI_MAJOR_VERSION) && defined(OCI_MINOR_VERSION)
- OCI_MAJOR_VERSION, OCI_MINOR_VERSION,
-#endif
-#endif
- octstr_get_cstr(gwmem_type()));
-}
-
-
/***********************************************************************
* Communication with the bearerbox.
*/
Index: gwlib/utils.h
===================================================================
RCS file: /home/cvs/gateway/gwlib/utils.h,v
retrieving revision 1.31
diff -u -r1.31 utils.h
--- gwlib/utils.h 12 Jan 2009 16:46:54 -0000 1.31
+++ gwlib/utils.h 14 Feb 2009 15:00:56 -0000
@@ -199,4 +199,19 @@
unsigned long long gw_generate_id(void);
+/*
+ * Return an octet string with information about Kannel version,
+ * operating system, and libxml version. The caller must take care to
+ * destroy the string when done.
+ */
+Octstr *version_report_string(const char *boxname);
+
+
+/*
+ * Output the information returned by version_report_string to the log
+ * files.
+ */
+void report_versions(const char *boxname);
+
+
#endif
Index: gwlib/utils.c
===================================================================
RCS file: /home/cvs/gateway/gwlib/utils.c,v
retrieving revision 1.55
diff -u -r1.55 utils.c
--- gwlib/utils.c 12 Jan 2009 16:46:52 -0000 1.55
+++ gwlib/utils.c 14 Feb 2009 15:00:56 -0000
@@ -74,12 +74,33 @@
#include <sys/types.h>
#include <sys/wait.h>
#include <sys/stat.h>
+#include <sys/utsname.h>
#include <fcntl.h>
#include <pwd.h>
#include <grp.h>
+#include <libgen.h>
#include "gwlib.h"
+/* Headers required for the version dump. */
+#if defined(HAVE_LIBSSL) || defined(HAVE_WTLS_OPENSSL)
+#include <openssl/opensslv.h>
+#endif
+#ifdef HAVE_MYSQL
+#include <mysql_version.h>
+#include <mysql.h>
+#endif
+#ifdef HAVE_SQLITE
+#include <sqlite.h>
+#endif
+#ifdef HAVE_SQLITE3
+#include <sqlite3.h>
+#endif
+#ifdef HAVE_ORACLE
+#include <oci.h>
+#endif
+
+
/* pid of child process when parachute is used */
static pid_t child_pid = -1;
/* saved child signal handlers */
@@ -346,6 +367,7 @@
error(errno, "Could not unlink pid-file `%s'", pid_file);
}
+
static int change_user(const char *user)
{
struct passwd *pass;
@@ -381,7 +403,6 @@
*/
-
MultibyteInt get_variable_value(Octet *source, int *len)
{
MultibyteInt retval = 0;
@@ -415,6 +436,7 @@
return loc;
}
+
Octet reverse_octet(Octet source)
{
Octet dest;
@@ -431,6 +453,81 @@
}
+void report_versions(const char *boxname)
+{
+ Octstr *os;
+
+ os = version_report_string(boxname);
+ debug("gwlib.gwlib", 0, "%s", octstr_get_cstr(os));
+ octstr_destroy(os);
+}
+
+
+Octstr *version_report_string(const char *boxname)
+{
+ struct utsname u;
+
+ uname(&u);
+ return octstr_format(GW_NAME " %s version `%s'.\nBuild `%s', compiler
`%s'.\n"
+ "System %s, release %s, version %s, machine
%s.\n"
+ "Hostname %s, IP %s.\n"
+ "Libxml version %s.\n"
+#ifdef HAVE_LIBSSL
+ "Using "
+#ifdef HAVE_WTLS_OPENSSL
+ "WTLS library "
+#endif
+ "%s.\n"
+#endif
+#ifdef HAVE_MYSQL
+ "Compiled with MySQL %s, using MySQL %s.\n"
+#endif
+#ifdef HAVE_SDB
+ "Using LibSDB %s.\n"
+#endif
+#if defined(HAVE_SQLITE) || defined(HAVE_SQLITE3)
+ "Using SQLite %s.\n"
+#endif
+#ifdef HAVE_ORACLE
+#if defined(OCI_MAJOR_VERSION) && defined(OCI_MINOR_VERSION)
+ "Using Oracle OCI %d.%d.\n"
+#else
+ "Using Oracle OCI.\n"
+#endif
+#endif
+ "Using %s malloc.\n",
+ boxname, GW_VERSION,
+#ifdef __GNUC__
+ (__DATE__ " " __TIME__) ,
+ __VERSION__,
+#else
+ "unknown" , "unknown",
+#endif
+ u.sysname, u.release, u.version, u.machine,
+ octstr_get_cstr(get_official_name()),
+ octstr_get_cstr(get_official_ip()),
+ LIBXML_DOTTED_VERSION,
+#ifdef HAVE_LIBSSL
+ OPENSSL_VERSION_TEXT,
+#endif
+#ifdef HAVE_MYSQL
+ MYSQL_SERVER_VERSION, mysql_get_client_info(),
+#endif
+#ifdef HAVE_SDB
+ LIBSDB_VERSION,
+#endif
+#if defined(HAVE_SQLITE) || defined(HAVE_SQLITE3)
+ SQLITE_VERSION,
+#endif
+#ifdef HAVE_ORACLE
+#if defined(OCI_MAJOR_VERSION) && defined(OCI_MINOR_VERSION)
+ OCI_MAJOR_VERSION, OCI_MINOR_VERSION,
+#endif
+#endif
+ octstr_get_cstr(gwmem_type()));
+}
+
+
int get_and_set_debugs(int argc, char **argv,
int (*find_own) (int index, int argc, char **argv))
{
@@ -492,6 +589,11 @@
} else if (strcmp(argv[i], "-g")==0 || strcmp(argv[i],
"--generate")==0) {
cfg_dump_all();
exit(0);
+ } else if (strcmp(argv[i], "--version")==0) {
+ Octstr *version = version_report_string(basename(argv[0]));
+ printf("%s", octstr_get_cstr(version));
+ octstr_destroy(version);
+ exit(0);
} else if (strcmp(argv[i],"--")==0) {
i++;
break;
Index: doc/userguide/userguide.xml
===================================================================
RCS file: /home/cvs/gateway/doc/userguide/userguide.xml,v
retrieving revision 1.344
diff -u -r1.344 userguide.xml
--- doc/userguide/userguide.xml 14 Jan 2009 11:11:46 -0000 1.344
+++ doc/userguide/userguide.xml 14 Feb 2009 15:00:56 -0000
@@ -1654,6 +1654,12 @@
<title>Kannel Command Line Options</title>
<tgroup cols="2">
<tbody>
+ <row><entry><literal></literal></entry>
+ <entry morerows="1" valign="bottom">
+ Print the version of the Kannel binary.
+ </entry></row>
+ <row><entry><literal>--version</literal></entry></row>
+
<row><entry><literal>-v <level></literal></entry>
<entry morerows="1" valign="bottom">
Set verbosity level for stdout (screen) logging. Default is
0,