Diffstat (limited to 'noncore/todayplugins/stockticker/libstocks/http.c') (more/less context) (ignore whitespace changes)
-rw-r--r-- | noncore/todayplugins/stockticker/libstocks/http.c | 87 |
1 files changed, 44 insertions, 43 deletions
diff --git a/noncore/todayplugins/stockticker/libstocks/http.c b/noncore/todayplugins/stockticker/libstocks/http.c index 462080d..3078746 100644 --- a/noncore/todayplugins/stockticker/libstocks/http.c +++ b/noncore/todayplugins/stockticker/libstocks/http.c @@ -6,22 +6,23 @@ * modify it under the terms of the GNU Library General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the * Free Software Foundation, Inc., 59 Temple Place - Suite 330, * Boston, MA 02111-1307, USA. */ #define __HTTP_C__ +#define __UNIX__ #ifdef __UNIX__ #include <sys/socket.h> #include <netinet/in.h> #include <arpa/inet.h> #include <netdb.h> @@ -82,15 +83,15 @@ libstocks_return_code http_get(char *http_file, char *http_server, char **pdata) server.sin_port = (unsigned short) htons( http_proxy_server ? http_proxy_port : 80 ); } else { #ifdef DEBUG - printf(" gethostbyname : NOK\n"); + printf(" gethostbyname : NOK\n"); #endif - return ERRHOST; + return ERRHOST; } /* create socket */ if ((s = socket(AF_INET, SOCK_STREAM, 0)) < 0) { @@ -118,13 +119,13 @@ libstocks_return_code http_get(char *http_file, char *http_server, char **pdata) } /* create header */ if (http_proxy_server) { sprintf(header,"GET http://%.128s:80%.256s HTTP/1.0\015\012\015\012", - http_server, http_file); + http_server, http_file); } else { sprintf(header,"GET %s HTTP/1.0\015\012\015\012",http_file); } @@ -135,13 +136,13 @@ libstocks_return_code http_get(char *http_file, char *http_server, char **pdata) if (write(s,header,hlg)!=hlg) #elif __WINDOWS__ if (send(s,header,hlg, 0)!=hlg) #endif { #ifdef DEBUG - printf(" send header : NOK\n"); + printf(" send header : NOK\n"); #endif return ERRWHEA; } data_lgr = 0; r=1; @@ -154,42 +155,42 @@ libstocks_return_code http_get(char *http_file, char *http_server, char **pdata) r=read(s,buf,BUF_SIZE); #elif __WINDOWS__ r=recv(s,buf,BUF_SIZE,0); #endif if (r) - { - if(!data_lgr) - { - if((data = malloc(r+1))==NULL) - { - fprintf(stderr,"Memory allocating error (%s line %d)\n" - ,__FILE__, __LINE__); - exit(1); - } - - memcpy(data,buf,r); - data_lgr = r; - data[r]=0; - } - else - { - if((temp = malloc(r+data_lgr+1))==NULL) - { - fprintf(stderr,"Memory allocating error (%s line %d)\n" - ,__FILE__, __LINE__); - exit(1); - } - memcpy(temp, data, data_lgr); - memcpy(temp+data_lgr, buf, r); - temp[r+data_lgr]=0; - data_lgr += r; - free(data); - data = temp; - } - } + { + if(!data_lgr) + { + if((data = malloc(r+1))==NULL) + { + fprintf(stderr,"Memory allocating error (%s line %d)\n" + ,__FILE__, __LINE__); + exit(1); + } + + memcpy(data,buf,r); + data_lgr = r; + data[r]=0; + } + else + { + if((temp = malloc(r+data_lgr+1))==NULL) + { + fprintf(stderr,"Memory allocating error (%s line %d)\n" + ,__FILE__, __LINE__); + exit(1); + } + memcpy(temp, data, data_lgr); + memcpy(temp+data_lgr, buf, r); + temp[r+data_lgr]=0; + data_lgr += r; + free(data); + data = temp; + } + } } /* close socket */ #ifdef __UNIX__ close(s); #elif __WINDOWS__ @@ -207,20 +208,20 @@ libstocks_return_code http_get(char *http_file, char *http_server, char **pdata) header_founded = 0; while( !header_founded ) { if (*temp==0) return ERRRHEA; if( *temp==0x0A ) - { - /* test if it is the header end */ - temp ++; - if (*temp == 0x0D) temp++; - if (*temp == 0x0A) header_founded = 1; - } + { + /* test if it is the header end */ + temp ++; + if (*temp == 0x0D) temp++; + if (*temp == 0x0A) header_founded = 1; + } else - temp++; + temp++; } *temp = 0; temp++; sscanf(data,"HTTP/1.%*d %03d",&error_code); @@ -235,13 +236,13 @@ libstocks_return_code http_get(char *http_file, char *http_server, char **pdata) } if ((csv_ptr = malloc(strlen(temp)+1))==NULL) { free(data); fprintf(stderr,"Memory allocating error (%s line %d)\n" - ,__FILE__, __LINE__); + ,__FILE__, __LINE__); exit(1); } memcpy(csv_ptr, temp, strlen(temp)+1); free(data); |