diff options
author | Neels Hofmeyr <neels@hofmeyr.de> | 2017-10-24 23:26:53 +0200 |
---|---|---|
committer | Harald Welte <laforge@gnumonks.org> | 2017-10-28 20:34:01 +0200 |
commit | 73d14af2789c95270a2bc3b5a3b8890be42ca28f (patch) | |
tree | 943965fb75e53c78b7e5cbcc7ccef67b6501f7c4 /src/dbd_decode_binary.c | |
parent | 6eb231eccc38c0d90ab09e9456212d28d6c5d5e6 (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.c | 42 |
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; +} |