RE: Nokia 7210 Problems
Igor Ivoilov <[email protected]>
| Newsgroups | gmane.comp.mobile.kannel.devel |
|---|---|
| Message-ID | <[email protected]> |
I have applied the patch and don't experience any problem "unknown file format" is not a problem of Kannel. at least http://mobile.club.nokia.com sends under-construction wml page with wrong content-type as text/plain. Nokia 7210 just does not know how to show it while nokia 7650 shows wml as text. > -----Original Message----- > From: David Chkhartishvili [mailto:[email protected]] > Sent: Wednesday, January 15, 2003 10:52 AM > To: [email protected] > Cc: devel > Subject: Re: Nokia 7210 Problems > > > > After applying patch, I got "unknown file format". > Any ideas? > > > Vjacheslav Chekushin wrote: > > > Hi, > > > > Andreas Fink wrote: > > > >> > >> > >> On Dienstag, Januar 14, 2003, at 12:27 Uhr, David > Chkhartishvili wrote: > >> > >> Hi List, > >> > >> I have problems accessing http://mobile.club.nokia.com > from Nokia > >> 7210 using kannel-cvs. > >> Debug says: > >> > >> 2003-01-14 15:22:38 [16] DEBUG: HTTP: Status line: > <HTTP/1.1 413 > >> Request Entity Too Large> > >> 2003-01-14 15:22:38 [8] WARNING: WSP: Content type > <text/html> not > >> supported by client, deleting body. > >> > >> In the mean time I can access that page using > SonyEricsson T68i. > >> Could anyone point out what's the problem. > >> > >> Sounds very strange, that Nokia handset can't access > nokia site =) > >> > >> > >> the problem is the nokia site, not the nokia phone. > >> I actually can not see this website from any of my nokia's over > >> Swisscom's WAP gateway either, nor over kannel. > >> Their website returns a mime type of text/html which is > not correct. > >> The phones cant display HTML. > >> > >> > >> Andreas Fink > >> Fink Consulting GmbH > >> > > > > The problem is that kannel compose every header on its own line. > > The solution for that - to pack http header > > (create a comma separated list for http header values). > > > > I can propose patch for all who is interested in it. > > It eliminates <HTTP/1.1 413 Request Entity Too Large> > problem for me. > > > > (To apply this patch, go to kannel directory with Makefile and run: > > patch -p0 < http_pack.patch ) > > > >------------------------------------------------------------- > ----------- > > > >--- ../devel_1.2.1_base/gwlib/http.c Thu Jan 2 12:04:16 2003 > >+++ gwlib/http.c Mon Jan 6 15:56:58 2003 > >@@ -2327,12 +2327,65 @@ > > return new; > > } > > > >+static int http_header_cmp(void *a, void *b) { > >+ Octstr *header,*pat; > >+ > >+ header = a; > >+ pat = b; > >+ > >+ if (octstr_ncompare(header, pat, octstr_len(pat)) == 0) { > >+ return 1; > >+ } > >+ > >+ return 0; > >+} > > > > void http_header_pack(List *headers) > > { > >- gwlib_assert_init(); > >- gw_assert(headers != NULL); > >- /* XXX not implemented yet. */ > >+ List *new_headers,*tmp_list; > >+ Octstr *name,*name_col,*value,*curr,*raw_header; > >+ int i; > >+ > >+ gwlib_assert_init(); > >+ gw_assert(headers != NULL); > >+ tmp_list = NULL; > >+ > >+ new_headers = http_create_empty_headers(); > >+ > >+ for (i = 0; i < list_len(headers); i++) { > >+ http_header_get(headers, i, &name, &value); > >+ name_col = octstr_duplicate(name); > >+ octstr_append_cstr(name_col,":"); > >+ if ((curr = list_search(new_headers, name_col, > http_header_cmp)) == NULL) { > >+ http_header_add(new_headers, octstr_get_cstr(name), > octstr_get_cstr(value)); > >+ } else { > >+ if (octstr_len(curr) > 256) { > >+ if (tmp_list == NULL) { > >+ tmp_list = list_create(); > >+ } > >+ raw_header = octstr_duplicate(curr); > >+ list_append(tmp_list,raw_header); > >+ http_header_remove_all(new_headers, octstr_get_cstr(name)); > >+ http_header_add(new_headers, octstr_get_cstr(name), > octstr_get_cstr(value)); > >+ } else { > >+ octstr_append_cstr(curr,", "); > >+ octstr_append(curr,value); > >+ } > >+ } > >+ octstr_destroy(name); > >+ octstr_destroy(value); > >+ octstr_destroy(name_col); > >+ > >+ } > >+ > >+ http_header_combine(headers, new_headers); > >+ http_destroy_headers(new_headers); > >+ if (tmp_list != NULL) { > >+ while ((curr = list_extract_first(tmp_list)) != NULL) { > >+ list_append(headers, curr); > >+ } > >+ list_destroy(tmp_list,NULL); > >+ } > > } > > > > > > > > > > >