Skip to content
Browse files

Rename to prevent name conflict with epcap

  • Loading branch information...
1 parent e3aa0e0 commit e1e094bd5c0c8789371a6f37615199057c6f0907 @msantos committed Jun 24, 2010
Showing with 0 additions and 75 deletions.
  1. +0 −75 src/sniff.erl
View
75 src/sniff.erl
@@ -1,75 +0,0 @@
-%% Copyright (c) 2010, Michael Santos <michael.santos@gmail.com>
-%% All rights reserved.
-%%
-%% Redistribution and use in source and binary forms, with or without
-%% modification, are permitted provided that the following conditions
-%% are met:
-%%
-%% Redistributions of source code must retain the above copyright
-%% notice, this list of conditions and the following disclaimer.
-%%
-%% Redistributions in binary form must reproduce the above copyright
-%% notice, this list of conditions and the following disclaimer in the
-%% documentation and/or other materials provided with the distribution.
-%%
-%% Neither the name of the author nor the names of its contributors
-%% may be used to endorse or promote products derived from this software
-%% without specific prior written permission.
-%%
-%% THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-%% "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-%% LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
-%% FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
-%% COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
-%% INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
-%% BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-%% LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-%% CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-%% LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
-%% ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-%% POSSIBILITY OF SUCH DAMAGE.
-
--module(sniff).
--export([service/1]).
-
--include("epcap_net.hrl").
-
-
-service(Dev) ->
- {ok, Socket} = packet:socket(),
- ok = packet:promiscuous(Socket, packet:ifindex(Socket, Dev)),
- {ok, PL} = inet_parse:resolv(
- proplists:get_value(resolv_conf, inet_db:get_rc(), "/etc/resolv.conf")),
- NS = proplists:get_value(nameserver, PL),
- error_logger:info_report({ns,NS}),
- loop(Socket, NS).
-
-loop(Socket, NS) ->
- case procket:recvfrom(Socket, 65535) of
- nodata ->
- timer:sleep(10),
- loop(Socket, NS);
- {ok, Data} ->
- P = epcap_net:decapsulate(Data),
- filter(NS, P),
- loop(Socket, NS);
- Error ->
- error_logger:error_report(Error)
- end.
-
-filter(NS, [
- #ether{},
- #ipv4{
- saddr = NS
- },
- #udp{
- sport = 53,
- dport = Port,
- ulen = Len
- },
- Payload
- ]) when Len > 0, Len < 512 ->
- dns:send(Port, Payload);
-filter(_,_) ->
- ok.
-

0 comments on commit e1e094b

Please sign in to comment.
Something went wrong with that request. Please try again.