version 1.39, 1996/11/26 23:23:05
|
version 1.40, 1996/11/28 00:30:32
|
Line 37
|
Line 37
|
|
|
#define SHOW_MSG (WWWTRACE || HTAlert_interactive()) |
#define SHOW_MSG (WWWTRACE || HTAlert_interactive()) |
|
|
#define DEFAULT_TIMEOUT 10 /* timeout in seconds */ |
#define DEFAULT_TIMEOUT 10000 /* timeout in millis */ |
|
|
#if defined(__svr4__) |
#if defined(__svr4__) |
#define CATCH_SIG |
#define CATCH_SIG |
Line 56 typedef struct _Robot {
|
Line 56 typedef struct _Robot {
|
HTList * hyperdoc; /* List of our HyperDoc Objects */ |
HTList * hyperdoc; /* List of our HyperDoc Objects */ |
HTList * htext; /* List of our HText Objects */ |
HTList * htext; /* List of our HText Objects */ |
HTList * fingers; |
HTList * fingers; |
struct timeval * tv; /* Timeout on socket */ |
int timer; |
char * cwd; /* Current dir URL */ |
char * cwd; /* Current dir URL */ |
char * rules; |
char * rules; |
char * logfile; |
char * logfile; |
Line 163 PRIVATE Robot * Robot_new (void)
|
Line 163 PRIVATE Robot * Robot_new (void)
|
HT_OUTOFMEM("Robot_new"); |
HT_OUTOFMEM("Robot_new"); |
me->hyperdoc = HTList_new(); |
me->hyperdoc = HTList_new(); |
me->htext = HTList_new(); |
me->htext = HTList_new(); |
me->tv->tv_sec = DEFAULT_TIMEOUT; |
me->timer = DEFAULT_TIMEOUT; |
me->cwd = HTGetCurrentDirectoryURL(); |
me->cwd = HTGetCurrentDirectoryURL(); |
me->output = OUTPUT; |
me->output = OUTPUT; |
me->cnt = 0; |
me->cnt = 0; |
Line 314 PRIVATE int terminate_handler (HTRequest
|
Line 314 PRIVATE int terminate_handler (HTRequest
|
return HT_OK; |
return HT_OK; |
} |
} |
|
|
#if 0 |
|
/* timeout_handler |
|
** --------------- |
|
** This function is registered to handle timeout in select eventloop |
|
** |
|
** BUG: This doesn't work as we don't get the right request object |
|
** back from the event loop |
|
*/ |
|
PRIVATE int timeout_handler (HTRequest * request) |
|
{ |
|
#if 0 |
|
Finger * finger = (Finger *) HTRequest_context(request); |
|
#endif |
|
if (SHOW_MSG) HTTrace("Robot....... We don't know how to handle timeout...\n"); |
|
#if 0 |
|
HTRequest_kill(request); |
|
Finger_delete(finger); |
|
#endif |
|
return HT_OK; |
|
} |
|
#endif |
|
|
|
/* ------------------------------------------------------------------------- */ |
/* ------------------------------------------------------------------------- */ |
/* HTEXT INTERFACE */ |
/* HTEXT INTERFACE */ |
/* ------------------------------------------------------------------------- */ |
/* ------------------------------------------------------------------------- */ |
Line 514 int main (int argc, char ** argv)
|
Line 492 int main (int argc, char ** argv)
|
} else if (!strcmp(argv[arg], "-timeout")) { |
} else if (!strcmp(argv[arg], "-timeout")) { |
int timeout = (arg+1 < argc && *argv[arg+1] != '-') ? |
int timeout = (arg+1 < argc && *argv[arg+1] != '-') ? |
atoi(argv[++arg]) : DEFAULT_TIMEOUT; |
atoi(argv[++arg]) : DEFAULT_TIMEOUT; |
if (timeout > 0) mr->tv->tv_sec = timeout; |
if (timeout > 0) mr->timer = timeout; |
|
|
/* preemptive or non-preemptive access */ |
/* preemptive or non-preemptive access */ |
} else if (!strcmp(argv[arg], "-single")) { |
} else if (!strcmp(argv[arg], "-single")) { |
Line 604 int main (int argc, char ** argv)
|
Line 582 int main (int argc, char ** argv)
|
/* Register our own someterminater filter */ |
/* Register our own someterminater filter */ |
HTNet_addAfter(terminate_handler, NULL, NULL, HT_ALL, HT_FILTER_LAST); |
HTNet_addAfter(terminate_handler, NULL, NULL, HT_ALL, HT_FILTER_LAST); |
|
|
|
/* Setting event timeout */ |
|
HTHost_setEventTimeout(mr->timer); |
|
|
/* Start the request */ |
/* Start the request */ |
finger = Finger_new(mr, startAnchor, METHOD_GET); |
finger = Finger_new(mr, startAnchor, METHOD_GET); |
if (mr->flags & MR_PREEMPTIVE) |
if (mr->flags & MR_PREEMPTIVE) |