Hallo teman-teman

saya sedang mempelajari squid,
saya memakai redhat 9 dan mysql versi 3.23.54a-11.i386.rpm dan semua sudah diinstal termasuk paket development yaity mysql-devel-3.23.54a-11.i386.rpm ketika saya coba mencompile program berikut yang saya ambil dari internet yang dibuat oleh Frank Liu (PROGRAM ada dibawah) dengan perintah gcc mysql_auth.c -o mysql_auth -I/usr/include/mysql - L/usr/lib/mysql -lm -lmysqlclient -lz,
saya mendapat error : gcc : L/usr/lib/mysql : no such file or directory
gcc : -E request when input is from standar input
dan memang saya cek di /usr/lib/mysql/ file lmysqlcient tidak ada.

apakah karena versi redhat dan mysql harus install mysql dengan versi yang lebih lama atau versi yang lebih baru...?
mohon bantuan rekan rekan yang pernah mengcomplie program tsb....

salam,

*  mysql_auth.c
*
*  Copyright 1998 Frank Liu ([EMAIL PROTECTED])
*  Distributed under the GPL
*
*  26 Sep 1999, version 2:
*    1. fixed a bug where A_TABLE is defined but never used.
*       (thanks to [EMAIL PROTECTED])
*    2. now you can choose to use either clear text password or
*       encrypted password in the MySQL table.
*  13 Nov 1998, version 1:
*    initial release
*  Needs to be compiled/linked with MySQL libs.
*  Assuming MySQL header files are installed in /usr/local/mysql/include
*  and MySQL libs in /usr/local/mysql/lib
*
*  On my Linux box:
*
*  cc -I /usr/local/mysql/include -O -o mysql_auth mysql_auth.c \
      -L /usr/local/mysql/lib -lmysqlclient -lm
*
*  Then modify the squid.conf to use this external auth program:
*
*  authenticate_program /usr/local/squid/bin/mysql_auth
*
*/

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "mysql.h"

/* comment out next line if you use clear text password in MySQL DB */
#define ENCRYPTED_PASS

/* can use NULL for localhost, current user, or no password */
#define DBHOST "localhost"
#define DBUSER "nobody"
#define DB "www"
#define DBPASSWORD NULL

/* table for the user database for the squid authentication,
  column names for auth username and auth password */
#define A_TABLE  "user"
#define A_USERNAME "username"
#define A_PASSWORD "passwd"

#define BUFSIZE         256

void main(int argc, char *argv[])
{
   char buf[BUFSIZE], qbuf[BUFSIZE];
   char *p;
   MYSQL mysql,*sock;
   MYSQL_RES *res;

   /* make standard output line buffered */
   if (setvbuf(stdout, NULL, _IOLBF, 0) != 0)
       return;

   while (1) {
       if (fgets(buf, BUFSIZE, stdin) == NULL)
           break;
       if ((p = strchr(buf, '\n')) != NULL)
           *p = '\0';          /* strip \n */
       if ((p = strchr(buf, ' ')) == NULL) {
           (void) printf("ERR\n");
           continue;
       }
       *p++ = '\0';

       /* buf is username and p is password now */

       if (!(sock = mysql_connect(&mysql, DBHOST, DBUSER, DBPASSWORD)))
       {
           /* couldn't connect to database server */
           (void) printf("ERR\n");
           continue;
       }
       if (mysql_select_db(sock, DB))
       {
           /* couldn't use the database */
           (void) printf("ERR\n");
           mysql_close(sock);
           continue;
       }
       sprintf(qbuf, "select " A_USERNAME " from " A_TABLE " where "
                      A_USERNAME "='%s' and " A_PASSWORD

#ifdef ENCRYPTED_PASS
                     "=password('%s')", buf, p);
#else
                     "='%s'", buf, p);
#endif
       if(mysql_query(sock,qbuf) || !(res=mysql_store_result(sock)))
       {
           /* query failed */
           (void) printf("ERR\n");
           mysql_close(sock);
           continue;
       }
       if ( res->row_count !=0 )
           (void) printf("OK\n");
       else
           (void) printf("ERR\n");
       mysql_free_result(res);
       mysql_close(sock);
   }
   exit(0);
}

--
Unsubscribe: kirim email kosong ke [EMAIL PROTECTED]
Arsip, FAQ, dan info milis di http://linux.or.id/milis
Tidak bisa posting? Baca:
http://linux.or.id/problemmilis
http://linux.or.id/tatatertibmilis

Kirim email ke