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 [] = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/" |
| static uint32_t | gg_crc32_table [256] |
| static int | gg_crc32_initialized = 0 |
| static const uint16_t | table_cp1250 [] |
Funkcje wykorzystywane przez różne moduły biblioteki.
| 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.
| 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.
| ptr | Wskaźnik do zmiennej, która przechowuje aktualne położenie w analizowanym buforze |
| 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.
| sock | Deskryptor gniazda | |
| buf | Wskaźnik do bufora | |
| length | Długość bufora |
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ą.
| format | Format kolejnych parametrów (niezgodny z printf) |
| 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.
| 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.
| crc | Suma kontrola poprzedniego bloku danych lub 0 jeśli liczona jest suma kontrolna pierwszego bloku | |
| buf | Bufor danych | |
| len | Długość bufora danych |
| char* gg_cp_to_utf8 | ( | const char * | b | ) |
Tylko do użytku wewnętrznego.
Zamienia tekst kodowany CP1250 na UTF-8.
| b | Tekst źródłowy w CP1250. |
| 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.
| s | Tekst źródłowy. | |
| n | Długość tekstu źródłowego. | |
| ch | Wskaźnik na wynik dekodowania. |
| char* gg_utf8_to_cp | ( | const char * | b | ) |
Tylko do użytku wewnętrznego.
Zamienia tekst kodowany UTF-8 na CP1250.
| b | Tekst źródłowy w UTF-8. |
char gg_base64_charset[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/" [static] |
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] |
{
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.
1.7.1