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


Internal A\+P\+I 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 I\+R 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 I\+R 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 I\+R remotes. \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}\item 
file \hyperlink{util_8h}{util.\+h}
\begin{DoxyCompactList}\small\item\em Utilities. \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\+L\+E $\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\+P\+I for lirc applications. 



\subsection{Function Documentation}
\hypertarget{group__private__api_ga24f983a41e2fccf1c7ba3ee4d69559a4}{}\index{Internal A\+P\+I@{Internal A\+P\+I}!drop\+\_\+root\+\_\+cli@{drop\+\_\+root\+\_\+cli}}
\index{drop\+\_\+root\+\_\+cli@{drop\+\_\+root\+\_\+cli}!Internal A\+P\+I@{Internal A\+P\+I}}
\subsubsection[{drop\+\_\+root\+\_\+cli}]{\setlength{\rightskip}{0pt plus 5cm}void drop\+\_\+root\+\_\+cli (
\begin{DoxyParamCaption}
\item[{int($\ast$)(uid\+\_\+t)}]{set\+\_\+some\+\_\+uid}
\end{DoxyParamCaption}
)}\label{group__private__api_ga24f983a41e2fccf1c7ba3ee4d69559a4}
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 80 of file util.\+c.

\hypertarget{group__private__api_ga08cad0a0a22fb34e70ef33be007e484d}{}\index{Internal A\+P\+I@{Internal A\+P\+I}!drop\+\_\+sudo\+\_\+root@{drop\+\_\+sudo\+\_\+root}}
\index{drop\+\_\+sudo\+\_\+root@{drop\+\_\+sudo\+\_\+root}!Internal A\+P\+I@{Internal A\+P\+I}}
\subsubsection[{drop\+\_\+sudo\+\_\+root}]{\setlength{\rightskip}{0pt plus 5cm}const char$\ast$ drop\+\_\+sudo\+\_\+root (
\begin{DoxyParamCaption}
\item[{int($\ast$)(uid\+\_\+t)}]{set\+\_\+some\+\_\+uid}
\end{DoxyParamCaption}
)}\label{group__private__api_ga08cad0a0a22fb34e70ef33be007e484d}
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\+E\+R to determine user to switch to (if any). 
\end{DoxyNote}


Definition at line 27 of file util.\+c.

\hypertarget{group__private__api_gaa55b7dcba60df4c178fd885eaf129288}{}\index{Internal A\+P\+I@{Internal A\+P\+I}!free\+\_\+config@{free\+\_\+config}}
\index{free\+\_\+config@{free\+\_\+config}!Internal A\+P\+I@{Internal A\+P\+I}}
\subsubsection[{free\+\_\+config}]{\setlength{\rightskip}{0pt plus 5cm}void free\+\_\+config (
\begin{DoxyParamCaption}
\item[{struct {\bf ir\+\_\+remote} $\ast$}]{remotes}
\end{DoxyParamCaption}
)}\label{group__private__api_gaa55b7dcba60df4c178fd885eaf129288}
Free() an \hyperlink{structir__remote}{ir\+\_\+remote} instance obtained using \hyperlink{group__private__api_gaae645b840ccf7816a6dd37d53bc4325a}{read\+\_\+config()}. 

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

\hypertarget{group__private__api_gaae645b840ccf7816a6dd37d53bc4325a}{}\index{Internal A\+P\+I@{Internal A\+P\+I}!read\+\_\+config@{read\+\_\+config}}
\index{read\+\_\+config@{read\+\_\+config}!Internal A\+P\+I@{Internal A\+P\+I}}
\subsubsection[{read\+\_\+config}]{\setlength{\rightskip}{0pt plus 5cm}struct {\bf ir\+\_\+remote}$\ast$ read\+\_\+config (
\begin{DoxyParamCaption}
\item[{F\+I\+L\+E $\ast$}]{f, }
\item[{const char $\ast$}]{name}
\end{DoxyParamCaption}
)}\label{group__private__api_gaae645b840ccf7816a6dd37d53bc4325a}
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\+L\+L on errors, 
\end{DoxyReturn}


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

