o
    i                     @   s0   d Z ddlZddlZG dd deZdd ZdS )z4
Helper(s), resolve the system's default interface.
    Nc                   @   s   e Zd ZdZdS )UnresolvableDefaultRoutez3
    Unable to resolve system's default route.
    N)__name__
__module____qualname____doc__ r   r   K/home/ubuntu/.local/lib/python3.10/site-packages/datadog/dogstatsd/route.pyr      s    r   c               
   C   s   zIt d3} |  D ]&}|  }|d dkr0ttdt|d d  W  d   W S q
W d   n1 s;w   Y  W td	W td	 t	yT   t
dw )
a   
    Return the system default interface using the proc filesystem.

    Returns:
        string: default route

    Raises:
        `NotImplementedError`: No proc filesystem is found (non-Linux systems)
        `StopIteration`: No default route found
    z/proc/net/route   00000000z<L      NzXUnable to open `/proc/net/route`. `use_default_route` option is available on Linux only.z-Unable to resolve the system default's route.)open	readlinesstripsplitsocket	inet_ntoastructpackintIOErrorNotImplementedErrorr   )flinefieldsr   r   r   get_default_route   s$   


r   )r   r   r   	Exceptionr   r   r   r   r   r   <module>   s
   