Warning: session_start(): Session cannot be started after headers have already been sent in /home/tvrreohg/public_html/manga.php on line 13
3 Ö;jÚ/ã@sàddlZddlZddlZddlZddlmZmZmZmZm Z m Z m Z m Z m Z ddlmZmZmZd"dd„Zdd „Zd d „Zd d „Zd#dd„Ze jdd„ƒZdd„Zdd„Zdd„Zdd„Zdd„Zdd„Zd$dd„Zd d!„Z dS)%éNé) ÚconfigÚ constantsÚerrorsÚ http_utilsÚ ipv6_supportÚ log_utilsÚplatform_utilsÚserveridÚutils)Ú HTTPErrorÚURLErrorÚ urlencodeFcCsâd}y¦tjƒ}|dkr(|s$tjdƒdStjƒdj|ƒ}tj|ƒ}t j |j ƒƒ}t j |ƒ}|ddkrˆtj ƒtjƒ|s¨tjdƒn |s¨tj|ƒtjd|dƒWn2tk rÜ}z|sÌtj||ƒWYdd}~XnXdS)Nz1Error unregistering server: cannot find server idz&/unregister_server.plain?server_id={0}ÚsuccessÚtruezServer was unregisteredzError unregistering server: Úmessage)r Ú get_serveridrÚlogerrorrÚget_registration_urlÚformatrÚurlopenr ÚnstrÚreadÚ data_as_dictZ rm_serveridÚ clear_cacheÚloginfor Úprint_cln_http_error)ZsilentÚurlÚ server_idÚresponseÚcontentÚresÚe©r#ú*/usr/libexec/kcare/python/kcarectl/auth.pyÚ unregisters,      r%cCsútjdƒtjƒ}|dkrdStjƒtjƒ}ddl}|dkrH|jdƒ|jjƒt ddƒ}t ddƒ}tj |j ƒ|j j ƒƒtj |j ƒ|jj ƒƒtj |j ƒ|j j ƒƒxLtjd ƒt|ƒ\}}}|dkrª|rªtj|ƒt|ƒtjƒ|jdƒqªWdS) NzHRegister auto-retry has been enabled, the system can be registered laterrz /dev/nullÚrza+é<éii )r Ú print_wrapperÚosÚforkÚsetsidÚsysÚexitÚstdoutÚflushÚopenÚdup2ÚfilenoÚstdinÚstderrÚtimeÚsleepÚ _try_registerr Ú set_server_idÚ_set_auth_tokenrr)rÚpidr-ÚsiÚsoÚcoderÚ auth_tokenr#r#r$Ú_register_retry)s.        r@cCs&|dk r"tjd|ƒ r"td|ƒ‚|S)Nz ^[\w.-]+$zInvalid value received: %s)ÚreÚmatchÚ ValueError)Úvaluer#r#r$Ú_validate_urlsafe_encodingGs rEcCs¦yNtj|ƒ}|jjtjdƒ}tjtj|j ƒƒƒ}t |dƒt |jdƒƒt |ƒfSt t fk r~}ztj||ƒdSd}~Xn$tk r tjjd|ƒdSXdS)Nr>rz)Exception while trying to register URL %s)NNN)NNN)rrÚheadersÚgetrZAUTH_TOKEN_HEADERr rrrÚintrEr r rrÚ ExceptionÚkcarelogÚ exception)rrr?r!r"r#r#r$r8Ms   r8c Cs>y tdƒWn tk r,tjjdƒYnXtjƒ}td|fd|fgƒ}djt j ƒ|ƒ}t |ƒ\}}}|dkr˜t j |ƒt|ƒt jƒtjdƒdS|dkr¬tjd ƒnv|d krÀtjd ƒnb|d krÔtjd ƒnN|dkrètjdƒn:|dkrütjdƒn&|dk�rtjdƒntjdj|ƒƒ|�r4t|ƒdS|�prr?r#r#r$Úregister[s@         rUcCs tjtjƒS)N)r Ú try_to_readrÚAUTH_TOKEN_DUMP_PATHr#r#r#r$Ú_get_auth_token‰srXcCs|sdStjtj|ƒdS)N)r Ú atomic_writerrW)r?r#r#r$r:Žsr:cOsv|jddƒ}|jddƒrt}ntj}tj|ƒr@tj|f|ž|ŽStj|tƒtƒ|d�}t j |dd�tjƒ|f|ž|ŽS)NÚmethodÚ check_licenseT)rZé)Úcount) ÚpopÚ_check_auth_retryrÚcheck_urlopen_retryZ is_local_urlÚ urlopen_baseÚ http_requestÚget_http_auth_stringrXr rS)rÚargsÚkwargsrZÚcheckÚrequestr#r#r$Ú urlopen_auth•s   rhcCs.tjƒ}|r*tjtjtjdj|dƒƒƒƒSdS)Nz{0}:{1}Z kernelcare)r rr rÚbase64Ú b64encodeÚbstrr)rr#r#r$rc¢srccCs(t|tƒr|jdkrt|ƒStj||ƒS)Né“é‘)rlrm)Ú isinstancer r>Ú_handle_forbiddenrr`)r"Ústater#r#r$r_©sr_cCsäd|kr dStjràtjƒ}tjƒd}|r8|dj|ƒ7}y&tjt j |dd�j ƒƒ}tj |ƒ}Wn0t k rŽ}ztj||dd�dSd}~XnX| s¢|jd ƒ r¸tjjd j|ƒƒdS|d dkrÚd|d<tjd ƒdStƒdS)aIn case of 403 error we should check what's happen. Case #1. We are trying to register unlicensed machine and should try to register trial. Case #2. We have a valid license but access restrictions on server are not consistent yet and we had to try later. ÚlicenseTz /check.plainz?server_id={0}F)Z retry_on_500)r/Nr>zUnexpected CLN response: {0}Ú0Ú1z$Unable to access server. Retrying...)rrrs)rÚCHECK_CLN_LICENSE_STATUSr rrrrr rrrrrr rrrGrJÚerrorrÚ_register_trial)rprrr ÚinfoÚexr#r#r$ro¯s*   rocCsætjƒ}|rÜtjƒdj|ƒ}yŽtj|ƒ}tj|j ƒƒ}tj |ƒ}| sT|j dƒ rhtj dj|ƒƒdSt |dƒ}|dkrŠtj dƒdStdd�}|dkr¦tj dƒ|SWqâtk rØ}ztj||ƒdSd}~XqâXntƒSdS) Nz/check.plain?server_id={0}r>zUnexpected CLN response: {0}rrzKey-based valid license found)Ú key_checkedz No valid key-based license found)r rrrrrrr rrrrGr)rHÚ_get_license_info_by_ipr rr)rrrr r!r>Z license_typer"r#r#r$Ú license_infoØs,       r{c Cs²tjƒd}�y6tj|ƒ}tj|jƒƒ}tj|ƒ}|djƒdk�r&t |dƒ}|dkrptj dj |dƒƒdS|dkrª|d}tj |d ƒj d ƒ}tj d j ||ƒƒd S|d krè|dkrè|d}tj |d ƒj d ƒ}tj d j ||ƒƒ|dkoö|dk�rBd|k�rtj dj |dƒƒn tj dƒn|jddƒ}tj dj |ƒƒWnhtk �rt} ztj| |ƒWYdd} ~ Xn:tk �r¬} ztj dj | |jƒƒƒWYdd} ~ XnXdS)Nz /check.plainrrr>rzValid license found for IP {0}ÚiprZ expire_datez%Y-%m-%dz?You have a trial license for the IP {0} that will expire on {1}r(z0Your trial license for the IP {0} expired on {1}rNzThe IP {0} hasn't been licensedz This server hasn't been licensedrÚz"Error retrieving license info: {0}z1Unexpected CLN response, cannot find {0} key: {1})rrrrr rrrÚlowerrHr)rZparse_response_dateÚstrftimerGr rrÚKeyErrorÚstrip) ryrrr r!r>r|Z expires_strrr"rMr#r#r$rzós<       (rzcCsFtjjtjdƒ}tjj|ƒr dSyðtjtj ƒdƒ}t j t j |j ƒƒƒ}y–|djƒdkrªt j|ddd�tjƒ|ddkr’tj|d |d ƒ‚tjd j|d ƒƒdS|dd krÒt j|ddd�tjd ƒ‚n tjdƒ‚Wn.tk �r }ztj|ƒ‚WYdd}~XnXWn0tk �r@}ztj|jƒ‚WYdd}~XnXdS)Nztrial-requestedz /trial.plainrrr}T)Ú ensure_dirZexpiredr|Úcreatedz3Requesting trial license for IP {0}. Please wait...ZnazInvalid LicenserrR)r*ÚpathÚjoinrÚ PATCH_CACHEÚexistsrrrrr rrrr~rYrrZAlreadyTrialedExceptionrrrÚ KcareErrorZUnableToGetLicenseExceptionr€r r>)Z trial_markrr!Zker"r#r#r$rvs,     rv)F)F)r)!rir*rAr6r}rrrrrrr r r Úpy23r r rr%r@rEr8rUÚcachedrXr:rhrcr_ror{rzrvr#r#r#r$Ús&,  . ) #