NsisUrlLib plug-in: Difference between revisions
m (→NsisIIS::IterateLine: formatting) |
(fixing typo (copy&paste error?)) |
||
(3 intermediate revisions by one other user not shown) | |||
Line 5: | Line 5: | ||
<attach>NsisUrlLib.zip</attach> | <attach>NsisUrlLib.zip</attach> | ||
[http://naranj.sourceforge.net Nsis UrlLib plugin page on SourceForge] | [http://naranj.sourceforge.net Nsis UrlLib plugin page on SourceForge] | ||
Line 34: | Line 33: | ||
</highlight-nsis> | </highlight-nsis> | ||
=== | ===NsisUrlLib::IterateLine=== | ||
After successful calling of UrlOpen function, you can use this function to get a single line of text (not binary) data, each time. It means by putting the function in a loop, you can read the whole text file. | After successful calling of UrlOpen function, you can use this function to get a single line of text (not binary) data, each time. It means by putting the function in a loop, you can read the whole text file. | ||
Line 49: | Line 48: | ||
</highlight-nsis> | </highlight-nsis> | ||
=== | ===NsisUrlLib::IterateChunk=== | ||
After successful calling of UrlOpen function, you can use this function to get a 1024 bytes (maximum NSIS variable limit) of binary data file each time. It means by putting the function in a loop, you can read the whole binaryfile. Note that this plug-in is not intended for reading large amounts of (binary) data. You can use this function for example if you are using a special binary protocol for RPC and so. | |||
Example: | Example: | ||
<highlight-nsis> | <highlight-nsis> | ||
${Do} | |||
NsisUrlLib::IterateChunk /NOUNLOAD | |||
Pop $1 | |||
# Do something with $1, which is now a 1K.Byte chunk of data. | |||
StrLen $2 $1 | |||
${LoopUntil} $2 = 0 | |||
</highlight-nsis> | </highlight-nsis> | ||
Line 72: | Line 68: | ||
== History == | == History == | ||
*03/02/2010 Released version 1.0.1 & used in my installer. | |||
*03/10/2010 Corrected exploit vulnerability, replaced sscanf with sscanf_s | |||
[[Category:Plugins]] | [[Category:Plugins]] |
Latest revision as of 07:43, 8 October 2016
Author: Kamyar (talk, contrib) |
Links
NsisUrlLib.zip (5 KB)
Nsis UrlLib plugin page on SourceForge
Description
Version: 1.0.2
NsisIIS plugin to fetch content (usually xml/html) from an http/https url.
Instructions:
- Copy NsisUrlLib.dll to Pluginsfolder of Nsis
- Read this readme and example files.
Functions
NsisUrlLib::UrlOpen
tries to fetch content from URL given. Currently supports http and https. This version uses system default proxy (or none).
After calling, the returned message in stack shows if the function has been successful. You MUST pop the message to care stack. The URL is a standard form, which means can accept the standard URL format of: protocol:://address:port/content
in which address can be both domain name and IP address.
After successful calling of this function, the plug-in saves the result into a variable, so that you can get in further calling of extra functions. Note that for this process to take place, you must use /NOUNLOAD
switch, which makes the plug-in reside the memory until end of setup program.
Example:
NsisUrlLib::UrlOpen /NOUNLOAD "http://www.mydomain.com/content.html"
NsisUrlLib::IterateLine
After successful calling of UrlOpen function, you can use this function to get a single line of text (not binary) data, each time. It means by putting the function in a loop, you can read the whole text file.
Example:
${Do} NsisUrlLib::IterateLine /NOUNLOAD Pop $1 # Do something with $1, which is now a single line of the content. StrLen $2 $1 ${LoopUntil} $2 = 0
NsisUrlLib::IterateChunk
After successful calling of UrlOpen function, you can use this function to get a 1024 bytes (maximum NSIS variable limit) of binary data file each time. It means by putting the function in a loop, you can read the whole binaryfile. Note that this plug-in is not intended for reading large amounts of (binary) data. You can use this function for example if you are using a special binary protocol for RPC and so.
Example:
${Do} NsisUrlLib::IterateChunk /NOUNLOAD Pop $1 # Do something with $1, which is now a 1K.Byte chunk of data. StrLen $2 $1 ${LoopUntil} $2 = 0
TODO
- Adding support for ftp and ftps protocols.
- Adding support for custom proxy server.
History
- 03/02/2010 Released version 1.0.1 & used in my installer.
- 03/10/2010 Corrected exploit vulnerability, replaced sscanf with sscanf_s