Un module nodejs pour travailler avec l'interface d'administration CJDNS sur UDP. Il est conçu pour être cohérent, robuste et facile à utiliser.
Saut:
Il est disponible via npm
npm install cjdns-admin
La fonction createAdmin
renvoie un EventEmitter4 avec des membres pour chaque fonction d'administration et leur suppléant. Il contient également des membres qui gèrent la pagination automatique pour les fonctions paginées.
Possibilités :
Usage:
var cjdnsAdmin = require ( 'cjdns-admin' ) ,
admin ,
channel ;
// create a new Admin
admin = cjdnsAdmin . createAdmin ( {
ip : '127.0.0.1' ,
port : 11234 ,
password : 'my cjdns password'
} ) ;
// ping the admin
channel = admin . ping ( ) ;
// create a response handler
function pingResponse ( res ) {
// process ping response
console . dir ( res ) ;
}
// handle the response
admin . on ( channel , pingResponse ) ;
Original | Alterner |
---|---|
Admin_asyncEnabled | admin.asyncEnabled |
Admin_availableFonctions | admin.availableFonctions |
admin.availableFunctionsPaged | |
AdminLog_logMany | log.logMany |
AdminLog_subscribe | log.subscribe |
AdminLog_abonnements | journal.abonnements |
AdminLog_unsubscribe | log.désabonnement |
Allocator_bytesAllocated | allocator.bytesAllocated |
Allocator_snapshot | allocateur.instantané |
Mots de passe autorisés_add | authorizedPasswords.add |
Liste_de mots de passe autorisés | autoriséPasswords.list |
AuthorizedPasswords_remove | authorizedPasswords.remove |
Core_exit | core.exit |
Core_initTunnel | core.initTunnel |
Core_pid | core.pid |
InterfaceController_disconnectPeer | interfaceController.disconnectPeer |
InterfaceController_peerStats | interfaceController.peerStats |
interfaceController.peerStatsPaged | |
IpTunnel_allowConnection | ipTunnel.allowConnection |
IpTunnel_connectTo | ipTunnel.connectTo |
IpTunnel_listConnections | ipTunnel.listConnexions |
IpTunnel_removeConnection | ipTunnel.removeConnection |
IpTunnel_showConnection | ipTunnel.showConnection |
Concierge_dumpRumorMill | concierge.dumpRumorMill |
mémoire | admin.mémoire |
nodeStore.dumpTablePaged | |
NodeStore_getLink | nodeStore.getLink |
NodeStore_getRouteLabel | nodeStore.getRouteLabel |
NodeStore_nodeForAddr | nodeStore.nodeForAddr |
pinger | admin.ping |
RouterModule_findNode | routerModule.findNode |
RouterModule_getPeers | routerModule.getPeers |
RouterModule_lookup | routerModule.lookup |
RouterModule_nextHop | routerModule.nextHop |
RouterModule_pingNode | routerModule.pingNode |
SearchRunner_showActiveSearch | searchRunner.showActiveSearch |
SearchRunner_search | searchRunner.search |
Security_checkPermissions | security.checkPermissions |
Chroot_sécurité | sécurité.chroot |
Sécurité_getUser | sécurité.getUser |
Sécurité_nofiles | sécurité.nofiles |
Sécurité_noforks | sécurité.noforks |
Sécurité_seccomp | sécurité.seccomp |
Security_setupComplete | sécurité.setupComplete |
Utilisateur_set_sécurité | sécurité.setUser |
SessionManager_getHandles | sessionManager.getHandles |
sessionManager.getHandlesPaged | |
SessionManager_sessionStats | sessionManager.sessionStats |
SwitchPinger_ping | switchPinger.ping |
UDPInterface_beginConnection | udpInterface.beginConnection |
UDPInterface_nouveau | udpInterface.nouveau |
Usage:
channel = admin . asyncEnabled ( ) ;
admin . once ( channel , processResponse ) ;
Usage:
var channel ,
options ;
options = {
page : 0
} ;
channel = admin . availableFunctions ( options ) ;
admin . once ( channel , processResponse ) ;
Usage:
var channel ,
options ;
options = {
count : 0
} ;
channel = admin . log . logMany ( options ) ;
admin . once ( channel , processResponse ) ;
Usage:
var channel ,
options ;
options = {
file : '' ,
level : '' ,
line : 0
} ;
channel = admin . log . subscribe ( options ) ;
admin . once ( channel , processResponse ) ;
Usage:
channel = admin . log . subscriptions ( ) ;
admin . once ( channel , processResponse ) ;
Usage:
var channel ,
options ;
options = {
streamId : ''
} ;
channel = admin . log . unsubscribe ( options ) ;
admin . once ( channel , processResponse ) ;
Usage:
channel = admin . allocator . bytesAllocated ( ) ;
admin . once ( channel , processResponse ) ;
Usage:
var channel ,
options ;
options = {
includeAllocations : 0
} ;
channel = admin . allocator . snapshot ( options ) ;
admin . once ( channel , processResponse ) ;
Usage:
var channel ,
options ;
options = {
authType : 0 ,
ipv6 : '' ,
password : '' ,
user : ''
} ;
channel = admin . authorizedPasswords . add ( options ) ;
admin . once ( channel , processResponse ) ;
Usage:
channel = admin . authorizedPasswords . list ( ) ;
admin . once ( channel , processResponse ) ;
Usage:
var channel ,
options ;
options = {
user : ''
} ;
channel = admin . authorizedPasswords . remove ( options ) ;
admin . once ( channel , processResponse ) ;
Usage:
channel = admin . core . exit ( ) ;
admin . once ( channel , processResponse ) ;
Usage:
var channel ,
options ;
options = {
desiredTunName : ''
} ;
channel = admin . core . initTunnel ( options ) ;
admin . once ( channel , processResponse ) ;
Usage:
channel = admin . core . pid ( ) ;
admin . once ( channel , processResponse ) ;
Usage:
var channel ,
options ;
options = {
pubkey : ''
} ;
channel = admin . interfaceController . disconnectPeer ( options ) ;
admin . once ( channel , processResponse ) ;
Usage:
var channel ,
options ;
options = {
page : 0
} ;
channel = admin . interfaceController . peerStats ( options ) ;
admin . once ( channel , processResponse ) ;
Usage:
var channel ,
options ;
options = {
ip4Address : '' ,
ip4Prefix : 0 ,
ip6Address : '' ,
ip6Prefix : 0 ,
publicKeyOfAuthorizedNode : ''
} ;
channel = admin . ipTunnel . allowConnection ( options ) ;
admin . once ( channel , processResponse ) ;
Usage:
var channel ,
options ;
options = {
publicKeyOfNodeToConnectTo : ''
} ;
channel = admin . ipTunnel . connectTo ( options ) ;
admin . once ( channel , processResponse ) ;
Usage:
channel = admin . ipTunnel . listConnections ( ) ;
admin . once ( channel , processResponse ) ;
Usage:
var channel ,
options ;
options = {
connection : 0
} ;
channel = admin . ipTunnel . removeConnection ( options ) ;
admin . once ( channel , processResponse ) ;
Usage:
var channel ,
options ;
options = {
connection : 0
} ;
channel = admin . ipTunnel . showConnection ( options ) ;
admin . once ( channel , processResponse ) ;
Usage:
var channel ,
options ;
options = {
mill : '' ,
page : 0
} ;
channel = admin . janitor . dumpRumorMill ( options ) ;
admin . once ( channel , processResponse ) ;
Usage:
channel = admin . memory ( ) ;
admin . once ( channel , processResponse ) ;
Usage:
var channel ,
options ;
options = {
page : 0
} ;
channel = admin . nodeStore . dumpTable ( options ) ;
admin . once ( channel , processResponse ) ;
Usage:
var channel ,
options ;
options = {
linkNum : 0 ,
parent : ''
} ;
channel = admin . nodeStore . getLink ( options ) ;
admin . once ( channel , processResponse ) ;
Usage:
var channel ,
options ;
options = {
pathParentToChild : '' ,
pathToParent : ''
} ;
channel = admin . nodeStore . getRouteLabel ( options ) ;
admin . once ( channel , processResponse ) ;
Usage:
var channel ,
options ;
options = {
ip : ''
} ;
channel = admin . nodeStore . nodeForAddr ( options ) ;
admin . once ( channel , processResponse ) ;
Usage:
channel = admin . ping ( ) ;
admin . once ( channel , processResponse ) ;
Usage:
var channel ,
options ;
options = {
nodeToQuery : '' ,
target : '' ,
timeout : 0
} ;
channel = admin . routerModule . findNode ( options ) ;
admin . once ( channel , processResponse ) ;
Usage:
var channel ,
options ;
options = {
nearbyPath : '' ,
path : '' ,
timeout : 0
} ;
channel = admin . routerModule . getPeers ( options ) ;
admin . once ( channel , processResponse ) ;
Usage:
var channel ,
options ;
options = {
address : ''
} ;
channel = admin . routerModule . lookup ( options ) ;
admin . once ( channel , processResponse ) ;
Usage:
var channel ,
options ;
options = {
nodeToQuery : '' ,
target : '' ,
timeout : 0
} ;
channel = admin . routerModule . nextHop ( options ) ;
admin . once ( channel , processResponse ) ;
Usage:
var channel ,
options ;
options = {
path : '' ,
timeout : 0
} ;
channel = admin . routerModule . pingNode ( options ) ;
admin . once ( channel , processResponse ) ;
Usage:
var channel ,
options ;
options = {
ipv6 : '' ,
maxRequests : 0
} ;
channel = admin . searchRunner . search ( options ) ;
admin . once ( channel , processResponse ) ;
Usage:
var channel ,
options ;
options = {
number : 0
} ;
channel = admin . searchRunner . showActiveSearch ( options ) ;
admin . once ( channel , processResponse ) ;
Usage:
channel = admin . security . checkPermissions ( ) ;
admin . once ( channel , processResponse ) ;
Usage:
var channel ,
options ;
options = {
root : ''
} ;
channel = admin . security . chroot ( options ) ;
admin . once ( channel , processResponse ) ;
Usage:
var channel ,
options ;
options = {
user : ''
} ;
channel = admin . security . getUser ( options ) ;
admin . once ( channel , processResponse ) ;
Usage:
channel = admin . security . nofiles ( ) ;
admin . once ( channel , processResponse ) ;
Usage:
channel = admin . security . noforks ( ) ;
admin . once ( channel , processResponse ) ;
Usage:
channel = admin . security . seccomp ( ) ;
admin . once ( channel , processResponse ) ;
Usage:
channel = admin . security . setupComplete ( ) ;
admin . once ( channel , processResponse ) ;
Usage:
var channel ,
options ;
options = {
keepNetAdmin : 0 ,
uid : 0
} ;
channel = admin . security . setUser ( options ) ;
admin . once ( channel , processResponse ) ;
Usage:
var channel ,
options ;
options = {
page : 0
} ;
channel = admin . sessionManager . getHandles ( options ) ;
admin . once ( channel , processResponse ) ;
Usage:
var channel ,
options ;
options = {
handle : 0
} ;
channel = admin . sessionManager . sessionStats ( options ) ;
admin . once ( channel , processResponse ) ;
Usage:
var channel ,
options ;
options = {
data : '' ,
keyPing : 0 ,
path : '' ,
timeout : 0
} ;
channel = admin . switchPinger . ping ( options ) ;
admin . once ( channel , processResponse ) ;
Usage:
var channel ,
options ;
options = {
address : '' ,
interfaceNumber : 0 ,
password : '' ,
publicKey : ''
} ;
channel = admin . udpInterface . beginConnection ( options ) ;
admin . once ( channel , processResponse ) ;
Usage:
var channel ,
options ;
options = {
bindAddress : ''
} ;
channel = admin . udpInterface . new ( options ) ;
admin . once ( channel , processResponse ) ;
Les fonctions paginées récupéreront toutes les pages et renverront le résultat. La réussite des options est facultative. Le rappel reçoit err
et results
sous forme d'arguments et les deux sont de type Array
.
function pagedCallback ( err , results ) {
if ( err ) {
return console . log ( 'paged callback error' , err ) ;
}
console . log ( 'paged function results array' , ) ;
}
admin . availableFunctionsPaged ( pagedCallback ) ;
admin . interfaceController . peerStatsPaged ( pagedCallback ) ;
admin . nodeStore . dumpTablePaged ( pagedCallback ) ;
admin . sessionManager . getHandlesPaged ( pagedCallback ) ;
// mill property is optional
admin . janitor . dumpRumorMillPaged ( { mill : '' } , pagedCallback ) ;
Créez les variables d'environnement que les tests rechercheront :
# cjdns development environment
export CJDNS_ADMIN_PORT=11234
export CJDNS_ADMIN_IP=127.0.0.1
export CJDNS_ADMIN_PASSWORD=from your cjdroute config
Les outils sont disponibles via des scripts npm. Voir package.json
dans la section scripts
.
npm run lint
# test offline functionality
npm test
npm test -- --watch
# test online, UDP, and potentially dangerous functions
# on an actual node
npm run test-live
npm run test-live -- --watch
# render docs to html for testing
npm run doc-gen
npm run doc-watch