Hi Dinh Thao, thank you very much for your reply. I have no more problem with linking. but now I have problem when I compile file client.c and common.c:
[EMAIL PROTECTED]:~/SSL-connection$ gcc client.c -o client -Wall -lcrypto -lssl -lpthread /tmp/ccUugnSm.o: In function `main': client.c:(.text+0xcb): undefined reference to `init_OpenSSL' client.c:(.text+0xfc): undefined reference to `handle_error' client.c:(.text+0x13f): undefined reference to `handle_error' collect2: ld returned 1 exit status Can you tell me where is problem? Thanks, Minh. ==================== Here ist relevant code: common.h================ #include <openssl/bio.h> #include <openssl/err.h> #include <openssl/rand.h> #include <openssl/ssl.h> #include <openssl/x509v3.h> #ifndef WIN32 #include <pthread.h> #define THREAD_CC #define THREAD_TYPE pthread_t #define THREAD_CREATE(tid, entry, arg) pthread_create(&(tid), NULL, \ (entry), (arg)) #else #include <windows.h> #define THREAD_CC __cdecl #define THREAD_TYPE DWORD #define THREAD_CREATE(tid, entry, arg) do { _beginthread((entry), 0, (arg));\ (tid) = GetCurrentThreadId(); \ } while (0) #endif #define PORT "6001" #define SERVER "splat.zork.org" #define CLIENT "shell.zork.org" #define int_error(msg) handle_error(__FILE__, __LINE__, msg) void handle_error(const char *file, int lineno, const char *msg); void init_OpenSSL(void); common.c========== #include "common.h" void handle_error(const char *file, int lineno, const char *msg) { fprintf(stderr, "** %s:%i %s\n", file, lineno, msg); ERR_print_errors_fp(stderr); exit(-1); } void init_OpenSSL(void) { if (!SSL_library_init()) { fprintf(stderr, "** OpenSSL initialization failed!\n"); exit(-1); } SSL_load_error_strings(); } client.c============ #include "common.h" void do_client_loop(BIO *conn) { int err, nwritten; char buf[80]; for (;;) { if (!fgets(buf, sizeof(buf), stdin)) break; for (nwritten = 0; nwritten < sizeof(buf); nwritten += err) { err = BIO_write(conn, buf + nwritten, strlen(buf) - nwritten); if (err <= 0) return; } } } int main(int argc, char *argv[]) { BIO *conn; init_OpenSSL(); conn = BIO_new_connect(SERVER ":" PORT); if (!conn) int_error("Error creating connection BIO"); if (BIO_do_connect(conn) <= 0) int_error("Error connecting to remote machine"); fprintf(stderr, "Connection opened\n"); do_client_loop(conn); fprintf(stderr, "Connection closed\n"); BIO_free(conn); return 0; } ______________________________________________________________________ OpenSSL Project http://www.openssl.org User Support Mailing List openssl-users@openssl.org Automated List Manager [EMAIL PROTECTED]