Librepo library
1.21.2
C library for downloading linux repository metadata and packages
Toggle main menu visibility
Loading...
Searching...
No Matches
handle.h
1
/* librepo - A library providing (libcURL like) API to downloading repository
2
* Copyright (C) 2012 Tomas Mlcoch
3
*
4
* Licensed under the GNU Lesser General Public License Version 2.1
5
*
6
* This library is free software; you can redistribute it and/or
7
* modify it under the terms of the GNU Lesser General Public
8
* License as published by the Free Software Foundation; either
9
* version 2.1 of the License, or (at your option) any later version.
10
*
11
* This library is distributed in the hope that it will be useful,
12
* but WITHOUT ANY WARRANTY; without even the implied warranty of
13
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14
* Lesser General Public License for more details.
15
*
16
* You should have received a copy of the GNU Lesser General Public
17
* License along with this library; if not, write to the Free Software
18
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
19
*/
20
21
#ifndef __LR_HANDLE_H__
22
#define __LR_HANDLE_H__
23
24
#include <glib.h>
25
#include <gio/gio.h>
26
27
#include <librepo/result.h>
28
29
G_BEGIN_DECLS
30
35
39
typedef
struct
_LrHandle
LrHandle
;
40
41
#if 0
44
#define LRO_SUPPORTS_CACHEDIR
45
#endif
/* 0 */
46
48
#define LRO_FASTESTMIRRORMAXAGE_DEFAULT 2592000L
// 30 days
49
51
#define LRO_FASTESTMIRRORMAXAGE_MIN 0L
52
54
#define LRO_PROXYPORT_DEFAULT 1080L
55
57
#define LRO_PROXYTYPE_DEFAULT LR_PROXY_HTTP
58
60
#define LRO_MAXSPEED_DEFAULT G_GINT64_CONSTANT(0)
61
63
#define LRO_CONNECTTIMEOUT_DEFAULT 30L
64
66
#define LRO_MAXMIRRORTRIES_DEFAULT 0L
67
69
#define LRO_MAXMIRRORTRIES_MIN 0L
70
72
#define LRO_MAXPARALLELDOWNLOADS_DEFAULT 3L
73
75
#define LRO_MAXPARALLELDOWNLOADS_MIN 1L
76
78
#define LRO_MAXPARALLELDOWNLOADS_MAX 20L
79
81
#define LRO_MAXDOWNLOADSPERMIRROR_DEFAULT 3L
82
84
#define LRO_MAXDOWNLOADSPERMIRROR_MIN 1L
85
87
#define LRO_LOWSPEEDTIME_MIN 0L
88
90
#define LRO_LOWSPEEDTIME_DEFAULT 30L
91
93
#define LRO_LOWSPEEDLIMIT_MIN 0L
94
96
#define LRO_LOWSPEEDLIMIT_DEFAULT 1000L
97
99
#define LRO_IPRESOLVE_DEFAULT LR_IPRESOLVE_WHATEVER
100
102
#define LRO_ALLOWEDMIRRORFAILURES_DEFAULT 4L
103
105
#define LRO_ADAPTIVEMIRRORSORTING_DEFAULT 1L
106
108
#define LRO_GNUPGHOMEDIR_DEFAULT NULL
109
111
#define LRO_FASTESTMIRRORTIMEOUT_DEFAULT 2.0
112
114
#define LRO_OFFLINE_DEFAULT 0L
115
117
#define LRO_HTTPAUTHMETHODS_DEFAULT LR_AUTH_BASIC
118
120
#define LRO_PROXYAUTHMETHODS_DEFAULT LR_AUTH_BASIC
121
123
#define LRO_FTPUSEEPSV_DEFAULT 1L
124
125
127
typedef
enum
{
128
129
LRO_UPDATE
,
132
133
LRO_URLS
,
135
136
LRO_MIRRORLIST
,
140
141
LRO_MIRRORLISTURL
,
143
144
LRO_METALINKURL
,
146
147
LRO_LOCAL
,
149
150
LRO_HTTPAUTH
,
154
155
LRO_USERPWD
,
160
161
LRO_PROXY
,
163
164
LRO_PROXYPORT
,
166
167
LRO_PROXYTYPE
,
169
170
LRO_PROXYAUTH
,
174
175
LRO_PROXYUSERPWD
,
179
180
LRO_PROGRESSCB
,
182
183
LRO_PROGRESSDATA
,
185
186
LRO_MAXSPEED
,
189
190
LRO_DESTDIR
,
192
193
LRO_REPOTYPE
,
195
196
LRO_CONNECTTIMEOUT
,
199
200
LRO_IGNOREMISSING
,
205
206
LRO_INTERRUPTIBLE
,
211
212
LRO_USERAGENT
,
215
216
LRO_FETCHMIRRORS
,
219
220
LRO_MAXMIRRORTRIES
,
223
224
LRO_MAXPARALLELDOWNLOADS
,
226
227
LRO_MAXDOWNLOADSPERMIRROR
,
229
230
LRO_VARSUB
,
237
238
LRO_FASTESTMIRROR
,
242
243
LRO_FASTESTMIRRORCACHE
,
247
248
LRO_FASTESTMIRRORMAXAGE,
/*< (long)
249
Maximum age of a record in cache (seconds).
250
Default: 2592000 (30 days). */
251
252
LRO_FASTESTMIRRORCB,
/* (LrFastestMirrorCb)
253
Fastest mirror status callback */
254
255
LRO_FASTESTMIRRORDATA,
/* (void *)
256
User data for LRO_FASTESTMIRRORCB */
257
258
LRO_LOWSPEEDTIME,
/*< (long)
259
The time in seconds that the transfer should be below the
260
LRO_LOWSPEEDLIMIT for the library to consider it too slow
261
and abort. */
262
263
LRO_LOWSPEEDLIMIT,
/*< (long)
264
The transfer speed in bytes per second that the transfer
265
should be below during LRO_LOWSPEEDTIME seconds for
266
the library to consider it too slow and abort. */
267
268
/* Repo common options */
269
270
LRO_GPGCHECK
,
272
273
LRO_CHECKSUM
,
275
276
/* LR_YUMREPO specific options */
277
278
LRO_YUMDLIST
,
282
283
LRO_RPMMDDLIST =
LRO_YUMDLIST
,
284
285
LRO_YUMBLIST
,
288
289
LRO_RPMMDBLIST =
LRO_YUMBLIST
,
290
291
LRO_HMFCB
,
295
296
LRO_SSLVERIFYPEER
,
301
302
LRO_SSLVERIFYHOST
,
305
306
LRO_IPRESOLVE
,
308
309
LRO_ALLOWEDMIRRORFAILURES
,
322
323
LRO_ADAPTIVEMIRRORSORTING
,
328
329
LRO_GNUPGHOMEDIR
,
331
332
LRO_FASTESTMIRRORTIMEOUT
,
335
336
LRO_HTTPHEADER
,
339
340
LRO_OFFLINE
,
344
345
LRO_SSLCLIENTCERT
,
348
349
LRO_SSLCLIENTKEY
,
353
354
LRO_SSLCACERT
,
357
358
LRO_HTTPAUTHMETHODS
,
360
361
LRO_PROXYAUTHMETHODS
,
364
365
LRO_FTPUSEEPSV
,
367
368
LRO_YUMSLIST
,
374
375
LRO_CACHEDIR
,
378
379
LRO_PRESERVETIME
,
382
383
LRO_ONETIMEFLAG
,
406
407
LRO_SSLVERIFYSTATUS
,
413
414
LRO_PROXY_SSLVERIFYPEER
,
419
420
LRO_PROXY_SSLVERIFYHOST
,
423
424
LRO_PROXY_SSLCLIENTCERT
,
427
428
LRO_PROXY_SSLCLIENTKEY
,
432
433
LRO_PROXY_SSLCACERT
,
436
437
LRO_USERNAME
,
439
440
LRO_PASSWORD
,
442
443
LRO_SENTINEL
,
444
445
}
LrHandleOption
;
446
448
typedef
enum
{
449
LRI_UPDATE
,
450
LRI_URLS
,
453
LRI_MIRRORLIST
,
454
LRI_MIRRORLISTURL
,
455
LRI_METALINKURL
,
456
LRI_LOCAL
,
457
LRI_PROGRESSCB
,
458
LRI_PROGRESSDATA
,
459
LRI_DESTDIR
,
460
LRI_REPOTYPE
,
461
LRI_USERAGENT
,
462
LRI_YUMDLIST
,
465
LRI_RPMMDDLIST =
LRI_YUMDLIST
,
466
LRI_YUMBLIST
,
469
LRI_RPMMDBLIST =
LRI_YUMBLIST
,
470
LRI_FETCHMIRRORS
,
471
LRI_MAXMIRRORTRIES
,
472
LRI_VARSUB
,
473
LRI_MIRRORS
,
485
LRI_METALINK
,
486
LRI_FASTESTMIRROR
,
487
LRI_FASTESTMIRRORCACHE
,
488
LRI_FASTESTMIRRORMAXAGE
,
489
LRI_HMFCB
,
490
LRI_SSLVERIFYPEER
,
491
LRI_SSLVERIFYHOST
,
492
LRI_IPRESOLVE
,
493
LRI_ALLOWEDMIRRORFAILURES
,
494
LRI_ADAPTIVEMIRRORSORTING
,
495
LRI_GNUPGHOMEDIR
,
496
LRI_FASTESTMIRRORTIMEOUT
,
497
LRI_HTTPHEADER
,
500
LRI_OFFLINE
,
501
LRI_SSLCLIENTCERT
,
502
LRI_SSLCLIENTKEY
,
503
LRI_SSLCACERT
,
504
LRI_LOWSPEEDTIME
,
505
LRI_LOWSPEEDLIMIT
,
506
LRI_HTTPAUTHMETHODS
,
507
LRI_PROXYAUTHMETHODS
,
508
LRI_FTPUSEEPSV
,
509
LRI_YUMSLIST
,
510
LRI_CACHEDIR
,
511
LRI_SSLVERIFYSTATUS
,
512
513
LRI_PROXY_SSLVERIFYPEER
,
514
LRI_PROXY_SSLVERIFYHOST
,
515
LRI_PROXY_SSLCLIENTCERT
,
516
LRI_PROXY_SSLCLIENTKEY
,
517
LRI_PROXY_SSLCACERT
,
518
519
LRI_SENTINEL,
520
}
LrHandleInfoOption
;
521
525
LrHandle
*
526
lr_handle_init
(
void
);
527
531
void
532
lr_handle_free
(
LrHandle
*handle);
533
541
gboolean
542
lr_handle_setopt
(
LrHandle
*handle,
543
GError **err,
544
LrHandleOption
option,
545
...);
546
560
gboolean
561
lr_handle_getinfo
(
LrHandle
*handle,
562
GError **err,
563
LrHandleInfoOption
option,
564
...);
565
572
gboolean
573
lr_handle_perform
(
LrHandle
*handle,
LrResult
*result, GError **err);
574
582
gboolean
583
lr_handle_network_wait
(
LrHandle
*handle, GError **err, guint seconds, GCancellable *cancellable);
584
586
587
G_END_DECLS
588
589
#endif
LrHandleOption
LrHandleOption
Definition
handle.h:127
lr_handle_free
void lr_handle_free(LrHandle *handle)
LrHandle
struct _LrHandle LrHandle
Definition
handle.h:39
lr_handle_setopt
gboolean lr_handle_setopt(LrHandle *handle, GError **err, LrHandleOption option,...)
lr_handle_getinfo
gboolean lr_handle_getinfo(LrHandle *handle, GError **err, LrHandleInfoOption option,...)
lr_handle_init
LrHandle * lr_handle_init(void)
lr_handle_perform
gboolean lr_handle_perform(LrHandle *handle, LrResult *result, GError **err)
lr_handle_network_wait
gboolean lr_handle_network_wait(LrHandle *handle, GError **err, guint seconds, GCancellable *cancellable)
LrHandleInfoOption
LrHandleInfoOption
Definition
handle.h:448
LRO_REPOTYPE
@ LRO_REPOTYPE
Definition
handle.h:193
LRO_IPRESOLVE
@ LRO_IPRESOLVE
Definition
handle.h:306
LRO_FTPUSEEPSV
@ LRO_FTPUSEEPSV
Definition
handle.h:365
LRO_MAXSPEED
@ LRO_MAXSPEED
Definition
handle.h:186
LRO_MIRRORLISTURL
@ LRO_MIRRORLISTURL
Definition
handle.h:141
LRO_VARSUB
@ LRO_VARSUB
Definition
handle.h:230
LRO_PROXY_SSLCLIENTKEY
@ LRO_PROXY_SSLCLIENTKEY
Definition
handle.h:428
LRO_INTERRUPTIBLE
@ LRO_INTERRUPTIBLE
Definition
handle.h:206
LRO_PROXYAUTH
@ LRO_PROXYAUTH
Definition
handle.h:170
LRO_PROXY_SSLVERIFYHOST
@ LRO_PROXY_SSLVERIFYHOST
Definition
handle.h:420
LRO_ONETIMEFLAG
@ LRO_ONETIMEFLAG
Definition
handle.h:383
LRO_CONNECTTIMEOUT
@ LRO_CONNECTTIMEOUT
Definition
handle.h:196
LRO_PROXYAUTHMETHODS
@ LRO_PROXYAUTHMETHODS
Definition
handle.h:361
LRO_PROGRESSDATA
@ LRO_PROGRESSDATA
Definition
handle.h:183
LRO_FASTESTMIRRORTIMEOUT
@ LRO_FASTESTMIRRORTIMEOUT
Definition
handle.h:332
LRO_ADAPTIVEMIRRORSORTING
@ LRO_ADAPTIVEMIRRORSORTING
Definition
handle.h:323
LRO_CHECKSUM
@ LRO_CHECKSUM
Definition
handle.h:273
LRO_HTTPHEADER
@ LRO_HTTPHEADER
Definition
handle.h:336
LRO_USERAGENT
@ LRO_USERAGENT
Definition
handle.h:212
LRO_IGNOREMISSING
@ LRO_IGNOREMISSING
Definition
handle.h:200
LRO_MAXMIRRORTRIES
@ LRO_MAXMIRRORTRIES
Definition
handle.h:220
LRO_PROGRESSCB
@ LRO_PROGRESSCB
Definition
handle.h:180
LRO_OFFLINE
@ LRO_OFFLINE
Definition
handle.h:340
LRO_GNUPGHOMEDIR
@ LRO_GNUPGHOMEDIR
Definition
handle.h:329
LRO_YUMDLIST
@ LRO_YUMDLIST
Definition
handle.h:278
LRO_PROXY_SSLCACERT
@ LRO_PROXY_SSLCACERT
Definition
handle.h:433
LRO_MIRRORLIST
@ LRO_MIRRORLIST
Definition
handle.h:136
LRO_METALINKURL
@ LRO_METALINKURL
Definition
handle.h:144
LRO_FASTESTMIRROR
@ LRO_FASTESTMIRROR
Definition
handle.h:238
LRO_PROXY_SSLCLIENTCERT
@ LRO_PROXY_SSLCLIENTCERT
Definition
handle.h:424
LRO_USERPWD
@ LRO_USERPWD
Definition
handle.h:155
LRO_HMFCB
@ LRO_HMFCB
Definition
handle.h:291
LRO_SSLCLIENTCERT
@ LRO_SSLCLIENTCERT
Definition
handle.h:345
LRO_PROXYUSERPWD
@ LRO_PROXYUSERPWD
Definition
handle.h:175
LRO_URLS
@ LRO_URLS
Definition
handle.h:133
LRO_UPDATE
@ LRO_UPDATE
Definition
handle.h:129
LRO_HTTPAUTH
@ LRO_HTTPAUTH
Definition
handle.h:150
LRO_SSLVERIFYSTATUS
@ LRO_SSLVERIFYSTATUS
Definition
handle.h:407
LRO_LOCAL
@ LRO_LOCAL
Definition
handle.h:147
LRO_PRESERVETIME
@ LRO_PRESERVETIME
Definition
handle.h:379
LRO_PROXY_SSLVERIFYPEER
@ LRO_PROXY_SSLVERIFYPEER
Definition
handle.h:414
LRO_PROXY
@ LRO_PROXY
Definition
handle.h:161
LRO_FETCHMIRRORS
@ LRO_FETCHMIRRORS
Definition
handle.h:216
LRO_MAXPARALLELDOWNLOADS
@ LRO_MAXPARALLELDOWNLOADS
Definition
handle.h:224
LRO_SSLCLIENTKEY
@ LRO_SSLCLIENTKEY
Definition
handle.h:349
LRO_PROXYPORT
@ LRO_PROXYPORT
Definition
handle.h:164
LRO_MAXDOWNLOADSPERMIRROR
@ LRO_MAXDOWNLOADSPERMIRROR
Definition
handle.h:227
LRO_YUMSLIST
@ LRO_YUMSLIST
Definition
handle.h:368
LRO_PROXYTYPE
@ LRO_PROXYTYPE
Definition
handle.h:167
LRO_PASSWORD
@ LRO_PASSWORD
Definition
handle.h:440
LRO_FASTESTMIRRORCACHE
@ LRO_FASTESTMIRRORCACHE
Definition
handle.h:243
LRO_SSLCACERT
@ LRO_SSLCACERT
Definition
handle.h:354
LRO_ALLOWEDMIRRORFAILURES
@ LRO_ALLOWEDMIRRORFAILURES
Definition
handle.h:309
LRO_YUMBLIST
@ LRO_YUMBLIST
Definition
handle.h:285
LRO_HTTPAUTHMETHODS
@ LRO_HTTPAUTHMETHODS
Definition
handle.h:358
LRO_USERNAME
@ LRO_USERNAME
Definition
handle.h:437
LRO_CACHEDIR
@ LRO_CACHEDIR
Definition
handle.h:375
LRO_DESTDIR
@ LRO_DESTDIR
Definition
handle.h:190
LRO_GPGCHECK
@ LRO_GPGCHECK
Definition
handle.h:270
LRO_SSLVERIFYHOST
@ LRO_SSLVERIFYHOST
Definition
handle.h:302
LRO_SSLVERIFYPEER
@ LRO_SSLVERIFYPEER
Definition
handle.h:296
LRO_SENTINEL
@ LRO_SENTINEL
Definition
handle.h:443
LRI_USERAGENT
@ LRI_USERAGENT
Definition
handle.h:461
LRI_UPDATE
@ LRI_UPDATE
Definition
handle.h:449
LRI_METALINK
@ LRI_METALINK
Definition
handle.h:485
LRI_GNUPGHOMEDIR
@ LRI_GNUPGHOMEDIR
Definition
handle.h:495
LRI_PROGRESSCB
@ LRI_PROGRESSCB
Definition
handle.h:457
LRI_ALLOWEDMIRRORFAILURES
@ LRI_ALLOWEDMIRRORFAILURES
Definition
handle.h:493
LRI_ADAPTIVEMIRRORSORTING
@ LRI_ADAPTIVEMIRRORSORTING
Definition
handle.h:494
LRI_PROXY_SSLCACERT
@ LRI_PROXY_SSLCACERT
Definition
handle.h:517
LRI_SSLCLIENTCERT
@ LRI_SSLCLIENTCERT
Definition
handle.h:501
LRI_YUMDLIST
@ LRI_YUMDLIST
Definition
handle.h:462
LRI_LOCAL
@ LRI_LOCAL
Definition
handle.h:456
LRI_METALINKURL
@ LRI_METALINKURL
Definition
handle.h:455
LRI_YUMBLIST
@ LRI_YUMBLIST
Definition
handle.h:466
LRI_HTTPHEADER
@ LRI_HTTPHEADER
Definition
handle.h:497
LRI_VARSUB
@ LRI_VARSUB
Definition
handle.h:472
LRI_PROXY_SSLCLIENTCERT
@ LRI_PROXY_SSLCLIENTCERT
Definition
handle.h:515
LRI_YUMSLIST
@ LRI_YUMSLIST
Definition
handle.h:509
LRI_MIRRORLIST
@ LRI_MIRRORLIST
Definition
handle.h:453
LRI_HTTPAUTHMETHODS
@ LRI_HTTPAUTHMETHODS
Definition
handle.h:506
LRI_REPOTYPE
@ LRI_REPOTYPE
Definition
handle.h:460
LRI_FASTESTMIRROR
@ LRI_FASTESTMIRROR
Definition
handle.h:486
LRI_DESTDIR
@ LRI_DESTDIR
Definition
handle.h:459
LRI_HMFCB
@ LRI_HMFCB
Definition
handle.h:489
LRI_FASTESTMIRRORMAXAGE
@ LRI_FASTESTMIRRORMAXAGE
Definition
handle.h:488
LRI_SSLVERIFYSTATUS
@ LRI_SSLVERIFYSTATUS
Definition
handle.h:511
LRI_LOWSPEEDLIMIT
@ LRI_LOWSPEEDLIMIT
Definition
handle.h:505
LRI_PROGRESSDATA
@ LRI_PROGRESSDATA
Definition
handle.h:458
LRI_MIRRORLISTURL
@ LRI_MIRRORLISTURL
Definition
handle.h:454
LRI_URLS
@ LRI_URLS
Definition
handle.h:450
LRI_OFFLINE
@ LRI_OFFLINE
Definition
handle.h:500
LRI_MAXMIRRORTRIES
@ LRI_MAXMIRRORTRIES
Definition
handle.h:471
LRI_PROXYAUTHMETHODS
@ LRI_PROXYAUTHMETHODS
Definition
handle.h:507
LRI_PROXY_SSLVERIFYPEER
@ LRI_PROXY_SSLVERIFYPEER
Definition
handle.h:513
LRI_SSLCACERT
@ LRI_SSLCACERT
Definition
handle.h:503
LRI_SSLVERIFYHOST
@ LRI_SSLVERIFYHOST
Definition
handle.h:491
LRI_PROXY_SSLVERIFYHOST
@ LRI_PROXY_SSLVERIFYHOST
Definition
handle.h:514
LRI_FASTESTMIRRORTIMEOUT
@ LRI_FASTESTMIRRORTIMEOUT
Definition
handle.h:496
LRI_IPRESOLVE
@ LRI_IPRESOLVE
Definition
handle.h:492
LRI_LOWSPEEDTIME
@ LRI_LOWSPEEDTIME
Definition
handle.h:504
LRI_CACHEDIR
@ LRI_CACHEDIR
Definition
handle.h:510
LRI_SSLCLIENTKEY
@ LRI_SSLCLIENTKEY
Definition
handle.h:502
LRI_MIRRORS
@ LRI_MIRRORS
Definition
handle.h:473
LRI_FETCHMIRRORS
@ LRI_FETCHMIRRORS
Definition
handle.h:470
LRI_PROXY_SSLCLIENTKEY
@ LRI_PROXY_SSLCLIENTKEY
Definition
handle.h:516
LRI_FTPUSEEPSV
@ LRI_FTPUSEEPSV
Definition
handle.h:508
LRI_FASTESTMIRRORCACHE
@ LRI_FASTESTMIRRORCACHE
Definition
handle.h:487
LRI_SSLVERIFYPEER
@ LRI_SSLVERIFYPEER
Definition
handle.h:490
LrResult
struct _LrResult LrResult
Definition
result.h:37
librepo
handle.h
Generated on
for Librepo library by
1.17.0