#!/usr/bin/env python2
# You may redistribute this program and/or modify it under the terms of
# the GNU General Public License as published by the Free Software Foundation,
# either version 3 of the License, or (at your option) any later version.
#
# This program 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 General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program.  If not, see <https://www.gnu.org/licenses/>.

from cjdnsadmin.cjdnsadmin import connectWithAdminInfo;
from cjdnsadmin.publicToIp6 import PublicToIp6_convert;

cjdns = connectWithAdminInfo();

handles = [];
i = 0;
while True:
    resp = cjdns.SessionManager_getHandles(i)
    for h in resp['handles']:
        handles.append(h);
    if not 'more' in resp:
        break
    i += 1

for h in handles:
    r = cjdns.SessionManager_sessionStats(h);
    print(r['ip6'] + '  ' + r['publicKey'] +
        ' v' + str(r['version']) +
        ' dup ' + str(r['duplicates']) +
        ' los ' + str(r['lostPackets']) +
        ' oor ' + str(r['receivedOutOfRange']) +
        ' ' + r['state'].replace('CryptoAuth_', '') + ' ' + str(h));
