remote-ext.h

Go to the documentation of this file.
00001 /*
00002  * Copyright (c) 2002 - 2003
00003  * NetGroup, Politecnico di Torino (Italy)
00004  * All rights reserved.
00005  * 
00006  * Redistribution and use in source and binary forms, with or without 
00007  * modification, are permitted provided that the following conditions 
00008  * are met:
00009  * 
00010  * 1. Redistributions of source code must retain the above copyright 
00011  * notice, this list of conditions and the following disclaimer.
00012  * 2. Redistributions in binary form must reproduce the above copyright 
00013  * notice, this list of conditions and the following disclaimer in the 
00014  * documentation and/or other materials provided with the distribution. 
00015  * 3. Neither the name of the Politecnico di Torino nor the names of its 
00016  * contributors may be used to endorse or promote products derived from 
00017  * this software without specific prior written permission. 
00018  * 
00019  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 
00020  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 
00021  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 
00022  * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 
00023  * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 
00024  * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 
00025  * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 
00026  * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 
00027  * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 
00028  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 
00029  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
00030  * 
00031  */
00032 
00033 
00034 #ifndef __REMOTE_EXT_H__
00035 #define __REMOTE_EXT_H__
00036 
00037 
00038 #ifndef HAVE_REMOTE
00039 #error Please do not include this file directly. Just define HAVE_REMOTE and then include pcap.h
00040 #endif
00041 
00042 // Definition for Microsoft Visual Studio
00043 #if _MSC_VER > 1000
00044 #pragma once
00045 #endif
00046 
00047 #ifdef __cplusplus
00048 extern "C" {
00049 #endif
00050 
00064 // All this stuff is public
00079 #define PCAP_BUF_SIZE 1024
00080 
00081 
00093 #define PCAP_SRC_FILE 2
00094 
00101 #define PCAP_SRC_IFLOCAL 3
00102 
00109 #define PCAP_SRC_IFREMOTE 4
00110 
00164 #define PCAP_SRC_FILE_STRING "file://"
00165 
00177 #define PCAP_SRC_IF_STRING "rpcap://"
00178 
00203 #define PCAP_OPENFLAG_PROMISCUOUS       1
00204 
00217 #define PCAP_OPENFLAG_DATATX_UDP            2
00218 
00219 
00228 #define PCAP_OPENFLAG_NOCAPTURE_RPCAP   4
00229 
00237 #define PCAP_OPENFLAG_NOCAPTURE_LOCAL   8
00238 
00248 #define PCAP_OPENFLAG_MAX_RESPONSIVENESS    16
00249 
00265 #define PCAP_SAMP_NOSAMP    0
00266 
00275 #define PCAP_SAMP_1_EVERY_N 1
00276 
00285 #define PCAP_SAMP_FIRST_AFTER_N_MS 2
00286 
00304 #define RPCAP_RMTAUTH_NULL 0
00305 
00315 #define RPCAP_RMTAUTH_PWD 1
00316 
00338 struct pcap_rmtauth
00339 {
00349     int type;
00357     char *username;
00365     char *password;
00366 };
00367 
00368 
00380 struct pcap_samp
00381 {
00386     int method;
00387 
00392     int value;
00393 };
00394 
00395 
00396 
00397 
00399 #define RPCAP_HOSTLIST_SIZE 1024
00400 
00401  // end of public documentation
00405 
00406 
00407 // Exported functions
00408 
00409 
00410 
00416 //\{
00417 pcap_t *pcap_open(const char *source, int snaplen, int flags, int read_timeout, struct pcap_rmtauth *auth, char *errbuf);
00418 int pcap_createsrcstr(char *source, int type, const char *host, const char *port, const char *name, char *errbuf);
00419 int pcap_parsesrcstr(const char *source, int *type, char *host, char *port, char *name, char *errbuf);
00420 int pcap_findalldevs_ex(char *source, struct pcap_rmtauth *auth, pcap_if_t **alldevs, char *errbuf);
00421 struct pcap_samp *pcap_setsampling(pcap_t *p);
00422 
00423 //\}
00424 // End of new winpcap functions
00425 
00426 
00427 
00430 //\{ 
00431 SOCKET pcap_remoteact_accept(const char *address, const char *port, const char *hostlist, char *connectinghost, struct pcap_rmtauth *auth, char *errbuf);
00432 int pcap_remoteact_list(char *hostlist, char sep, int size, char *errbuf);
00433 int pcap_remoteact_close(const char *host, char *errbuf);
00434 void pcap_remoteact_cleanup();
00435 //\}
00436 // End of remote capture functions
00437 
00438 #ifdef __cplusplus
00439 }
00440 #endif
00441 
00442 
00443 #endif
00444 

documentation. Copyright (c) 2002-2005 Politecnico di Torino. Copyright (c) 2005-2008 CACE Technologies. All rights reserved.