wpcap: Partially implement pcap_parsesrcstr.
This commit is contained in:
parent
2b42ddf68a
commit
04d72a3e47
|
@ -27,6 +27,19 @@
|
||||||
WINE_DEFAULT_DEBUG_CHANNEL(wpcap);
|
WINE_DEFAULT_DEBUG_CHANNEL(wpcap);
|
||||||
WINE_DECLARE_DEBUG_CHANNEL(winediag);
|
WINE_DECLARE_DEBUG_CHANNEL(winediag);
|
||||||
|
|
||||||
|
#ifndef PCAP_SRC_FILE_STRING
|
||||||
|
#define PCAP_SRC_FILE_STRING "file://"
|
||||||
|
#endif
|
||||||
|
#ifndef PCAP_SRC_FILE
|
||||||
|
#define PCAP_SRC_FILE 2
|
||||||
|
#endif
|
||||||
|
#ifndef PCAP_SRC_IF_STRING
|
||||||
|
#define PCAP_SRC_IF_STRING "rpcap://"
|
||||||
|
#endif
|
||||||
|
#ifndef PCAP_SRC_IFLOCAL
|
||||||
|
#define PCAP_SRC_IFLOCAL 3
|
||||||
|
#endif
|
||||||
|
|
||||||
void CDECL wine_pcap_breakloop(pcap_t *p)
|
void CDECL wine_pcap_breakloop(pcap_t *p)
|
||||||
{
|
{
|
||||||
TRACE("(%p)\n", p);
|
TRACE("(%p)\n", p);
|
||||||
|
@ -239,6 +252,44 @@ pcap_t* CDECL wine_pcap_open_live(const char *source, int snaplen, int promisc,
|
||||||
return pcap_open_live(source, snaplen, promisc, to_ms, errbuf);
|
return pcap_open_live(source, snaplen, promisc, to_ms, errbuf);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int CDECL wine_pcap_parsesrcstr(const char *source, int *type, char *host, char *port, char *name, char *errbuf)
|
||||||
|
{
|
||||||
|
int t = PCAP_SRC_IFLOCAL;
|
||||||
|
const char *p = source;
|
||||||
|
|
||||||
|
FIXME("(%s %p %p %p %p %p): partial stub\n", debugstr_a(source), type, host, port, name, errbuf);
|
||||||
|
|
||||||
|
if (host)
|
||||||
|
*host = '\0';
|
||||||
|
if (port)
|
||||||
|
*port = '\0';
|
||||||
|
if (name)
|
||||||
|
*name = '\0';
|
||||||
|
|
||||||
|
if (!strncmp(p, PCAP_SRC_IF_STRING, strlen(PCAP_SRC_IF_STRING)))
|
||||||
|
p += strlen(PCAP_SRC_IF_STRING);
|
||||||
|
else if (!strncmp(p, PCAP_SRC_FILE_STRING, strlen(PCAP_SRC_FILE_STRING)))
|
||||||
|
{
|
||||||
|
p += strlen(PCAP_SRC_FILE_STRING);
|
||||||
|
t = PCAP_SRC_FILE;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (type)
|
||||||
|
*type = t;
|
||||||
|
|
||||||
|
if (!*p)
|
||||||
|
{
|
||||||
|
if (errbuf)
|
||||||
|
sprintf(errbuf, "The name has not been specified in the source string.");
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (name)
|
||||||
|
strcpy(name, p);
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
int CDECL wine_pcap_sendpacket(pcap_t *p, const unsigned char *buf, int size)
|
int CDECL wine_pcap_sendpacket(pcap_t *p, const unsigned char *buf, int size)
|
||||||
{
|
{
|
||||||
TRACE("(%p %p %i)\n", p, buf, size);
|
TRACE("(%p %p %i)\n", p, buf, size);
|
||||||
|
|
|
@ -51,7 +51,7 @@
|
||||||
@ stub pcap_open_dead
|
@ stub pcap_open_dead
|
||||||
@ cdecl pcap_open_live(str long long long ptr) wine_pcap_open_live
|
@ cdecl pcap_open_live(str long long long ptr) wine_pcap_open_live
|
||||||
@ stub pcap_open_offline
|
@ stub pcap_open_offline
|
||||||
@ stub pcap_parsesrcstr
|
@ cdecl pcap_parsesrcstr(str ptr ptr ptr ptr ptr) wine_pcap_parsesrcstr
|
||||||
@ stub pcap_perror
|
@ stub pcap_perror
|
||||||
@ stub pcap_read
|
@ stub pcap_read
|
||||||
@ stub pcap_remoteact_accept
|
@ stub pcap_remoteact_accept
|
||||||
|
|
Loading…
Reference in New Issue