/* Pcap2tzsp allows to capture ethernet trafic and send all headers to a defined host using the TaZmen Sniffing Protocol (TZSP). Copyright (C) 2012 Ludovic Pouzenc This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . This file is part of Pcap2tzsp. See LICENCE file. */ #ifndef PCAP2TZSP_WIN32_VS_H_INCLUDED #define PCAP2TZSP_WIN32_VS_H_INCLUDED /* Basics */ #include #include #include /* Consider using msinttypes for Visual Studio */ #include #include #define my_snprintf sprintf_s /* snprintf "compatiblity" */ /* Packet capture stuff */ #include /* UDP stuff */ #include #include /* Time management (for bwlimit) */ #include /* Args parsing and basename() for usage */ #undef _UNICODE #include /* Consider using getopt4win for WIN32 */ /* Poor's men hand-written basename. With calloc() and this is diffent from POSIX basename() */ char * basename(const char *path) { errno_t e; size_t len1, len2; char filename[256], ext[8]; char *res=NULL; e=_splitpath_s(path, NULL, 0, NULL, 0, filename, 256, ext, 8); if (e != 0) { res=strdup(""); } else { len1=strlen(filename); len2=strlen(ext); res=calloc(len1+len2 + 1, sizeof(char)); if ( res != NULL ) { strcpy_s(res, len1+1, filename); strcpy_s(res+len1, len2+1, ext); } } return res; } #endif // PCAP2TZSP_WIN32_VS_H_INCLUDED