mranney / http_trace Goto Github PK
View Code? Open in Web Editor NEWLive HTTP and WebSocket packet capture and protocol decoding
Live HTTP and WebSocket packet capture and protocol decoding
songworld$ sudo npm -g install https://github.com/mranney/http_trace.git
Password:
/usr/local/bin/http_trace -> /usr/local/lib/node_modules/http_trace/http_trace
[email protected] install /usr/local/lib/node_modules/http_trace/node_modules/socketwatcher
node-gyp rebuild
CXX(target) Release/obj.target/socketwatcher/socket_watcher.o
In file included from ../socket_watcher.cpp:5:
In file included from ../socket_watcher.hpp:8:
In file included from ../node_modules/nan/nan.h:80:
In file included from ../node_modules/nan/nan_new.h:190:
../node_modules/nan/nan_implementation_12_inl.h:181:66: error: too many arguments to function call, expected at most
2, have 4
return v8::Signature::New(v8::Isolate::GetCurrent(), receiver, argc, argv);
~~~~~~~~~~~~~~~~~~ ^~~~~~~~~~
/Users/songworld/.node-gyp/5.1.1/include/node/v8.h:4674:3: note: 'New' declared here
static Local New(
^
In file included from ../socket_watcher.cpp:5:
In file included from ../socket_watcher.hpp:8:
../node_modules/nan/nan.h:171:25: error: redefinition of '_NanEnsureLocal'
NAN_INLINE v8::Local _NanEnsureLocal(v8::Local val) {
^
../node_modules/nan/nan.h:166:25: note: previous definition is here
NAN_INLINE v8::Local _NanEnsureLocal(v8::Handle val) {
^
../node_modules/nan/nan.h:317:12: error: no matching function for call to '_NanEnsureLocal'
return NanEscapeScope(NanNew(v8::Undefined(v8::Isolate::GetCurrent())));
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../node_modules/nan/nan.h:303:43: note: expanded from macro 'NanEscapeScope'
^~~~~~~~~~~~~~~
../node_modules/nan/nan.h:171:25: note: candidate template ignored: substitution failure [with T = v8::Primitive]
NAN_INLINE v8::Local _NanEnsureLocal(v8::Local val) {
^
../node_modules/nan/nan.h:322:12: error: no matching function for call to '_NanEnsureLocal'
return NanEscapeScope(NanNew(v8::Null(v8::Isolate::GetCurrent())));
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../node_modules/nan/nan.h:303:43: note: expanded from macro 'NanEscapeScope'
^~~~~~~~~~~~~~~
../node_modules/nan/nan.h:171:25: note: candidate template ignored: substitution failure [with T = v8::Primitive]
NAN_INLINE v8::Local _NanEnsureLocal(v8::Local val) {
^
../node_modules/nan/nan.h:327:12: error: no matching function for call to '_NanEnsureLocal'
return NanEscapeScope(NanNew(v8::True(v8::Isolate::GetCurrent())));
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../node_modules/nan/nan.h:303:43: note: expanded from macro 'NanEscapeScope'
^~~~~~~~~~~~~~~
../node_modules/nan/nan.h:171:25: note: candidate template ignored: substitution failure [with T = v8::Boolean]
NAN_INLINE v8::Local _NanEnsureLocal(v8::Local val) {
^
../node_modules/nan/nan.h:332:12: error: no matching function for call to '_NanEnsureLocal'
return NanEscapeScope(NanNew(v8::False(v8::Isolate::GetCurrent())));
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../node_modules/nan/nan.h:303:43: note: expanded from macro 'NanEscapeScope'
^~~~~~~~~~~~~~~
../node_modules/nan/nan.h:171:25: note: candidate template ignored: substitution failure [with T = v8::Boolean]
NAN_INLINE v8::Local _NanEnsureLocal(v8::Local val) {
^
../node_modules/nan/nan.h:564:13: error: no member named 'smalloc' in namespace 'node'
, node::smalloc::FreeCallback callback
~~~~~~^
../node_modules/nan/nan.h:575:12: error: no matching function for call to 'New'
return node::Buffer::New(v8::Isolate::GetCurrent(), data, size);
^~~~~~~~~~~~~~~~~
/Users/songworld/.node-gyp/5.1.1/include/node/node_buffer.h:31:40: note: candidate function not viable: no known
conversion from 'uint32_t' (aka 'unsigned int') to 'enum encoding' for 3rd argument
NODE_EXTERN v8::MaybeLocalv8::Object New(v8::Isolate* isolate,
^
/Users/songworld/.node-gyp/5.1.1/include/node/node_buffer.h:43:40: note: candidate function not viable: 2nd argument
('const char ') would lose const qualifier
NODE_EXTERN v8::MaybeLocalv8::Object New(v8::Isolate isolate,
^
/Users/songworld/.node-gyp/5.1.1/include/node/node_buffer.h:28:40: note: candidate function not viable: requires 2
arguments, but 3 were provided
NODE_EXTERN v8::MaybeLocalv8::Object New(v8::Isolate* isolate, size_t length);
^
/Users/songworld/.node-gyp/5.1.1/include/node/node_buffer.h:36:40: note: candidate function not viable: requires 5
arguments, but 3 were provided
NODE_EXTERN v8::MaybeLocalv8::Object New(v8::Isolate* isolate,
^
In file included from ../socket_watcher.cpp:5:
In file included from ../socket_watcher.hpp:8:
../node_modules/nan/nan.h:579:12: error: no viable conversion from 'v8::MaybeLocalv8::Object' to
'v8::Localv8::Object'
return node::Buffer::New(v8::Isolate::GetCurrent(), size);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/songworld/.node-gyp/5.1.1/include/node/v8.h:210:7: note: candidate constructor (the implicit copy constructor)
not viable: no known conversion from 'v8::MaybeLocalv8::Object' to 'const v8::Localv8::Object &' for 1st
argument
class Local {
^
/Users/songworld/.node-gyp/5.1.1/include/node/v8.h:210:7: note: candidate constructor (the implicit move constructor)
not viable: no known conversion from 'v8::MaybeLocalv8::Object' to 'v8::Localv8::Object &&' for 1st
argument
class Local {
^
/Users/songworld/.node-gyp/5.1.1/include/node/v8.h:214:13: note: candidate template ignored: could not match 'Local'
against 'MaybeLocal'
V8_INLINE Local(Local that)
^
/Users/songworld/.node-gyp/5.1.1/include/node/v8.h:326:13: note: candidate template ignored: could not match 'S '
against 'v8::MaybeLocalv8::Object'
V8_INLINE Local(S that)
^
In file included from ../socket_watcher.cpp:5:
In file included from ../socket_watcher.hpp:8:
../node_modules/nan/nan.h:586:26: error: no member named 'Use' in namespace 'node::Buffer'
return node::Buffer::Use(v8::Isolate::GetCurrent(), data, size);
~~~~~~~~~~~~~~^
../node_modules/nan/nan.h:1403:12: error: no matching function for call to '_NanEnsureLocal'
return NanEscapeScope(NanNew(handle)->Get(kCallbackIndex)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../node_modules/nan/nan.h:303:43: note: expanded from macro 'NanEscapeScope'
^~~~~~~~~~~~~~~
../node_modules/nan/nan.h:171:25: note: candidate template ignored: substitution failure [with T = v8::Function]
NAN_INLINE v8::Local _NanEnsureLocal(v8::Local val) {
^
../node_modules/nan/nan.h:1452:12: error: no matching function for call to '_NanEnsureLocal'
return NanEscapeScope(node::MakeCallback(
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../node_modules/nan/nan.h:303:43: note: expanded from macro 'NanEscapeScope'
^~~~~~~~~~~~~~~
../node_modules/nan/nan.h:171:25: note: candidate template ignored: substitution failure [with T = v8::Value]
NAN_INLINE v8::Local _NanEnsureLocal(v8::Local val) {
^
../node_modules/nan/nan.h:1522:12: error: no matching function for call to '_NanEnsureLocal'
return NanEscapeScope(handle->Get(NanNew(key)).Asv8::Object());
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../node_modules/nan/nan.h:303:43: note: expanded from macro 'NanEscapeScope'
^~~~~~~~~~~~~~~
../node_modules/nan/nan.h:171:25: note: candidate template ignored: substitution failure [with T = v8::Object]
NAN_INLINE v8::Local _NanEnsureLocal(v8::Local val) {
^
13 errors generated.
make: *** [Release/obj.target/socketwatcher/socket_watcher.o] Error 1
gyp ERR! build error
gyp ERR! stack Error: make
failed with exit code: 2
gyp ERR! stack at ChildProcess.onExit (/usr/local/lib/node_modules/npm/node_modules/node-gyp/lib/build.js:270:23)
gyp ERR! stack at emitTwo (events.js:87:13)
gyp ERR! stack at ChildProcess.emit (events.js:172:7)
gyp ERR! stack at Process.ChildProcess._handle.onexit (internal/child_process.js:200:12)
gyp ERR! System Darwin 15.0.0
gyp ERR! command "/usr/local/Cellar/node/5.1.1/bin/node" "/usr/local/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
gyp ERR! cwd /usr/local/lib/node_modules/http_trace/node_modules/socketwatcher
gyp ERR! node -v v5.1.1
gyp ERR! node-gyp -v v3.0.3
gyp ERR! not ok
npm WARN install:[email protected] [email protected] install: node-gyp rebuild
npm WARN install:[email protected] Exit status 1
/usr/local/lib
└── (empty)
This project does not seem to work with the latest versions of NodeJS (I'm running 0.12.1).
The problem seems to be related to the native HTTPParser
module in NodeJS:
var HTTPParser = process.binding("http_parser").HTTPParser;
I've tried running tests on my own project using HTTPParser
, and the onBody
, onHeadersComplete
, and onMessageComplete
handlers never seem to call.
Perhaps NodeJS changed something in their native modules that breaks the current implementation? I've tried using @creationix's http-parser-js module as an alternative, but it's current state leaves out features like gzip decompression and HTTP pipelining which I need.
Any ideas on a solution?
screenshot in README is down
Hi,
I updated node_pcap with the master branch (previously I used the dependency provided by npm). Can you please update the wiki and example? http_trace example doesn't seem to work any more: I have no packlet printed (please see node-pcap/node_pcap#136 ).
Thank you
How can I enumerate the interfaces available on my machine [mac]? I tried running this program as described in README.md
http_trace -f "tcp port 80"
but it doesn't show me any trace. It just says:
Listening on en0
I think maybe its not listening on the right interface?
I cannot get this thing to work. I run it like this:
sudo http_trace -i en5 -f "tcp port 80"
but it does not capture any trace. It just gives a message Listening on en5. I have verified that en5 is the correct interface on my mac (thunderbolt ethernet port)
How can I troubleshoot/fix this?
Does tcp in filter cause it to capture http traffic?
I am interested in tracing http traffic. With port 80 I expect it to capture all internet traffic crossing my machine
very slick :) that is all. haha. the only thing I would maybe suggest is making it a bit more obvious what is a request and what is a response. Not sure what would be best for displaying this, maybe just prefixing with > and <, not sure, awesome stuff :)
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.