diff --git a/src/add-ons/kernel/file_systems/googlefs/http_cnx.c b/src/add-ons/kernel/file_systems/googlefs/http_cnx.c index 79de9ab922..3bbe3d19aa 100644 --- a/src/add-ons/kernel/file_systems/googlefs/http_cnx.c +++ b/src/add-ons/kernel/file_systems/googlefs/http_cnx.c @@ -26,7 +26,14 @@ #define HTTPVER "1.0" -#define GOOGLEFS_UA "GoogleFS" +//#define GOOGLEFS_UA "GoogleFS" +//Mozilla/3.0 (compatible; NetPositive/2.2.2; BeOS) +//Mozilla/5.0 (BeOS; U; BeOS BePC; en-US; rv:1.8.1.18) Gecko/20081114 BonEcho/2.0.0.18 +#ifdef __HAIKU__ +#define GOOGLEFS_UA "Mozilla/5.0 (compatible; GoogleFS/0.1; Haiku)" +#else +#define GOOGLEFS_UA "Mozilla/5.0 (compatible; GoogleFS/0.1; BeOS)" +#endif #ifdef TESTME #define BUFSZ (128*1024) @@ -125,7 +132,7 @@ status_t http_get(struct http_cnx *cnx, const char *url) if (!req) return B_NO_MEMORY; /* no snprintf in kernel :( */ - sprintf(req, "GET %s HTTP/"HTTPVER"\nUser-Agent: " GOOGLEFS_UA "/" "0.1" "\nAccept: */*\n\n", url); + sprintf(req, "GET %s HTTP/"HTTPVER"\r\nUser-Agent: " GOOGLEFS_UA "\r\nAccept: */*\r\n\r\n", url); reqlen = strlen(req); err = len = write(cnx->sock, req, reqlen); if (len < 1) diff --git a/src/add-ons/kernel/file_systems/googlefs/parse_google_html.c b/src/add-ons/kernel/file_systems/googlefs/parse_google_html.c index e14d9cf0d5..881fe6b8cb 100644 --- a/src/add-ons/kernel/file_systems/googlefs/parse_google_html.c +++ b/src/add-ons/kernel/file_systems/googlefs/parse_google_html.c @@ -24,12 +24,17 @@ #ifdef TESTME #define BUFSZ (128*1024) +int dbgstep = 0; +#define PRST printf(DBG "step %d\n", dbgstep++) +#else +#define PRST {} #endif //old //#define G_BEGIN_URL "
"
#define G_END_URL "\" class=l>"
//#define G_BEGIN_NAME
@@ -55,26 +60,41 @@ int google_parse_results(const char *html, size_t htmlsize, struct google_result
return EINVAL;
/* sanity checks */
printf(DBG"sanity check...\n");
- if (strstr(html, "") != html)
- return EINVAL;
+ PRST;
+ /* google now sends sometimes... */
+ if (strstr(html, "") != html) {
+ if (strstr(html, "") != html)
+ return EINVAL;
+ }
+ PRST;
// p = strstr(html, "