Sophie

Sophie

distrib > Fedora > 17 > i386 > by-pkgid > f47ddb753435c655fc691eb594d59ce5 > files > 114

libgadu-doc-1.11.2-1.fc17.noarch.rpm

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<title>libgadu: Połączenia bezpośrednie od wersji Gadu-Gadu 7.x</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
  $(document).ready(function() { searchBox.OnSelectItem(0); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td style="padding-left: 0.5em;">
   <div id="projectname">libgadu
   &#160;<span id="projectnumber">1.11.2</span>
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Wygenerowano przez Doxygen 1.8.1.1 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Szukaj');
</script>
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Strona&#160;główna</span></a></li>
      <li><a href="pages.html"><span>Dodatkowe&#160;strony</span></a></li>
      <li><a href="modules.html"><span>Moduły</span></a></li>
      <li><a href="annotated.html"><span>Struktury&#160;Danych</span></a></li>
      <li><a href="files.html"><span>Pliki</span></a></li>
      <li>
        <div id="MSearchBox" class="MSearchBoxInactive">
        <span class="left">
          <img id="MSearchSelect" src="search/mag_sel.png"
               onmouseover="return searchBox.OnSearchSelectShow()"
               onmouseout="return searchBox.OnSearchSelectHide()"
               alt=""/>
          <input type="text" id="MSearchField" value="Szukaj" accesskey="S"
               onfocus="searchBox.OnSearchFieldFocus(true)" 
               onblur="searchBox.OnSearchFieldFocus(false)" 
               onkeyup="searchBox.OnSearchFieldChange(event)"/>
          </span><span class="right">
            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
          </span>
        </div>
      </li>
    </ul>
  </div>
</div><!-- top -->
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Struktury Danych</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Pliki</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Funkcje</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Zmienne</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Definicje typów</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Wyliczenia</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Wartości wyliczeń</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Definicje</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Grupay</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(10)"><span class="SelectionMark">&#160;</span>Strony</a></div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div class="header">
  <div class="summary">
<a href="#nested-classes">Struktury danych</a> &#124;
<a href="#func-members">Funkcje</a>  </div>
  <div class="headertitle">
<div class="title">Połączenia bezpośrednie od wersji Gadu-Gadu 7.x</div>  </div>
<div class="ingroups"><a class="el" href="group__dcc.html">Połączenia bezpośrednie między klientami</a></div></div><!--header-->
<div class="contents">
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2><a name="nested-classes"></a>
Struktury danych</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structgg__dcc7.html">gg_dcc7</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Połączenie bezpośrednie od wersji Gadu-Gadu 7.x.  <a href="structgg__dcc7.html#details">Więcej...</a><br/></td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2><a name="func-members"></a>
Funkcje</h2></td></tr>
<tr class="memitem:gab9cb0eebd62a75931a44cf00b88ffd47"><td class="memItemLeft" align="right" valign="top">static struct <a class="el" href="structgg__dcc7.html">gg_dcc7</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__dcc7.html#gab9cb0eebd62a75931a44cf00b88ffd47">gg_dcc7_send_file_common</a> (struct <a class="el" href="structgg__session.html">gg_session</a> *sess, <a class="el" href="libgadu_8h.html#a33f630ba74294027f9bcda26ed49cdc8">uin_t</a> rcpt, int fd, size_t size, const char *filename1250, const char *hash, int seek)</td></tr>
<tr class="memitem:gadd203269b1b26d806cfca9341f7465ae"><td class="memItemLeft" align="right" valign="top">struct <a class="el" href="structgg__dcc7.html">gg_dcc7</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__dcc7.html#gadd203269b1b26d806cfca9341f7465ae">gg_dcc7_send_file</a> (struct <a class="el" href="structgg__session.html">gg_session</a> *sess, <a class="el" href="libgadu_8h.html#a33f630ba74294027f9bcda26ed49cdc8">uin_t</a> rcpt, const char *filename, const char *filename1250, const char *hash)</td></tr>
<tr class="memdesc:gadd203269b1b26d806cfca9341f7465ae"><td class="mdescLeft">&#160;</td><td class="mdescRight">Rozpoczyna wysyłanie pliku o danej nazwie.  <a href="#gadd203269b1b26d806cfca9341f7465ae"></a><br/></td></tr>
<tr class="memitem:ga99b4d40b7b138403ef306f50838f98ca"><td class="memItemLeft" align="right" valign="top">struct <a class="el" href="structgg__dcc7.html">gg_dcc7</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__dcc7.html#ga99b4d40b7b138403ef306f50838f98ca">gg_dcc7_send_file_fd</a> (struct <a class="el" href="structgg__session.html">gg_session</a> *sess, <a class="el" href="libgadu_8h.html#a33f630ba74294027f9bcda26ed49cdc8">uin_t</a> rcpt, int fd, size_t size, const char *filename1250, const char *hash)</td></tr>
<tr class="memitem:ga069cdebd3e41c42ca918e3221a1e2b0f"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__dcc7.html#ga069cdebd3e41c42ca918e3221a1e2b0f">gg_dcc7_accept</a> (struct <a class="el" href="structgg__dcc7.html">gg_dcc7</a> *dcc, unsigned int offset)</td></tr>
<tr class="memdesc:ga069cdebd3e41c42ca918e3221a1e2b0f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Potwierdza chęć odebrania pliku.  <a href="#ga069cdebd3e41c42ca918e3221a1e2b0f"></a><br/></td></tr>
<tr class="memitem:ga7ed0a6e2e7d0e8c2a9f735bd9a9b2af6"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__dcc7.html#ga7ed0a6e2e7d0e8c2a9f735bd9a9b2af6">gg_dcc7_reject</a> (struct <a class="el" href="structgg__dcc7.html">gg_dcc7</a> *dcc, int reason)</td></tr>
<tr class="memdesc:ga7ed0a6e2e7d0e8c2a9f735bd9a9b2af6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Odrzuca próbę przesłania pliku.  <a href="#ga7ed0a6e2e7d0e8c2a9f735bd9a9b2af6"></a><br/></td></tr>
<tr class="memitem:ga3053d18bcbd8d6854bc4510376451d2e"><td class="memItemLeft" align="right" valign="top">struct <a class="el" href="structgg__event.html">gg_event</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__dcc7.html#ga3053d18bcbd8d6854bc4510376451d2e">gg_dcc7_watch_fd</a> (struct <a class="el" href="structgg__dcc7.html">gg_dcc7</a> *dcc)</td></tr>
<tr class="memdesc:ga3053d18bcbd8d6854bc4510376451d2e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Funkcja wywoływana po zaobserwowaniu zmian na deskryptorze połączenia.  <a href="#ga3053d18bcbd8d6854bc4510376451d2e"></a><br/></td></tr>
<tr class="memitem:ga5ed5817b7fb53ea3d64b04f4b550ff35"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__dcc7.html#ga5ed5817b7fb53ea3d64b04f4b550ff35">gg_dcc7_free</a> (struct <a class="el" href="structgg__dcc7.html">gg_dcc7</a> *dcc)</td></tr>
<tr class="memdesc:ga5ed5817b7fb53ea3d64b04f4b550ff35"><td class="mdescLeft">&#160;</td><td class="mdescRight">Zwalnia zasoby używane przez połączenie bezpośrednie.  <a href="#ga5ed5817b7fb53ea3d64b04f4b550ff35"></a><br/></td></tr>
</table>
<hr/><a name="details" id="details"></a><h2>Opis szczegółowy</h2>
<p>Przesyłanie plików zgodne z Gadu-Gadu 7.x jest znacznie prostsze niż w wersji <a class="el" href="group__dcc6.html">6.x</a>. Podobnie jak poprzednio, każde połączenie jest opisane przez strukturę <code><a class="el" href="structgg__dcc7.html" title="Połączenie bezpośrednie od wersji Gadu-Gadu 7.x.">gg_dcc7</a></code>. Nie ma konieczności otwierania gniazda nasłuchującego, ponieważ jest tworzone dla każdego połączenia osobno.</p>
<p>Gdy chcemy wysłać plik, wywołujemy <code><a class="el" href="group__dcc7.html#gadd203269b1b26d806cfca9341f7465ae" title="Rozpoczyna wysyłanie pliku o danej nazwie.">gg_dcc7_send_file()</a></code> i obserwujemy zdarzenia zarówno z <code><a class="el" href="structgg__session.html" title="Sesja Gadu-Gadu.">gg_session</a></code>, jak i <code><a class="el" href="structgg__dcc7.html" title="Połączenie bezpośrednie od wersji Gadu-Gadu 7.x.">gg_dcc7</a></code>. Parametry funkcji to struktura sesji, numer odbiorcy, nazwa pliku, nazwa pliku w kodowaniu CP1250 (jeśli NULL to brana jest oryginalna nazwa) i skrót pliku wyznaczony algorytmem SHA1 (jeśli NULL to biblioteka liczy, blokując na ten czas działanie aplikacji). Wysyłanie jest praktycznie bezobsługowe, wystarczy zareagować na zdarzenie <code>GG_EVENT_DCC7_DONE</code> i <code>GG_EVENT_DCC7_ERROR</code> w <a class="el" href="structgg__dcc7.html" title="Połączenie bezpośrednie od wersji Gadu-Gadu 7.x.">gg_dcc7</a> oraz <code>GG_EVENT_DCC7_REJECTED</code> i <code>GG_EVENT_DCC7_ERROR</code> w <code><a class="el" href="structgg__session.html" title="Sesja Gadu-Gadu.">gg_session</a></code>, żeby wiedzieć, kiedy zwolnić zasoby funkcją <code><a class="el" href="group__dcc7.html#ga5ed5817b7fb53ea3d64b04f4b550ff35" title="Zwalnia zasoby używane przez połączenie bezpośrednie.">gg_dcc7_free()</a></code>.</p>
<p>Jeśli ktoś do nas wysyła plik, otrzymamy zdarzenie <code>GG_EVENT_DCC7_NEW</code> z sesji. Należy przygotować deskryptor otwarty do zapisu, wpisać jego wartość do pola <code>file_fd</code> struktury <code><a class="el" href="structgg__dcc7.html" title="Połączenie bezpośrednie od wersji Gadu-Gadu 7.x.">gg_dcc7</a></code> i wywołać <code><a class="el" href="group__dcc7.html#ga069cdebd3e41c42ca918e3221a1e2b0f" title="Potwierdza chęć odebrania pliku.">gg_dcc7_accept()</a></code> albo od razu wywołać <code><a class="el" href="group__dcc7.html#ga7ed0a6e2e7d0e8c2a9f735bd9a9b2af6" title="Odrzuca próbę przesłania pliku.">gg_dcc7_reject()</a></code>, jeśli nie chcemy połączenia. Tak samo jak przy wysyłaniu, wystarczy obsłużyć <code>GG_EVENT_DCC7_DONE</code> w strukturze <code><a class="el" href="structgg__dcc7.html" title="Połączenie bezpośrednie od wersji Gadu-Gadu 7.x.">gg_dcc7</a></code> i <code>GG_EVENT_DCC7_ERROR</code> w strukturach <code><a class="el" href="structgg__session.html" title="Sesja Gadu-Gadu.">gg_session</a></code> i <code><a class="el" href="structgg__dcc7.html" title="Połączenie bezpośrednie od wersji Gadu-Gadu 7.x.">gg_dcc7</a></code>.</p>
<p>Deskryptor połączenia (pole <code>fd</code> struktury <code><a class="el" href="structgg__dcc7.html" title="Połączenie bezpośrednie od wersji Gadu-Gadu 7.x.">gg_dcc7</a></code>) może zmienić się po wywołaniu funkcji <code><a class="el" href="group__dcc7.html#ga069cdebd3e41c42ca918e3221a1e2b0f" title="Potwierdza chęć odebrania pliku.">gg_dcc7_accept()</a></code> lub otrzymaniu jednego ze zdarzeń: <code>GG_EVENT_DCC7_CONNECTED</code>, <code>GG_EVENT_DCC7_ACCEPT</code>, <code>GG_EVENT_DCC7_PENDING</code>.</p>
<h1><a class="anchor" id="dcc7-settings"></a>
Opcje połączeń</h1>
<p>Ponieważ jedna ze stron odbiera połączenie bezpośrednie, konieczne jest nasłuchiwanie na porcie TCP. Domyślne ustawienia pozwalają na poprawną pracę jeśli co najmniej jedna ze stron połączenia ma bezpośredni dostęp do sieci, bez translacji adresów i/lub portów. Pole <a class="el" href="structgg__login__params.html#afe8103a5a3168019d3be70abe5a3c542"><code>client_addr</code> </a>struktury <code><a class="el" href="structgg__login__params.html" title="Parametry połączenia z serwerem Gadu-Gadu.">gg_login_params</a></code> mówi na jakim adresie należy nasłuchiwać. Domyślna wartość <code>0.0.0.0</code> powoduje nasłuchiwanie na wszystkich dostępnych interfejsach komputera. Pole <a class="el" href="structgg__login__params.html#a227d901bc6fb3e4ed6ad9640054c7849"><code>client_port</code> </a>mówi na którym porcie należy nasłuchiwać. Domyślna wartość <code>0</code> powoduje nasłuchiwanie na losowym dostępnym porcie. Należy zwrócić uwagę, że jeśli jedno połączenie będzie nasłuchiwać na danym porcie, inne już nie będzie w stanie, co spowoduje błąd.</p>
<p>Druga para ustawień dotyczy publicznego adresu i portu. Ta strona połączenia, która nasłuchuje na porcie TCP wysyła do drugiej strony swój adres i numer portu. Pole <a class="el" href="structgg__login__params.html#a9098d15d77ef7bd951a05eb7451bc450"><code>external_addr</code> </a>mówi jaki adres zostanie wysłany. Domyślna wartość <code>0.0.0.0</code> powoduje wysłanie adresu IP, z którego sesja łączy się z serwerem. Pole <a class="el" href="structgg__login__params.html#a4579a6a3bb00195b8f1b0dbcf10984e5"><code>external_port</code> </a>mówi jaki port zostanie wysłany. Domyślna wartość <code>0</code> powoduje wysłane portu, na którym połączenie nasłuchuje.</p>
<h1><a class="anchor" id="dcc7-todo"></a>
Do zrobienia</h1>
<ul>
<li>Rozmowy głosowe.</li>
</ul>
<ul>
<li>Nawiązywanie połączeń przez serwer. </li>
</ul>
<hr/><h2>Dokumentacja funkcji</h2>
<a class="anchor" id="gab9cb0eebd62a75931a44cf00b88ffd47"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static struct <a class="el" href="structgg__dcc7.html">gg_dcc7</a>* gg_dcc7_send_file_common </td>
          <td>(</td>
          <td class="paramtype">struct <a class="el" href="structgg__session.html">gg_session</a> *&#160;</td>
          <td class="paramname"><em>sess</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="libgadu_8h.html#a33f630ba74294027f9bcda26ed49cdc8">uin_t</a>&#160;</td>
          <td class="paramname"><em>rcpt</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>fd</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>size</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>filename1250</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>hash</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>seek</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span><span class="mlabel">read</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Rozpoczyna wysyłanie pliku.</p>
<p>Funkcja jest wykorzystywana przez <code><a class="el" href="group__dcc7.html#gadd203269b1b26d806cfca9341f7465ae" title="Rozpoczyna wysyłanie pliku o danej nazwie.">gg_dcc7_send_file()</a></code> oraz <code>gg_dcc_send_file_fd()</code>.</p>
<dl class="params"><dt>Parametry:</dt><dd>
  <table class="params">
    <tr><td class="paramname">sess</td><td>Struktura sesji </td></tr>
    <tr><td class="paramname">rcpt</td><td>Numer odbiorcy </td></tr>
    <tr><td class="paramname">fd</td><td>Deskryptor pliku </td></tr>
    <tr><td class="paramname">size</td><td>Rozmiar pliku </td></tr>
    <tr><td class="paramname">filename1250</td><td>Nazwa pliku w kodowaniu CP-1250 </td></tr>
    <tr><td class="paramname">hash</td><td>Skrót SHA-1 pliku </td></tr>
    <tr><td class="paramname">seek</td><td>Flaga mówiąca, czy można używać lseek()</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Zwraca:</dt><dd>Struktura <code><a class="el" href="structgg__dcc7.html" title="Połączenie bezpośrednie od wersji Gadu-Gadu 7.x.">gg_dcc7</a></code> lub <code>NULL</code> w przypadku błędu </dd></dl>

</div>
</div>
<a class="anchor" id="gadd203269b1b26d806cfca9341f7465ae"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">struct <a class="el" href="structgg__dcc7.html">gg_dcc7</a>* gg_dcc7_send_file </td>
          <td>(</td>
          <td class="paramtype">struct <a class="el" href="structgg__session.html">gg_session</a> *&#160;</td>
          <td class="paramname"><em>sess</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="libgadu_8h.html#a33f630ba74294027f9bcda26ed49cdc8">uin_t</a>&#160;</td>
          <td class="paramname"><em>rcpt</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>filename</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>filename1250</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>hash</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">read</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Rozpoczyna wysyłanie pliku o danej nazwie. </p>
<dl class="params"><dt>Parametry:</dt><dd>
  <table class="params">
    <tr><td class="paramname">sess</td><td>Struktura sesji </td></tr>
    <tr><td class="paramname">rcpt</td><td>Numer odbiorcy </td></tr>
    <tr><td class="paramname">filename</td><td>Nazwa pliku w lokalnym systemie plików </td></tr>
    <tr><td class="paramname">filename1250</td><td>Nazwa pliku w kodowaniu CP-1250 </td></tr>
    <tr><td class="paramname">hash</td><td>Skrót SHA-1 pliku (lub <code>NULL</code> jeśli ma być wyznaczony)</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Zwraca:</dt><dd>Struktura <code><a class="el" href="structgg__dcc7.html" title="Połączenie bezpośrednie od wersji Gadu-Gadu 7.x.">gg_dcc7</a></code> lub <code>NULL</code> w przypadku błędu </dd></dl>

</div>
</div>
<a class="anchor" id="ga99b4d40b7b138403ef306f50838f98ca"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">struct <a class="el" href="structgg__dcc7.html">gg_dcc7</a>* gg_dcc7_send_file_fd </td>
          <td>(</td>
          <td class="paramtype">struct <a class="el" href="structgg__session.html">gg_session</a> *&#160;</td>
          <td class="paramname"><em>sess</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="libgadu_8h.html#a33f630ba74294027f9bcda26ed49cdc8">uin_t</a>&#160;</td>
          <td class="paramname"><em>rcpt</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>fd</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>size</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>filename1250</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>hash</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">read</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Rozpoczyna wysyłanie pliku o danym deskryptorze.</p>
<dl class="section note"><dt>Nota:</dt><dd>Wysyłanie pliku nie będzie działać poprawnie, jeśli deskryptor źródłowy jest w trybie nieblokującym i w pewnym momencie zabraknie danych.</dd></dl>
<dl class="params"><dt>Parametry:</dt><dd>
  <table class="params">
    <tr><td class="paramname">sess</td><td>Struktura sesji </td></tr>
    <tr><td class="paramname">rcpt</td><td>Numer odbiorcy </td></tr>
    <tr><td class="paramname">fd</td><td>Deskryptor pliku </td></tr>
    <tr><td class="paramname">size</td><td>Rozmiar pliku </td></tr>
    <tr><td class="paramname">filename1250</td><td>Nazwa pliku w kodowaniu CP-1250 </td></tr>
    <tr><td class="paramname">hash</td><td>Skrót SHA-1 pliku</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Zwraca:</dt><dd>Struktura <code><a class="el" href="structgg__dcc7.html" title="Połączenie bezpośrednie od wersji Gadu-Gadu 7.x.">gg_dcc7</a></code> lub <code>NULL</code> w przypadku błędu </dd></dl>

</div>
</div>
<a class="anchor" id="ga069cdebd3e41c42ca918e3221a1e2b0f"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int <a class="el" href="structgg__dcc7__accept.html">gg_dcc7_accept</a> </td>
          <td>(</td>
          <td class="paramtype">struct <a class="el" href="structgg__dcc7.html">gg_dcc7</a> *&#160;</td>
          <td class="paramname"><em>dcc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned int&#160;</td>
          <td class="paramname"><em>offset</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Potwierdza chęć odebrania pliku. </p>
<dl class="params"><dt>Parametry:</dt><dd>
  <table class="params">
    <tr><td class="paramname">dcc</td><td>Struktura połączenia </td></tr>
    <tr><td class="paramname">offset</td><td>Początkowy offset przy wznawianiu przesyłania pliku</td></tr>
  </table>
  </dd>
</dl>
<dl class="section note"><dt>Nota:</dt><dd>Biblioteka nie zmienia położenia w odbieranych plikach. Jeśli offset początkowy jest różny od zera, należy ustawić go funkcją <code>lseek()</code> lub podobną.</dd></dl>
<dl class="section return"><dt>Zwraca:</dt><dd>0 jeśli się powiodło, -1 w przypadku błędu </dd></dl>

</div>
</div>
<a class="anchor" id="ga7ed0a6e2e7d0e8c2a9f735bd9a9b2af6"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int <a class="el" href="structgg__dcc7__reject.html">gg_dcc7_reject</a> </td>
          <td>(</td>
          <td class="paramtype">struct <a class="el" href="structgg__dcc7.html">gg_dcc7</a> *&#160;</td>
          <td class="paramname"><em>dcc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>reason</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Odrzuca próbę przesłania pliku. </p>
<dl class="params"><dt>Parametry:</dt><dd>
  <table class="params">
    <tr><td class="paramname">dcc</td><td>Struktura połączenia </td></tr>
    <tr><td class="paramname">reason</td><td>Powód odrzucenia</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Zwraca:</dt><dd>0 jeśli się powiodło, -1 w przypadku błędu </dd></dl>

</div>
</div>
<a class="anchor" id="ga3053d18bcbd8d6854bc4510376451d2e"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">struct <a class="el" href="structgg__event.html">gg_event</a>* gg_dcc7_watch_fd </td>
          <td>(</td>
          <td class="paramtype">struct <a class="el" href="structgg__dcc7.html">gg_dcc7</a> *&#160;</td>
          <td class="paramname"><em>dcc</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">read</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Funkcja wywoływana po zaobserwowaniu zmian na deskryptorze połączenia. </p>
<p>Funkcja zwraca strukturę zdarzenia <code><a class="el" href="structgg__event.html" title="Opis zdarzenia.">gg_event</a></code>. Jeśli rodzaj zdarzenia to <code>GG_EVENT_NONE</code>, nie wydarzyło się jeszcze nic wartego odnotowania. Strukturę zdarzenia należy zwolnić funkcja <code><a class="el" href="group__events.html#ga1845d4710eede4aaef1c52c4111fbda1" title="Zwalnia pamięć zajmowaną przez informację o zdarzeniu.">gg_event_free()</a></code>.</p>
<dl class="params"><dt>Parametry:</dt><dd>
  <table class="params">
    <tr><td class="paramname">dcc</td><td>Struktura połączenia</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Zwraca:</dt><dd>Struktura zdarzenia lub <code>NULL</code> jeśli wystąpił błąd </dd></dl>

</div>
</div>
<a class="anchor" id="ga5ed5817b7fb53ea3d64b04f4b550ff35"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void gg_dcc7_free </td>
          <td>(</td>
          <td class="paramtype">struct <a class="el" href="structgg__dcc7.html">gg_dcc7</a> *&#160;</td>
          <td class="paramname"><em>dcc</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Zwalnia zasoby używane przez połączenie bezpośrednie. </p>
<dl class="params"><dt>Parametry:</dt><dd>
  <table class="params">
    <tr><td class="paramname">dcc</td><td>Struktura połączenia </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Wygenerowano przez &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.1.1
</small></address>
</body>
</html>