Dokumentacja pliku common.c

Funkcje wykorzystywane przez różne moduły biblioteki. Więcej...

Funkcje

void gg_debug_common (struct gg_session *sess, int level, const char *format, va_list ap)
void gg_debug (int level, const char *format,...)
void gg_debug_session (struct gg_session *sess, int level, const char *format,...)
char * gg_vsaprintf (const char *format, va_list ap)
char * gg_saprintf (const char *format,...)
char * gg_get_line (char **ptr)
char * gg_read_line (int sock, char *buf, int length)
int gg_connect (void *addr, int port, int async)
void gg_chomp (char *line)
char * gg_urlencode (const char *str)
int gg_http_hash (const char *format,...)
char * gg_base64_encode (const char *buf)
char * gg_base64_decode (const char *buf)
char * gg_proxy_auth ()
static void gg_crc32_make_table (void)
uint32_t gg_crc32 (uint32_t crc, const unsigned char *buf, int len)
 Wyznacza sumę kontrolną CRC32.
char * gg_cp_to_utf8 (const char *b)
static int gg_utf8_helper (unsigned char *s, int n, uint16_t *ch)
char * gg_utf8_to_cp (const char *b)

Zmienne

FILE * gg_debug_file = NULL
 Plik, do którego będą przekazywane informacje odpluskwiania.
static char gg_base64_charset []
static uint32_t gg_crc32_table [256]
static int gg_crc32_initialized = 0
static const uint16_t table_cp1250 []

Opis szczegółowy

Funkcje wykorzystywane przez różne moduły biblioteki.


Dokumentacja funkcji

void gg_debug_common ( struct gg_session sess,
int  level,
const char *  format,
va_list  ap 
)

Tylko do użytku wewnętrznego.

Przekazuje informacje odpluskwiania do odpowiedniej funkcji.Jeśli aplikacja ustawiła odpowiednią funkcję obsługi w gg_debug_handler_session lub gg_debug_handler, jest ona wywoływana. W przeciwnym wypadku wynik jest wysyłany do standardowego wyjścia błędu.

Parametry:
sess Struktura sesji (może być NULL)
level Poziom informacji
format Format wiadomości (zgodny z printf)
ap Lista argumentów (zgodna z printf)

char* gg_get_line ( char **  ptr  ) 

Tylko do użytku wewnętrznego.

Pobiera linię tekstu z bufora.Funkcja niszczy bufor źródłowy bezpowrotnie, dzieląc go na kolejne ciągi znaków i obcina znaki końca linii.

Parametry:
ptr Wskaźnik do zmiennej, która przechowuje aktualne położenie w analizowanym buforze
Zwraca:
Wskaźnik do kolejnej linii tekstu lub NULL, jeśli to już koniec bufora.

char* gg_read_line ( int  sock,
char *  buf,
int  length 
)

Tylko do użytku wewnętrznego.

Czyta linię tekstu z gniazda.Funkcja czyta tekst znak po znaku, więc nie jest efektywna, ale dzięki brakowi buforowania, nie koliduje z innymi funkcjami odczytu.

Parametry:
sock Deskryptor gniazda
buf Wskaźnik do bufora
length Długość bufora
Zwraca:
Zwraca buf jeśli się powiodło, lub NULL w przypadku błędu.

int gg_http_hash ( const char *  format,
  ... 
)

Tylko do użytku wewnętrznego.

Wyznacza skrót dla usług HTTP.Funkcja jest wykorzystywana do wyznaczania skrótu adresu e-mail, hasła i innych wartości przekazywanych jako parametry usług HTTP.W parametrze format należy umieścić znaki określające postać kolejnych parametrów: 's' jeśli parametr jest ciągiem znaków, 'u' jeśli jest liczbą.

Parametry:
format Format kolejnych parametrów (niezgodny z printf)
Zwraca:
Wartość skrótu

char* gg_proxy_auth ( void   ) 

Tylko do użytku wewnętrznego.

Tworzy nagłówek autoryzacji serwera pośredniczącego.Dane pobiera ze zmiennych globalnych gg_proxy_username i gg_proxy_password.

Zwraca:
Zaalokowany bufor z tekstem lub NULL, jeśli serwer pośredniczący nie jest używany lub nie wymaga autoryzacji.

static void gg_crc32_make_table ( void   )  [static]

Tylko do użytku wewnętrznego.

Tworzy tablicę pomocniczą do wyznaczania sumy kontrolnej.

uint32_t gg_crc32 ( uint32_t  crc,
const unsigned char *  buf,
int  len 
)

Wyznacza sumę kontrolną CRC32.

Parametry:
crc Suma kontrola poprzedniego bloku danych lub 0 jeśli liczona jest suma kontrolna pierwszego bloku
buf Bufor danych
len Długość bufora danych
Zwraca:
Suma kontrolna.
char* gg_cp_to_utf8 ( const char *  b  ) 

Tylko do użytku wewnętrznego.

Zamienia tekst kodowany CP1250 na UTF-8.

Parametry:
b Tekst źródłowy w CP1250.
Zwraca:
Zaalokowany bufor z tekstem w UTF-8.

static int gg_utf8_helper ( unsigned char *  s,
int  n,
uint16_t *  ch 
) [static]

Tylko do użytku wewnętrznego.

Dekoduje jeden znak UTF-8.

Nota:
Funkcja nie jest kompletną implementacją UTF-8, a wersją uproszczoną do potrzeb kodowania CP1250.
Parametry:
s Tekst źródłowy.
n Długość tekstu źródłowego.
ch Wskaźnik na wynik dekodowania.
Zwraca:
Długość zdekodowanej sekwencji w bajtach lub wartość mniejsza od zera w przypadku błędu.

char* gg_utf8_to_cp ( const char *  b  ) 

Tylko do użytku wewnętrznego.

Zamienia tekst kodowany UTF-8 na CP1250.

Parametry:
b Tekst źródłowy w UTF-8.
Zwraca:
Zaalokowany bufor z tekstem w CP1250.


Dokumentacja zmiennych

char gg_base64_charset[] [static]
Wartość początkowa:
        "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"

Tylko do użytku wewnętrznego.

Zestaw znaków kodowania base64.

uint32_t gg_crc32_table[256] [static]

Tylko do użytku wewnętrznego.

Tablica pomocnicza do wyznaczania sumy kontrolnej.

int gg_crc32_initialized = 0 [static]

Tylko do użytku wewnętrznego.

Flaga wypełnienia tablicy pomocniczej do wyznaczania sumy kontrolnej.

const uint16_t table_cp1250[] [static]
Wartość początkowa:
 {
        0x20ac, '?',    0x201a,    '?', 0x201e, 0x2026, 0x2020, 0x2021, 
           '?', 0x2030, 0x0160, 0x2039, 0x015a, 0x0164, 0x017d, 0x0179, 
           '?', 0x2018, 0x2019, 0x201c, 0x201d, 0x2022, 0x2013, 0x2014, 
           '?', 0x2122, 0x0161, 0x203a, 0x015b, 0x0165, 0x017e, 0x017a, 
        0x00a0, 0x02c7, 0x02d8, 0x0141, 0x00a4, 0x0104, 0x00a6, 0x00a7, 
        0x00a8, 0x00a9, 0x015e, 0x00ab, 0x00ac, 0x00ad, 0x00ae, 0x017b, 
        0x00b0, 0x00b1, 0x02db, 0x0142, 0x00b4, 0x00b5, 0x00b6, 0x00b7, 
        0x00b8, 0x0105, 0x015f, 0x00bb, 0x013d, 0x02dd, 0x013e, 0x017c, 
        0x0154, 0x00c1, 0x00c2, 0x0102, 0x00c4, 0x0139, 0x0106, 0x00c7, 
        0x010c, 0x00c9, 0x0118, 0x00cb, 0x011a, 0x00cd, 0x00ce, 0x010e, 
        0x0110, 0x0143, 0x0147, 0x00d3, 0x00d4, 0x0150, 0x00d6, 0x00d7, 
        0x0158, 0x016e, 0x00da, 0x0170, 0x00dc, 0x00dd, 0x0162, 0x00df, 
        0x0155, 0x00e1, 0x00e2, 0x0103, 0x00e4, 0x013a, 0x0107, 0x00e7, 
        0x010d, 0x00e9, 0x0119, 0x00eb, 0x011b, 0x00ed, 0x00ee, 0x010f, 
        0x0111, 0x0144, 0x0148, 0x00f3, 0x00f4, 0x0151, 0x00f6, 0x00f7, 
        0x0159, 0x016f, 0x00fa, 0x0171, 0x00fc, 0x00fd, 0x0163, 0x02d9, 
}

Tylko do użytku wewnętrznego.

Tablica konwersji między CP1250 a UTF-8.

 All Struktury Danych Pliki Funkcje Zmienne Definicje typów Wyliczenia Wartości wyliczeń Definicje

Wygenerowano Sat Dec 5 21:53:34 2009 dla libgadu programem  doxygen 1.6.1