Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
wine-winehq
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
wine
wine-winehq
Commits
f7c8f5b3
Commit
f7c8f5b3
authored
May 15, 2014
by
Hans Leidekker
Committed by
Alexandre Julliard
May 15, 2014
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
jsproxy: Implement InternetGetProxyInfo.
parent
8545a971
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
268 additions
and
1 deletion
+268
-1
Makefile.in
dlls/jsproxy/Makefile.in
+3
-0
jsproxy.spec
dlls/jsproxy/jsproxy.spec
+1
-1
main.c
dlls/jsproxy/main.c
+0
-0
pac.js
dlls/jsproxy/pac.js
+244
-0
rsrc.rc
dlls/jsproxy/rsrc.rc
+20
-0
No files found.
dlls/jsproxy/Makefile.in
View file @
f7c8f5b3
MODULE
=
jsproxy.dll
IMPORTS
=
uuid oleaut32 ole32
IMPORTLIB
=
jsproxy
C_SRCS
=
\
main.c
RC_SRCS
=
rsrc.rc
dlls/jsproxy/jsproxy.spec
View file @
f7c8f5b3
...
...
@@ -2,4 +2,4 @@
@ stub InternetInitializeExAutoProxyDll
@ stdcall InternetDeInitializeAutoProxyDll(str long)
@ stub InternetDeInitializeExAutoProxyDll
@ st
ub InternetGetProxyInfo
@ st
dcall InternetGetProxyInfo(str long str long ptr ptr)
dlls/jsproxy/main.c
View file @
f7c8f5b3
This diff is collapsed.
Click to expand it.
dlls/jsproxy/pac.js
0 → 100644
View file @
f7c8f5b3
/*
* Copyright 2011 Hans Leidekker for CodeWeavers
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 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
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
*
* Based on nsProxyAutoConfig.js from mozilla.org.
*/
function
myIpAddress
()
{
try
{
return
dns_resolve
(
''
);
}
catch
(
e
)
{
return
'127.0.0.1'
;
}
}
function
dnsResolve
(
host
)
{
try
{
return
dns_resolve
(
host
);
}
catch
(
e
)
{
return
null
;
}
}
function
dnsDomainIs
(
host
,
domain
)
{
return
(
host
.
length
>=
domain
.
length
&&
host
.
substring
(
host
.
length
-
domain
.
length
)
==
domain
);
}
function
dnsDomainLevels
(
host
)
{
return
host
.
split
(
'.'
).
length
-
1
;
}
function
convert_addr
(
ipchars
)
{
var
bytes
=
ipchars
.
split
(
'.'
);
var
result
=
((
bytes
[
0
]
&
0xff
)
<<
24
)
|
((
bytes
[
1
]
&
0xff
)
<<
16
)
|
((
bytes
[
2
]
&
0xff
)
<<
8
)
|
(
bytes
[
3
]
&
0xff
);
return
result
;
}
function
isInNet
(
ipaddr
,
pattern
,
maskstr
)
{
var
test
=
/^
(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})
$/
.
exec
(
ipaddr
);
if
(
test
==
null
)
{
ipaddr
=
dnsResolve
(
ipaddr
);
if
(
ipaddr
==
null
)
return
false
;
}
else
if
(
test
[
1
]
>
255
||
test
[
2
]
>
255
||
test
[
3
]
>
255
||
test
[
4
]
>
255
)
{
return
false
;
// not an IP address
}
var
host
=
convert_addr
(
ipaddr
);
var
pat
=
convert_addr
(
pattern
);
var
mask
=
convert_addr
(
maskstr
);
return
((
host
&
mask
)
==
(
pat
&
mask
));
}
function
isPlainHostName
(
host
)
{
return
(
host
.
search
(
'
\\
.'
)
==
-
1
);
}
function
isResolvable
(
host
)
{
var
ip
=
dnsResolve
(
host
);
return
(
ip
!=
null
);
}
function
localHostOrDomainIs
(
host
,
hostdom
)
{
return
(
host
==
hostdom
)
||
(
hostdom
.
lastIndexOf
(
host
+
'.'
,
0
)
==
0
);
}
function
shExpMatch
(
url
,
pattern
)
{
pattern
=
pattern
.
replace
(
/
\.
/g
,
'
\\
.'
);
pattern
=
pattern
.
replace
(
/
\*
/g
,
'.*'
);
pattern
=
pattern
.
replace
(
/
\?
/g
,
'.'
);
var
newRe
=
new
RegExp
(
'^'
+
pattern
+
'$'
);
return
newRe
.
test
(
url
);
}
var
wdays
=
{
SUN
:
0
,
MON
:
1
,
TUE
:
2
,
WED
:
3
,
THU
:
4
,
FRI
:
5
,
SAT
:
6
};
var
months
=
{
JAN
:
0
,
FEB
:
1
,
MAR
:
2
,
APR
:
3
,
MAY
:
4
,
JUN
:
5
,
JUL
:
6
,
AUG
:
7
,
SEP
:
8
,
OCT
:
9
,
NOV
:
10
,
DEC
:
11
};
function
weekdayRange
()
{
function
getDay
(
weekday
)
{
if
(
weekday
in
wdays
)
{
return
wdays
[
weekday
];
}
return
-
1
;
}
var
date
=
new
Date
();
var
argc
=
arguments
.
length
;
var
wday
;
if
(
argc
<
1
)
return
false
;
if
(
arguments
[
argc
-
1
]
==
'GMT'
)
{
argc
--
;
wday
=
date
.
getUTCDay
();
}
else
{
wday
=
date
.
getDay
();
}
var
wd1
=
getDay
(
arguments
[
0
]);
var
wd2
=
(
argc
==
2
)
?
getDay
(
arguments
[
1
])
:
wd1
;
return
(
wd1
==
-
1
||
wd2
==
-
1
)
?
false
:
(
wd1
<=
wday
&&
wday
<=
wd2
);
}
function
dateRange
()
{
function
getMonth
(
name
)
{
if
(
name
in
months
)
{
return
months
[
name
];
}
return
-
1
;
}
var
date
=
new
Date
();
var
argc
=
arguments
.
length
;
if
(
argc
<
1
)
{
return
false
;
}
var
isGMT
=
(
arguments
[
argc
-
1
]
==
'GMT'
);
if
(
isGMT
)
{
argc
--
;
}
// function will work even without explicit handling of this case
if
(
argc
==
1
)
{
var
tmp
=
parseInt
(
arguments
[
0
]);
if
(
isNaN
(
tmp
))
{
return
((
isGMT
?
date
.
getUTCMonth
()
:
date
.
getMonth
())
==
getMonth
(
arguments
[
0
]));
}
else
if
(
tmp
<
32
)
{
return
((
isGMT
?
date
.
getUTCDate
()
:
date
.
getDate
())
==
tmp
);
}
else
{
return
((
isGMT
?
date
.
getUTCFullYear
()
:
date
.
getFullYear
())
==
tmp
);
}
}
var
year
=
date
.
getFullYear
();
var
date1
,
date2
;
date1
=
new
Date
(
year
,
0
,
1
,
0
,
0
,
0
);
date2
=
new
Date
(
year
,
11
,
31
,
23
,
59
,
59
);
var
adjustMonth
=
false
;
for
(
var
i
=
0
;
i
<
(
argc
>>
1
);
i
++
)
{
var
tmp
=
parseInt
(
arguments
[
i
]);
if
(
isNaN
(
tmp
))
{
var
mon
=
getMonth
(
arguments
[
i
]);
date1
.
setMonth
(
mon
);
}
else
if
(
tmp
<
32
)
{
adjustMonth
=
(
argc
<=
2
);
date1
.
setDate
(
tmp
);
}
else
{
date1
.
setFullYear
(
tmp
);
}
}
for
(
var
i
=
(
argc
>>
1
);
i
<
argc
;
i
++
)
{
var
tmp
=
parseInt
(
arguments
[
i
]);
if
(
isNaN
(
tmp
))
{
var
mon
=
getMonth
(
arguments
[
i
]);
date2
.
setMonth
(
mon
);
}
else
if
(
tmp
<
32
)
{
date2
.
setDate
(
tmp
);
}
else
{
date2
.
setFullYear
(
tmp
);
}
}
if
(
adjustMonth
)
{
date1
.
setMonth
(
date
.
getMonth
());
date2
.
setMonth
(
date
.
getMonth
());
}
if
(
isGMT
)
{
var
tmp
=
date
;
tmp
.
setFullYear
(
date
.
getUTCFullYear
());
tmp
.
setMonth
(
date
.
getUTCMonth
());
tmp
.
setDate
(
date
.
getUTCDate
());
tmp
.
setHours
(
date
.
getUTCHours
());
tmp
.
setMinutes
(
date
.
getUTCMinutes
());
tmp
.
setSeconds
(
date
.
getUTCSeconds
());
date
=
tmp
;
}
return
((
date1
<=
date
)
&&
(
date
<=
date2
));
}
function
timeRange
()
{
var
argc
=
arguments
.
length
;
var
date
=
new
Date
();
var
isGMT
=
false
;
if
(
argc
<
1
)
{
return
false
;
}
if
(
arguments
[
argc
-
1
]
==
'GMT'
)
{
isGMT
=
true
;
argc
--
;
}
var
hour
=
isGMT
?
date
.
getUTCHours
()
:
date
.
getHours
();
var
date1
,
date2
;
date1
=
new
Date
();
date2
=
new
Date
();
if
(
argc
==
1
)
{
return
(
hour
==
arguments
[
0
]);
}
else
if
(
argc
==
2
)
{
return
((
arguments
[
0
]
<=
hour
)
&&
(
hour
<=
arguments
[
1
]));
}
else
{
switch
(
argc
)
{
case
6
:
date1
.
setSeconds
(
arguments
[
2
]);
date2
.
setSeconds
(
arguments
[
5
]);
case
4
:
var
middle
=
argc
>>
1
;
date1
.
setHours
(
arguments
[
0
]);
date1
.
setMinutes
(
arguments
[
1
]);
date2
.
setHours
(
arguments
[
middle
]);
date2
.
setMinutes
(
arguments
[
middle
+
1
]);
if
(
middle
==
2
)
{
date2
.
setSeconds
(
59
);
}
break
;
default
:
throw
'timeRange: bad number of arguments'
}
}
if
(
isGMT
)
{
date
.
setFullYear
(
date
.
getUTCFullYear
());
date
.
setMonth
(
date
.
getUTCMonth
());
date
.
setDate
(
date
.
getUTCDate
());
date
.
setHours
(
date
.
getUTCHours
());
date
.
setMinutes
(
date
.
getUTCMinutes
());
date
.
setSeconds
(
date
.
getUTCSeconds
());
}
return
((
date1
<=
date
)
&&
(
date
<=
date2
));
}
dlls/jsproxy/rsrc.rc
0 → 100644
View file @
f7c8f5b3
/*
* Copyright 2014 Hans Leidekker for CodeWeavers
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 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
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
*/
/* @makedep: pac.js */
pac.js 40 "pac.js"
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment