git.stg.codes
/
stg.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Fixed invalid parameter passing.
[stg.git]
/
projects
/
stargazer
/
plugins
/
capture
/
ether_linux
/
ether_cap.cpp
diff --git
a/projects/stargazer/plugins/capture/ether_linux/ether_cap.cpp
b/projects/stargazer/plugins/capture/ether_linux/ether_cap.cpp
index 093aea7231d425d9666a53a63cec3d15d83e637f..6ed2e0680627c18ef6e5e3a426b393832f2a648f 100644
(file)
--- a/
projects/stargazer/plugins/capture/ether_linux/ether_cap.cpp
+++ b/
projects/stargazer/plugins/capture/ether_linux/ether_cap.cpp
@@
-78,7
+78,8
@@
ETHER_CAP::ETHER_CAP()
nonstop(false),
isRunning(false),
capSock(-1),
nonstop(false),
isRunning(false),
capSock(-1),
- traffCnt(NULL)
+ traffCnt(NULL),
+ logger(GetPluginLogger(GetStgLogger(), "cap_ether"))
{
}
//-----------------------------------------------------------------------------
{
}
//-----------------------------------------------------------------------------
@@
-96,14
+97,15
@@
if (EthCapOpen() < 0)
nonstop = true;
nonstop = true;
-if (pthread_create(&thread, NULL, Run, this)
== 0
)
+if (pthread_create(&thread, NULL, Run, this))
{
{
- return 0;
+ errorStr = "Cannot create thread.";
+ logger("Cannot create thread.");
+ printfd(__FILE__, "Cannot create thread\n");
+ return -1;
}
}
-errorStr = "Cannot create thread.";
-printfd(__FILE__, "Cannot create thread\n");
-return -1;
+return 0;
}
//-----------------------------------------------------------------------------
int ETHER_CAP::Stop()
}
//-----------------------------------------------------------------------------
int ETHER_CAP::Stop()
@@
-125,6
+127,7
@@
if (isRunning)
if (pthread_kill(thread, SIGUSR1))
{
errorStr = "Cannot kill thread.";
if (pthread_kill(thread, SIGUSR1))
{
errorStr = "Cannot kill thread.";
+ logger("Cannot send signal to thread.");
return -1;
}
for (int i = 0; i < 25 && isRunning; ++i)
return -1;
}
for (int i = 0; i < 25 && isRunning; ++i)
@@
-135,6
+138,7
@@
if (isRunning)
if (isRunning)
{
errorStr = "ETHER_CAP not stopped.";
if (isRunning)
{
errorStr = "ETHER_CAP not stopped.";
+ logger("Cannot stop thread.");
printfd(__FILE__, "Cannot stop thread\n");
return -1;
}
printfd(__FILE__, "Cannot stop thread\n");
return -1;
}
@@
-196,6
+200,8
@@
return NULL;
int ETHER_CAP::EthCapOpen()
{
capSock = socket(PF_PACKET, SOCK_RAW, htons(ETH_P_ALL));
int ETHER_CAP::EthCapOpen()
{
capSock = socket(PF_PACKET, SOCK_RAW, htons(ETH_P_ALL));
+if (capSock < 0)
+ logger("Cannot create socket: %s", strerror(errno));
return capSock;
}
//-----------------------------------------------------------------------------
return capSock;
}
//-----------------------------------------------------------------------------
@@
-219,12
+225,9
@@
addrLen = sizeof(addr);
res = recvfrom(capSock, ((char*)buffer) + 2, blen, 0, (struct sockaddr *)&addr, (socklen_t*)&addrLen);
res = recvfrom(capSock, ((char*)buffer) + 2, blen, 0, (struct sockaddr *)&addr, (socklen_t*)&addrLen);
-if (
-1 == res
)
+if (
res < 0
)
{
{
- if (errno != EINTR)
- {
- printfd(__FILE__, "Error on recvfrom: '%s'\n", strerror(errno));
- }
+ logger("recvfrom error: %s", strerror(errno));
return ENODATA;
}
return ENODATA;
}