<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<doxygen xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="compound.xsd" version="1.8.9.1">
  <compounddef id="authentication_8c" kind="file" language="C++">
    <compoundname>authentication.c</compoundname>
    <includes refid="linphonecore_8h" local="yes">linphonecore.h</includes>
    <includes refid="private_8h" local="yes">private.h</includes>
    <includes refid="lpconfig_8h" local="yes">lpconfig.h</includes>
      <sectiondef kind="func">
      <memberdef kind="function" id="group__authentication_1ga034dd18662e329c0dcd6a56d2b3d24fa" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>LinphoneAuthInfo *</type>
        <definition>LinphoneAuthInfo * linphone_auth_info_new</definition>
        <argsstring>(const char *username, const char *userid, const char *passwd, const char *ha1, const char *realm, const char *domain)</argsstring>
        <name>linphone_auth_info_new</name>
        <param>
          <type>const char *</type>
          <declname>username</declname>
        </param>
        <param>
          <type>const char *</type>
          <declname>userid</declname>
        </param>
        <param>
          <type>const char *</type>
          <declname>passwd</declname>
        </param>
        <param>
          <type>const char *</type>
          <declname>ha1</declname>
        </param>
        <param>
          <type>const char *</type>
          <declname>realm</declname>
        </param>
        <param>
          <type>const char *</type>
          <declname>domain</declname>
        </param>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
<para>Creates a #LinphoneAuthInfo object with supplied information. The object can be created empty, that is with all arguments set to NULL. Username, userid, password, realm and domain can be set later using specific methods. At the end, username and passwd (or ha1) are required. <parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>username</parametername>
</parameternamelist>
<parameterdescription>
<para>The username that needs to be authenticated </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>userid</parametername>
</parameternamelist>
<parameterdescription>
<para>The userid used for authenticating (use NULL if you don&apos;t know what it is) </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>passwd</parametername>
</parameternamelist>
<parameterdescription>
<para>The password in clear text </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>ha1</parametername>
</parameternamelist>
<parameterdescription>
<para>The ha1-encrypted password if password is not given in clear text. </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>realm</parametername>
</parameternamelist>
<parameterdescription>
<para>The authentication domain (which can be larger than the sip domain. Unfortunately many SIP servers don&apos;t use this parameter. </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>domain</parametername>
</parameternamelist>
<parameterdescription>
<para>The SIP domain for which this authentication information is valid, if it has to be restricted for a single SIP domain. </para></parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para>A #LinphoneAuthInfo object. <ref refid="group__authentication_1ga814df254ea5005e5bb04d4247688e09f" kindref="member">linphone_auth_info_destroy()</ref> must be used to destroy it when no longer needed. The LinphoneCore makes a copy of LinphoneAuthInfo passed through <ref refid="group__authentication_1ga62ac5bb34f0342f7edc733c42473b7aa" kindref="member">linphone_core_add_auth_info()</ref>. </para></simplesect>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/usr/src/slapt-src/network/linphone/linphone-3.9.1/coreapi/authentication.c" line="34" column="1" bodyfile="/usr/src/slapt-src/network/linphone/linphone-3.9.1/coreapi/authentication.c" bodystart="34" bodyend="43"/>
      </memberdef>
      <memberdef kind="function" id="group__authentication_1gaeedce0c332b351b66ca95f8da89e0630" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>LinphoneAuthInfo *</type>
        <definition>LinphoneAuthInfo * linphone_auth_info_clone</definition>
        <argsstring>(const LinphoneAuthInfo *ai)</argsstring>
        <name>linphone_auth_info_clone</name>
        <param>
          <type>const LinphoneAuthInfo *</type>
          <declname>ai</declname>
        </param>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/usr/src/slapt-src/network/linphone/linphone-3.9.1/coreapi/authentication.c" line="45" column="1" bodyfile="/usr/src/slapt-src/network/linphone/linphone-3.9.1/coreapi/authentication.c" bodystart="45" bodyend="54"/>
      </memberdef>
      <memberdef kind="function" id="group__authentication_1gab77fb77e534a859fbd0810667d8cb53f" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>const char *</type>
        <definition>const char * linphone_auth_info_get_username</definition>
        <argsstring>(const LinphoneAuthInfo *i)</argsstring>
        <name>linphone_auth_info_get_username</name>
        <param>
          <type>const LinphoneAuthInfo *</type>
          <declname>info</declname>
        </param>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
<para>Gets the username.</para><para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername direction="in">info</parametername>
</parameternamelist>
<parameterdescription>
<para>The #LinphoneAuthInfo object </para></parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para>The username. </para></simplesect>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/usr/src/slapt-src/network/linphone/linphone-3.9.1/coreapi/authentication.c" line="56" column="1" bodyfile="/usr/src/slapt-src/network/linphone/linphone-3.9.1/coreapi/authentication.c" bodystart="56" bodyend="58"/>
      </memberdef>
      <memberdef kind="function" id="group__authentication_1ga1f34c3ee680b8572a7a87e9170af0828" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>const char *</type>
        <definition>const char * linphone_auth_info_get_passwd</definition>
        <argsstring>(const LinphoneAuthInfo *i)</argsstring>
        <name>linphone_auth_info_get_passwd</name>
        <param>
          <type>const LinphoneAuthInfo *</type>
          <declname>info</declname>
        </param>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
<para>Gets the password.</para><para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername direction="in">info</parametername>
</parameternamelist>
<parameterdescription>
<para>The #LinphoneAuthInfo object </para></parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para>The password. </para></simplesect>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/usr/src/slapt-src/network/linphone/linphone-3.9.1/coreapi/authentication.c" line="60" column="1" bodyfile="/usr/src/slapt-src/network/linphone/linphone-3.9.1/coreapi/authentication.c" bodystart="60" bodyend="62"/>
      </memberdef>
      <memberdef kind="function" id="group__authentication_1gaacfe8800e52d3f7cbcb139db6b594bc4" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>const char *</type>
        <definition>const char * linphone_auth_info_get_userid</definition>
        <argsstring>(const LinphoneAuthInfo *i)</argsstring>
        <name>linphone_auth_info_get_userid</name>
        <param>
          <type>const LinphoneAuthInfo *</type>
          <declname>info</declname>
        </param>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
<para>Gets the userid.</para><para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername direction="in">info</parametername>
</parameternamelist>
<parameterdescription>
<para>The #LinphoneAuthInfo object </para></parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para>The userid. </para></simplesect>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/usr/src/slapt-src/network/linphone/linphone-3.9.1/coreapi/authentication.c" line="64" column="1" bodyfile="/usr/src/slapt-src/network/linphone/linphone-3.9.1/coreapi/authentication.c" bodystart="64" bodyend="66"/>
      </memberdef>
      <memberdef kind="function" id="group__authentication_1ga2d4ae9fb902edc97c4392349dae4e305" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>const char *</type>
        <definition>const char * linphone_auth_info_get_realm</definition>
        <argsstring>(const LinphoneAuthInfo *i)</argsstring>
        <name>linphone_auth_info_get_realm</name>
        <param>
          <type>const LinphoneAuthInfo *</type>
          <declname>info</declname>
        </param>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
<para>Gets the realm.</para><para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername direction="in">info</parametername>
</parameternamelist>
<parameterdescription>
<para>The #LinphoneAuthInfo object </para></parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para>The realm. </para></simplesect>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/usr/src/slapt-src/network/linphone/linphone-3.9.1/coreapi/authentication.c" line="68" column="1" bodyfile="/usr/src/slapt-src/network/linphone/linphone-3.9.1/coreapi/authentication.c" bodystart="68" bodyend="70"/>
      </memberdef>
      <memberdef kind="function" id="group__authentication_1ga4442014128350925aee14f5cae215557" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>const char *</type>
        <definition>const char * linphone_auth_info_get_domain</definition>
        <argsstring>(const LinphoneAuthInfo *i)</argsstring>
        <name>linphone_auth_info_get_domain</name>
        <param>
          <type>const LinphoneAuthInfo *</type>
          <declname>info</declname>
        </param>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
<para>Gets the domain.</para><para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername direction="in">info</parametername>
</parameternamelist>
<parameterdescription>
<para>The #LinphoneAuthInfo object </para></parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para>The domain. </para></simplesect>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/usr/src/slapt-src/network/linphone/linphone-3.9.1/coreapi/authentication.c" line="72" column="1" bodyfile="/usr/src/slapt-src/network/linphone/linphone-3.9.1/coreapi/authentication.c" bodystart="72" bodyend="74"/>
      </memberdef>
      <memberdef kind="function" id="group__authentication_1gac49a261a59edc0e63c245aff471d6f3b" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>const char *</type>
        <definition>const char * linphone_auth_info_get_ha1</definition>
        <argsstring>(const LinphoneAuthInfo *i)</argsstring>
        <name>linphone_auth_info_get_ha1</name>
        <param>
          <type>const LinphoneAuthInfo *</type>
          <declname>info</declname>
        </param>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
<para>Gets the ha1.</para><para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername direction="in">info</parametername>
</parameternamelist>
<parameterdescription>
<para>The #LinphoneAuthInfo object </para></parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para>The ha1. </para></simplesect>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/usr/src/slapt-src/network/linphone/linphone-3.9.1/coreapi/authentication.c" line="76" column="1" bodyfile="/usr/src/slapt-src/network/linphone/linphone-3.9.1/coreapi/authentication.c" bodystart="76" bodyend="78"/>
      </memberdef>
      <memberdef kind="function" id="group__authentication_1ga004d3d5228cb74697df157e4ae93f6c7" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>void</type>
        <definition>void linphone_auth_info_set_passwd</definition>
        <argsstring>(LinphoneAuthInfo *info, const char *passwd)</argsstring>
        <name>linphone_auth_info_set_passwd</name>
        <param>
          <type>LinphoneAuthInfo *</type>
          <declname>info</declname>
        </param>
        <param>
          <type>const char *</type>
          <declname>passwd</declname>
        </param>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
<para>Sets the password. <parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername direction="in">info</parametername>
</parameternamelist>
<parameterdescription>
<para>The #LinphoneAuthInfo object </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">passwd</parametername>
</parameternamelist>
<parameterdescription>
<para>The password. </para></parameterdescription>
</parameteritem>
</parameterlist>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/usr/src/slapt-src/network/linphone/linphone-3.9.1/coreapi/authentication.c" line="80" column="1" bodyfile="/usr/src/slapt-src/network/linphone/linphone-3.9.1/coreapi/authentication.c" bodystart="80" bodyend="86"/>
      </memberdef>
      <memberdef kind="function" id="group__authentication_1ga36c0b48f8ce1b1b3e632f00d301ea4c7" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>void</type>
        <definition>void linphone_auth_info_set_username</definition>
        <argsstring>(LinphoneAuthInfo *info, const char *username)</argsstring>
        <name>linphone_auth_info_set_username</name>
        <param>
          <type>LinphoneAuthInfo *</type>
          <declname>info</declname>
        </param>
        <param>
          <type>const char *</type>
          <declname>username</declname>
        </param>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
<para>Sets the username. <parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername direction="in">info</parametername>
</parameternamelist>
<parameterdescription>
<para>The #LinphoneAuthInfo object </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">username</parametername>
</parameternamelist>
<parameterdescription>
<para>The username. </para></parameterdescription>
</parameteritem>
</parameterlist>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/usr/src/slapt-src/network/linphone/linphone-3.9.1/coreapi/authentication.c" line="88" column="1" bodyfile="/usr/src/slapt-src/network/linphone/linphone-3.9.1/coreapi/authentication.c" bodystart="88" bodyend="94"/>
      </memberdef>
      <memberdef kind="function" id="group__authentication_1gaceda2fc2a33f5e5ea05d16bc0ecd2167" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>void</type>
        <definition>void linphone_auth_info_set_userid</definition>
        <argsstring>(LinphoneAuthInfo *info, const char *userid)</argsstring>
        <name>linphone_auth_info_set_userid</name>
        <param>
          <type>LinphoneAuthInfo *</type>
          <declname>info</declname>
        </param>
        <param>
          <type>const char *</type>
          <declname>userid</declname>
        </param>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
<para>Sets the userid. <parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername direction="in">info</parametername>
</parameternamelist>
<parameterdescription>
<para>The #LinphoneAuthInfo object </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">userid</parametername>
</parameternamelist>
<parameterdescription>
<para>The userid. </para></parameterdescription>
</parameteritem>
</parameterlist>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/usr/src/slapt-src/network/linphone/linphone-3.9.1/coreapi/authentication.c" line="96" column="1" bodyfile="/usr/src/slapt-src/network/linphone/linphone-3.9.1/coreapi/authentication.c" bodystart="96" bodyend="102"/>
      </memberdef>
      <memberdef kind="function" id="group__authentication_1ga9b59442c828894f86a106d40bab2563e" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>void</type>
        <definition>void linphone_auth_info_set_realm</definition>
        <argsstring>(LinphoneAuthInfo *info, const char *realm)</argsstring>
        <name>linphone_auth_info_set_realm</name>
        <param>
          <type>LinphoneAuthInfo *</type>
          <declname>info</declname>
        </param>
        <param>
          <type>const char *</type>
          <declname>realm</declname>
        </param>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
<para>Sets the realm. <parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername direction="in">info</parametername>
</parameternamelist>
<parameterdescription>
<para>The #LinphoneAuthInfo object </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">realm</parametername>
</parameternamelist>
<parameterdescription>
<para>The realm. </para></parameterdescription>
</parameteritem>
</parameterlist>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/usr/src/slapt-src/network/linphone/linphone-3.9.1/coreapi/authentication.c" line="104" column="1" bodyfile="/usr/src/slapt-src/network/linphone/linphone-3.9.1/coreapi/authentication.c" bodystart="104" bodyend="110"/>
      </memberdef>
      <memberdef kind="function" id="group__authentication_1ga039bc35669147f691a9453455bcc2b82" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>void</type>
        <definition>void linphone_auth_info_set_domain</definition>
        <argsstring>(LinphoneAuthInfo *info, const char *domain)</argsstring>
        <name>linphone_auth_info_set_domain</name>
        <param>
          <type>LinphoneAuthInfo *</type>
          <declname>info</declname>
        </param>
        <param>
          <type>const char *</type>
          <declname>domain</declname>
        </param>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
<para>Sets the domain for which this authentication is valid. <parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername direction="in">info</parametername>
</parameternamelist>
<parameterdescription>
<para>The #LinphoneAuthInfo object </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">domain</parametername>
</parameternamelist>
<parameterdescription>
<para>The domain. This should not be necessary because realm is supposed to be unique and sufficient. However, many SIP servers don&apos;t set realm correctly, then domain has to be used to distinguish between several SIP account bearing the same username. </para></parameterdescription>
</parameteritem>
</parameterlist>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/usr/src/slapt-src/network/linphone/linphone-3.9.1/coreapi/authentication.c" line="112" column="1" bodyfile="/usr/src/slapt-src/network/linphone/linphone-3.9.1/coreapi/authentication.c" bodystart="112" bodyend="118"/>
      </memberdef>
      <memberdef kind="function" id="group__authentication_1ga6c71e015d27bff6bfb6ef96d328eb4c8" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>void</type>
        <definition>void linphone_auth_info_set_ha1</definition>
        <argsstring>(LinphoneAuthInfo *info, const char *ha1)</argsstring>
        <name>linphone_auth_info_set_ha1</name>
        <param>
          <type>LinphoneAuthInfo *</type>
          <declname>info</declname>
        </param>
        <param>
          <type>const char *</type>
          <declname>ha1</declname>
        </param>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
<para>Sets the ha1. <parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername direction="in">info</parametername>
</parameternamelist>
<parameterdescription>
<para>The #LinphoneAuthInfo object </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">ha1</parametername>
</parameternamelist>
<parameterdescription>
<para>The ha1. </para></parameterdescription>
</parameteritem>
</parameterlist>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/usr/src/slapt-src/network/linphone/linphone-3.9.1/coreapi/authentication.c" line="120" column="1" bodyfile="/usr/src/slapt-src/network/linphone/linphone-3.9.1/coreapi/authentication.c" bodystart="120" bodyend="126"/>
      </memberdef>
      <memberdef kind="function" id="group__authentication_1ga814df254ea5005e5bb04d4247688e09f" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>void</type>
        <definition>void linphone_auth_info_destroy</definition>
        <argsstring>(LinphoneAuthInfo *obj)</argsstring>
        <name>linphone_auth_info_destroy</name>
        <param>
          <type>LinphoneAuthInfo *</type>
          <declname>obj</declname>
        </param>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
<para>Destroys a LinphoneAuthInfo object. </para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/usr/src/slapt-src/network/linphone/linphone-3.9.1/coreapi/authentication.c" line="131" column="1" bodyfile="/usr/src/slapt-src/network/linphone/linphone-3.9.1/coreapi/authentication.c" bodystart="131" bodyend="139"/>
      </memberdef>
      <memberdef kind="function" id="group__authentication_1gaee8c4f64de2c874b1e08cf17848a8060" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>void</type>
        <definition>void linphone_auth_info_write_config</definition>
        <argsstring>(LpConfig *config, LinphoneAuthInfo *obj, int pos)</argsstring>
        <name>linphone_auth_info_write_config</name>
        <param>
          <type><ref refid="group__misc_1ga047b6550aab7dd244268e695fab98fd6" kindref="member">LpConfig</ref> *</type>
          <declname>config</declname>
        </param>
        <param>
          <type>LinphoneAuthInfo *</type>
          <declname>obj</declname>
        </param>
        <param>
          <type>int</type>
          <declname>pos</declname>
        </param>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/usr/src/slapt-src/network/linphone/linphone-3.9.1/coreapi/authentication.c" line="141" column="1" bodyfile="/usr/src/slapt-src/network/linphone/linphone-3.9.1/coreapi/authentication.c" bodystart="141" bodyend="184"/>
      </memberdef>
      <memberdef kind="function" id="group__authentication_1gafa84d114df0b0dfb867f96eaec96d96f" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>LinphoneAuthInfo *</type>
        <definition>LinphoneAuthInfo * linphone_auth_info_new_from_config_file</definition>
        <argsstring>(LpConfig *config, int pos)</argsstring>
        <name>linphone_auth_info_new_from_config_file</name>
        <param>
          <type><ref refid="group__misc_1ga047b6550aab7dd244268e695fab98fd6" kindref="member">LpConfig</ref> *</type>
          <declname>config</declname>
        </param>
        <param>
          <type>int</type>
          <declname>pos</declname>
        </param>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/usr/src/slapt-src/network/linphone/linphone-3.9.1/coreapi/authentication.c" line="186" column="1" bodyfile="/usr/src/slapt-src/network/linphone/linphone-3.9.1/coreapi/authentication.c" bodystart="186" bodyend="205"/>
      </memberdef>
      <memberdef kind="function" id="group__authentication_1ga28f63fae4ff15887128f96f92ee98ab1" prot="public" static="yes" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>char *</type>
        <definition>static char* remove_quotes</definition>
        <argsstring>(char *input)</argsstring>
        <name>remove_quotes</name>
        <param>
          <type>char *</type>
          <declname>input</declname>
        </param>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/usr/src/slapt-src/network/linphone/linphone-3.9.1/coreapi/authentication.c" line="207" column="1" bodyfile="/usr/src/slapt-src/network/linphone/linphone-3.9.1/coreapi/authentication.c" bodystart="207" bodyend="213"/>
      </memberdef>
      <memberdef kind="function" id="group__authentication_1gaa5ec4662f576e263330f6d85de17de6c" prot="public" static="yes" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>bool_t</type>
        <definition>static bool_t realm_match</definition>
        <argsstring>(const char *realm1, const char *realm2)</argsstring>
        <name>realm_match</name>
        <param>
          <type>const char *</type>
          <declname>realm1</declname>
        </param>
        <param>
          <type>const char *</type>
          <declname>realm2</declname>
        </param>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/usr/src/slapt-src/network/linphone/linphone-3.9.1/coreapi/authentication.c" line="215" column="1" bodyfile="/usr/src/slapt-src/network/linphone/linphone-3.9.1/coreapi/authentication.c" bodystart="215" bodyend="231"/>
      </memberdef>
      <memberdef kind="function" id="group__authentication_1ga581e80b0f98d74e4fee51fc941ed9af6" prot="public" static="yes" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>const LinphoneAuthInfo *</type>
        <definition>static const LinphoneAuthInfo* find_auth_info</definition>
        <argsstring>(LinphoneCore *lc, const char *username, const char *realm, const char *domain, bool_t ignore_realm)</argsstring>
        <name>find_auth_info</name>
        <param>
          <type><ref refid="group__initializing_1gaa5cf635b82dd338e7ee2dd3599d05f0a" kindref="member">LinphoneCore</ref> *</type>
          <declname>lc</declname>
        </param>
        <param>
          <type>const char *</type>
          <declname>username</declname>
        </param>
        <param>
          <type>const char *</type>
          <declname>realm</declname>
        </param>
        <param>
          <type>const char *</type>
          <declname>domain</declname>
        </param>
        <param>
          <type>bool_t</type>
          <declname>ignore_realm</declname>
        </param>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/usr/src/slapt-src/network/linphone/linphone-3.9.1/coreapi/authentication.c" line="233" column="1" bodyfile="/usr/src/slapt-src/network/linphone/linphone-3.9.1/coreapi/authentication.c" bodystart="233" bodyend="261"/>
      </memberdef>
      <memberdef kind="function" id="group__authentication_1ga4f630b9eab706726c81dcc26c6181682" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>const LinphoneAuthInfo *</type>
        <definition>const LinphoneAuthInfo* _linphone_core_find_auth_info</definition>
        <argsstring>(LinphoneCore *lc, const char *realm, const char *username, const char *domain, bool_t ignore_realm)</argsstring>
        <name>_linphone_core_find_auth_info</name>
        <param>
          <type><ref refid="group__initializing_1gaa5cf635b82dd338e7ee2dd3599d05f0a" kindref="member">LinphoneCore</ref> *</type>
          <declname>lc</declname>
        </param>
        <param>
          <type>const char *</type>
          <declname>realm</declname>
        </param>
        <param>
          <type>const char *</type>
          <declname>username</declname>
        </param>
        <param>
          <type>const char *</type>
          <declname>domain</declname>
        </param>
        <param>
          <type>bool_t</type>
          <declname>ignore_realm</declname>
        </param>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/usr/src/slapt-src/network/linphone/linphone-3.9.1/coreapi/authentication.c" line="264" column="1" bodyfile="/usr/src/slapt-src/network/linphone/linphone-3.9.1/coreapi/authentication.c" bodystart="264" bodyend="280"/>
      </memberdef>
      <memberdef kind="function" id="group__authentication_1ga400d096f0ee54a73031da73c00ba96d1" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>const LinphoneAuthInfo *</type>
        <definition>const LinphoneAuthInfo* linphone_core_find_auth_info</definition>
        <argsstring>(LinphoneCore *lc, const char *realm, const char *username, const char *domain)</argsstring>
        <name>linphone_core_find_auth_info</name>
        <param>
          <type><ref refid="group__initializing_1gaa5cf635b82dd338e7ee2dd3599d05f0a" kindref="member">LinphoneCore</ref> *</type>
          <declname>lc</declname>
        </param>
        <param>
          <type>const char *</type>
          <declname>realm</declname>
        </param>
        <param>
          <type>const char *</type>
          <declname>username</declname>
        </param>
        <param>
          <type>const char *</type>
          <declname>sip_domain</declname>
          <defname>domain</defname>
        </param>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
<para>Find authentication info matching realm, username, domain criteria. First of all, (realm,username) pair are searched. If multiple results (which should not happen because realm are supposed to be unique), then domain is added to the search. <parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>lc</parametername>
</parameternamelist>
<parameterdescription>
<para>the LinphoneCore </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>realm</parametername>
</parameternamelist>
<parameterdescription>
<para>the authentication &apos;realm&apos; (optional) </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>username</parametername>
</parameternamelist>
<parameterdescription>
<para>the SIP username to be authenticated (mandatory) </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>domain</parametername>
</parameternamelist>
<parameterdescription>
<para>the SIP domain name (optional) </para></parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para>a #LinphoneAuthInfo </para></simplesect>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/usr/src/slapt-src/network/linphone/linphone-3.9.1/coreapi/authentication.c" line="282" column="1" bodyfile="/usr/src/slapt-src/network/linphone/linphone-3.9.1/coreapi/authentication.c" bodystart="282" bodyend="284"/>
      </memberdef>
      <memberdef kind="function" id="group__authentication_1ga1bd8dd0ffdd28bf6a29aeeaac26d1473" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>void</type>
        <definition>void linphone_core_write_auth_info</definition>
        <argsstring>(LinphoneCore *lc, LinphoneAuthInfo *ai)</argsstring>
        <name>linphone_core_write_auth_info</name>
        <param>
          <type><ref refid="group__initializing_1gaa5cf635b82dd338e7ee2dd3599d05f0a" kindref="member">LinphoneCore</ref> *</type>
          <declname>lc</declname>
        </param>
        <param>
          <type>LinphoneAuthInfo *</type>
          <declname>ai</declname>
        </param>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/usr/src/slapt-src/network/linphone/linphone-3.9.1/coreapi/authentication.c" line="287" column="1" bodyfile="/usr/src/slapt-src/network/linphone/linphone-3.9.1/coreapi/authentication.c" bodystart="287" bodyend="298"/>
      </memberdef>
      <memberdef kind="function" id="group__authentication_1ga3150de7be2dec31693715527aaeeb94e" prot="public" static="yes" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>void</type>
        <definition>static void write_auth_infos</definition>
        <argsstring>(LinphoneCore *lc)</argsstring>
        <name>write_auth_infos</name>
        <param>
          <type><ref refid="group__initializing_1gaa5cf635b82dd338e7ee2dd3599d05f0a" kindref="member">LinphoneCore</ref> *</type>
          <declname>lc</declname>
        </param>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/usr/src/slapt-src/network/linphone/linphone-3.9.1/coreapi/authentication.c" line="300" column="1" bodyfile="/usr/src/slapt-src/network/linphone/linphone-3.9.1/coreapi/authentication.c" bodystart="300" bodyend="311"/>
      </memberdef>
      <memberdef kind="function" id="group__authentication_1ga99844f16e901fb18fb039fdaaad386d0" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>LinphoneAuthInfo *</type>
        <definition>LinphoneAuthInfo * linphone_core_create_auth_info</definition>
        <argsstring>(LinphoneCore *lc, const char *username, const char *userid, const char *passwd, const char *ha1, const char *realm, const char *domain)</argsstring>
        <name>linphone_core_create_auth_info</name>
        <param>
          <type><ref refid="group__initializing_1gaa5cf635b82dd338e7ee2dd3599d05f0a" kindref="member">LinphoneCore</ref> *</type>
          <declname>lc</declname>
        </param>
        <param>
          <type>const char *</type>
          <declname>username</declname>
        </param>
        <param>
          <type>const char *</type>
          <declname>userid</declname>
        </param>
        <param>
          <type>const char *</type>
          <declname>passwd</declname>
        </param>
        <param>
          <type>const char *</type>
          <declname>ha1</declname>
        </param>
        <param>
          <type>const char *</type>
          <declname>realm</declname>
        </param>
        <param>
          <type>const char *</type>
          <declname>domain</declname>
        </param>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
<para>Create an authentication information with default values from Linphone core. <parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername direction="in">lc</parametername>
</parameternamelist>
<parameterdescription>
<para><ref refid="group__initializing_1gaa5cf635b82dd338e7ee2dd3599d05f0a" kindref="member">LinphoneCore</ref> object </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">username</parametername>
</parameternamelist>
<parameterdescription>
<para>String containing the username part of the authentication credentials </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">userid</parametername>
</parameternamelist>
<parameterdescription>
<para>String containing the username to use to calculate the authentication digest (optional) </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">passwd</parametername>
</parameternamelist>
<parameterdescription>
<para>String containing the password of the authentication credentials (optional, either passwd or ha1 must be set) </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">ha1</parametername>
</parameternamelist>
<parameterdescription>
<para>String containing a ha1 hash of the password (optional, either passwd or ha1 must be set) </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">realm</parametername>
</parameternamelist>
<parameterdescription>
<para>String used to discriminate different SIP authentication domains (optional) </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">domain</parametername>
</parameternamelist>
<parameterdescription>
<para>String containing the SIP domain for which this authentication information is valid, if it has to be restricted for a single SIP domain. </para></parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para>#LinphoneAuthInfo with default values set </para></simplesect>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/usr/src/slapt-src/network/linphone/linphone-3.9.1/coreapi/authentication.c" line="313" column="1" bodyfile="/usr/src/slapt-src/network/linphone/linphone-3.9.1/coreapi/authentication.c" bodystart="313" bodyend="315"/>
      </memberdef>
      <memberdef kind="function" id="group__authentication_1ga62ac5bb34f0342f7edc733c42473b7aa" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>void</type>
        <definition>void linphone_core_add_auth_info</definition>
        <argsstring>(LinphoneCore *lc, const LinphoneAuthInfo *info)</argsstring>
        <name>linphone_core_add_auth_info</name>
        <param>
          <type><ref refid="group__initializing_1gaa5cf635b82dd338e7ee2dd3599d05f0a" kindref="member">LinphoneCore</ref> *</type>
          <declname>lc</declname>
        </param>
        <param>
          <type>const LinphoneAuthInfo *</type>
          <declname>info</declname>
        </param>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
<para>Adds authentication information to the LinphoneCore.</para><para>This information will be used during all SIP transactions that require authentication. </para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/usr/src/slapt-src/network/linphone/linphone-3.9.1/coreapi/authentication.c" line="322" column="1" bodyfile="/usr/src/slapt-src/network/linphone/linphone-3.9.1/coreapi/authentication.c" bodystart="322" bodyend="380"/>
      </memberdef>
      <memberdef kind="function" id="group__authentication_1gabf1213372f4ff87b4e2bbfcc241f0901" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>void</type>
        <definition>void linphone_core_abort_authentication</definition>
        <argsstring>(LinphoneCore *lc, LinphoneAuthInfo *info)</argsstring>
        <name>linphone_core_abort_authentication</name>
        <param>
          <type><ref refid="group__initializing_1gaa5cf635b82dd338e7ee2dd3599d05f0a" kindref="member">LinphoneCore</ref> *</type>
          <declname>lc</declname>
        </param>
        <param>
          <type>LinphoneAuthInfo *</type>
          <declname>info</declname>
        </param>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
<para>This method is used to abort a user authentication request initiated by LinphoneCore from the auth_info_requested callback of LinphoneCoreVTable. </para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/usr/src/slapt-src/network/linphone/linphone-3.9.1/coreapi/authentication.c" line="387" column="1" bodyfile="/usr/src/slapt-src/network/linphone/linphone-3.9.1/coreapi/authentication.c" bodystart="387" bodyend="388"/>
      </memberdef>
      <memberdef kind="function" id="group__authentication_1gafb8037a3bbee6f04458c354d8c1ca83e" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>void</type>
        <definition>void linphone_core_remove_auth_info</definition>
        <argsstring>(LinphoneCore *lc, const LinphoneAuthInfo *info)</argsstring>
        <name>linphone_core_remove_auth_info</name>
        <param>
          <type><ref refid="group__initializing_1gaa5cf635b82dd338e7ee2dd3599d05f0a" kindref="member">LinphoneCore</ref> *</type>
          <declname>lc</declname>
        </param>
        <param>
          <type>const LinphoneAuthInfo *</type>
          <declname>info</declname>
        </param>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
<para>Removes an authentication information object. </para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/usr/src/slapt-src/network/linphone/linphone-3.9.1/coreapi/authentication.c" line="393" column="1" bodyfile="/usr/src/slapt-src/network/linphone/linphone-3.9.1/coreapi/authentication.c" bodystart="393" bodyend="401"/>
      </memberdef>
      <memberdef kind="function" id="group__authentication_1ga3dbc544171ef06a1901b5031fde91e6f" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>const MSList *</type>
        <definition>const MSList* linphone_core_get_auth_info_list</definition>
        <argsstring>(const LinphoneCore *lc)</argsstring>
        <name>linphone_core_get_auth_info_list</name>
        <param>
          <type>const <ref refid="group__initializing_1gaa5cf635b82dd338e7ee2dd3599d05f0a" kindref="member">LinphoneCore</ref> *</type>
          <declname>lc</declname>
        </param>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
<para>Returns an unmodifiable list of currently entered LinphoneAuthInfo. <parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername direction="in">lc</parametername>
</parameternamelist>
<parameterdescription>
<para>The LinphoneCore object </para></parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para>A list of LinphoneAuthInfo objects. <mslist>LinphoneAuthInfo</mslist>  </para></simplesect>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/usr/src/slapt-src/network/linphone/linphone-3.9.1/coreapi/authentication.c" line="408" column="1" bodyfile="/usr/src/slapt-src/network/linphone/linphone-3.9.1/coreapi/authentication.c" bodystart="408" bodyend="410"/>
      </memberdef>
      <memberdef kind="function" id="group__authentication_1ga62979ce470f66cf8545e1e999875e903" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>void</type>
        <definition>void linphone_core_clear_all_auth_info</definition>
        <argsstring>(LinphoneCore *lc)</argsstring>
        <name>linphone_core_clear_all_auth_info</name>
        <param>
          <type><ref refid="group__initializing_1gaa5cf635b82dd338e7ee2dd3599d05f0a" kindref="member">LinphoneCore</ref> *</type>
          <declname>lc</declname>
        </param>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
<para>Clear all authentication information. </para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/usr/src/slapt-src/network/linphone/linphone-3.9.1/coreapi/authentication.c" line="415" column="1" bodyfile="/usr/src/slapt-src/network/linphone/linphone-3.9.1/coreapi/authentication.c" bodystart="415" bodyend="425"/>
      </memberdef>
      </sectiondef>
    <briefdescription>
    </briefdescription>
    <detaileddescription>
    </detaileddescription>
    <programlisting>
<codeline lineno="1"><highlight class="comment">/***************************************************************************</highlight></codeline>
<codeline lineno="2"><highlight class="comment"><sp/>*<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>authentication.c</highlight></codeline>
<codeline lineno="3"><highlight class="comment"><sp/>*</highlight></codeline>
<codeline lineno="4"><highlight class="comment"><sp/>*<sp/><sp/>Fri<sp/>Jul<sp/>16<sp/>12:08:34<sp/>2004</highlight></codeline>
<codeline lineno="5"><highlight class="comment"><sp/>*<sp/><sp/>Copyright<sp/><sp/>2004-2009<sp/><sp/>Simon<sp/>MORLAT</highlight></codeline>
<codeline lineno="6"><highlight class="comment"><sp/>*<sp/><sp/>simon.morlat@linphone.org</highlight></codeline>
<codeline lineno="7"><highlight class="comment"><sp/>****************************************************************************/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="8"><highlight class="normal"></highlight></codeline>
<codeline lineno="9"><highlight class="normal"></highlight><highlight class="comment">/*</highlight></codeline>
<codeline lineno="10"><highlight class="comment"><sp/>*<sp/><sp/>This<sp/>program<sp/>is<sp/>free<sp/>software;<sp/>you<sp/>can<sp/>redistribute<sp/>it<sp/>and/or<sp/>modify</highlight></codeline>
<codeline lineno="11"><highlight class="comment"><sp/>*<sp/><sp/>it<sp/>under<sp/>the<sp/>terms<sp/>of<sp/>the<sp/>GNU<sp/>General<sp/>Public<sp/>License<sp/>as<sp/>published<sp/>by</highlight></codeline>
<codeline lineno="12"><highlight class="comment"><sp/>*<sp/><sp/>the<sp/>Free<sp/>Software<sp/>Foundation;<sp/>either<sp/>version<sp/>2<sp/>of<sp/>the<sp/>License,<sp/>or</highlight></codeline>
<codeline lineno="13"><highlight class="comment"><sp/>*<sp/><sp/>(at<sp/>your<sp/>option)<sp/>any<sp/>later<sp/>version.</highlight></codeline>
<codeline lineno="14"><highlight class="comment"><sp/>*</highlight></codeline>
<codeline lineno="15"><highlight class="comment"><sp/>*<sp/><sp/>This<sp/>program<sp/>is<sp/>distributed<sp/>in<sp/>the<sp/>hope<sp/>that<sp/>it<sp/>will<sp/>be<sp/>useful,</highlight></codeline>
<codeline lineno="16"><highlight class="comment"><sp/>*<sp/><sp/>but<sp/>WITHOUT<sp/>ANY<sp/>WARRANTY;<sp/>without<sp/>even<sp/>the<sp/>implied<sp/>warranty<sp/>of</highlight></codeline>
<codeline lineno="17"><highlight class="comment"><sp/>*<sp/><sp/>MERCHANTABILITY<sp/>or<sp/>FITNESS<sp/>FOR<sp/>A<sp/>PARTICULAR<sp/>PURPOSE.<sp/><sp/>See<sp/>the</highlight></codeline>
<codeline lineno="18"><highlight class="comment"><sp/>*<sp/><sp/>GNU<sp/>Library<sp/>General<sp/>Public<sp/>License<sp/>for<sp/>more<sp/>details.</highlight></codeline>
<codeline lineno="19"><highlight class="comment"><sp/>*</highlight></codeline>
<codeline lineno="20"><highlight class="comment"><sp/>*<sp/><sp/>You<sp/>should<sp/>have<sp/>received<sp/>a<sp/>copy<sp/>of<sp/>the<sp/>GNU<sp/>General<sp/>Public<sp/>License</highlight></codeline>
<codeline lineno="21"><highlight class="comment"><sp/>*<sp/><sp/>along<sp/>with<sp/>this<sp/>program;<sp/>if<sp/>not,<sp/>write<sp/>to<sp/>the<sp/>Free<sp/>Software</highlight></codeline>
<codeline lineno="22"><highlight class="comment"><sp/>*<sp/><sp/>Foundation,<sp/>Inc.,<sp/>59<sp/>Temple<sp/>Place<sp/>-<sp/>Suite<sp/>330,<sp/>Boston,<sp/>MA<sp/>02111-1307,<sp/>USA.</highlight></codeline>
<codeline lineno="23"><highlight class="comment"><sp/>*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="24"><highlight class="normal"></highlight></codeline>
<codeline lineno="25"><highlight class="normal"></highlight><highlight class="preprocessor">#include<sp/>&quot;linphonecore.h&quot;</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="26"><highlight class="normal"></highlight><highlight class="preprocessor">#include<sp/>&quot;private.h&quot;</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="27"><highlight class="normal"></highlight><highlight class="preprocessor">#include<sp/>&quot;lpconfig.h&quot;</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="28"><highlight class="normal"></highlight></codeline>
<codeline lineno="34"><highlight class="normal">LinphoneAuthInfo<sp/>*<ref refid="group__authentication_1ga034dd18662e329c0dcd6a56d2b3d24fa" kindref="member">linphone_auth_info_new</ref>(</highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/>*username,<sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/>*userid,<sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/>*passwd,<sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/>*ha1,<sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/>*realm,<sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/>*domain){</highlight></codeline>
<codeline lineno="35"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>LinphoneAuthInfo<sp/>*obj=ms_new0(LinphoneAuthInfo,1);</highlight></codeline>
<codeline lineno="36"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(username!=NULL<sp/>&amp;&amp;<sp/>(strlen(username)&gt;0)<sp/>)<sp/>obj-&gt;username=ms_strdup(username);</highlight></codeline>
<codeline lineno="37"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(userid!=NULL<sp/>&amp;&amp;<sp/>(strlen(userid)&gt;0))<sp/>obj-&gt;userid=ms_strdup(userid);</highlight></codeline>
<codeline lineno="38"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(passwd!=NULL<sp/>&amp;&amp;<sp/>(strlen(passwd)&gt;0))<sp/>obj-&gt;passwd=ms_strdup(passwd);</highlight></codeline>
<codeline lineno="39"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(ha1!=NULL<sp/>&amp;&amp;<sp/>(strlen(ha1)&gt;0))<sp/>obj-&gt;ha1=ms_strdup(ha1);</highlight></codeline>
<codeline lineno="40"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(realm!=NULL<sp/>&amp;&amp;<sp/>(strlen(realm)&gt;0))<sp/>obj-&gt;realm=ms_strdup(realm);</highlight></codeline>
<codeline lineno="41"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(domain!=NULL<sp/>&amp;&amp;<sp/>(strlen(domain)&gt;0))<sp/>obj-&gt;domain=ms_strdup(domain);</highlight></codeline>
<codeline lineno="42"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>obj;</highlight></codeline>
<codeline lineno="43"><highlight class="normal">}</highlight></codeline>
<codeline lineno="44"><highlight class="normal"></highlight></codeline>
<codeline lineno="45"><highlight class="normal">LinphoneAuthInfo<sp/>*linphone_auth_info_clone(</highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/>LinphoneAuthInfo<sp/>*ai){</highlight></codeline>
<codeline lineno="46"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>LinphoneAuthInfo<sp/>*obj=ms_new0(LinphoneAuthInfo,1);</highlight></codeline>
<codeline lineno="47"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(ai-&gt;username)<sp/>obj-&gt;username=ms_strdup(ai-&gt;username);</highlight></codeline>
<codeline lineno="48"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(ai-&gt;userid)<sp/>obj-&gt;userid=ms_strdup(ai-&gt;userid);</highlight></codeline>
<codeline lineno="49"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(ai-&gt;passwd)<sp/>obj-&gt;passwd=ms_strdup(ai-&gt;passwd);</highlight></codeline>
<codeline lineno="50"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(ai-&gt;ha1)<sp/><sp/><sp/><sp/>obj-&gt;ha1=ms_strdup(ai-&gt;ha1);</highlight></codeline>
<codeline lineno="51"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(ai-&gt;realm)<sp/><sp/>obj-&gt;realm=ms_strdup(ai-&gt;realm);</highlight></codeline>
<codeline lineno="52"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(ai-&gt;domain)<sp/>obj-&gt;domain=ms_strdup(ai-&gt;domain);</highlight></codeline>
<codeline lineno="53"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>obj;</highlight></codeline>
<codeline lineno="54"><highlight class="normal">}</highlight></codeline>
<codeline lineno="55"><highlight class="normal"></highlight></codeline>
<codeline lineno="56"><highlight class="normal"></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/>*<ref refid="group__authentication_1gab77fb77e534a859fbd0810667d8cb53f" kindref="member">linphone_auth_info_get_username</ref>(</highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/>LinphoneAuthInfo<sp/>*i){</highlight></codeline>
<codeline lineno="57"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>i-&gt;username;</highlight></codeline>
<codeline lineno="58"><highlight class="normal">}</highlight></codeline>
<codeline lineno="59"><highlight class="normal"></highlight></codeline>
<codeline lineno="60"><highlight class="normal"></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/>*<ref refid="group__authentication_1ga1f34c3ee680b8572a7a87e9170af0828" kindref="member">linphone_auth_info_get_passwd</ref>(</highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/>LinphoneAuthInfo<sp/>*i){</highlight></codeline>
<codeline lineno="61"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>i-&gt;passwd;</highlight></codeline>
<codeline lineno="62"><highlight class="normal">}</highlight></codeline>
<codeline lineno="63"><highlight class="normal"></highlight></codeline>
<codeline lineno="64"><highlight class="normal"></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/>*<ref refid="group__authentication_1gaacfe8800e52d3f7cbcb139db6b594bc4" kindref="member">linphone_auth_info_get_userid</ref>(</highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/>LinphoneAuthInfo<sp/>*i){</highlight></codeline>
<codeline lineno="65"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>i-&gt;userid;</highlight></codeline>
<codeline lineno="66"><highlight class="normal">}</highlight></codeline>
<codeline lineno="67"><highlight class="normal"></highlight></codeline>
<codeline lineno="68"><highlight class="normal"></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/>*<ref refid="group__authentication_1ga2d4ae9fb902edc97c4392349dae4e305" kindref="member">linphone_auth_info_get_realm</ref>(</highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/>LinphoneAuthInfo<sp/>*i){</highlight></codeline>
<codeline lineno="69"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>i-&gt;realm;</highlight></codeline>
<codeline lineno="70"><highlight class="normal">}</highlight></codeline>
<codeline lineno="71"><highlight class="normal"></highlight></codeline>
<codeline lineno="72"><highlight class="normal"></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/>*<ref refid="group__authentication_1ga4442014128350925aee14f5cae215557" kindref="member">linphone_auth_info_get_domain</ref>(</highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/>LinphoneAuthInfo<sp/>*i){</highlight></codeline>
<codeline lineno="73"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>i-&gt;domain;</highlight></codeline>
<codeline lineno="74"><highlight class="normal">}</highlight></codeline>
<codeline lineno="75"><highlight class="normal"></highlight></codeline>
<codeline lineno="76"><highlight class="normal"></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/>*<ref refid="group__authentication_1gac49a261a59edc0e63c245aff471d6f3b" kindref="member">linphone_auth_info_get_ha1</ref>(</highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/>LinphoneAuthInfo<sp/>*i){</highlight></codeline>
<codeline lineno="77"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>i-&gt;ha1;</highlight></codeline>
<codeline lineno="78"><highlight class="normal">}</highlight></codeline>
<codeline lineno="79"><highlight class="normal"></highlight></codeline>
<codeline lineno="80"><highlight class="normal"></highlight><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/><ref refid="group__authentication_1ga004d3d5228cb74697df157e4ae93f6c7" kindref="member">linphone_auth_info_set_passwd</ref>(LinphoneAuthInfo<sp/>*info,<sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/>*passwd){</highlight></codeline>
<codeline lineno="81"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(info-&gt;passwd!=NULL)<sp/>{</highlight></codeline>
<codeline lineno="82"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>ms_free(info-&gt;passwd);</highlight></codeline>
<codeline lineno="83"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>info-&gt;passwd=NULL;</highlight></codeline>
<codeline lineno="84"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>}</highlight></codeline>
<codeline lineno="85"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(passwd!=NULL<sp/>&amp;&amp;<sp/>(strlen(passwd)&gt;0))<sp/>info-&gt;passwd=ms_strdup(passwd);</highlight></codeline>
<codeline lineno="86"><highlight class="normal">}</highlight></codeline>
<codeline lineno="87"><highlight class="normal"></highlight></codeline>
<codeline lineno="88"><highlight class="normal"></highlight><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/><ref refid="group__authentication_1ga36c0b48f8ce1b1b3e632f00d301ea4c7" kindref="member">linphone_auth_info_set_username</ref>(LinphoneAuthInfo<sp/>*info,<sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/>*username){</highlight></codeline>
<codeline lineno="89"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(info-&gt;username){</highlight></codeline>
<codeline lineno="90"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>ms_free(info-&gt;username);</highlight></codeline>
<codeline lineno="91"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>info-&gt;username=NULL;</highlight></codeline>
<codeline lineno="92"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>}</highlight></codeline>
<codeline lineno="93"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(username<sp/>&amp;&amp;<sp/>strlen(username)&gt;0)<sp/>info-&gt;username=ms_strdup(username);</highlight></codeline>
<codeline lineno="94"><highlight class="normal">}</highlight></codeline>
<codeline lineno="95"><highlight class="normal"></highlight></codeline>
<codeline lineno="96"><highlight class="normal"></highlight><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/><ref refid="group__authentication_1gaceda2fc2a33f5e5ea05d16bc0ecd2167" kindref="member">linphone_auth_info_set_userid</ref>(LinphoneAuthInfo<sp/>*info,<sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/>*userid){</highlight></codeline>
<codeline lineno="97"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(info-&gt;userid){</highlight></codeline>
<codeline lineno="98"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>ms_free(info-&gt;userid);</highlight></codeline>
<codeline lineno="99"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>info-&gt;userid=NULL;</highlight></codeline>
<codeline lineno="100"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>}</highlight></codeline>
<codeline lineno="101"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(userid<sp/>&amp;&amp;<sp/>strlen(userid)&gt;0)<sp/>info-&gt;userid=ms_strdup(userid);</highlight></codeline>
<codeline lineno="102"><highlight class="normal">}</highlight></codeline>
<codeline lineno="103"><highlight class="normal"></highlight></codeline>
<codeline lineno="104"><highlight class="normal"></highlight><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/><ref refid="group__authentication_1ga9b59442c828894f86a106d40bab2563e" kindref="member">linphone_auth_info_set_realm</ref>(LinphoneAuthInfo<sp/>*info,<sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/>*realm){</highlight></codeline>
<codeline lineno="105"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(info-&gt;realm){</highlight></codeline>
<codeline lineno="106"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>ms_free(info-&gt;realm);</highlight></codeline>
<codeline lineno="107"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>info-&gt;realm=NULL;</highlight></codeline>
<codeline lineno="108"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>}</highlight></codeline>
<codeline lineno="109"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(realm<sp/>&amp;&amp;<sp/>strlen(realm)&gt;0)<sp/>info-&gt;realm=ms_strdup(realm);</highlight></codeline>
<codeline lineno="110"><highlight class="normal">}</highlight></codeline>
<codeline lineno="111"><highlight class="normal"></highlight></codeline>
<codeline lineno="112"><highlight class="normal"></highlight><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/><ref refid="group__authentication_1ga039bc35669147f691a9453455bcc2b82" kindref="member">linphone_auth_info_set_domain</ref>(LinphoneAuthInfo<sp/>*info,<sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/>*domain){</highlight></codeline>
<codeline lineno="113"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(info-&gt;domain){</highlight></codeline>
<codeline lineno="114"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>ms_free(info-&gt;domain);</highlight></codeline>
<codeline lineno="115"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>info-&gt;domain=NULL;</highlight></codeline>
<codeline lineno="116"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>}</highlight></codeline>
<codeline lineno="117"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(domain<sp/>&amp;&amp;<sp/>strlen(domain)&gt;0)<sp/>info-&gt;domain=ms_strdup(domain);</highlight></codeline>
<codeline lineno="118"><highlight class="normal">}</highlight></codeline>
<codeline lineno="119"><highlight class="normal"></highlight></codeline>
<codeline lineno="120"><highlight class="normal"></highlight><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/><ref refid="group__authentication_1ga6c71e015d27bff6bfb6ef96d328eb4c8" kindref="member">linphone_auth_info_set_ha1</ref>(LinphoneAuthInfo<sp/>*info,<sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/>*ha1){</highlight></codeline>
<codeline lineno="121"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(info-&gt;ha1){</highlight></codeline>
<codeline lineno="122"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>ms_free(info-&gt;ha1);</highlight></codeline>
<codeline lineno="123"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>info-&gt;ha1=NULL;</highlight></codeline>
<codeline lineno="124"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>}</highlight></codeline>
<codeline lineno="125"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(ha1<sp/>&amp;&amp;<sp/>strlen(ha1)&gt;0)<sp/>info-&gt;ha1=ms_strdup(ha1);</highlight></codeline>
<codeline lineno="126"><highlight class="normal">}</highlight></codeline>
<codeline lineno="127"><highlight class="normal"></highlight></codeline>
<codeline lineno="131"><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/><ref refid="group__authentication_1ga814df254ea5005e5bb04d4247688e09f" kindref="member">linphone_auth_info_destroy</ref>(LinphoneAuthInfo<sp/>*obj){</highlight></codeline>
<codeline lineno="132"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(obj-&gt;username!=NULL)<sp/>ms_free(obj-&gt;username);</highlight></codeline>
<codeline lineno="133"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(obj-&gt;userid!=NULL)<sp/>ms_free(obj-&gt;userid);</highlight></codeline>
<codeline lineno="134"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(obj-&gt;passwd!=NULL)<sp/>ms_free(obj-&gt;passwd);</highlight></codeline>
<codeline lineno="135"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(obj-&gt;ha1!=NULL)<sp/>ms_free(obj-&gt;ha1);</highlight></codeline>
<codeline lineno="136"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(obj-&gt;realm!=NULL)<sp/>ms_free(obj-&gt;realm);</highlight></codeline>
<codeline lineno="137"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(obj-&gt;domain!=NULL)<sp/>ms_free(obj-&gt;domain);</highlight></codeline>
<codeline lineno="138"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>ms_free(obj);</highlight></codeline>
<codeline lineno="139"><highlight class="normal">}</highlight></codeline>
<codeline lineno="140"><highlight class="normal"></highlight></codeline>
<codeline lineno="141"><highlight class="normal"></highlight><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/>linphone_auth_info_write_config(<ref refid="group__misc_1ga047b6550aab7dd244268e695fab98fd6" kindref="member">LpConfig</ref><sp/>*config,<sp/>LinphoneAuthInfo<sp/>*obj,<sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>pos)</highlight></codeline>
<codeline lineno="142"><highlight class="normal">{</highlight></codeline>
<codeline lineno="143"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/>key[50];</highlight></codeline>
<codeline lineno="144"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>bool_t<sp/>store_ha1_passwd<sp/>=<sp/><ref refid="group__misc_1ga36d08c0cbc78d88fd4f043e61e9b9637" kindref="member">lp_config_get_int</ref>(config,<sp/></highlight><highlight class="stringliteral">&quot;sip&quot;</highlight><highlight class="normal">,<sp/></highlight><highlight class="stringliteral">&quot;store_ha1_passwd&quot;</highlight><highlight class="normal">,<sp/>1);</highlight></codeline>
<codeline lineno="145"><highlight class="normal"></highlight></codeline>
<codeline lineno="146"><highlight class="normal"></highlight></codeline>
<codeline lineno="147"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>sprintf(key,</highlight><highlight class="stringliteral">&quot;auth_info_%i&quot;</highlight><highlight class="normal">,pos);</highlight></codeline>
<codeline lineno="148"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="group__misc_1ga8ea8060c147dd9584644c52d4cd59a17" kindref="member">lp_config_clean_section</ref>(config,key);</highlight></codeline>
<codeline lineno="149"><highlight class="normal"></highlight></codeline>
<codeline lineno="150"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(obj==NULL<sp/>||<sp/><ref refid="group__misc_1ga36d08c0cbc78d88fd4f043e61e9b9637" kindref="member">lp_config_get_int</ref>(config,<sp/></highlight><highlight class="stringliteral">&quot;sip&quot;</highlight><highlight class="normal">,<sp/></highlight><highlight class="stringliteral">&quot;store_auth_info&quot;</highlight><highlight class="normal">,<sp/>1)<sp/>==<sp/>0){</highlight></codeline>
<codeline lineno="151"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal">;</highlight></codeline>
<codeline lineno="152"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>}</highlight></codeline>
<codeline lineno="153"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(!obj-&gt;ha1<sp/>&amp;&amp;<sp/>obj-&gt;realm<sp/>&amp;&amp;<sp/>obj-&gt;passwd<sp/>&amp;&amp;<sp/>(obj-&gt;username||obj-&gt;userid)<sp/>&amp;&amp;<sp/>store_ha1_passwd)<sp/>{</highlight></codeline>
<codeline lineno="154"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">/*compute<sp/>ha1<sp/>to<sp/>avoid<sp/>storing<sp/>clear<sp/>text<sp/>password*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="155"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>obj-&gt;ha1=ms_malloc(33);</highlight></codeline>
<codeline lineno="156"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>sal_auth_compute_ha1(obj-&gt;userid?obj-&gt;userid:obj-&gt;username,obj-&gt;realm,obj-&gt;passwd,obj-&gt;ha1);</highlight></codeline>
<codeline lineno="157"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>}</highlight></codeline>
<codeline lineno="158"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(obj-&gt;username!=NULL){</highlight></codeline>
<codeline lineno="159"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="group__misc_1ga2b9f058c7b12d124be96149100d9b079" kindref="member">lp_config_set_string</ref>(config,key,</highlight><highlight class="stringliteral">&quot;username&quot;</highlight><highlight class="normal">,obj-&gt;username);</highlight></codeline>
<codeline lineno="160"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>}</highlight></codeline>
<codeline lineno="161"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(obj-&gt;userid!=NULL){</highlight></codeline>
<codeline lineno="162"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="group__misc_1ga2b9f058c7b12d124be96149100d9b079" kindref="member">lp_config_set_string</ref>(config,key,</highlight><highlight class="stringliteral">&quot;userid&quot;</highlight><highlight class="normal">,obj-&gt;userid);</highlight></codeline>
<codeline lineno="163"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>}</highlight></codeline>
<codeline lineno="164"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(obj-&gt;ha1!=NULL){</highlight></codeline>
<codeline lineno="165"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="group__misc_1ga2b9f058c7b12d124be96149100d9b079" kindref="member">lp_config_set_string</ref>(config,key,</highlight><highlight class="stringliteral">&quot;ha1&quot;</highlight><highlight class="normal">,obj-&gt;ha1);</highlight></codeline>
<codeline lineno="166"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>}</highlight></codeline>
<codeline lineno="167"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(obj-&gt;passwd<sp/>!=<sp/>NULL){</highlight></codeline>
<codeline lineno="168"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(store_ha1_passwd){</highlight></codeline>
<codeline lineno="169"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(obj-&gt;ha1){</highlight></codeline>
<codeline lineno="170"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">/*if<sp/>we<sp/>have<sp/>our<sp/>ha1<sp/>and<sp/>store_ha1_passwd<sp/>set<sp/>to<sp/>TRUE,<sp/>then<sp/>drop<sp/>the<sp/>clear<sp/>text<sp/>password<sp/>for<sp/>security*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="171"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="group__authentication_1ga004d3d5228cb74697df157e4ae93f6c7" kindref="member">linphone_auth_info_set_passwd</ref>(obj,<sp/>NULL);</highlight></codeline>
<codeline lineno="172"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>}</highlight></codeline>
<codeline lineno="173"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>}</highlight><highlight class="keywordflow">else</highlight><highlight class="normal">{</highlight></codeline>
<codeline lineno="174"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">/*we<sp/>store<sp/>clear<sp/>text<sp/>password<sp/>only<sp/>if<sp/>store_ha1_passwd<sp/>is<sp/>FALSE*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="175"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="group__misc_1ga2b9f058c7b12d124be96149100d9b079" kindref="member">lp_config_set_string</ref>(config,key,</highlight><highlight class="stringliteral">&quot;passwd&quot;</highlight><highlight class="normal">,obj-&gt;passwd);</highlight></codeline>
<codeline lineno="176"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>}</highlight></codeline>
<codeline lineno="177"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>}</highlight></codeline>
<codeline lineno="178"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(obj-&gt;realm!=NULL){</highlight></codeline>
<codeline lineno="179"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="group__misc_1ga2b9f058c7b12d124be96149100d9b079" kindref="member">lp_config_set_string</ref>(config,key,</highlight><highlight class="stringliteral">&quot;realm&quot;</highlight><highlight class="normal">,obj-&gt;realm);</highlight></codeline>
<codeline lineno="180"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>}</highlight></codeline>
<codeline lineno="181"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(obj-&gt;domain!=NULL){</highlight></codeline>
<codeline lineno="182"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="group__misc_1ga2b9f058c7b12d124be96149100d9b079" kindref="member">lp_config_set_string</ref>(config,key,</highlight><highlight class="stringliteral">&quot;domain&quot;</highlight><highlight class="normal">,obj-&gt;domain);</highlight></codeline>
<codeline lineno="183"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>}</highlight></codeline>
<codeline lineno="184"><highlight class="normal">}</highlight></codeline>
<codeline lineno="185"><highlight class="normal"></highlight></codeline>
<codeline lineno="186"><highlight class="normal">LinphoneAuthInfo<sp/>*linphone_auth_info_new_from_config_file(<ref refid="group__misc_1ga047b6550aab7dd244268e695fab98fd6" kindref="member">LpConfig</ref><sp/>*<sp/>config,<sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>pos)</highlight></codeline>
<codeline lineno="187"><highlight class="normal">{</highlight></codeline>
<codeline lineno="188"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/>key[50];</highlight></codeline>
<codeline lineno="189"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/>*username,*userid,*passwd,*ha1,*realm,*domain;</highlight></codeline>
<codeline lineno="190"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>LinphoneAuthInfo<sp/>*ret;</highlight></codeline>
<codeline lineno="191"><highlight class="normal"></highlight></codeline>
<codeline lineno="192"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>sprintf(key,</highlight><highlight class="stringliteral">&quot;auth_info_%i&quot;</highlight><highlight class="normal">,pos);</highlight></codeline>
<codeline lineno="193"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(!<ref refid="group__misc_1ga15bf033627637f54ebc03380d5dfb2d1" kindref="member">lp_config_has_section</ref>(config,key)){</highlight></codeline>
<codeline lineno="194"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>NULL;</highlight></codeline>
<codeline lineno="195"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>}</highlight></codeline>
<codeline lineno="196"><highlight class="normal"></highlight></codeline>
<codeline lineno="197"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>username=<ref refid="group__misc_1ga9657ebf1d68b43184a796c9bdc68c29a" kindref="member">lp_config_get_string</ref>(config,key,</highlight><highlight class="stringliteral">&quot;username&quot;</highlight><highlight class="normal">,NULL);</highlight></codeline>
<codeline lineno="198"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>userid=<ref refid="group__misc_1ga9657ebf1d68b43184a796c9bdc68c29a" kindref="member">lp_config_get_string</ref>(config,key,</highlight><highlight class="stringliteral">&quot;userid&quot;</highlight><highlight class="normal">,NULL);</highlight></codeline>
<codeline lineno="199"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>passwd=<ref refid="group__misc_1ga9657ebf1d68b43184a796c9bdc68c29a" kindref="member">lp_config_get_string</ref>(config,key,</highlight><highlight class="stringliteral">&quot;passwd&quot;</highlight><highlight class="normal">,NULL);</highlight></codeline>
<codeline lineno="200"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>ha1=<ref refid="group__misc_1ga9657ebf1d68b43184a796c9bdc68c29a" kindref="member">lp_config_get_string</ref>(config,key,</highlight><highlight class="stringliteral">&quot;ha1&quot;</highlight><highlight class="normal">,NULL);</highlight></codeline>
<codeline lineno="201"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>realm=<ref refid="group__misc_1ga9657ebf1d68b43184a796c9bdc68c29a" kindref="member">lp_config_get_string</ref>(config,key,</highlight><highlight class="stringliteral">&quot;realm&quot;</highlight><highlight class="normal">,NULL);</highlight></codeline>
<codeline lineno="202"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>domain=<ref refid="group__misc_1ga9657ebf1d68b43184a796c9bdc68c29a" kindref="member">lp_config_get_string</ref>(config,key,</highlight><highlight class="stringliteral">&quot;domain&quot;</highlight><highlight class="normal">,NULL);</highlight></codeline>
<codeline lineno="203"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>ret=<ref refid="group__authentication_1ga034dd18662e329c0dcd6a56d2b3d24fa" kindref="member">linphone_auth_info_new</ref>(username,userid,passwd,ha1,realm,domain);</highlight></codeline>
<codeline lineno="204"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>ret;</highlight></codeline>
<codeline lineno="205"><highlight class="normal">}</highlight></codeline>
<codeline lineno="206"><highlight class="normal"></highlight></codeline>
<codeline lineno="207"><highlight class="normal"></highlight><highlight class="keyword">static</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/>*<sp/>remove_quotes(</highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/>*<sp/>input){</highlight></codeline>
<codeline lineno="208"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/>*tmp;</highlight></codeline>
<codeline lineno="209"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(*input==</highlight><highlight class="charliteral">&apos;&quot;&apos;</highlight><highlight class="normal">)<sp/>input++;</highlight></codeline>
<codeline lineno="210"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>tmp=strchr(input,</highlight><highlight class="charliteral">&apos;&quot;&apos;</highlight><highlight class="normal">);</highlight></codeline>
<codeline lineno="211"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(tmp)<sp/>*tmp=</highlight><highlight class="charliteral">&apos;\0&apos;</highlight><highlight class="normal">;</highlight></codeline>
<codeline lineno="212"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>input;</highlight></codeline>
<codeline lineno="213"><highlight class="normal">}</highlight></codeline>
<codeline lineno="214"><highlight class="normal"></highlight></codeline>
<codeline lineno="215"><highlight class="normal"></highlight><highlight class="keyword">static</highlight><highlight class="normal"><sp/>bool_t<sp/>realm_match(</highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/>*realm1,<sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/>*realm2){</highlight></codeline>
<codeline lineno="216"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(realm1==NULL<sp/>&amp;&amp;<sp/>realm2==NULL)<sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>TRUE;</highlight></codeline>
<codeline lineno="217"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(realm1!=NULL<sp/>&amp;&amp;<sp/>realm2!=NULL){</highlight></codeline>
<codeline lineno="218"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(strcmp(realm1,realm2)==0)<sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>TRUE;</highlight></codeline>
<codeline lineno="219"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">else</highlight><highlight class="normal">{</highlight></codeline>
<codeline lineno="220"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/>tmp1[128];</highlight></codeline>
<codeline lineno="221"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/>tmp2[128];</highlight></codeline>
<codeline lineno="222"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/>*p1,*p2;</highlight></codeline>
<codeline lineno="223"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>strncpy(tmp1,realm1,</highlight><highlight class="keyword">sizeof</highlight><highlight class="normal">(tmp1)-1);</highlight></codeline>
<codeline lineno="224"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>strncpy(tmp2,realm2,</highlight><highlight class="keyword">sizeof</highlight><highlight class="normal">(tmp2)-1);</highlight></codeline>
<codeline lineno="225"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>p1=remove_quotes(tmp1);</highlight></codeline>
<codeline lineno="226"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>p2=remove_quotes(tmp2);</highlight></codeline>
<codeline lineno="227"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>strcmp(p1,p2)==0;</highlight></codeline>
<codeline lineno="228"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>}</highlight></codeline>
<codeline lineno="229"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>}</highlight></codeline>
<codeline lineno="230"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>FALSE;</highlight></codeline>
<codeline lineno="231"><highlight class="normal">}</highlight></codeline>
<codeline lineno="232"><highlight class="normal"></highlight></codeline>
<codeline lineno="233"><highlight class="normal"></highlight><highlight class="keyword">static</highlight><highlight class="normal"><sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/>LinphoneAuthInfo<sp/>*find_auth_info(<ref refid="group__initializing_1gaa5cf635b82dd338e7ee2dd3599d05f0a" kindref="member">LinphoneCore</ref><sp/>*lc,<sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/>*username,<sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/>*realm,<sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/>*domain,<sp/>bool_t<sp/>ignore_realm){</highlight></codeline>
<codeline lineno="234"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>MSList<sp/>*elem;</highlight></codeline>
<codeline lineno="235"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/>LinphoneAuthInfo<sp/>*ret=NULL;</highlight></codeline>
<codeline lineno="236"><highlight class="normal"></highlight></codeline>
<codeline lineno="237"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">for</highlight><highlight class="normal"><sp/>(elem=lc-&gt;auth_info;elem!=NULL;elem=elem-&gt;next)<sp/>{</highlight></codeline>
<codeline lineno="238"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>LinphoneAuthInfo<sp/>*pinfo<sp/>=<sp/>(LinphoneAuthInfo*)elem-&gt;data;</highlight></codeline>
<codeline lineno="239"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>if<sp/>(username<sp/>&amp;&amp;<sp/>pinfo-&gt;username<sp/>&amp;&amp;<sp/>strcmp(username,pinfo-&gt;username)==0)<sp/>{</highlight></codeline>
<codeline lineno="240"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(realm<sp/>&amp;&amp;<sp/>domain){</highlight></codeline>
<codeline lineno="241"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(pinfo-&gt;realm<sp/>&amp;&amp;<sp/>realm_match(realm,pinfo-&gt;realm)</highlight></codeline>
<codeline lineno="242"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>&amp;&amp;<sp/>pinfo-&gt;domain<sp/>&amp;&amp;<sp/>strcmp(domain,pinfo-&gt;domain)==0)<sp/>{</highlight></codeline>
<codeline lineno="243"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>pinfo;</highlight></codeline>
<codeline lineno="244"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>}</highlight></codeline>
<codeline lineno="245"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>}<sp/></highlight><highlight class="keywordflow">else</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(realm)<sp/>{</highlight></codeline>
<codeline lineno="246"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(pinfo-&gt;realm<sp/>&amp;&amp;<sp/>realm_match(realm,pinfo-&gt;realm))<sp/>{</highlight></codeline>
<codeline lineno="247"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(ret!=NULL)<sp/>{</highlight></codeline>
<codeline lineno="248"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>ms_warning(</highlight><highlight class="stringliteral">&quot;Non<sp/>unique<sp/>realm<sp/>found<sp/>for<sp/>%s&quot;</highlight><highlight class="normal">,username);</highlight></codeline>
<codeline lineno="249"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>NULL;</highlight></codeline>
<codeline lineno="250"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>}</highlight></codeline>
<codeline lineno="251"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>ret=pinfo;</highlight></codeline>
<codeline lineno="252"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>}</highlight></codeline>
<codeline lineno="253"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>}<sp/></highlight><highlight class="keywordflow">else</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(domain<sp/>&amp;&amp;<sp/>pinfo-&gt;domain<sp/>&amp;&amp;<sp/>strcmp(domain,pinfo-&gt;domain)==0<sp/>&amp;&amp;<sp/>(pinfo-&gt;ha1==NULL<sp/>||<sp/>ignore_realm))<sp/>{</highlight></codeline>
<codeline lineno="254"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>pinfo;</highlight></codeline>
<codeline lineno="255"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>}<sp/></highlight><highlight class="keywordflow">else</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(!domain<sp/>&amp;&amp;<sp/>(pinfo-&gt;ha1==NULL<sp/>||<sp/>ignore_realm))<sp/>{</highlight></codeline>
<codeline lineno="256"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>pinfo;</highlight></codeline>
<codeline lineno="257"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>}</highlight></codeline>
<codeline lineno="258"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>}</highlight></codeline>
<codeline lineno="259"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>}</highlight></codeline>
<codeline lineno="260"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>ret;</highlight></codeline>
<codeline lineno="261"><highlight class="normal">}</highlight></codeline>
<codeline lineno="262"><highlight class="normal"></highlight></codeline>
<codeline lineno="263"><highlight class="normal"></highlight></codeline>
<codeline lineno="264"><highlight class="normal"></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/>LinphoneAuthInfo<sp/>*_linphone_core_find_auth_info(<ref refid="group__initializing_1gaa5cf635b82dd338e7ee2dd3599d05f0a" kindref="member">LinphoneCore</ref><sp/>*lc,<sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/>*realm,<sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/>*username,<sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/>*domain,<sp/>bool_t<sp/>ignore_realm){</highlight></codeline>
<codeline lineno="265"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/>LinphoneAuthInfo<sp/>*ai=NULL;</highlight></codeline>
<codeline lineno="266"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(realm){</highlight></codeline>
<codeline lineno="267"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>ai=find_auth_info(lc,username,realm,NULL,<sp/>FALSE);</highlight></codeline>
<codeline lineno="268"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(ai==NULL<sp/>&amp;&amp;<sp/>domain){</highlight></codeline>
<codeline lineno="269"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>ai=find_auth_info(lc,username,realm,domain,<sp/>FALSE);</highlight></codeline>
<codeline lineno="270"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>}</highlight></codeline>
<codeline lineno="271"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>}</highlight></codeline>
<codeline lineno="272"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(ai<sp/>==<sp/>NULL<sp/>&amp;&amp;<sp/>domain<sp/>!=<sp/>NULL)<sp/>{</highlight></codeline>
<codeline lineno="273"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>ai=find_auth_info(lc,username,NULL,domain,<sp/>ignore_realm);</highlight></codeline>
<codeline lineno="274"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>}</highlight></codeline>
<codeline lineno="275"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(ai==NULL){</highlight></codeline>
<codeline lineno="276"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>ai=find_auth_info(lc,username,NULL,NULL,<sp/>ignore_realm);</highlight></codeline>
<codeline lineno="277"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>}</highlight></codeline>
<codeline lineno="278"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(ai)<sp/>ms_message(</highlight><highlight class="stringliteral">&quot;linphone_core_find_auth_info():<sp/>returning<sp/>auth<sp/>info<sp/>username=%s,<sp/>realm=%s&quot;</highlight><highlight class="normal">,<sp/>ai-&gt;username<sp/>?<sp/>ai-&gt;username<sp/>:<sp/></highlight><highlight class="stringliteral">&quot;&quot;</highlight><highlight class="normal">,<sp/>ai-&gt;realm<sp/>?<sp/>ai-&gt;realm<sp/>:<sp/></highlight><highlight class="stringliteral">&quot;&quot;</highlight><highlight class="normal">);</highlight></codeline>
<codeline lineno="279"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>ai;</highlight></codeline>
<codeline lineno="280"><highlight class="normal">}</highlight></codeline>
<codeline lineno="281"><highlight class="normal"></highlight></codeline>
<codeline lineno="282"><highlight class="normal"></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/>LinphoneAuthInfo<sp/>*<ref refid="group__authentication_1ga400d096f0ee54a73031da73c00ba96d1" kindref="member">linphone_core_find_auth_info</ref>(<ref refid="group__initializing_1gaa5cf635b82dd338e7ee2dd3599d05f0a" kindref="member">LinphoneCore</ref><sp/>*lc,<sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/>*realm,<sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/>*username,<sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/>*domain){</highlight></codeline>
<codeline lineno="283"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>_linphone_core_find_auth_info(lc,<sp/>realm,<sp/>username,<sp/>domain,<sp/>TRUE);</highlight></codeline>
<codeline lineno="284"><highlight class="normal">}</highlight></codeline>
<codeline lineno="285"><highlight class="normal"></highlight></codeline>
<codeline lineno="286"><highlight class="normal"></highlight><highlight class="comment">/*the<sp/>auth<sp/>info<sp/>is<sp/>expected<sp/>to<sp/>be<sp/>in<sp/>the<sp/>core&apos;s<sp/>list*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="287"><highlight class="normal"></highlight><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/>linphone_core_write_auth_info(<ref refid="group__initializing_1gaa5cf635b82dd338e7ee2dd3599d05f0a" kindref="member">LinphoneCore</ref><sp/>*lc,<sp/>LinphoneAuthInfo<sp/>*ai){</highlight></codeline>
<codeline lineno="288"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>i;</highlight></codeline>
<codeline lineno="289"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>MSList<sp/>*elem<sp/>=<sp/>lc-&gt;auth_info;</highlight></codeline>
<codeline lineno="290"><highlight class="normal"></highlight></codeline>
<codeline lineno="291"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(!lc-&gt;sip_conf.save_auth_info)<sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal">;</highlight></codeline>
<codeline lineno="292"><highlight class="normal"></highlight></codeline>
<codeline lineno="293"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">for</highlight><highlight class="normal"><sp/>(i=0;<sp/>elem<sp/>!=<sp/>NULL;<sp/>elem<sp/>=<sp/>elem-&gt;next,<sp/>i++){</highlight></codeline>
<codeline lineno="294"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(ai<sp/>==<sp/>elem-&gt;data){</highlight></codeline>
<codeline lineno="295"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>linphone_auth_info_write_config(lc-&gt;config,<sp/>ai,<sp/>i);</highlight></codeline>
<codeline lineno="296"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>}</highlight></codeline>
<codeline lineno="297"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>}</highlight></codeline>
<codeline lineno="298"><highlight class="normal">}</highlight></codeline>
<codeline lineno="299"><highlight class="normal"></highlight></codeline>
<codeline lineno="300"><highlight class="normal"></highlight><highlight class="keyword">static</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/>write_auth_infos(<ref refid="group__initializing_1gaa5cf635b82dd338e7ee2dd3599d05f0a" kindref="member">LinphoneCore</ref><sp/>*lc){</highlight></codeline>
<codeline lineno="301"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>MSList<sp/>*elem;</highlight></codeline>
<codeline lineno="302"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>i;</highlight></codeline>
<codeline lineno="303"><highlight class="normal"></highlight></codeline>
<codeline lineno="304"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(!linphone_core_ready(lc))<sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal">;</highlight></codeline>
<codeline lineno="305"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(!lc-&gt;sip_conf.save_auth_info)<sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal">;</highlight></codeline>
<codeline lineno="306"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">for</highlight><highlight class="normal">(elem=lc-&gt;auth_info,i=0;elem!=NULL;elem=ms_list_next(elem),i++){</highlight></codeline>
<codeline lineno="307"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>LinphoneAuthInfo<sp/>*ai=(LinphoneAuthInfo*)(elem-&gt;data);</highlight></codeline>
<codeline lineno="308"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>linphone_auth_info_write_config(lc-&gt;config,ai,i);</highlight></codeline>
<codeline lineno="309"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>}</highlight></codeline>
<codeline lineno="310"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>linphone_auth_info_write_config(lc-&gt;config,NULL,i);<sp/></highlight><highlight class="comment">/*<sp/>mark<sp/>the<sp/>end<sp/>*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="311"><highlight class="normal">}</highlight></codeline>
<codeline lineno="312"><highlight class="normal"></highlight></codeline>
<codeline lineno="313"><highlight class="normal">LinphoneAuthInfo<sp/>*<sp/><ref refid="group__authentication_1ga99844f16e901fb18fb039fdaaad386d0" kindref="member">linphone_core_create_auth_info</ref>(<ref refid="group__initializing_1gaa5cf635b82dd338e7ee2dd3599d05f0a" kindref="member">LinphoneCore</ref><sp/>*lc,<sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/>*username,<sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/>*userid,<sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/>*passwd,<sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/>*ha1,<sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/>*realm,<sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/>*domain)<sp/>{</highlight></codeline>
<codeline lineno="314"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/><ref refid="group__authentication_1ga034dd18662e329c0dcd6a56d2b3d24fa" kindref="member">linphone_auth_info_new</ref>(username,<sp/>userid,<sp/>passwd,<sp/>ha1,<sp/>realm,<sp/>domain);</highlight></codeline>
<codeline lineno="315"><highlight class="normal">}</highlight></codeline>
<codeline lineno="316"><highlight class="normal"></highlight></codeline>
<codeline lineno="322"><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/><ref refid="group__authentication_1ga62ac5bb34f0342f7edc733c42473b7aa" kindref="member">linphone_core_add_auth_info</ref>(<ref refid="group__initializing_1gaa5cf635b82dd338e7ee2dd3599d05f0a" kindref="member">LinphoneCore</ref><sp/>*lc,<sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/>LinphoneAuthInfo<sp/>*info){</highlight></codeline>
<codeline lineno="323"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>LinphoneAuthInfo<sp/>*ai;</highlight></codeline>
<codeline lineno="324"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>MSList<sp/>*elem;</highlight></codeline>
<codeline lineno="325"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>MSList<sp/>*l;</highlight></codeline>
<codeline lineno="326"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>restarted_op_count=0;</highlight></codeline>
<codeline lineno="327"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>bool_t<sp/>updating=FALSE;</highlight></codeline>
<codeline lineno="328"><highlight class="normal"></highlight></codeline>
<codeline lineno="329"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(info-&gt;ha1==NULL<sp/>&amp;&amp;<sp/>info-&gt;passwd==NULL){</highlight></codeline>
<codeline lineno="330"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>ms_error(</highlight><highlight class="stringliteral">&quot;linphone_core_add_auth_info():<sp/>info<sp/>supplied<sp/>with<sp/>empty<sp/>password<sp/>or<sp/>ha1.&quot;</highlight><highlight class="normal">);</highlight></codeline>
<codeline lineno="331"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal">;</highlight></codeline>
<codeline lineno="332"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>}</highlight></codeline>
<codeline lineno="333"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">/*<sp/>find<sp/>if<sp/>we<sp/>are<sp/>attempting<sp/>to<sp/>modify<sp/>an<sp/>existing<sp/>auth<sp/>info<sp/>*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="334"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>ai=(LinphoneAuthInfo*)<ref refid="group__authentication_1ga400d096f0ee54a73031da73c00ba96d1" kindref="member">linphone_core_find_auth_info</ref>(lc,info-&gt;realm,info-&gt;username,info-&gt;domain);</highlight></codeline>
<codeline lineno="335"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(ai!=NULL<sp/>&amp;&amp;<sp/>ai-&gt;domain<sp/>&amp;&amp;<sp/>info-&gt;domain<sp/>&amp;&amp;<sp/>strcmp(ai-&gt;domain,<sp/>info-&gt;domain)==0){</highlight></codeline>
<codeline lineno="336"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>lc-&gt;auth_info=ms_list_remove(lc-&gt;auth_info,ai);</highlight></codeline>
<codeline lineno="337"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="group__authentication_1ga814df254ea5005e5bb04d4247688e09f" kindref="member">linphone_auth_info_destroy</ref>(ai);</highlight></codeline>
<codeline lineno="338"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>updating=TRUE;</highlight></codeline>
<codeline lineno="339"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>}</highlight></codeline>
<codeline lineno="340"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>lc-&gt;auth_info=ms_list_append(lc-&gt;auth_info,linphone_auth_info_clone(info));</highlight></codeline>
<codeline lineno="341"><highlight class="normal"></highlight></codeline>
<codeline lineno="342"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">/*<sp/>retry<sp/>pending<sp/>authentication<sp/>operations<sp/>*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="343"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">for</highlight><highlight class="normal">(l=elem=sal_get_pending_auths(lc-&gt;sal);elem!=NULL;elem=elem-&gt;next){</highlight></codeline>
<codeline lineno="344"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>SalOp<sp/>*op=(SalOp*)elem-&gt;data;</highlight></codeline>
<codeline lineno="345"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>LinphoneAuthInfo<sp/>*ai;</highlight></codeline>
<codeline lineno="346"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/>SalAuthInfo<sp/>*req_sai=sal_op_get_auth_requested(op);</highlight></codeline>
<codeline lineno="347"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>ai=(LinphoneAuthInfo*)_linphone_core_find_auth_info(lc,req_sai-&gt;realm,req_sai-&gt;username,req_sai-&gt;domain,<sp/>FALSE);</highlight></codeline>
<codeline lineno="348"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(ai){</highlight></codeline>
<codeline lineno="349"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>SalAuthInfo<sp/>sai;</highlight></codeline>
<codeline lineno="350"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>MSList*<sp/>proxy;</highlight></codeline>
<codeline lineno="351"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>sai.username=ai-&gt;username;</highlight></codeline>
<codeline lineno="352"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>sai.userid=ai-&gt;userid;</highlight></codeline>
<codeline lineno="353"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>sai.realm=ai-&gt;realm;</highlight></codeline>
<codeline lineno="354"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>sai.password=ai-&gt;passwd;</highlight></codeline>
<codeline lineno="355"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>sai.ha1=ai-&gt;ha1;</highlight></codeline>
<codeline lineno="356"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">/*proxy<sp/>case*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="357"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">for</highlight><highlight class="normal"><sp/>(proxy=(MSList*)<ref refid="group__proxies_1gad167a93dd8d6b6fa9b9d36c9ce7cc3fc" kindref="member">linphone_core_get_proxy_config_list</ref>(lc);proxy!=NULL;proxy=proxy-&gt;next)<sp/>{</highlight></codeline>
<codeline lineno="358"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(proxy-&gt;data<sp/>==<sp/>sal_op_get_user_pointer(op))<sp/>{</highlight></codeline>
<codeline lineno="359"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>linphone_proxy_config_set_state((<ref refid="group__proxies_1ga1879a0d59e068457b688138da97f2d0b" kindref="member">LinphoneProxyConfig</ref>*)(proxy-&gt;data),<ref refid="group__proxies_1ggaea1b64a739b1faf0b490fe0f52cfe65eae20dab1677f285ef32006cc86f8ea630" kindref="member">LinphoneRegistrationProgress</ref>,</highlight><highlight class="stringliteral">&quot;Authentication...&quot;</highlight><highlight class="normal">);</highlight></codeline>
<codeline lineno="360"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">break</highlight><highlight class="normal">;</highlight></codeline>
<codeline lineno="361"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>}</highlight></codeline>
<codeline lineno="362"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>}</highlight></codeline>
<codeline lineno="363"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>sal_op_authenticate(op,&amp;sai);</highlight></codeline>
<codeline lineno="364"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>restarted_op_count++;</highlight></codeline>
<codeline lineno="365"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>}</highlight></codeline>
<codeline lineno="366"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>}</highlight></codeline>
<codeline lineno="367"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(l){</highlight></codeline>
<codeline lineno="368"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>ms_message(</highlight><highlight class="stringliteral">&quot;linphone_core_add_auth_info():<sp/>restarted<sp/>[%i]<sp/>operation(s)<sp/>after<sp/>%s<sp/>auth<sp/>info<sp/>for\n&quot;</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="369"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="stringliteral">&quot;\tusername:<sp/>[%s]\n&quot;</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="370"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="stringliteral">&quot;\trealm<sp/>[%s]\n&quot;</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="371"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="stringliteral">&quot;\tdomain<sp/>[%s]\n&quot;</highlight><highlight class="normal">,</highlight></codeline>
<codeline lineno="372"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>restarted_op_count,</highlight></codeline>
<codeline lineno="373"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>updating<sp/>?<sp/></highlight><highlight class="stringliteral">&quot;updating&quot;</highlight><highlight class="normal"><sp/>:<sp/></highlight><highlight class="stringliteral">&quot;adding&quot;</highlight><highlight class="normal">,</highlight></codeline>
<codeline lineno="374"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>info-&gt;username<sp/>?<sp/>info-&gt;username<sp/>:<sp/></highlight><highlight class="stringliteral">&quot;&quot;</highlight><highlight class="normal">,</highlight></codeline>
<codeline lineno="375"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>info-&gt;realm<sp/>?<sp/>info-&gt;realm<sp/>:<sp/></highlight><highlight class="stringliteral">&quot;&quot;</highlight><highlight class="normal">,</highlight></codeline>
<codeline lineno="376"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>info-&gt;domain<sp/>?<sp/>info-&gt;domain<sp/>:<sp/></highlight><highlight class="stringliteral">&quot;&quot;</highlight><highlight class="normal">);</highlight></codeline>
<codeline lineno="377"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>}</highlight></codeline>
<codeline lineno="378"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>ms_list_free(l);</highlight></codeline>
<codeline lineno="379"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>write_auth_infos(lc);</highlight></codeline>
<codeline lineno="380"><highlight class="normal">}</highlight></codeline>
<codeline lineno="381"><highlight class="normal"></highlight></codeline>
<codeline lineno="382"><highlight class="normal"></highlight></codeline>
<codeline lineno="387"><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/><ref refid="group__authentication_1gabf1213372f4ff87b4e2bbfcc241f0901" kindref="member">linphone_core_abort_authentication</ref>(<ref refid="group__initializing_1gaa5cf635b82dd338e7ee2dd3599d05f0a" kindref="member">LinphoneCore</ref><sp/>*lc,<sp/><sp/>LinphoneAuthInfo<sp/>*info){</highlight></codeline>
<codeline lineno="388"><highlight class="normal">}</highlight></codeline>
<codeline lineno="389"><highlight class="normal"></highlight></codeline>
<codeline lineno="393"><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/><ref refid="group__authentication_1gafb8037a3bbee6f04458c354d8c1ca83e" kindref="member">linphone_core_remove_auth_info</ref>(<ref refid="group__initializing_1gaa5cf635b82dd338e7ee2dd3599d05f0a" kindref="member">LinphoneCore</ref><sp/>*lc,<sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/>LinphoneAuthInfo<sp/>*info){</highlight></codeline>
<codeline lineno="394"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>LinphoneAuthInfo<sp/>*r;</highlight></codeline>
<codeline lineno="395"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>r=(LinphoneAuthInfo*)<ref refid="group__authentication_1ga400d096f0ee54a73031da73c00ba96d1" kindref="member">linphone_core_find_auth_info</ref>(lc,info-&gt;realm,info-&gt;username,info-&gt;domain);</highlight></codeline>
<codeline lineno="396"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(r){</highlight></codeline>
<codeline lineno="397"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>lc-&gt;auth_info=ms_list_remove(lc-&gt;auth_info,r);</highlight></codeline>
<codeline lineno="398"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="group__authentication_1ga814df254ea5005e5bb04d4247688e09f" kindref="member">linphone_auth_info_destroy</ref>(r);</highlight></codeline>
<codeline lineno="399"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>write_auth_infos(lc);</highlight></codeline>
<codeline lineno="400"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>}</highlight></codeline>
<codeline lineno="401"><highlight class="normal">}</highlight></codeline>
<codeline lineno="402"><highlight class="normal"></highlight></codeline>
<codeline lineno="408"><highlight class="keyword">const</highlight><highlight class="normal"><sp/>MSList<sp/>*<ref refid="group__authentication_1ga3dbc544171ef06a1901b5031fde91e6f" kindref="member">linphone_core_get_auth_info_list</ref>(</highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/><ref refid="group__initializing_1gaa5cf635b82dd338e7ee2dd3599d05f0a" kindref="member">LinphoneCore</ref><sp/>*lc){</highlight></codeline>
<codeline lineno="409"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>lc-&gt;auth_info;</highlight></codeline>
<codeline lineno="410"><highlight class="normal">}</highlight></codeline>
<codeline lineno="411"><highlight class="normal"></highlight></codeline>
<codeline lineno="415"><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/><ref refid="group__authentication_1ga62979ce470f66cf8545e1e999875e903" kindref="member">linphone_core_clear_all_auth_info</ref>(<ref refid="group__initializing_1gaa5cf635b82dd338e7ee2dd3599d05f0a" kindref="member">LinphoneCore</ref><sp/>*lc){</highlight></codeline>
<codeline lineno="416"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>MSList<sp/>*elem;</highlight></codeline>
<codeline lineno="417"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>i;</highlight></codeline>
<codeline lineno="418"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">for</highlight><highlight class="normal">(i=0,elem=lc-&gt;auth_info;elem!=NULL;elem=ms_list_next(elem),i++){</highlight></codeline>
<codeline lineno="419"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>LinphoneAuthInfo<sp/>*info=(LinphoneAuthInfo*)elem-&gt;data;</highlight></codeline>
<codeline lineno="420"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="group__authentication_1ga814df254ea5005e5bb04d4247688e09f" kindref="member">linphone_auth_info_destroy</ref>(info);</highlight></codeline>
<codeline lineno="421"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>linphone_auth_info_write_config(lc-&gt;config,NULL,i);</highlight></codeline>
<codeline lineno="422"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>}</highlight></codeline>
<codeline lineno="423"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>ms_list_free(lc-&gt;auth_info);</highlight></codeline>
<codeline lineno="424"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>lc-&gt;auth_info=NULL;</highlight></codeline>
<codeline lineno="425"><highlight class="normal">}</highlight></codeline>
<codeline lineno="426"><highlight class="normal"></highlight></codeline>
    </programlisting>
    <location file="/usr/src/slapt-src/network/linphone/linphone-3.9.1/coreapi/authentication.c"/>
  </compounddef>
</doxygen>
