source: trunk/src/wininet/utility.c@ 2624

Last change on this file since 2624 was 2624, checked in by sandervl, 26 years ago

Ported Corel wininet Wine version

File size: 2.4 KB
Line 
1/*
2 * Wininet - Utility functions
3 *
4 * Copyright 1999 Corel Corporation
5 *
6 * Ulrich Czekalla
7 *
8 */
9
10#include "windows.h"
11#include "wininet.h"
12#include "debugtools.h"
13#include "winerror.h"
14#include "winsock.h"
15
16#include <time.h>
17#include <string.h>
18#include <stdlib.h>
19
20#include "internet.h"
21
22DEFAULT_DEBUG_CHANNEL(wininet)
23
24#define TIME_STRING_LEN 30
25
26time_t ConvertTimeString(LPCSTR asctime)
27{
28 char tmpChar[TIME_STRING_LEN];
29 char *tmpChar2;
30 struct tm SystemTime;
31 int timelen = strlen(asctime);
32
33 if(!asctime || !timelen)
34 return 0;
35
36 strncpy(tmpChar, asctime, TIME_STRING_LEN);
37
38 //Assert that the string is the expected length
39 if (tmpChar[TIME_STRING_LEN] != '\0')
40 {
41 tmpChar[TIME_STRING_LEN] = '\0';
42 FIXME("\n");
43 }
44
45 //Convert a time such as 'Mon, 15 Nov 1999 16:09:35 GMT' into a SYSTEMTIME structure
46 //We assume the time is in this format
47 //and divide it into easy to swallow chunks
48 tmpChar[3]='\0';
49 tmpChar[7]='\0';
50 tmpChar[11]='\0';
51 tmpChar[16]='\0';
52 tmpChar[19]='\0';
53 tmpChar[22]='\0';
54 tmpChar[25]='\0';
55
56 SystemTime.tm_year = atoi(tmpChar+12) - 1900;
57 SystemTime.tm_mday = atoi(tmpChar+5);
58 SystemTime.tm_hour = atoi(tmpChar+17);
59 SystemTime.tm_min = atoi(tmpChar+20);
60 SystemTime.tm_sec = atoi(tmpChar+23);
61
62 //and month
63 tmpChar2 = tmpChar + 8;
64 switch(tmpChar2[2])
65 {
66 case 'n':
67 if(tmpChar2[1]=='a')
68 SystemTime.tm_mon = 0;
69 else
70 SystemTime.tm_mon = 5;
71 break;
72 case 'b':
73 SystemTime.tm_mon = 1;
74 break;
75 case 'r':
76 if(tmpChar2[1]=='a')
77 SystemTime.tm_mon = 2;
78 else
79 SystemTime.tm_mon = 3;
80 break;
81 case 'y':
82 SystemTime.tm_mon = 4;
83 break;
84 case 'l':
85 SystemTime.tm_mon = 6;
86 break;
87 case 'g':
88 SystemTime.tm_mon = 7;
89 break;
90 case 'p':
91 SystemTime.tm_mon = 8;
92 break;
93 case 't':
94 SystemTime.tm_mon = 9;
95 break;
96 case 'v':
97 SystemTime.tm_mon = 10;
98 break;
99 case 'c':
100 SystemTime.tm_mon = 11;
101 break;
102 default:
103 FIXME("\n");
104 }//switch
105
106 return mktime(&SystemTime);
107}
108
109
110BOOL GetAddress(LPCSTR lpszServerName, INTERNET_PORT nServerPort,
111 struct hostent **phe, struct sockaddr_in *psa)
112{
113 *phe = gethostbyname(lpszServerName);
114 if (NULL == *phe)
115 {
116 TRACE("Failed to get hostname %s\n", lpszServerName);
117 return FALSE;
118 }
119
120 memcpy((char *)&psa->sin_addr, (*phe)->h_addr, (*phe)->h_length);
121 psa->sin_family = (*phe)->h_addrtype;
122 psa->sin_port = htons((u_short)nServerPort);
123
124 return TRUE;
125}
Note: See TracBrowser for help on using the repository browser.