Press n or j to go to the next uncovered block, b, p or k for the previous block.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 | 1x 1x 1x 1x 820x 820x 818x 2x 817x 6x 811x 811x 809x 2x 26x 23x 7x 26x 7x 3x 7x 7x 19x 9x 25x 6x 19x 19x 9x 9x 2x 9x 10x 1x 1x 1x 1x | 'use strict' /* * Copyright (c) 2013-2021 node-coap contributors. * * node-coap is licensed under an MIT +no-false-attribs license. * All rights not explicitly granted in the MIT license are reserved. * See the included LICENSE file for more details. */ var crypto = require('crypto') , parse = require('coap-packet').parse , or = require('./helpers').or , isOption = require('./helpers').isOption function parseRequest(request, next) { try { request.packet = parse(request.raw) next(null) } catch (err) { next(err) } } function handleServerRequest(request, next) { if (request.proxy) { return next() } try { request.server._handle(request.packet, request.rsinfo) next(null) } catch (err) { next(err) } } function proxyRequest(request, next) { for (var i = 0; i < request.packet.options.length; i++) { if (request.packet.options[i].name.toLowerCase() === 'proxy-uri') { request.proxy = request.packet.options[i].value.toString() } } if (request.proxy) { if (request.packet.token.length === 0) { request.packet.token = crypto.randomBytes(8) } request.server._proxiedRequests[request.packet.token.toString('hex')] = request request.server._sendProxied(request.packet, request.proxy, next) } else { next(null) } } function isObserve(packet) { return packet.options.map(isOption('Observe')).reduce(or, false) } function handleProxyResponse(request, next) { if (request.proxy) { return next(null) } var originalProxiedRequest = request.server._proxiedRequests[request.packet.token.toString('hex')] if ( originalProxiedRequest ) { request.server._sendReverseProxied(request.packet, originalProxiedRequest.rsinfo) if (!isObserve(request.packet)) delete request.server._proxiedRequests[request.packet.token.toString('hex')] next(null) } else { next() } } exports.parseRequest = parseRequest exports.handleServerRequest = handleServerRequest exports.proxyRequest = proxyRequest exports.handleProxyResponse = handleProxyResponse |