author | llornkcor <llornkcor> | 2002-10-31 20:32:13 (UTC) |
---|---|---|
committer | llornkcor <llornkcor> | 2002-10-31 20:32:13 (UTC) |
commit | 73b03f932dd43d684e67db1837bf506ee015f2eb (patch) (unidiff) | |
tree | 87be47c236586177c65b38216818951337c0b59a /noncore | |
parent | 50f1091ee877020c9864ce24202951f49bec8cd7 (diff) | |
download | opie-73b03f932dd43d684e67db1837bf506ee015f2eb.zip opie-73b03f932dd43d684e67db1837bf506ee015f2eb.tar.gz opie-73b03f932dd43d684e67db1837bf506ee015f2eb.tar.bz2 |
make define __UNIX__ inherent
-rw-r--r-- | noncore/todayplugins/stockticker/libstocks/csv.c | 323 | ||||
-rw-r--r-- | noncore/todayplugins/stockticker/libstocks/http.c | 87 |
2 files changed, 206 insertions, 204 deletions
diff --git a/noncore/todayplugins/stockticker/libstocks/csv.c b/noncore/todayplugins/stockticker/libstocks/csv.c index 99a44e4..27bcce6 100644 --- a/noncore/todayplugins/stockticker/libstocks/csv.c +++ b/noncore/todayplugins/stockticker/libstocks/csv.c | |||
@@ -6,22 +6,23 @@ | |||
6 | * modify it under the terms of the GNU Library General Public | 6 | * modify it under the terms of the GNU Library General Public |
7 | * License as published by the Free Software Foundation; either | 7 | * License as published by the Free Software Foundation; either |
8 | * version 2 of the License, or (at your option) any later version. | 8 | * version 2 of the License, or (at your option) any later version. |
9 | * | 9 | * |
10 | * This library is distributed in the hope that it will be useful, | 10 | * This library is distributed in the hope that it will be useful, |
11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | 11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of |
12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | 12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
13 | * Library General Public License for more details. | 13 | * Library General Public License for more details. |
14 | * | 14 | * |
15 | * You should have received a copy of the GNU Library General Public | 15 | * You should have received a copy of the GNU Library General Public |
16 | * License along with this library; if not, write to the | 16 | * License along with this library; if not, write to the |
17 | * Free Software Foundation, Inc., 59 Temple Place - Suite 330, | 17 | * Free Software Foundation, Inc., 59 Temple Place - Suite 330, |
18 | * Boston, MA 02111-1307, USA. | 18 | * Boston, MA 02111-1307, USA. |
19 | */ | 19 | */ |
20 | 20 | ||
21 | #define __CSV_C__ | 21 | #define __CSV_C__ |
22 | #ifdef __UNIX__ | ||
22 | 23 | ||
23 | #include <string.h> | 24 | #include <string.h> |
24 | #include <stdlib.h> | 25 | #include <stdlib.h> |
25 | #include <stdio.h> | 26 | #include <stdio.h> |
26 | 27 | ||
27 | #ifdef __WINDOWS__ | 28 | #ifdef __WINDOWS__ |
@@ -123,158 +124,158 @@ stock *parse_csv_file(char *csv) | |||
123 | /* if 5 "N/A" then ok because currencies have */ | 124 | /* if 5 "N/A" then ok because currencies have */ |
124 | /* So if >5 then stock not valid */ | 125 | /* So if >5 then stock not valid */ |
125 | 126 | ||
126 | test = line; | 127 | test = line; |
127 | valid = 0; | 128 | valid = 0; |
128 | while ( (test = strstr(test, "N/A")) ) | 129 | while ( (test = strstr(test, "N/A")) ) |
129 | { | 130 | { |
130 | valid ++; | 131 | valid ++; |
131 | test = test +3; | 132 | test = test +3; |
132 | } | 133 | } |
133 | 134 | ||
134 | if (valid < 6) | 135 | if (valid < 6) |
135 | { | 136 | { |
136 | /* This Symbol is valid */ | 137 | /* This Symbol is valid */ |
137 | 138 | ||
138 | StockPtr = malloc_stock(); | 139 | StockPtr = malloc_stock(); |
139 | 140 | ||
140 | ptr = csv_strtok(line, ","); | 141 | ptr = csv_strtok(line, ","); |
141 | if (!ptr) return 0; | 142 | if (!ptr) return 0; |
142 | 143 | ||
143 | symbol = (char *)malloc(strlen(ptr)+1); | 144 | symbol = (char *)malloc(strlen(ptr)+1); |
144 | if (symbol==NULL) | 145 | if (symbol==NULL) |
145 | { | 146 | { |
146 | fprintf(stderr,"Memory allocating error (%s line %d)\n" | 147 | fprintf(stderr,"Memory allocating error (%s line %d)\n" |
147 | ,__FILE__, __LINE__); | 148 | ,__FILE__, __LINE__); |
148 | exit(1); | 149 | exit(1); |
149 | } | 150 | } |
150 | strcpy((char *)(symbol), ptr); | 151 | strcpy((char *)(symbol), ptr); |
151 | StockPtr->Symbol = symbol; | 152 | StockPtr->Symbol = symbol; |
152 | 153 | ||
153 | ptr = csv_strtok(NULL, ","); | 154 | ptr = csv_strtok(NULL, ","); |
154 | if (!ptr) return 0; | 155 | if (!ptr) return 0; |
155 | 156 | ||
156 | name = (char *)malloc(strlen(ptr)+1); | 157 | name = (char *)malloc(strlen(ptr)+1); |
157 | if (name==NULL) | 158 | if (name==NULL) |
158 | { | 159 | { |
159 | fprintf(stderr,"Memory allocating error (%s line %d)\n" | 160 | fprintf(stderr,"Memory allocating error (%s line %d)\n" |
160 | ,__FILE__, __LINE__); | 161 | ,__FILE__, __LINE__); |
161 | exit(1); | 162 | exit(1); |
162 | } | 163 | } |
163 | strcpy((char *)(name), ptr); | 164 | strcpy((char *)(name), ptr); |
164 | StockPtr->Name = name; | 165 | StockPtr->Name = name; |
165 | 166 | ||
166 | ptr = csv_strtok(NULL, ","); | 167 | ptr = csv_strtok(NULL, ","); |
167 | if (!ptr) return 0; | 168 | if (!ptr) return 0; |
168 | sscanf(ptr,"%f",&(StockPtr->CurrentPrice)); | 169 | sscanf(ptr,"%f",&(StockPtr->CurrentPrice)); |
169 | 170 | ||
170 | ptr = csv_strtok(NULL, ","); | 171 | ptr = csv_strtok(NULL, ","); |
171 | if (!ptr) return 0; | 172 | if (!ptr) return 0; |
172 | 173 | ||
173 | date = (char *)malloc(strlen(ptr)+1); | 174 | date = (char *)malloc(strlen(ptr)+1); |
174 | if (date==NULL) | 175 | if (date==NULL) |
175 | { | 176 | { |
176 | fprintf(stderr,"Memory allocating error (%s line %d)\n" | 177 | fprintf(stderr,"Memory allocating error (%s line %d)\n" |
177 | ,__FILE__, __LINE__); | 178 | ,__FILE__, __LINE__); |
178 | exit(1); | 179 | exit(1); |
179 | } | 180 | } |
180 | strcpy((char *)(date), ptr); | 181 | strcpy((char *)(date), ptr); |
181 | StockPtr->Date = date; | 182 | StockPtr->Date = date; |
182 | 183 | ||
183 | ptr = csv_strtok(NULL, ","); | 184 | ptr = csv_strtok(NULL, ","); |
184 | if (!ptr) return 0; | 185 | if (!ptr) return 0; |
185 | 186 | ||
186 | time = (char *)malloc(strlen(ptr)+1); | 187 | time = (char *)malloc(strlen(ptr)+1); |
187 | if (time==NULL) | 188 | if (time==NULL) |
188 | { | 189 | { |
189 | fprintf(stderr,"Memory allocating error (%s line %d)\n" | 190 | fprintf(stderr,"Memory allocating error (%s line %d)\n" |
190 | ,__FILE__, __LINE__); | 191 | ,__FILE__, __LINE__); |
191 | exit(1); | 192 | exit(1); |
192 | } | 193 | } |
193 | strcpy((char *)(time), ptr); | 194 | strcpy((char *)(time), ptr); |
194 | StockPtr->Time = time; | 195 | StockPtr->Time = time; |
195 | 196 | ||
196 | ptr = csv_strtok(NULL, ","); | 197 | ptr = csv_strtok(NULL, ","); |
197 | if (!ptr) return 0; | 198 | if (!ptr) return 0; |
198 | sscanf(ptr,"%f",&(StockPtr->Variation)); | 199 | sscanf(ptr,"%f",&(StockPtr->Variation)); |
199 | 200 | ||
200 | StockPtr->Pourcentage = 100 * StockPtr->Variation / | 201 | StockPtr->Pourcentage = 100 * StockPtr->Variation / |
201 | (StockPtr->CurrentPrice - StockPtr->Variation); | 202 | (StockPtr->CurrentPrice - StockPtr->Variation); |
202 | 203 | ||
203 | StockPtr->LastPrice = StockPtr->CurrentPrice - StockPtr->Variation; | 204 | StockPtr->LastPrice = StockPtr->CurrentPrice - StockPtr->Variation; |
204 | 205 | ||
205 | ptr = csv_strtok(NULL, ","); | 206 | ptr = csv_strtok(NULL, ","); |
206 | if (!ptr) return 0; | 207 | if (!ptr) return 0; |
207 | sscanf(ptr,"%f",&(StockPtr->OpenPrice)); | 208 | sscanf(ptr,"%f",&(StockPtr->OpenPrice)); |
208 | 209 | ||
209 | ptr = csv_strtok(NULL, ","); | 210 | ptr = csv_strtok(NULL, ","); |
210 | if (!ptr) return 0; | 211 | if (!ptr) return 0; |
211 | sscanf(ptr,"%f",&(StockPtr->MaxPrice)); | 212 | sscanf(ptr,"%f",&(StockPtr->MaxPrice)); |
212 | 213 | ||
213 | ptr = csv_strtok(NULL, ","); | 214 | ptr = csv_strtok(NULL, ","); |
214 | if (!ptr) return 0; | 215 | if (!ptr) return 0; |
215 | sscanf(ptr,"%f",&(StockPtr->MinPrice)); | 216 | sscanf(ptr,"%f",&(StockPtr->MinPrice)); |
216 | 217 | ||
217 | ptr = csv_strtok(NULL, ","); | 218 | ptr = csv_strtok(NULL, ","); |
218 | if (!ptr) return 0; | 219 | if (!ptr) return 0; |
219 | StockPtr->Volume = atoi(ptr); | 220 | StockPtr->Volume = atoi(ptr); |
220 | 221 | ||
221 | if( !FirstStockPtr ) | 222 | if( !FirstStockPtr ) |
222 | { | 223 | { |
223 | FirstStockPtr = StockPtr; | 224 | FirstStockPtr = StockPtr; |
224 | StockPtr->PreviousStock = 0; | 225 | StockPtr->PreviousStock = 0; |
225 | } | 226 | } |
226 | 227 | ||
227 | StockPtr->NextStock = 0; | 228 | StockPtr->NextStock = 0; |
228 | 229 | ||
229 | if (LastStockPtr) | 230 | if (LastStockPtr) |
230 | { | 231 | { |
231 | LastStockPtr->NextStock = StockPtr; | 232 | LastStockPtr->NextStock = StockPtr; |
232 | StockPtr->PreviousStock = LastStockPtr; | 233 | StockPtr->PreviousStock = LastStockPtr; |
233 | } | 234 | } |
234 | 235 | ||
235 | LastStockPtr = StockPtr; | 236 | LastStockPtr = StockPtr; |
236 | 237 | ||
237 | } | 238 | } |
238 | else | 239 | else |
239 | { | 240 | { |
240 | /* this symbol is not valid */ | 241 | /* this symbol is not valid */ |
241 | /* Set the stock struct just with Symbol, all other are NULL */ | 242 | /* Set the stock struct just with Symbol, all other are NULL */ |
242 | /* This can be used to see if the symbol has been reached are not */ | 243 | /* This can be used to see if the symbol has been reached are not */ |
243 | 244 | ||
244 | StockPtr = malloc_stock(); | 245 | StockPtr = malloc_stock(); |
245 | 246 | ||
246 | ptr = csv_strtok(line, ","); | 247 | ptr = csv_strtok(line, ","); |
247 | if (!ptr) return 0; | 248 | if (!ptr) return 0; |
248 | 249 | ||
249 | symbol = (char *)malloc(strlen(ptr)+1); | 250 | symbol = (char *)malloc(strlen(ptr)+1); |
250 | if (symbol==NULL) | 251 | if (symbol==NULL) |
251 | { | 252 | { |
252 | fprintf(stderr,"Memory allocating error (%s line %d)\n" | 253 | fprintf(stderr,"Memory allocating error (%s line %d)\n" |
253 | ,__FILE__, __LINE__); | 254 | ,__FILE__, __LINE__); |
254 | exit(1); | 255 | exit(1); |
255 | } | 256 | } |
256 | strcpy((char *)(symbol), ptr); | 257 | strcpy((char *)(symbol), ptr); |
257 | StockPtr->Symbol = symbol; | 258 | StockPtr->Symbol = symbol; |
258 | 259 | ||
259 | if( !FirstStockPtr ) | 260 | if( !FirstStockPtr ) |
260 | { | 261 | { |
261 | FirstStockPtr = StockPtr; | 262 | FirstStockPtr = StockPtr; |
262 | StockPtr->PreviousStock = 0; | 263 | StockPtr->PreviousStock = 0; |
263 | } | 264 | } |
264 | 265 | ||
265 | StockPtr->NextStock = 0; | 266 | StockPtr->NextStock = 0; |
266 | 267 | ||
267 | if (LastStockPtr) | 268 | if (LastStockPtr) |
268 | { | 269 | { |
269 | LastStockPtr->NextStock = StockPtr; | 270 | LastStockPtr->NextStock = StockPtr; |
270 | StockPtr->PreviousStock = LastStockPtr; | 271 | StockPtr->PreviousStock = LastStockPtr; |
271 | } | 272 | } |
272 | 273 | ||
273 | LastStockPtr = StockPtr; | 274 | LastStockPtr = StockPtr; |
274 | } | 275 | } |
275 | 276 | ||
276 | end_line++; | 277 | end_line++; |
277 | line = end_line; | 278 | line = end_line; |
278 | 279 | ||
279 | } | 280 | } |
280 | 281 | ||
@@ -318,13 +319,13 @@ stock *parse_csv_history_file(char *csv_file) | |||
318 | 319 | ||
319 | while ((end_line = strstr(line, "\n"))) | 320 | while ((end_line = strstr(line, "\n"))) |
320 | { | 321 | { |
321 | *end_line = 0; | 322 | *end_line = 0; |
322 | 323 | ||
323 | StockPtr = malloc_stock(); | 324 | StockPtr = malloc_stock(); |
324 | 325 | ||
325 | /* Date */ | 326 | /* Date */ |
326 | ptr = strtok(line, ","); | 327 | ptr = strtok(line, ","); |
327 | if (!ptr) return 0; | 328 | if (!ptr) return 0; |
328 | 329 | ||
329 | sscanf(ptr,"%d-%3s-%d",&day,smonth,&year); | 330 | sscanf(ptr,"%d-%3s-%d",&day,smonth,&year); |
330 | 331 | ||
@@ -337,17 +338,17 @@ stock *parse_csv_history_file(char *csv_file) | |||
337 | #endif | 338 | #endif |
338 | 339 | ||
339 | month = i+1; | 340 | month = i+1; |
340 | 341 | ||
341 | date = (char *)malloc(DATE_LENGTH); | 342 | date = (char *)malloc(DATE_LENGTH); |
342 | if (date==NULL) | 343 | if (date==NULL) |
343 | { | 344 | { |
344 | fprintf(stderr,"Memory allocating error (%s line %d)\n" | 345 | fprintf(stderr,"Memory allocating error (%s line %d)\n" |
345 | ,__FILE__, __LINE__); | 346 | ,__FILE__, __LINE__); |
346 | exit(1); | 347 | exit(1); |
347 | } | 348 | } |
348 | sprintf(date,"%.2d%.2d%.2d", year, month, day); | 349 | sprintf(date,"%.2d%.2d%.2d", year, month, day); |
349 | StockPtr->Date = date; | 350 | StockPtr->Date = date; |
350 | 351 | ||
351 | /* Open */ | 352 | /* Open */ |
352 | ptr = strtok(NULL, ","); | 353 | ptr = strtok(NULL, ","); |
353 | if (!ptr) return 0; | 354 | if (!ptr) return 0; |
@@ -369,31 +370,31 @@ stock *parse_csv_history_file(char *csv_file) | |||
369 | sscanf(ptr,"%f",&(StockPtr->LastPrice)); | 370 | sscanf(ptr,"%f",&(StockPtr->LastPrice)); |
370 | 371 | ||
371 | /* Volume */ | 372 | /* Volume */ |
372 | 373 | ||
373 | ptr = strtok(NULL, ","); | 374 | ptr = strtok(NULL, ","); |
374 | if (!ptr) | 375 | if (!ptr) |
375 | /* It seems to be an indice */ | 376 | /* It seems to be an indice */ |
376 | /* No volume for indices */ | 377 | /* No volume for indices */ |
377 | StockPtr->Volume = 0; | 378 | StockPtr->Volume = 0; |
378 | else | 379 | else |
379 | StockPtr->Volume = atoi(ptr); | 380 | StockPtr->Volume = atoi(ptr); |
380 | 381 | ||
381 | if( !FirstStockPtr ) | 382 | if( !FirstStockPtr ) |
382 | { | 383 | { |
383 | FirstStockPtr = StockPtr; | 384 | FirstStockPtr = StockPtr; |
384 | StockPtr->PreviousStock = 0; | 385 | StockPtr->PreviousStock = 0; |
385 | } | 386 | } |
386 | 387 | ||
387 | StockPtr->NextStock = 0; | 388 | StockPtr->NextStock = 0; |
388 | 389 | ||
389 | if (LastStockPtr) | 390 | if (LastStockPtr) |
390 | { | 391 | { |
391 | LastStockPtr->NextStock = StockPtr; | 392 | LastStockPtr->NextStock = StockPtr; |
392 | StockPtr->PreviousStock = LastStockPtr; | 393 | StockPtr->PreviousStock = LastStockPtr; |
393 | } | 394 | } |
394 | 395 | ||
395 | LastStockPtr = StockPtr; | 396 | LastStockPtr = StockPtr; |
396 | 397 | ||
397 | end_line++; | 398 | end_line++; |
398 | line = end_line; | 399 | line = end_line; |
399 | } | 400 | } |
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 @@ | |||
6 | * modify it under the terms of the GNU Library General Public | 6 | * modify it under the terms of the GNU Library General Public |
7 | * License as published by the Free Software Foundation; either | 7 | * License as published by the Free Software Foundation; either |
8 | * version 2 of the License, or (at your option) any later version. | 8 | * version 2 of the License, or (at your option) any later version. |
9 | * | 9 | * |
10 | * This library is distributed in the hope that it will be useful, | 10 | * This library is distributed in the hope that it will be useful, |
11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | 11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of |
12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | 12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
13 | * Library General Public License for more details. | 13 | * Library General Public License for more details. |
14 | * | 14 | * |
15 | * You should have received a copy of the GNU Library General Public | 15 | * You should have received a copy of the GNU Library General Public |
16 | * License along with this library; if not, write to the | 16 | * License along with this library; if not, write to the |
17 | * Free Software Foundation, Inc., 59 Temple Place - Suite 330, | 17 | * Free Software Foundation, Inc., 59 Temple Place - Suite 330, |
18 | * Boston, MA 02111-1307, USA. | 18 | * Boston, MA 02111-1307, USA. |
19 | */ | 19 | */ |
20 | 20 | ||
21 | #define __HTTP_C__ | 21 | #define __HTTP_C__ |
22 | #define __UNIX__ | ||
22 | 23 | ||
23 | #ifdef __UNIX__ | 24 | #ifdef __UNIX__ |
24 | #include <sys/socket.h> | 25 | #include <sys/socket.h> |
25 | #include <netinet/in.h> | 26 | #include <netinet/in.h> |
26 | #include <arpa/inet.h> | 27 | #include <arpa/inet.h> |
27 | #include <netdb.h> | 28 | #include <netdb.h> |
@@ -82,15 +83,15 @@ libstocks_return_code http_get(char *http_file, char *http_server, char **pdata) | |||
82 | server.sin_port = (unsigned short) htons( http_proxy_server ? http_proxy_port : 80 ); | 83 | server.sin_port = (unsigned short) htons( http_proxy_server ? http_proxy_port : 80 ); |
83 | 84 | ||
84 | } else | 85 | } else |
85 | { | 86 | { |
86 | 87 | ||
87 | #ifdef DEBUG | 88 | #ifdef DEBUG |
88 | printf(" gethostbyname : NOK\n"); | 89 | printf(" gethostbyname : NOK\n"); |
89 | #endif | 90 | #endif |
90 | return ERRHOST; | 91 | return ERRHOST; |
91 | } | 92 | } |
92 | 93 | ||
93 | /* create socket */ | 94 | /* create socket */ |
94 | if ((s = socket(AF_INET, SOCK_STREAM, 0)) < 0) | 95 | if ((s = socket(AF_INET, SOCK_STREAM, 0)) < 0) |
95 | { | 96 | { |
96 | 97 | ||
@@ -118,13 +119,13 @@ libstocks_return_code http_get(char *http_file, char *http_server, char **pdata) | |||
118 | } | 119 | } |
119 | 120 | ||
120 | /* create header */ | 121 | /* create header */ |
121 | if (http_proxy_server) | 122 | if (http_proxy_server) |
122 | { | 123 | { |
123 | sprintf(header,"GET http://%.128s:80%.256s HTTP/1.0\015\012\015\012", | 124 | sprintf(header,"GET http://%.128s:80%.256s HTTP/1.0\015\012\015\012", |
124 | http_server, http_file); | 125 | http_server, http_file); |
125 | } | 126 | } |
126 | else | 127 | else |
127 | { | 128 | { |
128 | sprintf(header,"GET %s HTTP/1.0\015\012\015\012",http_file); | 129 | sprintf(header,"GET %s HTTP/1.0\015\012\015\012",http_file); |
129 | } | 130 | } |
130 | 131 | ||
@@ -135,13 +136,13 @@ libstocks_return_code http_get(char *http_file, char *http_server, char **pdata) | |||
135 | if (write(s,header,hlg)!=hlg) | 136 | if (write(s,header,hlg)!=hlg) |
136 | #elif __WINDOWS__ | 137 | #elif __WINDOWS__ |
137 | if (send(s,header,hlg, 0)!=hlg) | 138 | if (send(s,header,hlg, 0)!=hlg) |
138 | #endif | 139 | #endif |
139 | { | 140 | { |
140 | #ifdef DEBUG | 141 | #ifdef DEBUG |
141 | printf(" send header : NOK\n"); | 142 | printf(" send header : NOK\n"); |
142 | #endif | 143 | #endif |
143 | return ERRWHEA; | 144 | return ERRWHEA; |
144 | } | 145 | } |
145 | 146 | ||
146 | data_lgr = 0; | 147 | data_lgr = 0; |
147 | r=1; | 148 | r=1; |
@@ -154,42 +155,42 @@ libstocks_return_code http_get(char *http_file, char *http_server, char **pdata) | |||
154 | r=read(s,buf,BUF_SIZE); | 155 | r=read(s,buf,BUF_SIZE); |
155 | #elif __WINDOWS__ | 156 | #elif __WINDOWS__ |
156 | r=recv(s,buf,BUF_SIZE,0); | 157 | r=recv(s,buf,BUF_SIZE,0); |
157 | #endif | 158 | #endif |
158 | 159 | ||
159 | if (r) | 160 | if (r) |
160 | { | 161 | { |
161 | if(!data_lgr) | 162 | if(!data_lgr) |
162 | { | 163 | { |
163 | if((data = malloc(r+1))==NULL) | 164 | if((data = malloc(r+1))==NULL) |
164 | { | 165 | { |
165 | fprintf(stderr,"Memory allocating error (%s line %d)\n" | 166 | fprintf(stderr,"Memory allocating error (%s line %d)\n" |
166 | ,__FILE__, __LINE__); | 167 | ,__FILE__, __LINE__); |
167 | exit(1); | 168 | exit(1); |
168 | } | 169 | } |
169 | 170 | ||
170 | memcpy(data,buf,r); | 171 | memcpy(data,buf,r); |
171 | data_lgr = r; | 172 | data_lgr = r; |
172 | data[r]=0; | 173 | data[r]=0; |
173 | } | 174 | } |
174 | else | 175 | else |
175 | { | 176 | { |
176 | if((temp = malloc(r+data_lgr+1))==NULL) | 177 | if((temp = malloc(r+data_lgr+1))==NULL) |
177 | { | 178 | { |
178 | fprintf(stderr,"Memory allocating error (%s line %d)\n" | 179 | fprintf(stderr,"Memory allocating error (%s line %d)\n" |
179 | ,__FILE__, __LINE__); | 180 | ,__FILE__, __LINE__); |
180 | exit(1); | 181 | exit(1); |
181 | } | 182 | } |
182 | memcpy(temp, data, data_lgr); | 183 | memcpy(temp, data, data_lgr); |
183 | memcpy(temp+data_lgr, buf, r); | 184 | memcpy(temp+data_lgr, buf, r); |
184 | temp[r+data_lgr]=0; | 185 | temp[r+data_lgr]=0; |
185 | data_lgr += r; | 186 | data_lgr += r; |
186 | free(data); | 187 | free(data); |
187 | data = temp; | 188 | data = temp; |
188 | } | 189 | } |
189 | } | 190 | } |
190 | } | 191 | } |
191 | 192 | ||
192 | /* close socket */ | 193 | /* close socket */ |
193 | #ifdef __UNIX__ | 194 | #ifdef __UNIX__ |
194 | close(s); | 195 | close(s); |
195 | #elif __WINDOWS__ | 196 | #elif __WINDOWS__ |
@@ -207,20 +208,20 @@ libstocks_return_code http_get(char *http_file, char *http_server, char **pdata) | |||
207 | header_founded = 0; | 208 | header_founded = 0; |
208 | while( !header_founded ) | 209 | while( !header_founded ) |
209 | { | 210 | { |
210 | if (*temp==0) return ERRRHEA; | 211 | if (*temp==0) return ERRRHEA; |
211 | 212 | ||
212 | if( *temp==0x0A ) | 213 | if( *temp==0x0A ) |
213 | { | 214 | { |
214 | /* test if it is the header end */ | 215 | /* test if it is the header end */ |
215 | temp ++; | 216 | temp ++; |
216 | if (*temp == 0x0D) temp++; | 217 | if (*temp == 0x0D) temp++; |
217 | if (*temp == 0x0A) header_founded = 1; | 218 | if (*temp == 0x0A) header_founded = 1; |
218 | } | 219 | } |
219 | else | 220 | else |
220 | temp++; | 221 | temp++; |
221 | } | 222 | } |
222 | 223 | ||
223 | *temp = 0; | 224 | *temp = 0; |
224 | temp++; | 225 | temp++; |
225 | 226 | ||
226 | sscanf(data,"HTTP/1.%*d %03d",&error_code); | 227 | 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) | |||
235 | } | 236 | } |
236 | 237 | ||
237 | if ((csv_ptr = malloc(strlen(temp)+1))==NULL) | 238 | if ((csv_ptr = malloc(strlen(temp)+1))==NULL) |
238 | { | 239 | { |
239 | free(data); | 240 | free(data); |
240 | fprintf(stderr,"Memory allocating error (%s line %d)\n" | 241 | fprintf(stderr,"Memory allocating error (%s line %d)\n" |
241 | ,__FILE__, __LINE__); | 242 | ,__FILE__, __LINE__); |
242 | exit(1); | 243 | exit(1); |
243 | } | 244 | } |
244 | 245 | ||
245 | memcpy(csv_ptr, temp, strlen(temp)+1); | 246 | memcpy(csv_ptr, temp, strlen(temp)+1); |
246 | free(data); | 247 | free(data); |
247 | 248 | ||