static PyObject * py_global_init(PyObject *self, PyObject *noarg) { LR_UNUSED(self); LR_UNUSED(noarg); lr_global_init(); Py_INCREF(Py_None); return Py_None; }
CURL * lr_get_curl_handle() { CURL *h; lr_global_init(); h = curl_easy_init(); curl_easy_setopt(h, CURLOPT_FOLLOWLOCATION, 1); curl_easy_setopt(h, CURLOPT_MAXREDIRS, 6); curl_easy_setopt(h, CURLOPT_CONNECTTIMEOUT, LRO_CONNECTTIMEOUT_DEFAULT); curl_easy_setopt(h, CURLOPT_LOW_SPEED_TIME, LRO_LOWSPEEDTIME_DEFAULT); curl_easy_setopt(h, CURLOPT_LOW_SPEED_LIMIT, LRO_LOWSPEEDLIMIT_DEFAULT); return h; }
void init_librepo(void) #endif { #if PY_MAJOR_VERSION >= 3 PyObject *m = PyModule_Create(&moduledef); #else PyObject *m = Py_InitModule("_librepo", librepo_methods); #endif if (!m) INITERROR; struct module_state *st = GETSTATE(m); // Exceptions if (!init_exceptions()) { Py_DECREF(m); INITERROR; } st->error = LrErr_Exception; PyModule_AddObject(m, "LibrepoException", LrErr_Exception); // Objects // _librepo.Handle if (PyType_Ready(&Handle_Type) < 0) INITERROR; Py_INCREF(&Handle_Type); PyModule_AddObject(m, "Handle", (PyObject *)&Handle_Type); // _librepo.Result if (PyType_Ready(&Result_Type) < 0) INITERROR; Py_INCREF(&Result_Type); PyModule_AddObject(m, "Result", (PyObject *)&Result_Type); // _librepo.PackageTarget if (PyType_Ready(&PackageTarget_Type) < 0) INITERROR; Py_INCREF(&PackageTarget_Type); PyModule_AddObject(m, "PackageTarget", (PyObject *)&PackageTarget_Type); // Init module Py_AtExit(exit_librepo); // Module constants #define PYMODULE_ADDINTCONSTANT(name) PyModule_AddIntConstant(m, #name, (name)) #define PYMODULE_ADDSTRCONSTANT(name) PyModule_AddStringConstant(m, #name, (name)) // Version PYMODULE_ADDINTCONSTANT(LR_VERSION_MAJOR); PYMODULE_ADDINTCONSTANT(LR_VERSION_MINOR); PYMODULE_ADDINTCONSTANT(LR_VERSION_PATCH); PYMODULE_ADDSTRCONSTANT(LR_VERSION); // Handle options PYMODULE_ADDINTCONSTANT(LRO_UPDATE); PYMODULE_ADDINTCONSTANT(LRO_URLS); PYMODULE_ADDINTCONSTANT(LRO_MIRRORLIST); PYMODULE_ADDINTCONSTANT(LRO_MIRRORLISTURL); PYMODULE_ADDINTCONSTANT(LRO_METALINKURL); PYMODULE_ADDINTCONSTANT(LRO_LOCAL); PYMODULE_ADDINTCONSTANT(LRO_HTTPAUTH); PYMODULE_ADDINTCONSTANT(LRO_USERPWD); PYMODULE_ADDINTCONSTANT(LRO_PROXY); PYMODULE_ADDINTCONSTANT(LRO_PROXYPORT); PYMODULE_ADDINTCONSTANT(LRO_PROXYTYPE); PYMODULE_ADDINTCONSTANT(LRO_PROXYAUTH); PYMODULE_ADDINTCONSTANT(LRO_PROXYUSERPWD); PYMODULE_ADDINTCONSTANT(LRO_PROGRESSCB); PYMODULE_ADDINTCONSTANT(LRO_PROGRESSDATA); PYMODULE_ADDINTCONSTANT(LRO_MAXSPEED); PYMODULE_ADDINTCONSTANT(LRO_DESTDIR); PYMODULE_ADDINTCONSTANT(LRO_REPOTYPE); PYMODULE_ADDINTCONSTANT(LRO_CONNECTTIMEOUT); PYMODULE_ADDINTCONSTANT(LRO_IGNOREMISSING); PYMODULE_ADDINTCONSTANT(LRO_INTERRUPTIBLE); PYMODULE_ADDINTCONSTANT(LRO_USERAGENT); PYMODULE_ADDINTCONSTANT(LRO_FETCHMIRRORS); PYMODULE_ADDINTCONSTANT(LRO_MAXMIRRORTRIES); PYMODULE_ADDINTCONSTANT(LRO_MAXPARALLELDOWNLOADS); PYMODULE_ADDINTCONSTANT(LRO_MAXDOWNLOADSPERMIRROR); PYMODULE_ADDINTCONSTANT(LRO_VARSUB); PYMODULE_ADDINTCONSTANT(LRO_FASTESTMIRROR); PYMODULE_ADDINTCONSTANT(LRO_FASTESTMIRRORCACHE); PYMODULE_ADDINTCONSTANT(LRO_FASTESTMIRRORMAXAGE); PYMODULE_ADDINTCONSTANT(LRO_FASTESTMIRRORCB); PYMODULE_ADDINTCONSTANT(LRO_FASTESTMIRRORDATA); PYMODULE_ADDINTCONSTANT(LRO_LOWSPEEDTIME); PYMODULE_ADDINTCONSTANT(LRO_LOWSPEEDLIMIT); PYMODULE_ADDINTCONSTANT(LRO_GPGCHECK); PYMODULE_ADDINTCONSTANT(LRO_CHECKSUM); PYMODULE_ADDINTCONSTANT(LRO_YUMDLIST); PYMODULE_ADDINTCONSTANT(LRO_RPMMDDLIST); PYMODULE_ADDINTCONSTANT(LRO_YUMBLIST); PYMODULE_ADDINTCONSTANT(LRO_RPMMDBLIST); PYMODULE_ADDINTCONSTANT(LRO_HMFCB); PYMODULE_ADDINTCONSTANT(LRO_SSLVERIFYPEER); PYMODULE_ADDINTCONSTANT(LRO_SSLVERIFYHOST); PYMODULE_ADDINTCONSTANT(LRO_SSLCLIENTCERT); PYMODULE_ADDINTCONSTANT(LRO_SSLCLIENTKEY); PYMODULE_ADDINTCONSTANT(LRO_SSLCACERT); PYMODULE_ADDINTCONSTANT(LRO_IPRESOLVE); PYMODULE_ADDINTCONSTANT(LRO_ALLOWEDMIRRORFAILURES); PYMODULE_ADDINTCONSTANT(LRO_ADAPTIVEMIRRORSORTING); PYMODULE_ADDINTCONSTANT(LRO_GNUPGHOMEDIR); PYMODULE_ADDINTCONSTANT(LRO_FASTESTMIRRORTIMEOUT); PYMODULE_ADDINTCONSTANT(LRO_HTTPHEADER); PYMODULE_ADDINTCONSTANT(LRO_OFFLINE); PYMODULE_ADDINTCONSTANT(LRO_SENTINEL); // Handle info options PYMODULE_ADDINTCONSTANT(LRI_UPDATE); PYMODULE_ADDINTCONSTANT(LRI_URLS); PYMODULE_ADDINTCONSTANT(LRI_MIRRORLIST); PYMODULE_ADDINTCONSTANT(LRI_MIRRORLISTURL); PYMODULE_ADDINTCONSTANT(LRI_METALINKURL); PYMODULE_ADDINTCONSTANT(LRI_LOCAL); PYMODULE_ADDINTCONSTANT(LRI_PROGRESSCB); PYMODULE_ADDINTCONSTANT(LRI_PROGRESSDATA); PYMODULE_ADDINTCONSTANT(LRI_DESTDIR); PYMODULE_ADDINTCONSTANT(LRI_REPOTYPE); PYMODULE_ADDINTCONSTANT(LRI_USERAGENT); PYMODULE_ADDINTCONSTANT(LRI_YUMDLIST); PYMODULE_ADDINTCONSTANT(LRI_RPMMDDLIST); PYMODULE_ADDINTCONSTANT(LRI_YUMBLIST); PYMODULE_ADDINTCONSTANT(LRI_RPMMDBLIST); PYMODULE_ADDINTCONSTANT(LRI_FETCHMIRRORS); PYMODULE_ADDINTCONSTANT(LRI_MAXMIRRORTRIES); PYMODULE_ADDINTCONSTANT(LRI_VARSUB); PYMODULE_ADDINTCONSTANT(LRI_MIRRORS); PYMODULE_ADDINTCONSTANT(LRI_METALINK); PYMODULE_ADDINTCONSTANT(LRI_FASTESTMIRROR); PYMODULE_ADDINTCONSTANT(LRI_FASTESTMIRRORCACHE); PYMODULE_ADDINTCONSTANT(LRI_FASTESTMIRRORMAXAGE); PYMODULE_ADDINTCONSTANT(LRI_HMFCB); PYMODULE_ADDINTCONSTANT(LRI_SSLVERIFYPEER); PYMODULE_ADDINTCONSTANT(LRI_SSLVERIFYHOST); PYMODULE_ADDINTCONSTANT(LRI_SSLCLIENTCERT); PYMODULE_ADDINTCONSTANT(LRI_SSLCLIENTKEY); PYMODULE_ADDINTCONSTANT(LRI_SSLCACERT); PYMODULE_ADDINTCONSTANT(LRI_IPRESOLVE); PYMODULE_ADDINTCONSTANT(LRI_ALLOWEDMIRRORFAILURES); PYMODULE_ADDINTCONSTANT(LRI_ADAPTIVEMIRRORSORTING); PYMODULE_ADDINTCONSTANT(LRI_GNUPGHOMEDIR); PYMODULE_ADDINTCONSTANT(LRI_FASTESTMIRRORTIMEOUT); PYMODULE_ADDINTCONSTANT(LRI_HTTPHEADER); PYMODULE_ADDINTCONSTANT(LRI_OFFLINE); PYMODULE_ADDINTCONSTANT(LRI_LOWSPEEDTIME); PYMODULE_ADDINTCONSTANT(LRI_LOWSPEEDLIMIT); PYMODULE_ADDINTCONSTANT(LRI_SENTINEL); // Check options PYMODULE_ADDINTCONSTANT(LR_CHECK_GPG); PYMODULE_ADDINTCONSTANT(LR_CHECK_CHECKSUM); // Repo type PYMODULE_ADDINTCONSTANT(LR_YUMREPO); PYMODULE_ADDINTCONSTANT(LR_RPMMDREPO); PYMODULE_ADDINTCONSTANT(LR_SUSEREPO); PYMODULE_ADDINTCONSTANT(LR_DEBREPO); // Proxy type PYMODULE_ADDINTCONSTANT(LR_PROXY_HTTP); PYMODULE_ADDINTCONSTANT(LR_PROXY_HTTP_1_0); PYMODULE_ADDINTCONSTANT(LR_PROXY_SOCKS4); PYMODULE_ADDINTCONSTANT(LR_PROXY_SOCKS5); PYMODULE_ADDINTCONSTANT(LR_PROXY_SOCKS4A); PYMODULE_ADDINTCONSTANT(LR_PROXY_SOCKS5_HOSTNAME); // IpResolve type PYMODULE_ADDINTCONSTANT(LR_IPRESOLVE_WHATEVER); PYMODULE_ADDINTCONSTANT(LR_IPRESOLVE_V4); PYMODULE_ADDINTCONSTANT(LR_IPRESOLVE_V6); // Return codes PYMODULE_ADDINTCONSTANT(LRE_OK); PYMODULE_ADDINTCONSTANT(LRE_BADFUNCARG); PYMODULE_ADDINTCONSTANT(LRE_BADOPTARG); PYMODULE_ADDINTCONSTANT(LRE_UNKNOWNOPT); PYMODULE_ADDINTCONSTANT(LRE_CURLSETOPT); PYMODULE_ADDINTCONSTANT(LRE_ALREADYUSEDRESULT); PYMODULE_ADDINTCONSTANT(LRE_INCOMPLETERESULT); PYMODULE_ADDINTCONSTANT(LRE_CURLDUP); PYMODULE_ADDINTCONSTANT(LRE_CURL); PYMODULE_ADDINTCONSTANT(LRE_CURLM); PYMODULE_ADDINTCONSTANT(LRE_BADSTATUS); PYMODULE_ADDINTCONSTANT(LRE_TEMPORARYERR); PYMODULE_ADDINTCONSTANT(LRE_NOTLOCAL); PYMODULE_ADDINTCONSTANT(LRE_CANNOTCREATEDIR); PYMODULE_ADDINTCONSTANT(LRE_IO); PYMODULE_ADDINTCONSTANT(LRE_MLBAD); PYMODULE_ADDINTCONSTANT(LRE_MLXML); PYMODULE_ADDINTCONSTANT(LRE_BADCHECKSUM); PYMODULE_ADDINTCONSTANT(LRE_REPOMDXML); PYMODULE_ADDINTCONSTANT(LRE_NOURL); PYMODULE_ADDINTCONSTANT(LRE_CANNOTCREATETMP); PYMODULE_ADDINTCONSTANT(LRE_UNKNOWNCHECKSUM); PYMODULE_ADDINTCONSTANT(LRE_BADURL); PYMODULE_ADDINTCONSTANT(LRE_GPGNOTSUPPORTED); PYMODULE_ADDINTCONSTANT(LRE_GPGERROR); PYMODULE_ADDINTCONSTANT(LRE_BADGPG); PYMODULE_ADDINTCONSTANT(LRE_INCOMPLETEREPO); PYMODULE_ADDINTCONSTANT(LRE_INTERRUPTED); PYMODULE_ADDINTCONSTANT(LRE_SIGACTION); PYMODULE_ADDINTCONSTANT(LRE_ALREADYDOWNLOADED); PYMODULE_ADDINTCONSTANT(LRE_UNFINISHED); PYMODULE_ADDINTCONSTANT(LRE_SELECT); PYMODULE_ADDINTCONSTANT(LRE_OPENSSL); PYMODULE_ADDINTCONSTANT(LRE_MEMORY); PYMODULE_ADDINTCONSTANT(LRE_XMLPARSER); PYMODULE_ADDINTCONSTANT(LRE_CBINTERRUPTED); PYMODULE_ADDINTCONSTANT(LRE_REPOMD); PYMODULE_ADDINTCONSTANT(LRE_VALUE); PYMODULE_ADDINTCONSTANT(LRE_NOTSET); PYMODULE_ADDINTCONSTANT(LRE_FILE); PYMODULE_ADDINTCONSTANT(LRE_KEYFILE); PYMODULE_ADDINTCONSTANT(LRE_UNKNOWNERROR); // Result option PYMODULE_ADDINTCONSTANT(LRR_YUM_REPO); PYMODULE_ADDINTCONSTANT(LRR_RPMMD_REPOMD); PYMODULE_ADDINTCONSTANT(LRR_YUM_TIMESTAMP); PYMODULE_ADDINTCONSTANT(LRR_RPMMD_REPO); PYMODULE_ADDINTCONSTANT(LRR_YUM_REPOMD); PYMODULE_ADDINTCONSTANT(LRR_RPMMD_TIMESTAMP); PYMODULE_ADDINTCONSTANT(LRR_SENTINEL); // Checksums PYMODULE_ADDINTCONSTANT(LR_CHECKSUM_UNKNOWN); PYMODULE_ADDINTCONSTANT(LR_CHECKSUM_MD5); PYMODULE_ADDINTCONSTANT(LR_CHECKSUM_SHA1); PYMODULE_ADDINTCONSTANT(LR_CHECKSUM_SHA224); PYMODULE_ADDINTCONSTANT(LR_CHECKSUM_SHA256); PYMODULE_ADDINTCONSTANT(LR_CHECKSUM_SHA384); PYMODULE_ADDINTCONSTANT(LR_CHECKSUM_SHA512); // Transfer statuses PYMODULE_ADDINTCONSTANT(LR_TRANSFER_SUCCESSFUL); PYMODULE_ADDINTCONSTANT(LR_TRANSFER_ALREADYEXISTS); PYMODULE_ADDINTCONSTANT(LR_TRANSFER_ERROR); // Fastest mirror stages PYMODULE_ADDINTCONSTANT(LR_FMSTAGE_INIT); PYMODULE_ADDINTCONSTANT(LR_FMSTAGE_CACHELOADING); PYMODULE_ADDINTCONSTANT(LR_FMSTAGE_CACHELOADINGSTATUS); PYMODULE_ADDINTCONSTANT(LR_FMSTAGE_DETECTION); PYMODULE_ADDINTCONSTANT(LR_FMSTAGE_FINISHING); PYMODULE_ADDINTCONSTANT(LR_FMSTAGE_STATUS); // Callbacks return values PYMODULE_ADDINTCONSTANT(LR_CB_OK); PYMODULE_ADDINTCONSTANT(LR_CB_ABORT); PYMODULE_ADDINTCONSTANT(LR_CB_ERROR); // Init librepo library lr_global_init(); #if PY_MAJOR_VERSION >= 3 return m; #endif }