*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*/
#ifdef HAVE_CONFIG_H
# include "config.h"
#endif
-#ifdef HAVE_SYS_TYPES_H
-# include <sys/types.h>
-#endif
-
#include <string.h>
#include <epan/packet_info.h>
#include <epan/tap.h>
#include "epan/gcp.h"
-#include "../register.h"
#include "../timestats.h"
-#include "../simple_dialog.h"
#include "../file.h"
#include "../globals.h"
#include "../stat_menu.h"
{
gcp_cmd_msg_t *cmd_msg;
/* cycle through commands to find same command in the transaction */
- for (cmd_msg = cmd->trx->cmds; cmd_msg->cmd->msg->framenum != cmd->msg->framenum &&
- cmd_msg != NULL; cmd_msg = cmd_msg->next) {
+ for (cmd_msg = cmd->trx->cmds;
+ (cmd_msg != NULL) && (cmd_msg->cmd->msg->framenum != cmd->msg->framenum);
+ cmd_msg = cmd_msg->next) {
if (cmd_msg->cmd->type == cmd->type)
return TRUE;
}
-
+
return FALSE;
}
break;
break;
}
-
+
}
static gboolean
{
gcp_cmd_msg_t *cmd_msg;
/* cycle through commands to find a request in the transaction */
- for (cmd_msg = cmd->trx->cmds; cmd_msg->cmd->msg->framenum != cmd->msg->framenum &&
- cmd_msg != NULL; cmd_msg = cmd_msg->next) {
-
+ for (cmd_msg = cmd->trx->cmds;
+ (cmd_msg != NULL) && (cmd_msg->cmd->msg->framenum != cmd->msg->framenum);
+ cmd_msg = cmd_msg->next) {
+
switch (cmd_msg->cmd->type) {
GCP_CMD_REQ_CASE
break;
}
}
-
+
return FALSE;
}
break;
megacostat_packet(void *pms, packet_info *pinfo, epan_dissect_t *edt _U_, const void *pmi)
{
megacostat_t *ms=(megacostat_t *)pms;
- const gcp_cmd_t *mi=(gcp_cmd_t*)pmi;
+ const gcp_cmd_t *mi=(const gcp_cmd_t*)pmi;
nstime_t delta;
int ret = 0;
switch (mi->type) {
GCP_CMD_REQ_CASE
- if(mi->trx->initial->framenum != mi->msg->framenum){
+ if(!mi->trx->initial) {
+ /* Track Context is probably disabled, we cannot
+ * measure service response time */
+ return 0;
+ }
+
+ else if(mi->trx->initial->framenum != mi->msg->framenum){
/* Duplicate is ignored */
ms->req_dup_num++;
}
nstime_delta(&delta, &pinfo->fd->abs_ts, &mi->trx->initial->time);
switch(mi->type) {
-
+
case GCP_CMD_ADD_REPLY:
time_stat_update(&(ms->rtd[0]),&delta, pinfo);
break;