Skip to content
Snippets Groups Projects
Select Git revision
  • 24f2d1d65481f991bfc8ad35de83f70acb5f6e38
  • master default protected
  • release/202005
  • release/202001
  • release/201912
  • release/201911
  • release/releaseWindowsTestOne
  • release/windowsReleaseTest
  • release/releaseTest
  • release/releaseWindowsTest
  • release/201910
  • release/qt/201910
  • release/windows-test/201910
  • release/201908
  • release/201906
  • release/201905
  • release/201904
  • release/201903
  • release/201902
  • release/201901
  • release/201812
  • 4.0.0
  • 2.2.0
  • 2.1.0
  • 2.0.1
  • 2.0.0
  • 1.4.1
  • 1.4.0
  • 1.3.0
  • 1.2.0
  • 1.1.0
31 results

fileutils.cpp

Blame
  • Code owners
    Assign users and groups as approvers for specific file changes. Learn more.
    dhtnode.cpp 14.49 KiB
    /*
     *  Copyright (C) 2014-2016 Savoir-faire Linux Inc.
     *
     *  Author: Adrien Béraud <adrien.beraud@savoirfairelinux.com>
     *
     *  This program is free software; you can redistribute it 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, write to the Free Software
     *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301 USA.
     */
    
    #include "tools_common.h"
    extern "C" {
    #include <gnutls/gnutls.h>
    }
    
    #include <set>
    #include <thread> // std::this_thread::sleep_for
    
    using namespace dht;
    
    void print_usage() {
        std::cout << "Usage: dhtnode [-p local_port] [-b bootstrap_host:port]" << std::endl << std::endl;
        std::cout << "dhtnode, a simple OpenDHT command line node runner." << std::endl;
        std::cout << "Report bugs to: http://opendht.net" << std::endl;
    }
    
    void print_id_req() {
        std::cout << "An identity is required to perform this operation (run with -i)" << std::endl;
    }
    
    void print_node_info(const std::shared_ptr<DhtRunner>& dht, const dht_params& params) {
        std::cout << "OpenDht node " << dht->getNodeId() << " running on port " <<  dht->getBoundPort() << std::endl;
        if (params.is_bootstrap_node)
            std::cout << "Running in bootstrap mode (discouraged)." << std::endl;
        if (params.generate_identity)
            std::cout << "Public key ID " << dht->getId() << std::endl;
    }
    
    void print_help() {
        std::cout << "OpenDht command line interface (CLI)" << std::endl;
        std::cout << "Possible commands:" << std::endl
                  << "  h, help    Print this help message." << std::endl
                  << "  q, quit    Quit the program." << std::endl
                  << "  log        Start/stop printing DHT logs." << std::endl;
    
        std::cout << std::endl << "Node information:" << std::endl
                  << "  ll         Print basic information and stats about the current node." << std::endl
                  << "  ls         Print basic information about current searches." << std::endl
                  << "  ld         Print basic information about currenty stored values on this node." << std::endl
                  << "  lr         Print the full current routing table of this node" << std::endl;
    
        std::cout << std::endl << "Operations on the DHT:" << std::endl
                  << "  b <ip:port>             Ping potential node at given IP address/port." << std::endl
                  << "  g <key>               Get values at <key>." << std::endl
                  << "  l <key>               Listen for value changes at <key>." << std::endl
                  << "  p <key> <str>         Put string value at <key>." << std::endl
                  << "  s <key> <str>         Put string value at <key>, signed with our generated private key." << std::endl
                  << "  e <key> <dest> <str>  Put string value at <key>, encrypted for <dest> with its public key (if found)." << std::endl;
        std::cout << std::endl << "Indexation operations on the DHT:" << std::endl
                  << "  il <name> <key> [exact match]   Lookup the index named <name> with the key <key>." << std::endl