\hypertarget{group__private__api}{}\section{Internal A\+PI}
\label{group__private__api}\index{Internal A\+PI@{Internal A\+PI}}


Internal A\+PI for lirc applications.  


\subsection*{Files}
\begin{DoxyCompactItemize}
\item 
file \hyperlink{ciniparser_8h}{ciniparser.\+h}
\begin{DoxyCompactList}\small\item\em Parser for ini files. \end{DoxyCompactList}\item 
file \hyperlink{config__file_8h}{config\+\_\+file.\+h}
\begin{DoxyCompactList}\small\item\em Parses the lircd.\+cont config file. \end{DoxyCompactList}\item 
file \hyperlink{dictionary_8h}{dictionary.\+h}
\begin{DoxyCompactList}\small\item\em Implements a dictionary for string variables.

This module implements a simple dictionary object, i.\+e. a list of string/string associations. This object is useful to store e.\+g. information retrieved from a configuration file (ini files). \end{DoxyCompactList}\item 
file \hyperlink{driver_8h}{driver.\+h}
\begin{DoxyCompactList}\small\item\em Interface to the userspace drivers. \end{DoxyCompactList}\item 
file \hyperlink{drv__admin_8h}{drv\+\_\+admin.\+h}
\begin{DoxyCompactList}\small\item\em Routines for dynamic drivers.

Functions in this file provides primitives to iterate over the dynamic drivers + a single function to install such a driver. \end{DoxyCompactList}\item 
file \hyperlink{dump__config_8h}{dump\+\_\+config.\+h}
\begin{DoxyCompactList}\small\item\em Dumps data structures into file. \end{DoxyCompactList}\item 
file \hyperlink{input__map_8h}{input\+\_\+map.\+h}
\begin{DoxyCompactList}\small\item\em Button namespace derived from Linux input layer. \end{DoxyCompactList}\item 
file \hyperlink{ir__remote_8h}{ir\+\_\+remote.\+h}
\begin{DoxyCompactList}\small\item\em Describes and decodes the signals from IR remotes. \end{DoxyCompactList}\item 
file \hyperlink{ir__remote__types_8h}{ir\+\_\+remote\+\_\+types.\+h}
\begin{DoxyCompactList}\small\item\em Describes and decodes the signals from IR remotes. \end{DoxyCompactList}\item 
file \hyperlink{ir__remote__types_8h}{ir\+\_\+remote\+\_\+types.\+h}
\begin{DoxyCompactList}\small\item\em Describes and decodes the signals from IR remotes. \end{DoxyCompactList}\item 
file \hyperlink{lirc-utils_8h}{lirc-\/utils.\+h}
\begin{DoxyCompactList}\small\item\em Utilities. \end{DoxyCompactList}\item 
file \hyperlink{lirc__config_8h}{lirc\+\_\+config.\+h}
\begin{DoxyCompactList}\small\item\em Local configuration constants not managed by autotools. \end{DoxyCompactList}\item 
file \hyperlink{lirc__log_8h}{lirc\+\_\+log.\+h}
\begin{DoxyCompactList}\small\item\em Logging functionality. \end{DoxyCompactList}\item 
file \hyperlink{lirc__options_8h}{lirc\+\_\+options.\+h}
\begin{DoxyCompactList}\small\item\em Options management\+: options file, parse and retrieve. \end{DoxyCompactList}\item 
file \hyperlink{release_8h}{release.\+h}
\begin{DoxyCompactList}\small\item\em Automatic release event generation. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Functions}
\begin{DoxyCompactItemize}
\item 
struct \hyperlink{structir__remote}{ir\+\_\+remote} $\ast$ \hyperlink{group__private__api_gaae645b840ccf7816a6dd37d53bc4325a}{read\+\_\+config} (F\+I\+LE $\ast$f, const char $\ast$name)
\item 
void \hyperlink{group__private__api_gaa55b7dcba60df4c178fd885eaf129288}{free\+\_\+config} (struct \hyperlink{structir__remote}{ir\+\_\+remote} $\ast$remotes)
\item 
const char $\ast$ \hyperlink{group__private__api_ga08cad0a0a22fb34e70ef33be007e484d}{drop\+\_\+sudo\+\_\+root} (int($\ast$set\+\_\+some\+\_\+uid)(uid\+\_\+t))
\item 
void \hyperlink{group__private__api_ga24f983a41e2fccf1c7ba3ee4d69559a4}{drop\+\_\+root\+\_\+cli} (int($\ast$set\+\_\+some\+\_\+uid)(uid\+\_\+t))
\end{DoxyCompactItemize}


\subsection{Detailed Description}
Internal A\+PI for lirc applications. 



\subsection{Function Documentation}
\hypertarget{group__private__api_ga24f983a41e2fccf1c7ba3ee4d69559a4}{}\label{group__private__api_ga24f983a41e2fccf1c7ba3ee4d69559a4} 
\index{Internal A\+PI@{Internal A\+PI}!drop\+\_\+root\+\_\+cli@{drop\+\_\+root\+\_\+cli}}
\index{drop\+\_\+root\+\_\+cli@{drop\+\_\+root\+\_\+cli}!Internal A\+PI@{Internal A\+PI}}
\subsubsection{\texorpdfstring{drop\+\_\+root\+\_\+cli()}{drop\_root\_cli()}}
{\footnotesize\ttfamily void drop\+\_\+root\+\_\+cli (\begin{DoxyParamCaption}\item[{int($\ast$)(uid\+\_\+t)}]{set\+\_\+some\+\_\+uid }\end{DoxyParamCaption})}

Default view part of drop\+\_\+sudo\+\_\+root. Invokes \hyperlink{group__private__api_ga08cad0a0a22fb34e70ef33be007e484d}{drop\+\_\+sudo\+\_\+root()} and prints status messagea on stdout. 
\begin{DoxyParams}{Parameters}
{\em set\+\_\+some\+\_\+uid} & Typically seteuid() or setuid() \\
\hline
\end{DoxyParams}


Definition at line 88 of file lirc-\/utils.\+c.

\hypertarget{group__private__api_ga08cad0a0a22fb34e70ef33be007e484d}{}\label{group__private__api_ga08cad0a0a22fb34e70ef33be007e484d} 
\index{Internal A\+PI@{Internal A\+PI}!drop\+\_\+sudo\+\_\+root@{drop\+\_\+sudo\+\_\+root}}
\index{drop\+\_\+sudo\+\_\+root@{drop\+\_\+sudo\+\_\+root}!Internal A\+PI@{Internal A\+PI}}
\subsubsection{\texorpdfstring{drop\+\_\+sudo\+\_\+root()}{drop\_sudo\_root()}}
{\footnotesize\ttfamily const char$\ast$ drop\+\_\+sudo\+\_\+root (\begin{DoxyParamCaption}\item[{int($\ast$)(uid\+\_\+t)}]{set\+\_\+some\+\_\+uid }\end{DoxyParamCaption})}

Try to drop possible root privileges, returning new user or \char`\"{}\char`\"{} on error. 
\begin{DoxyParams}{Parameters}
{\em set\+\_\+some\+\_\+uid} & Typically seteuid() or setuid() \\
\hline
\end{DoxyParams}
\begin{DoxyNote}{Note}
Uses environment S\+U\+D\+O\+\_\+\+U\+S\+ER to determine user to switch to (if any). 
\end{DoxyNote}


Definition at line 35 of file lirc-\/utils.\+c.

\hypertarget{group__private__api_gaa55b7dcba60df4c178fd885eaf129288}{}\label{group__private__api_gaa55b7dcba60df4c178fd885eaf129288} 
\index{Internal A\+PI@{Internal A\+PI}!free\+\_\+config@{free\+\_\+config}}
\index{free\+\_\+config@{free\+\_\+config}!Internal A\+PI@{Internal A\+PI}}
\subsubsection{\texorpdfstring{free\+\_\+config()}{free\_config()}}
{\footnotesize\ttfamily void free\+\_\+config (\begin{DoxyParamCaption}\item[{struct \hyperlink{structir__remote}{ir\+\_\+remote} $\ast$}]{remotes }\end{DoxyParamCaption})}

Free() an \hyperlink{structir__remote}{ir\+\_\+remote} instance obtained using \hyperlink{group__private__api_gaae645b840ccf7816a6dd37d53bc4325a}{read\+\_\+config()}. 

Definition at line 1403 of file config\+\_\+file.\+c.

\hypertarget{group__private__api_gaae645b840ccf7816a6dd37d53bc4325a}{}\label{group__private__api_gaae645b840ccf7816a6dd37d53bc4325a} 
\index{Internal A\+PI@{Internal A\+PI}!read\+\_\+config@{read\+\_\+config}}
\index{read\+\_\+config@{read\+\_\+config}!Internal A\+PI@{Internal A\+PI}}
\subsubsection{\texorpdfstring{read\+\_\+config()}{read\_config()}}
{\footnotesize\ttfamily struct \hyperlink{structir__remote}{ir\+\_\+remote}$\ast$ read\+\_\+config (\begin{DoxyParamCaption}\item[{F\+I\+LE $\ast$}]{f,  }\item[{const char $\ast$}]{name }\end{DoxyParamCaption})}

Parse a lircd.\+conf config file.


\begin{DoxyParams}{Parameters}
{\em f} & Open F\+I\+L\+E$\ast$ connection to file. \\
\hline
{\em name} & Normally the path for the open file f. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
Pointer to dynamically allocated \hyperlink{structir__remote}{ir\+\_\+remote} or N\+U\+LL on errors, 
\end{DoxyReturn}


Definition at line 832 of file config\+\_\+file.\+c.

