Ë
    qûàg$  ã                   ó¼   — d dl m Z  d dlZd dlZd dlZd dlZd dlZd dlZd dlmZ d dl	m
Z
 d dlmZ d dlmZ d dlmZ  G d„ d	e«      Z G d
„ dej"                  «      Zy)é    )ÚdatetimeN)Úhttp)Úwsgi)Úsock)Úutil)Úbasec                   ó   — e Zd ZdZy)ÚStopWaitingz3 exception raised to stop waiting for a connection N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__© ó    úS/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/gunicorn/workers/sync.pyr
   r
      s   „ Ú=r   r
   c                   ó<   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
y	)
Ú
SyncWorkerc                 óœ   — |j                  «       \  }}|j                  d«       t        j                  |«       | j	                  |||«       y )Né   )ÚacceptÚsetblockingr   Úclose_on_execÚhandle)ÚselfÚlistenerÚclientÚaddrs       r   r   zSyncWorker.accept   s>   € Ø—‘Ó(‰ˆ�Ø×Ñ˜1ÔÜ×Ñ˜6Ô"Ø�‰�H˜f dÕ+r   c                 óþ  — 	 | j                  «        t        j                  | j                  g g |«      }|d   r<| j                  d   |d   v r#t	        j
                  | j                  d   d«       |d   S y # t        $ r}}|j                  d   t        j                  k(  r| j                  cY d }~S |j                  d   t        j                  k(  r&| j                  dk  r| j                  cY d }~S t        ‚‚ d }~ww xY w)Nr   r   )ÚnotifyÚselectÚwait_fdsÚPIPEÚosÚreadÚOSErrorÚargsÚerrnoÚEINTRÚsocketsÚEBADFÚnrr
   )r   ÚtimeoutÚretÚes       r   ÚwaitzSyncWorker.wait!   sÉ   € ð	Ø�K‰KŒMÜ—-‘- §¡¨r°2°wÓ?ˆCØ�1ŠvØ—9‘9˜Q‘< 3 q¡6Ñ)Ü—G‘G˜DŸI™I a™L¨!Ô,Ø˜1‘v�ð øô
 ò 	Ø�v‰v�a‰yœEŸK™KÒ'Ø—|‘|Õ#Ø�v‰v�a‰yœEŸK™KÒ'Ø—7‘7˜Q’;ØŸ<™<Õ'ä%Ð%Øûð	ús0   ‚A2A6 Á6	C<Á?+C7Â*C<Â0:C7Ã*C<Ã0C7Ã7C<c                 ó€   — | j                   t        j                  «       k7  r| j                  j	                  d| «       yy)Nz!Parent changed, shutting down: %sFT)Úppidr#   ÚgetppidÚlogÚinfo)r   s    r   Úis_parent_alivezSyncWorker.is_parent_alive4   s-   € à�9‰9œŸ
™
›Ò$Ø�H‰H�M‰MÐ=¸tÔDØØr   c                 ó¨  — | j                   d   }| j                  r$| j                  «        	 | j                  |«       Œ/y y # t        $ rF}|j
                  t
        j                  t
        j                  t
        j                  fvr‚ Y d }~nd }~ww xY w| j                  «       sy 	 | j                  |«       n# t        $ r Y y w xY w| j                  rŒ·Œ•©Nr   )r)   Úaliver   r   r%   r'   ÚEAGAINÚECONNABORTEDÚEWOULDBLOCKr5   r/   r
   )r   r,   r   r.   s       r   Úrun_for_onezSyncWorker.run_for_one;   s»   € Ø—<‘< ‘?ˆØ�jŠjØ�K‰KŒMð
Ø—‘˜HÔ%ð øð øô ò Ø—7‘7¤5§<¡<´×1CÑ1CÜ#(×#4Ñ#4ð#6ñ 6àô6ûðúð
 ×'Ñ'Ô)ØðØ—	‘	˜'Õ"øÜò Ùðúð1 �j‹jøs)   ­A Á	BÁ
<BÂBÂ%B7 Â7	CÃCc                 ó¼  — | j                   ro| j                  «        	 | j                  |«      }|�,|D ]'  }|| j                  d   k(  rŒ	 | j                  |«       Œ) | j                  «       sy | j                   rŒny y # t        $ r Y y w xY w# t        $ rF}|j                  t        j                  t        j                  t        j                  fvr‚ Y d }~Œ£d }~ww xY wr7   )r8   r   r/   r
   r"   r   r%   r'   r9   r:   r;   r5   )r   r,   Úreadyr   r.   s        r   Úrun_for_multiplezSyncWorker.run_for_multipleX   sÏ   € Ø�jŠjØ�K‰KŒMðØŸ	™	 'Ó*�ð Ð Ø %ò 	"�HØ 4§9¡9¨Q¡<Ò/Ø ð"ØŸ™ HÕ-ð	"ð ×'Ñ'Ô)Øð+ �j�jøô
 ò Ùðûô #ò "ØŸ7™7¬5¯<©<¼×9KÑ9KÜ+0×+<Ñ+<ð+>ñ >à!ô>ûð"ús)   žA= Á
BÁ=	B	ÂB	Â	CÂ<CÃCc                 óÞ   — | j                   xs d}| j                  D ]  }|j                  d«       Œ t        | j                  «      dkD  r| j	                  |«       y | j                  |«       y )Ng      à?r   r   )r,   r)   r   Úlenr?   r<   )r   r,   Úss      r   ÚrunzSyncWorker.runp   sb   € ð —,‘,Ò% #ˆð —‘ò 	ˆAØ�M‰M˜!Õð	ô ˆt�|‰|Ó˜qÒ Ø×!Ñ! 'Õ*à×Ñ˜WÕ%r   c                 ó   — d }	 | j                   j                  r t        j                  || j                   «      }t	        j
                  | j                   ||«      }t        |«      }| j                  ||||«       t5        j"                  |«       y # t        j                  j                  $ r&}| j                  j                  d|«       Y d }~ŒTd }~wt        $ r&}| j                  j                  d|«       Y d }~Œ�d }~wt        j                  $ r†}|j                  d   t        j                   k(  r,| j                  j                  d«       |j#                  «        n/| j                  j                  d«       | j%                  ||||«       Y d }~�Œd }~wt&        $ rï}|j(                  t(        j*                  t(        j,                  t(        j.                  fvr| j                  j1                  d«       n�|j(                  t(        j,                  k(  r| j                  j                  d«       nT|j(                  t(        j.                  k(  r| j                  j                  d«       n| j                  j                  d	«       Y d }~�Œd }~wt2        $ r}| j%                  ||||«       Y d }~�Œ4d }~ww xY w# t5        j"                  |«       w xY w)
Nz*Ignored premature client disconnection. %szClosing connection. %sr   zssl connection closedzError processing SSL request.z Socket error processing request.zIgnoring connection resetzIgnoring socket not connectedzIgnoring EPIPE)ÚcfgÚis_sslr   Ússl_wrap_socketr   ÚRequestParserÚnextÚhandle_requestÚerrorsÚ
NoMoreDatar3   ÚdebugÚStopIterationÚsslÚSSLErrorr&   ÚSSL_ERROR_EOFÚcloseÚhandle_errorr%   r'   ÚEPIPEÚ
ECONNRESETÚENOTCONNÚ	exceptionÚBaseExceptionr   )r   r   r   r   ÚreqÚparserr.   s          r   r   zSyncWorker.handle   sç  € Øˆð	Ø�x‰x�ŠÜ×-Ñ-¨f°d·h±hÓ?�Ü×'Ñ'¨¯©°&¸$Ó?ˆFÜ�v“,ˆCØ×Ñ ¨#¨v°tÔ<ô2 �J‰J�vÕøô1 �{‰{×%Ñ%ò 	LØ�H‰H�N‰NÐGÈ×KÑKûÜò 	8Ø�H‰H�N‰NÐ3°Q×7Ñ7ûÜ�|‰|ò 	8Ø�v‰v�a‰yœC×-Ñ-Ò-Ø—‘—‘Ð6Ô7Ø—‘•à—‘—‘Ð>Ô?Ø×!Ñ! # v¨t°QÔ7ÿùÜò 		5Ø�w‰wœuŸ{™{¬E×,<Ñ,<¼e¿n¹nÐMÑMØ—‘×"Ñ"Ð#EÕFà—7‘7œe×.Ñ.Ò.Ø—H‘H—N‘NÐ#>Õ?Ø—W‘W¤§¡Ò.Ø—H‘H—N‘NÐ#BÕCà—H‘H—N‘NÐ#3Ô4ÿùÜò 	4Ø×Ñ˜c 6¨4°×3Ò3ûð	4ûô �J‰J�vÕúst   „A6B ÂJ3Â-CÃ	J6 ÃJ3ÃC;Ã6J6 Ã;J3ÄA;FÆJ6 ÆJ3ÆC$JÊJ6 ÊJ3ÊJ.Ê(J6 Ê.J3Ê3J6 Ê6Kc                 óP  — i }d }	 | j                   j                  | |«       t        j                  «       }t	        j
                  ||||j                  «       | j                   «      \  }}|j                  «        | xj                  dz  c_        | j                  | j                  k\  r"| j                  j                  d«       d| _        | j	                  ||j                  «      }	 t        ||d   «      r|j                  |«       n|D ]  }	|j!                  |	«       Œ |j#                  «        t        j                  «       |z
  }
| j                  j%                  ||||
«       t'        |d«      r|j#                  «        	 	 | j                   jA                  | |||«       y # t        j                  «       |z
  }
| j                  j%                  ||||
«       t'        |d«      r|j#                  «        w w xY w# t(        $ r' t+        j,                  t/        j0                  «       Ž  Y Œ¦t2        $ r} |ry|j4                  rm| j                  j7                  d«       	 |j9                  t:        j<                  «       |j#                  «        t?        «       ‚# t(        $ r Y t?        «       ‚w xY w‚ w xY w# t2        $ r | j                  j7                  d«       Y y w xY w# 	 | j                   jA                  | |||«       w # t2        $ r | j                  j7                  d«       Y w w xY wxY w)Nr   z,Autorestarting worker after current request.Fzwsgi.file_wrapperrR   zError handling requestzException in post_request hook)!rE   Úpre_requestr   Únowr   ÚcreateÚgetsocknameÚforce_closer+   Úmax_requestsr3   r4   r8   Ústart_responseÚ
isinstanceÚ
write_fileÚwriterR   ÚaccessÚhasattrr%   r   ÚreraiseÚsysÚexc_infoÚ	ExceptionÚheaders_sentrW   ÚshutdownÚsocketÚ	SHUT_RDWRrN   Úpost_request)r   r   rY   r   r   ÚenvironÚrespÚrequest_startÚrespiterÚitemÚrequest_times              r   rJ   zSyncWorker.handle_request¡   s‘  € ØˆØˆð-	EØ�H‰H× Ñ   sÔ+Ü$ŸL™L›NˆMÜ ŸK™K¨¨V°TØ(0×(<Ñ(<Ó(>ÀÇÁóJ‰MˆD�'ð
 ×ÑÔØ�GŠG�q‰L�GØ�w‰w˜$×+Ñ+Ò+Ø—‘—‘ÐLÔMØ"�”
Ø—y‘y ¨$×*=Ñ*=Ó>ˆHð%Ü˜h¨Ð0CÑ(DÔEØ—O‘O HÕ-à (ò )˜ØŸ
™
 4Õ(ð)à—
‘
”ä'Ÿ|™|›~°Ñ=�Ø—‘—‘  c¨7°LÔAÜ˜8 WÔ-Ø—N‘NÕ$ð"EØ—‘×%Ñ% d¨C°¸$Õ?øô+  (Ÿ|™|›~°Ñ=�Ø—‘—‘  c¨7°LÔAÜ˜8 WÔ-Ø—N‘NÕ$ð .ûäò 	*ä�L‰Lœ#Ÿ,™,›.Ó)Üò 	Ù˜×)Ò)ð —‘×"Ñ"Ð#;Ô<ðØ—O‘O¤F×$4Ñ$4Ô5Ø—L‘L”Nô $“oÐ%øô ò ØÜ#“oÐ%ðúð ð	ûô ò EØ—‘×"Ñ"Ð#CÖDðEûðEØ—‘×%Ñ% d¨C°¸$Õ?øÜò EØ—‘×"Ñ"Ð#CÖDðEýs™   †C G9 Ã'A	F" Ä0AG9 ÆJ0 Æ"AG6Ç6G9 Ç9-J-È&K È(1J-É/JÊ	
J-Ê	J(ÊJ-Ê'J(Ê(J-Ê-K Ê0$KËKËL%ËK;Ë:L%Ë;$L"ÌL%Ì!L"Ì"L%N)r   r   r   r   r/   r5   r<   r?   rC   r   rJ   r   r   r   r   r      s,   „ ò,òò&òò:ò0&ò óD0Er   r   )r   r'   r#   r    rn   rO   ri   Úgunicornr   Úgunicorn.httpr   r   r   Úgunicorn.workersr   rk   r
   ÚWorkerr   r   r   r   ú<module>r{      sK   ðõ Û Û 	Û Û Û 
Û 
å Ý Ý Ý Ý !ô>�)ô >ôxE�—‘õ xEr   