osmo-remsim (0.2.3) unstable; urgency=medium

  [ Harald Welte ]
  * add missing debian/libosmo-rspro1.install

 -- Pau Espin Pedrol <pespin@sysmocom.de>  Thu, 09 Jan 2020 16:47:52 +0100

osmo-remsim (0.2.2) unstable; urgency=medium

  [ Harald Welte ]
  * rspro_client_fsm: Fix another memory leak
  * remsim-apitool: Fix slotmap-create (integer needed, not string!)
  * rspro_dec_msg: Simplify msgb ownership handling
  * bankd_client_fsm: close IPA client connection before re-establishing it
  * Check for osmo_fsm_register() error return value
  * cosmetic: more comments; spelling fixes in comments
  * bankd: send IPA CCM ID_ACK after receiving ID_ACK

  [ Joachim Steiger ]
  * add contrib/remsim-apitool.py to control the REST-interface of osmo-remsim-server

  [ Kévin Redon ]
  * remsim-apitool.py: pass IDs as integer
  * client: fix help strings

 -- Harald Welte <laforge@osmocom.org>  Tue, 03 Dec 2019 20:38:18 +0100

osmo-remsim (0.2.1) unstable; urgency=medium

  * rspro_client_fsm/remsim_client: Fix double-free
  * usermanual: disable non-existant architecture chapter
  * doc/manuals: Use correct path (osmo-remsim-doc)
  * debian: build manuals as osmo-remsim-doc package

 -- Harald Welte <laforge@gnumonks.org>  Tue, 23 Jul 2019 20:37:00 +0200

osmo-remsim (0.2.0) unstable; urgency=medium

  [ Harald Welte ]
  * bankd: move bank_id / num_slots from g_bankd to remsim_srv_conn
  * bankd: Use configured bank_id/nr_slots in ConnectBankReq
  * cosmetic: remove some FIXME that actually are already fixed
  * Makefile.am: Fix dependency of server on libosmo-rspro.la
  * Add libosmo-rspro.pc.in for pkg-config integration
  * rename executables to include osmo- name prefix
  * Add Debian packaging information
  * debian/control: add missing libcsv dependency
  * configure.ac: Add --disable-remsim-server
  * configure.ac: Add --disable-remsim-bankd
  * update .gitignore
  * README.md: add 'osmo-' prefix to remsim-{server,bankd,client}
  * doc: REST API url is /banks, not /bankds
  * bankd: Don't read CSV file until _after_ handling options
  * doc: Describe how to obtains PC/SC reader string names
  * remsim_server: Enable talloc tracking of msgb allocations
  * remsim_client: Enable talloc tracking of msgb allocations
  * rspro_server.c: Fix memory leak in processing inbound RSPRO
  * remsim_client: Fix memory leak receiving RSPRO messages
  * rspro_client_fsm: Fix memory leak processing RSPRO
  * track libulfius and jansson memory allocations with talloc
  * server: rest_api: Fix memory leak in slotmap post

  [ Joachim Steiger ]
  * osmo-remsim-bankd: Fix typo in help for --num-slots
  * osmo-remsim-server: add systemd service script
  * osmo-remsim-bankd: add systemd service script and etc/default config
  * osmo-remsim-client: add systemd service script template and etc/default configs
  * add examples to the command line options for remsim-bankd and remsim-client
  * add examples to remsim-server (json output)

  [ Oliver Smith ]
  * contrib/jenkins.sh: run "make maintainer-clean"

  [ Martin Hauke ]
  * Fix common misspellings and typos

 -- Harald Welte <laforge@gnumonks.org>  Sun, 21 Jul 2019 21:12:24 +0200

osmo-remsim (0.1.0) unstable; urgency=medium

  [ Harald Welte ]
  * initial release.

 -- Harald Welte <laforge@gnumonks.org>  Wed, 03 Apr 2019 08:59:40 +0200
