aboutsummaryrefslogtreecommitdiffstats
path: root/src/dbd_decode_binary.c
diff options
context:
space:
mode:
authorNeels Hofmeyr <neels@hofmeyr.de>2017-10-24 23:26:53 +0200
committerHarald Welte <laforge@gnumonks.org>2017-10-28 20:34:01 +0200
commit73d14af2789c95270a2bc3b5a3b8890be42ca28f (patch)
tree943965fb75e53c78b7e5cbcc7ccef67b6501f7c4 /src/dbd_decode_binary.c
parent6eb231eccc38c0d90ab09e9456212d28d6c5d5e6 (diff)
add osmo-hlr-db-tool, program to migrate from osmo-nitb db
Move macro copy_sqlite3_text_to_buf() to db.h, so it can be used in hlr_db_tool.c. Add _dbd_decode_binary() from libdbi to avoid depending on the entire libdbi just for KI BLOB decoding. Add it in a separate file, copying its own license, the lGPL. Offer commandline option "import-nitb-db" to read in an old osmo-nitb database and copy subscriber IMSIs and 2G auth data to OsmoHLR db format. Anticipate future command line options like "import-csv", so keep the code generalized. Change-Id: I0dfa6ec033dd93161c1adc2ce1637195fe5b7a63
Diffstat (limited to 'src/dbd_decode_binary.c')
-rw-r--r--src/dbd_decode_binary.c42
1 files changed, 42 insertions, 0 deletions
diff --git a/src/dbd_decode_binary.c b/src/dbd_decode_binary.c
new file mode 100644
index 0000000..e1a98ad
--- /dev/null
+++ b/src/dbd_decode_binary.c
@@ -0,0 +1,42 @@
+/* This function is blatantly copied from libdbi, from
+ * https://sourceforge.net/p/libdbi/libdbi/ci/master/tree/src/dbd_helper.c
+ * to save having to depend on the entire libdbi just for KI BLOB decoding.
+ */
+
+/*
+ * libdbi - database independent abstraction layer for C.
+ * Copyright (C) 2001-2003, David Parker and Mark Tobenkin.
+ * http://libdbi.sourceforge.net
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ *
+ * $Id: dbd_helper.c,v 1.44 2011/08/09 11:14:14 mhoenicka Exp $
+ */
+
+#include <sys/types.h>
+
+size_t _dbd_decode_binary(const unsigned char *in, unsigned char *out){
+ int i, e;
+ unsigned char c;
+ e = *(in++);
+ i = 0;
+ while( (c = *(in++))!=0 ){
+ if( c==1 ){
+ c = *(in++) - 1;
+ }
+ out[i++] = c + e;
+ }
+ return (size_t)i;
+}