mirror of
https://github.com/Jackett/Jackett.git
synced 2025-09-17 17:34:09 +02:00

* Move to use package reference for restoring nuget packages. * Return a task result for this async method. * Update to a supported version of the .NET Framework. This also has the side effect of allowing us to automatically generate our binding redirects on build. * Set the solution to target VS2017 * Update test solution csproj file to support being built through MSBuild 15 * Move to use package reference for restoring nuget packages. * Return a task result for this async method. * Update to a supported version of the .NET Framework. This also has the side effect of allowing us to automatically generate our binding redirects on build. * Set the solution to target VS2017 * Update test solution csproj file to support being built through MSBuild 15 * DateTimeRoutines does not have Nuget packages that support .NET Standard (and therefore .NET Core). We will have to include them for now until we can get rid of this dependency. * Move the interfaces into their own files. This will be useful when we share them between the .NET Core and .NET Framework WebAPI * Stage services that need to point to the new interface namespace. * Update CurlSharp to fix memory leak issue and support better runtime compatibility with OSX and Linux * Start spliting some interfaces into their own files - this will help by allowing us to split them out in the future into a seperate project so the actual implementations can stay within their respective architectures when required
243 lines
9.5 KiB
C#
243 lines
9.5 KiB
C#
using System;
|
|
using System.Runtime.InteropServices;
|
|
|
|
namespace CurlSharp
|
|
{
|
|
/// <summary>
|
|
/// Called when cURL has debug information for the client.
|
|
/// </summary>
|
|
/// <remarks>
|
|
/// For usage, see the sample <c>Upload.cs</c>.
|
|
/// Arguments passed to the recipient include:
|
|
/// <list type="table">
|
|
/// <listheader>
|
|
/// <term>Argument</term>
|
|
/// <description>Description</description>
|
|
/// </listheader>
|
|
/// <item>
|
|
/// <term>infoType</term>
|
|
/// <description>
|
|
/// Type of debug information, see
|
|
/// <see cref="CurlInfoType" />.
|
|
/// </description>
|
|
/// </item>
|
|
/// <item>
|
|
/// <term>message</term>
|
|
/// <description>Debug information as a string.</description>
|
|
/// </item>
|
|
/// <item>
|
|
/// <term>size</term>
|
|
/// <description>The size in bytes.</description>
|
|
/// </item>
|
|
/// <item>
|
|
/// <term>extraData</term>
|
|
/// <description>Client-provided extra data.</description>
|
|
/// </item>
|
|
/// </list>
|
|
/// </remarks>
|
|
public delegate void CurlDebugCallback(CurlInfoType infoType, String message, int size, Object extraData);
|
|
|
|
/// <summary>
|
|
/// Called when cURL has header data for the client.
|
|
/// </summary>
|
|
/// <remarks>
|
|
/// For usage, see the sample <c>Headers.cs</c>.
|
|
/// Arguments passed to the recipient include:
|
|
/// <list type="table">
|
|
/// <listheader>
|
|
/// <term>Argument</term>
|
|
/// <description>Description</description>
|
|
/// </listheader>
|
|
/// <item>
|
|
/// <term>buf</term>
|
|
/// <description>Header data from cURL to the client.</description>
|
|
/// </item>
|
|
/// <item>
|
|
/// <term>size</term>
|
|
/// <description>Size of a character, in bytes.</description>
|
|
/// </item>
|
|
/// <item>
|
|
/// <term>nmemb</term>
|
|
/// <description>Number of characters.</description>
|
|
/// </item>
|
|
/// <item>
|
|
/// <term>extraData</term>
|
|
/// <description>Client-provided extra data.</description>
|
|
/// </item>
|
|
/// </list>
|
|
/// Your implementation should return the number of bytes (not
|
|
/// characters) processed. Usually this is <c>size * nmemb</c>.
|
|
/// Return -1 to abort the transfer.
|
|
/// </remarks>
|
|
public delegate int CurlHeaderCallback(byte[] buf, int size, int nmemb, Object extraData);
|
|
|
|
/// <summary>
|
|
/// Called when cURL needs for the client to perform an
|
|
/// IOCTL operation. An example might be when an FTP
|
|
/// upload requires rewinding of the input file to deal
|
|
/// with a resend occasioned by an error.
|
|
/// </summary>
|
|
/// <remarks>
|
|
/// <list type="table">
|
|
/// <listheader>
|
|
/// <term>Argument</term>
|
|
/// <description>Description</description>
|
|
/// </listheader>
|
|
/// <item>
|
|
/// <term>cmd</term>
|
|
/// <description>
|
|
/// A <see cref="CurlIoCommand" />; for now, only
|
|
/// <c>RestartRead</c> should be passed.
|
|
/// </description>
|
|
/// </item>
|
|
/// <item>
|
|
/// <term>extraData</term>
|
|
/// <description>
|
|
/// Client-provided extra data; in the
|
|
/// case of an FTP upload, it might be a
|
|
/// <c>FileStream</c> object.
|
|
/// </description>
|
|
/// </item>
|
|
/// </list>
|
|
/// Your implementation should return a <see cref="CurlIoError" />,
|
|
/// which should be <see cref="CurlIoError.Ok" /> if everything
|
|
/// is okay.
|
|
/// </remarks>
|
|
public delegate CurlIoError CurlIoctlCallback(CurlIoCommand cmd, Object extraData);
|
|
|
|
/// <summary>
|
|
/// Called when cURL wants to report progress.
|
|
/// </summary>
|
|
/// <remarks>
|
|
/// For usage, see the sample <c>Upload.cs</c>.
|
|
/// Arguments passed to the recipient include:
|
|
/// <list type="table">
|
|
/// <listheader>
|
|
/// <term>Argument</term>
|
|
/// <description>Description</description>
|
|
/// </listheader>
|
|
/// <item>
|
|
/// <term>extraData</term>
|
|
/// <description>Client-provided extra data.</description>
|
|
/// </item>
|
|
/// <item>
|
|
/// <term>dlTotal</term>
|
|
/// <description>Number of bytes to download.</description>
|
|
/// </item>
|
|
/// <item>
|
|
/// <term>dlNow</term>
|
|
/// <description>Number of bytes downloaded so far.</description>
|
|
/// </item>
|
|
/// <item>
|
|
/// <term>ulTotal</term>
|
|
/// <description>Number of bytes to upload.</description>
|
|
/// </item>
|
|
/// <item>
|
|
/// <term>ulNow</term>
|
|
/// <description>Number of bytes uploaded so far.</description>
|
|
/// </item>
|
|
/// </list>
|
|
/// Your implementation should return 0 to continue, or a non-zero
|
|
/// value to abort the transfer.
|
|
/// </remarks>
|
|
public delegate int CurlProgressCallback(Object extraData, double dlTotal, double dlNow,
|
|
double ulTotal, double ulNow);
|
|
|
|
/// <summary>
|
|
/// Called when cURL wants to read data from the client.
|
|
/// </summary>
|
|
/// <remarks>
|
|
/// For usage, see the sample <c>Upload.cs</c>.
|
|
/// Arguments passed to the recipient include:
|
|
/// <list type="table">
|
|
/// <listheader>
|
|
/// <term>Argument</term>
|
|
/// <description>Description</description>
|
|
/// </listheader>
|
|
/// <item>
|
|
/// <term>buf</term>
|
|
/// <description>
|
|
/// Buffer into which your client should write data
|
|
/// for cURL.
|
|
/// </description>
|
|
/// </item>
|
|
/// <item>
|
|
/// <term>size</term>
|
|
/// <description>Size of a character, usually 1.</description>
|
|
/// </item>
|
|
/// <item>
|
|
/// <term>nmemb</term>
|
|
/// <description>Number of characters.</description>
|
|
/// </item>
|
|
/// <item>
|
|
/// <term>extraData</term>
|
|
/// <description>Client-provided extra data.</description>
|
|
/// </item>
|
|
/// </list>
|
|
/// Your implementation should return the number of bytes (not
|
|
/// characters) written to <c>buf</c>. Return 0 to abort the transfer.
|
|
/// </remarks>
|
|
public delegate int CurlReadCallback([Out] byte[] buf, int size, int nmemb, Object extraData);
|
|
|
|
/// <summary>
|
|
/// Called when cURL wants to report an Ssl event.
|
|
/// </summary>
|
|
/// <remarks>
|
|
/// For usage, see the sample <c>SSLGet.cs</c>.
|
|
/// Arguments passed to the recipient include:
|
|
/// <list type="table">
|
|
/// <listheader>
|
|
/// <term>Argument</term>
|
|
/// <description>Description</description>
|
|
/// </listheader>
|
|
/// <item>
|
|
/// <term>ctx</term>
|
|
/// <description>
|
|
/// An <see cref="CurlSslContext" /> object that wraps an
|
|
/// OpenSSL <c>SSL_CTX</c> pointer.
|
|
/// </description>
|
|
/// </item>
|
|
/// <item>
|
|
/// <term>extraData</term>
|
|
/// <description>Client-provided extra data.</description>
|
|
/// </item>
|
|
/// </list>
|
|
/// Your implementation should return a <see cref="CurlCode" />,
|
|
/// which should be <see cref="CurlCode.Ok" /> if everything
|
|
/// is okay.
|
|
/// </remarks>
|
|
public delegate CurlCode CurlSslContextCallback(CurlSslContext ctx, Object extraData);
|
|
|
|
/// <summary>
|
|
/// Called when cURL has data for the client.
|
|
/// </summary>
|
|
/// <remarks>
|
|
/// For usage, see the example <c>EasyGet.cs</c>.
|
|
/// Arguments passed to the delegate implementation include:
|
|
/// <list type="table">
|
|
/// <listheader>
|
|
/// <term>Argument</term>
|
|
/// <description>Description</description>
|
|
/// </listheader>
|
|
/// <item>
|
|
/// <term>buf</term>
|
|
/// <description>Data cURL is providing to the client.</description>
|
|
/// </item>
|
|
/// <item>
|
|
/// <term>size</term>
|
|
/// <description>Size of a character, usually 1.</description>
|
|
/// </item>
|
|
/// <item>
|
|
/// <term>nmemb</term>
|
|
/// <description>Number of characters.</description>
|
|
/// </item>
|
|
/// <item>
|
|
/// <term>extraData</term>
|
|
/// <description>Client-provided extra data.</description>
|
|
/// </item>
|
|
/// </list>
|
|
/// Your implementation should return the number of bytes (not
|
|
/// characters) processed. Return 0 to abort the transfer.
|
|
/// </remarks>
|
|
public delegate int CurlWriteCallback(byte[] buf, int size, int nmemb, Object extraData);
|
|
} |