diff --git a/README.md b/README.md index ec2e951..f64be7f 100644 --- a/README.md +++ b/README.md @@ -43,8 +43,6 @@ client on your system: npm install ldapjs -DTrace support is included in ldapjs. To enable it, `npm install dtrace-provider`. - ## License MIT. diff --git a/examples/snoopldap.d b/examples/snoopldap.d deleted file mode 100755 index 16a92b0..0000000 --- a/examples/snoopldap.d +++ /dev/null @@ -1,24 +0,0 @@ -#!/usr/sbin/dtrace -s - -#pragma D option quiet - -BEGIN -{ - printf("%-8s %-8s %-16s %-15s %-15s %s\n", - "LATENCY", "OPTYPE", "REMOTE IP", "BIND DN", "REQ DN", - "STATUS"); -} - -ldapjs*:::server-*-start -{ - starts[arg0] = timestamp; -} - -ldapjs*:::server-*-done -/starts[arg0]/ -{ - printf("%6dms %-8s %-16s %-15s %-15s %d\n", - (timestamp - starts[arg0]) / 1000000, strtok(probename + 7, "-"), - copyinstr(arg1), copyinstr(arg2), copyinstr(arg3), arg4); - starts[arg0] = 0; -} diff --git a/lib/dtrace.js b/lib/dtrace.js deleted file mode 100644 index 35f4456..0000000 --- a/lib/dtrace.js +++ /dev/null @@ -1,120 +0,0 @@ -// Copyright 2011 Mark Cavage, Inc. All rights reserved.s - -/// --- Globals - -let SERVER_PROVIDER -let DTRACE_ID = 0 -const MAX_INT = 4294967295 - -/* - * Args: - * server-*-start: - * 0 -> id - * 1 -> remoteIP - * 2 -> bindDN - * 3 -> req.dn - * 4,5 -> op specific - * - * server-*-done: - * 0 -> id - * 1 -> remoteIp - * 2 -> bindDN - * 3 -> requsetDN - * 4 -> status - * 5 -> errorMessage - * - */ -const SERVER_PROBES = { - - // 4: attributes.length - 'server-add-start': ['int', 'char *', 'char *', 'char *', 'int'], - 'server-add-done': ['int', 'char *', 'char *', 'char *', 'int', 'char *'], - - 'server-bind-start': ['int', 'char *', 'char *', 'char *'], - 'server-bind-done': ['int', 'char *', 'char *', 'char *', 'int', 'char *'], - - // 4: attribute, 5: value - 'server-compare-start': ['int', 'char *', 'char *', 'char *', - 'char *', 'char *'], - 'server-compare-done': ['int', 'char *', 'char *', 'char *', 'int', 'char *'], - - 'server-delete-start': ['int', 'char *', 'char *', 'char *'], - 'server-delete-done': ['int', 'char *', 'char *', 'char *', 'int', 'char *'], - - // 4: requestName, 5: requestValue - 'server-exop-start': ['int', 'char *', 'char *', 'char *', 'char *', - 'char *'], - 'server-exop-done': ['int', 'char *', 'char *', 'char *', 'int', 'char *'], - - // 4: changes.length - 'server-modify-start': ['int', 'char *', 'char *', 'char *', 'int'], - 'server-modify-done': ['int', 'char *', 'char *', 'char *', 'int', 'char *'], - - // 4: newRdn, 5: newSuperior - 'server-modifydn-start': ['int', 'char *', 'char *', 'char *', 'char *', - 'char *'], - 'server-modifydn-done': ['int', 'char *', 'char *', 'char *', 'int', - 'char *'], - - // 4: scope, 5: filter - 'server-search-start': ['int', 'char *', 'char *', 'char *', 'char *', - 'char *'], - 'server-search-done': ['int', 'char *', 'char *', 'char *', 'int', 'char *'], - // Last two are searchEntry.DN and seachEntry.attributes.length - 'server-search-entry': ['int', 'char *', 'char *', 'char *', 'char *', 'int'], - - 'server-unbind-start': ['int', 'char *', 'char *', 'char *'], - 'server-unbind-done': ['int', 'char *', 'char *', 'char *', 'int', 'char *'], - - 'server-abandon-start': ['int', 'char *', 'char *', 'char *'], - 'server-abandon-done': ['int', 'char *', 'char *', 'char *', 'int', 'char *'], - - // remote IP - 'server-connection': ['char *'] -} - -/// --- API - -module.exports = (function () { - if (!SERVER_PROVIDER) { - try { - const dtrace = require('dtrace-provider') - SERVER_PROVIDER = dtrace.createDTraceProvider('ldapjs') - - Object.keys(SERVER_PROBES).forEach(function (p) { - const args = SERVER_PROBES[p].splice(0) - args.unshift(p) - - dtrace.DTraceProvider.prototype.addProbe.apply(SERVER_PROVIDER, args) - }) - } catch (e) { - SERVER_PROVIDER = { - fire: function () { - }, - enable: function () { - }, - addProbe: function () { - const p = { - fire: function () { - } - } - return (p) - }, - removeProbe: function () { - }, - disable: function () { - } - } - } - - SERVER_PROVIDER.enable() - - SERVER_PROVIDER._nextId = function () { - if (DTRACE_ID === MAX_INT) { DTRACE_ID = 0 } - - return ++DTRACE_ID - } - } - - return SERVER_PROVIDER -}()) diff --git a/lib/server.js b/lib/server.js index 1e786e9..1006c42 100644 --- a/lib/server.js +++ b/lib/server.js @@ -10,7 +10,6 @@ const util = require('util') const VError = require('verror').VError const { DN, RDN } = require('@ldapjs/dn') -const dtrace = require('./dtrace') const errors = require('./errors') const Protocol = require('@ldapjs/protocol') @@ -331,10 +330,6 @@ function Server (options) { setupConnection(conn) log.trace('new connection from %s', conn.ldap.id) - dtrace.fire('server-connection', function () { - return [conn.remoteAddress] - }) - conn.parser = new Parser({ log: options.log })